New

Shopify launched Agentic Storefronts. We make AI agents recommend you — not just list you.

See the Shopify integration
Tru Commerce

← Insights

Query Fan-Out: One Question Becomes 5-7 Searches (And ChatGPT Rewrites All of Them)

A user typed 'ALTRR Portable Spice Mill (200W)' into ChatGPT. The shopping backend searched 'portable spice grinder travel' — brand stripped, spec dropped, intent added. That rewrite is stamped into every card's payload as generated_product_query, and it is only one branch of a fan-out that turns a single buyer question into 5-7 sub-queries across 8 distinct axes. Classical SEO optimizes one keyword per page. AI shopping ranks you across the whole fan-out — which is exactly why Amazon holds 63-79% presence on every sub-intent type we measure.

Viren Inaniyan · August 7, 2026 · AEO / GEO Canonical Guides

ChatGPT rewrote 'ALTRR Portable Spice Mill (200W)' into 'portable spice grinder travel' before shopping

Every serious conversation about (AEO) eventually hits the same wall: "we track our keyword, we rank for our keyword, and we still don't show up in ChatGPT." The wall exists because the premise is wrong. There is no "your keyword" inside an AI shopping surface. There is a fan-out — one buyer question silently expanded into five to seven sub-queries — and a rewrite layer that de-brands every one of them before anything touches an index. We have the payload field that proves it, the framework that maps it, and the Amazon data showing what winning it looks like.

This piece runs on the same corpus as our teardown of chatgpt.com/shopping: buyer prompts run against the live surface with every response payload captured, plus a locked 425-prompt mixer-grinder panel re-run across six pull dates in 2026. No survey answers. No vendor claims. Fields in JSON.

The field that ends the argument

Half of the 1,928 mixer-grinder cards in our July 23 pull — 973 of them — carry a chatgpt_metadata object. Here is one, verbatim from the live payload:

{
  "cite_ref": "turn0product0",
  "analytics_meta": { "product_event_uuid": "d92beafe-ecec-427a-8c2f-0772b38085e5" },
  "chatgpt_product_id": "8902767113447894386",
  "product_lookup_data": {
    "all_ids": { "p2": ["8902767113447894386"] },
    "known_ids": {},
    "request_query": "ALTRR Portable Spice Mill (200W)",
    "metadata_sources": ["p1", "p3"]
  },
  "generated_product_query": "portable spice grinder travel"
}

Read the last two lines of product_lookup_data against the last line of the object. request_query is what the user typed: "ALTRR Portable Spice Mill (200W)." generated_product_query is what ChatGPT actually searched: "portable spice grinder travel."

Three transformations happened between those two strings, and each one should terrify anyone still running a one-keyword-per-page playbook:

  1. De-branded. "ALTRR" is gone. The user named a brand; the system shopped the category.
  2. De-specced. "(200W)" is gone. The hard spec the user supplied was discarded.
  3. Re-intended. "travel" appeared. The system inferred why someone wants a portable spice mill and injected that inference into the search.

This is not a scraped screenshot or an inferred behavior. It is a first-party artifact OpenAI stamps into its own payload — the reformulated query the backend ran, sitting next to the original. The same object carries a chatgpt_product_id (an internal catalog identifier unifying products across sources) and metadata_sources: ["p1", "p3"] — this single card was resolved through both metadata enrichment and a direct feed partner in parallel.

One card. Two queries. The one you can see, and the one that decided whether you exist.

One buyer question fans out across 8 axes: product type, brand, fit, use-case, spec, region, price, feature
One question becomes 5–7 searches across 8 axes.

One question becomes five to seven searches

The rewrite is only half the story. The other half is multiplication.

When a buyer asks an a shopping question — "which mixer grinder should I buy for a family of four" — the system does not run that sentence against an index once. It decomposes the question into a fan-out: in our measurement corpus, one buyer question typically expands into five to seven distinct sub-queries, each attacking a different dimension of the purchase. One resolves the product type. One resolves household fit. One chases a spec threshold. One tests a price band. The response you see — cards, comparison table, citations — is assembled from the union of those retrievals.

You can see the seams in the payload. Cards on a single response resolve through different metadata_sources, carry different provenance paths (p1 enrichment, p2 organic, p3 feed), and — critically — carry different generated_product_query values. The response is a composite of several searches you never typed.

The same pattern keeps surfacing in our client conversations. An FMCG major asked us why the 30 prompts their team was manually testing told them nothing about their real visibility — because 30 head prompts sample a few dozen branches of a tree with thousands. A top Indian automaker got it the right way around: its proof-of-concept opened with a 500-1,000 query baseline, roughly what it takes to cover one category's fan-out honestly. One query tells you nothing. The fan-out is the unit of measurement.

The 8 axes: a mechanical map of the fan-out

Here is the useful part: the fan-out is not random. Buyer questions in any category decompose along a stable set of dimensions, which means you can enumerate — mechanically, in advance — the sub-queries AI will actually run.

We built this as an eight-axis framework for the Amazon India engagement, and it now generates every prompt panel we scrape. Each axis maps to a prompt type (P-type) that determines the shape of the question:

Axis P-Type Question shape Mixer-grinder example
Appliance Type P1 — Product Discovery "What is the best X to buy?" "What is the best mixer grinder to buy in India?"
Brand P2 — Brand Evaluation "Is Brand X good? X vs Y?" "Is Bajaj a good brand for mixer grinders?"
Household Fit P3 — Persona/Fit "What is best for my situation?" "Best mixer grinder for a single person in a hostel"
Use-Case P4 — Use-Case Specific "What is best for doing X?" "Which mixer grinder is best for idli batter?"
Power/Spec P5 — Spec-Driven "What is best with spec X?" "Best 750 watt mixer grinder under 3000"
Geography/Cuisine P6 — Context-Regional "Best for this cuisine/region?" "Best wet grinder for South Indian cooking"
Price Segment P7 — Budget-Filtered "Best under price X?" "Best mixer grinder under 2000 rupees"
Feature-Led P8 — Feature Comparison "Which has feature X?" "Which mixer grinder is the most silent?"

Layer ten buyer personas on top (budget shopper, home cook, student, brand loyalist, power user, regional buyer) and weight each axis by real search volume, and the generated prompt pool is the fan-out map for your category — the enumerated set of sub-queries the AI surface will run against your catalog, whether you are watching or not.

The framework ports cleanly. For beauty, Appliance Type becomes Product Type (sunscreen, serum), Household Fit becomes Skin Type, Power/Spec becomes SPF/concentration, Geography becomes season and climate. No category we have mapped has needed a ninth axis.

The point is not that the framework is clever. The point is that the fan-out is enumerable. You do not have to guess which queries matter. Generate the list, run it, and know exactly which axes you are absent from.

The demand data says the head term was always a minority

The fan-out is not just how AI behaves — it is how demand was always shaped. Classical SEO simply never made you look.

The Indian mixer-grinder category draws roughly 1.27 million searches a month across 157 tracked keywords. The head term — "mixer grinder" — accounts for about 368K of them: 30%. Seven of every ten searches in the category are already an axis query: a wattage, a jar count, a cuisine, a brand, a budget.

And the distribution is nothing like what most content calendars assume. Price-led queries — the segment every e-commerce team over-invests in — are 0.6% of category volume, and 75.4% of even that sliver is the budget band. Premium buyers do not search by price; they search by brand. The Appliance Type axis alone carries 72.8% of volume.

Classical SEO's answer to this distribution was one page per fat keyword, and let the long tail starve. The AI surface's answer is to run the long tail on the buyer's behalf — the fan-out generates spec, fit, and use-case sub-queries even when the buyer only typed the head term. The demand that was invisible in your keyword tool is now mandatory coverage.

Amazon wins because its catalog covers the whole fan-out

So what does winning a fan-out actually look like? It looks like the most boring table in our dataset.

Our locked mixer panel splits into six sub-intent types — direct descendants of the eight axes. Here is Amazon's buy-link presence on each, from the July 23 pull:

Sub-intent Responses Amazon presence (of carded responses) Avg best Amazon position
Specifications 100 79.3% 1.75
Appliances 90 78.2% 1.69
Use Cases 150 76.4% 1.86
Price 80 76.1% 1.57
Regional 180 75.6% 1.58
Brands 105 63.5% 1.36

Read the shape, not any single cell. Amazon is present on 63.5-79.3% of every sub-intent type — a band of barely 16 points across six completely different question shapes. There is no axis where it vanishes. When the fan-out runs a spec sub-query, Amazon has a 750W listing. A regional sub-query — a wet grinder for South Indian cooking. A hostel-budget sub-query — a ₹1,099 starter unit. Even on brand queries, the thinnest shelf at 1.74 cards per response, Amazon's average best position is 1.36: essentially the top slot.

That is what catalog depth converts into on an AI surface: not a #1 ranking on a keyword, but unavoidability across the fan-out. The card-level data explains the mechanism — mixer cards carrying an Amazon buy-link average 1.8× more reviews than cards without one, and are 2.2× more likely to carry any review data at all, at identical average ratings. Amazon's PDPs are not better products; they are denser answers, and density is what a rewritten, de-branded sub-query binds to.

This closes the loop on the rewrite. "ALTRR Portable Spice Mill (200W)" became "portable spice grinder travel." A brand that owns its branded keyword and nothing else loses that buyer at the rewrite boundary — the query that actually runs no longer contains the brand. Amazon survives because its catalog answers the de-branded version of nearly every question. Your moat has to live where the rewritten query lands, not where the typed query starts.

What this breaks about classical SEO

Be precise about what dies here, because not all of it does.

One-keyword-per-page targeting dies. The surface is not matching your page to a keyword; it is matching your catalog and citation footprint to five to seven rewritten sub-queries at once. A page architecture built to win "best mixer grinder" is answering one branch of the tree.

Branded-keyword defense dies. The generated_product_query field shows the system stripping brand names from users who typed them. Winning your own name in retrieval does not protect you from a pipeline that de-brands the query before retrieval happens.

Single-query measurement dies. Testing "does my brand show up when I ask X" samples one branch, once, on a surface that personalizes and re-runs constantly. Measurement has to run the enumerated fan-out — hundreds of prompts, on a locked panel, repeatedly.

Keyword research does not die — it changes jobs. Volume data no longer tells you what pages to build; it tells you how to weight the axes. The output stops being a content calendar and becomes a coverage map.

What to do on Monday

  1. Enumerate your category's eight axes. Product type, brand, user fit, use-case, spec tier, geography/context, price segment, feature. Fill each with your category's real segments. It takes an afternoon and it is the highest-leverage document your team produces this quarter.
  2. Generate the prompt pool and run it. Cross axes with P-types and personas, weight by search volume, and you have a 400-1,000 prompt panel. Run it against the live shopping surface on a fixed cadence. This is your visibility instrument; everything else is anecdote.
  3. Score yourself per axis, not per keyword. The Amazon table above is the format: presence % and best position per sub-intent type. Your gaps will not be "we rank #4" — they will be "we do not exist on Regional and Feature-Led."
  4. Optimize for the rewrite, not the original. Audit your PDP titles and attributes against de-branded queries. If your title is brand-first with no category noun, use-case, or context terms, the rewritten query has nothing to bind to. Long natural-language titles and dense structured attributes survive the de-branding.
  5. Fill the thin axes with catalog or content. Where you cannot be present with a product (no budget SKU, no regional variant), be present as the cited answer — buying guides and comparisons aimed at that axis's question shape. Presence across the fan-out is the win condition; how you achieve it per axis is a portfolio decision.
  6. Kill single-query reporting internally. The screenshot of one good answer is how teams fool themselves. If a number is not computed across the panel, it does not go in the deck.

FAQ

What is query fan-out in AI search? Query fan-out is the process by which an AI surface decomposes one user question into multiple sub-queries — in our measurement corpus, typically 5-7 — each targeting a different purchase dimension (product type, spec, use-case, price band, and so on), then assembles its answer from the union of those retrievals. The response you see is a composite of searches you never typed.

Does ChatGPT really rewrite user queries before shopping? Yes, and it documents its own behavior. The chatgpt_metadata.generated_product_query field in the shopping payload records the reformulated query the backend actually searched, alongside request_query, the user's original. In our verbatim example, "ALTRR Portable Spice Mill (200W)" was shopped as "portable spice grinder travel" — brand removed, spec removed, inferred intent added.

How many sub-queries does one question become? Five to seven distinct sub-queries per buyer question is the typical expansion we observe, distributed across eight recurring axes: Appliance/Product Type, Brand, Household Fit, Use-Case, Power/Spec, Geography/Cuisine, Price Segment, and Feature-Led. The exact count varies with question specificity — vaguer questions fan out wider.

How do I find the AI search queries for my category? Enumerate them rather than guessing: map your category's eight axes, cross each with its prompt type and the personas who ask it, and weight by keyword search volume. The output is a 400-1,000 prompt pool that approximates the fan-out an AI surface will run. Measure your presence against that panel, not against a handful of head terms.

Why does Amazon perform so well on AI shopping queries? Because its catalog covers the whole fan-out. In our July 2026 mixer-grinder data, Amazon holds 63.5-79.3% buy-link presence across all six sub-intent types, with average best positions between 1.36 and 1.86 — there is no axis where it disappears. Its PDPs also carry 1.8× more reviews than non-Amazon cards, which makes them denser binding targets for rewritten, de-branded sub-queries.

Is optimizing for the head keyword still worth anything? As one branch of the tree, yes — the head term is still the largest single keyword (about 30% of volume in our mixer category). But 70% of demand, and effectively all of the AI surface's internal expansion, lives in the axes. Winning the head term while ignoring the fan-out wins the smallest slice of the machine.


Independent research. Query rewrite and fan-out evidence: chatgpt_metadata payloads from chatgpt.com/shopping, 2026-07-23 pull (973 of 1,928 mixer cards carry the object), cross-checked in Supabase project lowixszauvvyccoiwfyp (geo_vis schema). Presence-by-sub-intent: locked 425-prompt mixer panel, 2026-07-23. Keyword demand: 157 mixer-grinder keywords, ~1.27M monthly searches, Google Ads (India). Fan-out framework: TruCommerce 8-axis prompt-generation system (8 axes × 8 P-types × 10 personas), April 2026. Previously in this series: Inside chatgpt.com/shopping: a 200-query teardown.

FAQ

Continue reading

August 7, 2026

The 86% Rule — In AI Shopping, Eligibility Beats Ranking

When a retailer product page gets cited in a ChatGPT shopping answer, it wins the top recommendation slot 86.03% of the time — the highest hit rate of any content type in an 18,942-citation dataset. But retailer pages are only 8.28% of what ChatGPT cites. That inversion rewrites the whole playbook: the scarce, high-conversion battle in AI shopping is getting cited at all, not ranking once cited. Here are the three gates that decide citation eligibility — reviews, product-type fit, sub-intent presence — and the two beloved PDP levers that tested statistically dead.

August 7, 2026

AI Visibility Has Two Layers: The Placement vs Citation Dashboard That Actually Works

AI shopping answers have two independent layers — the products the model recommends (placement) and the sources it attributes the answer to (citation) — and every brand's AI-visibility dashboard is quietly blending them into one number that lies. On Amazon's India mixer-grinder data, one layer is 61.48% and the other is 0.78% — a 79× gap. On sunscreens the same structural pattern holds at 25×. And both layers moved in opposite directions twice in eight months. Here is the four-KPI-group model that fixes it.

August 7, 2026

The Amazon Shelf Story: What Really Happened to Amazon in ChatGPT Shopping Between May and July 2026

Everyone screenshotted the May chart: Amazon's ChatGPT presence rose to 96% while its citation rate collapsed to 1.91%. Two months later, on the exact same 425 buyer prompts, both metrics reversed — and the popular narrative got the story completely wrong. The 96% was on a nearly-empty shelf (87% zero-card responses). The July shelf is 6× healthier. And Amazon still wins the top-2 slot plus cheapest price on 210 of those 425 prompts. Here is the reverse-engineered version of what actually moved.