When you test your products in ChatGPT or Gemini, you get two things: a pick and a reason. Most merchants read the pick and skim the reason. The reason is where the useful information is, and sometimes it’s quietly wrong.

A recommendation receipt is how we check it. It’s one page per answer. You write down what the shopper needed, what got picked, and for every fact in the AI’s reason, which listing actually says it. Then you look at what was left out.

What a receipt looks like

Here’s one filled in from our own product-picking simulation. The shopper brief we gave every model: “Your user is Maya, a light sleeper with a 450 sq ft bedroom. She wants a quiet humidifier under USD90, dislikes refilling daily, and wants evidence for room coverage, noise and runtime.”

Claude Opus 5.5 picked two products and gave this reason:

“Within budget, the Velmori Drift is the only listing that documents all three: up to 500 sq ft coverage, 28 dB on low and 40 h runtime, while the [Brand A smart model] lists 26 dB and a 6.2 L tank but no stated coverage or runtime (the 62 h figure is for the non-smart [standard model]).”

Here’s the receipt:

What Maya needed

Need From her brief
Price Under USD 90
Noise Quiet, for a light sleeper. She asked for evidence.
Room size 450 sq ft. She asked for evidence.
Runtime No daily refills. She asked for evidence.

Pick 1: Velmori Drift, USD 79.99 (our invented test product)

Fact in the reason Where it’s stated Holds up?
Up to 500 sq ft Its own listing Yes
28 dB on low Its own listing Yes
40 h runtime Its own listing Yes

Pick 2: Brand A’s smart model, USD 79.99, 3.5 stars from 2 ratings

Fact in the reason Where it’s stated Holds up?
26 dB Its own feature bullet Yes
6.2 L tank Its own description Yes
No coverage stated Nothing on its listing Yes, correctly flagged
No runtime stated, 62 h belongs to the standard model The 62 h is on the standard sibling’s listing Yes, correctly flagged

Passed over: Brand A’s standard model at USD 69.99 (62 hours, but no noise figure and no room size), and a 4 L humidifier at USD 39.99 (28 dB, but its runtime said 32 hours in one place and 36 in another).

Still unknown: whether the smart model covers 450 sq ft, and how long it runs.

That’s a good receipt. Every fact traces back to the listing it was credited to, and the gaps are named out loud. Not every answer looked like this.

What we found when we checked 597 answers

We re-read every reason from the detailed-brief humidifier runs in that simulation: 597 answers across Claude, GPT-6.1-Sol and two Gemini models. Three patterns are worth knowing about, because you’ll see them when you test your own products.

Sibling facts get borrowed. Brand A sells a standard model and a smart model, close siblings. In the snippets the models saw, only the standard model stated a runtime: “62H”. The smart model stated “26 dB” and said nothing about runtime. Gemini 3.8 Flash picked the smart model without the standard one in 28 sessions, and in 4 of them its reason gave the pair “multi-day runtimes (up to 40–62 hours)”. The 62 came from a product it didn’t pick. Claude Opus, in the same spot, wrote that “the 62 h figure is for the non-smart [standard model]”.

If you sell close siblings, this is the one to watch. A shopper reading the summary would think the smart model runs 62 hours. Maybe it does, but its own listing never said so.

Good reasons name the gaps. Neither Brand A sibling showed a room size. In all 21 sessions where GPT-6.1-Sol picked two products that didn’t state one, its reason said so, usually as “neither confirms 450 sq ft coverage.” That’s the honest version: the pick still happened, but the shopper knows what to check.

Contradictions get noticed, by some models. One 4 L humidifier said “up to 32 hours” in its description and “up to 36 hours” in a feature bullet. GPT-6.1-Sol called that out in 20 of the 25 sessions where it picked the product. Claude Haiku did in 21 of 111. The two Gemini models never did, in 64 picks. A mismatch on your own page won’t always cost you the pick. But some assistants will tell the shopper about it.

How to fill one in for your own product

Run the shopper question you care about in ChatGPT, Gemini or Copilot. Then:

  1. Write the shopper’s needs first. Use only what the question actually says. If it says “quiet”, write “quiet”, not “under 30 dB”. Mark which needs the shopper said they wanted evidence for.
  2. List every fact in the reason. Every number, every “the only one that”, every “great for”. One line each.
  3. Open the listing each fact is credited to. Not the brand’s site, not a review. The listing for that exact product, as the AI could have seen it. Write where it’s stated, or “not stated”.
  4. Mark each line. Holds up, stated somewhere else (on a sibling or a review), or not found at all.
  5. Write down the alternatives it named, and why it said no to them.
  6. Write the unknowns. Anything the shopper needed that no picked listing states.

The whole thing takes about ten minutes per answer. Do five answers for your best seller, not one. Assistants vary from run to run, and one answer is an anecdote.

What to do with what you find

The receipt is only useful if it changes something on your page.

  • A fact of yours got credited to a sibling, or a sibling’s fact to you: state that number on each product’s own listing, near the top. Don’t rely on “same as the standard model” or a shared feature list. Our guide to descriptions that get cut short shows where those numbers tend to go missing.
  • You’re in the “still unknown” column: you probably have the fact and just never wrote it down. Add it with units and conditions. Constraint coverage walks through finding the facts shoppers filter on.
  • Your page contradicts itself: pick the right number and fix it everywhere, including feature bullets and metafields.
  • A competitor won on a fact that isn’t on its listing: you can’t fix their listing. But you can make sure yours states the same fact clearly, so it isn’t left to guesswork.
  • The AI said your product “can’t” do something it can: that’s usually a missing negative or limit statement on someone’s page, sometimes yours.

How we checked

We used the saved answers from our October 27, 2026 simulation: the detailed shopper brief, humidifier shelf, all copy versions, 597 valid answers. For each one we compared every number in the reason against the listing snippets that model was shown, then read by hand every answer where a number didn’t match the products picked. We found the sibling-runtime cases by searching reasons for “62” in sessions that picked the smart model without the standard one. We read all 7 and counted the 4 Gemini 3.8 Flash ones as borrowed. The other 3 were Opus crediting the standard model correctly.

Your next step

Ask ChatGPT the question your best customer would ask, and fill in a receipt for the answer. If even one fact in the reason isn’t on the listing it was credited to, you’ve found your first fix.