Why your AI assistant lies about your menu — and how cite-or-die fixes it
A restaurant owner in Frankfurt showed me a screenshot last month. She'd asked a popular AI assistant to draft a reply to a customer who complained about a €14.90 schnitzel. The draft was warm, apologetic, well-written — and it offered the customer a free 'Wiener Schnitzel with truffle fries,' a dish that has never existed on her menu, at a price point she's never charged. She caught it before sending. The next owner might not.
This isn't a rare glitch. It's the default behavior of every general-purpose language model, and if you're using ChatGPT or Claude as a generic assistant for your restaurant, it is happening to you whether you've noticed or not. This post explains why the lying is structural — not a bug that gets patched next quarter — and what an architecture that actually prevents it looks like.
Why do AI assistants make up menu items and prices?
Language models are prediction engines. When you ask one to write a review reply mentioning your margherita pizza, it predicts the most plausible-sounding continuation. If it doesn't know your actual price, it doesn't say 'I don't know.' It generates a plausible price — €11.50, $13.95, whatever fits the genre of 'pizzeria reply.' The model is not lying in the human sense; it has no concept of your menu as a fact to be checked. Plausibility and truth are the same thing to it.
Pasting your menu into the prompt helps, but it doesn't fix the problem. The model can still blend your menu with its training data, quote last season's price after you've updated it, or confidently describe a dish you 86'd two weeks ago. And nothing in the loop checks. The text just flows out, fluent and wrong.
What does a menu hallucination actually cost a restaurant?
- A reply quoting the wrong price becomes a promise. The customer screenshots it and asks you to honor it. Now you're issuing a discount you never offered — or arguing publicly with a customer holding receipts.
- A made-up dish in a public reply tells every reader that the owner doesn't know their own menu. Trust damage compounds: people notice, and they remember.
- Wrong hours in an AI-written post sends people to a dark dining room. Those become one-star reviews that say 'showed up, closed' — the hardest kind to recover from.
- Allergy and ingredient errors are the nightmare case. An AI that improvises 'gluten-free' onto a dish that isn't is a liability event, not a typo.
One hallucinated public reply can undo months of careful review management. That's why we treat hallucination as a safety problem, not a quality problem.
What is cite-or-die and how does it work?
Inside Nuxa, every fact about your restaurant — each price, each dish, each opening hour, each order count — is stored as a claim linked to its source: your POS, your menu, your Google profile, a specific order or review. When an AI employee like Grace drafts a review reply, the draft must cite the claims it used. You see the citation chips right under the draft: 'cited: review #4811 · order #20144.'
Here's the part that matters: an output that asserts a fact — a price, a number, a dish name — without a citation is rejected automatically, before it reaches you and long before it reaches a customer. Not flagged. Not warned. Rejected. The guardrail isn't a suggestion in a prompt; it's a checker that runs on every output, and there is no setting to turn it off. We call it cite-or-die: no citation, no claim.
A generic assistant generates the most plausible sentence. A cited system generates the most plausible sentence that survives a fact check — and throws away the ones that don't.
Can't I just tell ChatGPT to only use my menu?
You can, and it will mostly comply, and 'mostly' is exactly the problem. Prompt instructions are requests, not constraints. Under a long conversation, a weird review, or an updated menu the model hasn't seen, the request gets ignored — silently. There's no rejection step, no citation trail, no way to audit after the fact which facts came from where. The difference between 'asked nicely' and 'architecturally enforced' is the difference between a sign that says 'please wash hands' and a tap that won't dispense food until you do.
Cite-or-die also changes what happens when the data is missing. If Grace can't find a claim to support a sentence, she doesn't improvise — the draft either drops the claim or comes to you with the gap visible. 'I don't know' is a feature. Generic assistants don't have it.
What this looks like day to day
In practice you barely think about it. Grace drafts review replies with the supporting order and review cited underneath. Dash's morning numbers in your brief at nuxa.ai/daily-brief each trace back to actual POS rows. Ink writes a menu description and every price in it is the live price, because it can't cite anything else. The citations are there when you want to check — and the rejected drafts you never see are the ones that would have lied.
Every guardrail in this post is documented in plain language at nuxa.ai/trust — cite-or-die, the approval line, the audit log, and the metering ceiling. If you've been burned by a confident wrong answer from a generic assistant, that page is the antidote. And if you want to see what cited output looks like against your own restaurant's data, plans start at $299 per location at nuxa.ai/pricing.
Data note: This analysis is based on anonymized restaurant operating patterns, public local-search audits, and Nuxa benchmarks across hundreds of restaurants. Individual results vary by cuisine, location, competition, and connected systems.


