Usually because the model is working from stale training data, or because its live search pulled a page, review or your own JSON-LD Offer that disagrees with the price on your site today. The fix depends on which cause it is, and most companies have never checked which one applies to them.
A wrong price is a specific case of a bigger problem: AI forming an impression of your brand from whatever it can find, not what's true today. It's the fact buyers notice fastest, since they can check it against your own page in one click.
Because a language model doesn't look up your current price in real time by default, it predicts the statistically likely answer from whatever it learned during training or retrieved just now. If your last price increase happened after the model's training cutoff, or on a page the model hasn't fetched again since, the old number is still the most "likely" answer as far as the model can tell. This is the same underlying mechanism behind any brand hallucination, an old founding date, a discontinued product, a merger that never happened, just applied to the one fact your prospects check first.
Proof: OpenAI's own research describes hallucination as a structural byproduct of how models are trained and evaluated, not a rare glitch limited to weaker models: OpenAI — Why language models hallucinate.
Why it matters: you can't fix this by picking "the good model." Every engine can quote a stale price until the underlying source data is cleaned up and re-checked.
Yes, a wrong price is one specific, easy-to-verify example of the wider brand-hallucination problem. Columbia's Tow Center for Digital Journalism found AI search engines got a factual detail wrong more than 60% of the time across 1,600 queries, with Perplexity the most accurate engine tested at 37% wrong and Grok 3 wrong 94% of the time. Vectara's ongoing Hallucination Leaderboard tracks the same pattern on plain summarization tasks, and no model it tests sits at zero.
Proof: Columbia Journalism Review — AI search has a citation problem · Vectara — Hallucination Leaderboard.
Do this: the full mechanics of brand hallucination, and the general fix, live in When AI makes up facts about your brand. This guide focuses on the pricing-specific version.
From whichever source was most consistent, most recent, or most repeated when the model formed its answer, rarely only your own pricing page. A model can pull a number from an old review, a competitor's comparison article, a cached copy of your page, or your own JSON-LD Offer if it disagrees with the visible price. Engines with live web search, Perplexity, and ChatGPT or Claude in search mode, fetch pages at answer time, so a correction reaches them faster than one relying only on training data.
| Source of the wrong number | How fast a fix reaches it |
|---|---|
| Frozen training data (no live search) | Slow, tied to the next model or knowledge update, weeks to months |
| Your own page, re-crawled at answer time | Fast, often within days once the page is fixed |
| A third-party review or comparison page | Slow, out of your direct control, needs outreach |
| Your own JSON-LD, disagreeing with visible copy | Fast to fix, but fixes nothing until it matches the page |
Bottom line: you can't always control the source, but you can always control whether your own page and your own schema tell the same story.
No, a JSON-LD Offer doesn't make an engine trust your price more, it only removes ambiguity if the number in the markup matches what a visitor actually reads on the page. Structured data is a machine-readable description of facts already on the page, not a lever that makes those facts more persuasive. Google says the same about structured data generally: it helps systems understand content, it isn't a ranking or trust signal on its own. The mismatch usually starts small, marketing updates the visible price while the Offer schema, often set once by a developer, quietly gets left behind, and an engine reading both has no way to know which one is current.
Proof: Google — Understand how structured data works · schema.org — sameAs.
Rule of thumb: a price that exists only in your schema and not in your visible copy isn't corroborated, it's asserted. Update the visible copy and the Offer schema's price and priceValidUntil in the same edit, not as two separate tasks on two separate schedules.
Often within days on an engine that fetches pages live, and much longer on one that doesn't, so the honest answer depends on which engine you're checking. Publish the corrected price in your visible copy and Offer schema together, then re-check the same buyer question on ChatGPT, Claude and Perplexity over the following weeks rather than assuming one fix is instantly done everywhere.
Good news: unlike a hallucinated founding date or a fabricated merger, a wrong price is one of the easier brand facts to verify and fix, because it's usually caused by your own out-of-date source, not a third party's.
None of this requires buying anything, and each step takes a few minutes:
Bottom line: most wrong-price answers trace back to a mismatch you can fix yourself in one sitting, once you know where to look.
Usually one of two reasons: the model's training data was frozen before your last price change, or its live search pulled a page, old review, or JSON-LD Offer that disagrees with your current price. No single fix covers both causes.
Not instantly. Engines with live web search, such as Perplexity or ChatGPT and Claude in search mode, can pick up a correction within days of the next crawl. A model answering from older training data alone can keep repeating the old price for much longer.
It helps, but only if the price in the JSON-LD matches the price a visitor actually sees on the page. A number that appears only in schema, and not in visible copy, is not corroborated, and engines have no reason to trust it over another page that disagrees.
State the starting price and the basis plainly, such as "from $49/month, billed monthly", and mirror it in both the visible copy and the Offer schema, rather than leaving pricing to a "contact us" page an engine cannot read as a number.
Ask ChatGPT, Claude and Perplexity directly what your product costs, in the exact words a buyer would use, and read the answer literally. The free Reflexa check runs this alongside a structured-data pass and flags where your JSON-LD and visible pricing disagree.
The free check reads your pricing claims across ChatGPT, Claude and Perplexity, and checks your schema against your page. 3 minutes, evidence included.