What came back, counted in the right units
We asked Shopify Catalog, the catalog that ChatGPT and Microsoft Copilot use to find Shopify products, 162 questions written the way shoppers brief an assistant: a product, a situation and a hard requirement. “Toddler snowsuit rated for minus 30.” “Humidifier for dry winter air large room quiet top fill.” Each search came back with 10 results. We kept every response exactly as received.
The most common mistake with a dataset like this is counting the wrong thing. So here is the count, with what each number is and isn’t.
| What we counted | Count | What it is not |
|---|---|---|
| Shopper searches we wrote | 162 | A sample of real shopper prompts |
| Categories we chose | 16 | A map of the market |
| Returned listings (10 × 162) | 1,620 | 1,620 different products |
| Distinct Catalog product IDs (8 appeared twice) | 1,612 | Proof of 1,612 physical products |
| Searches that filled the top 10 | 162 of 162 | A sign the results fit the question |
| Failed requests | 0 | Proof the results were relevant |
Fifteen categories had 10 searches each; beauty had 12.
Why the units matter: Shopify groups offers from different sellers under one product ID, and one seller can fill several places in the top 10. On the humidifier search, six of the ten results came from the same seller. If we had reported “1,620 products,” every rate built on that number would quietly overstate the variety on the shelf.
How the snapshot was collected
- Route. Shopify’s public Global Catalog, searched with Shopify’s official command-line tool (
@shopify/ucp-cli0.9.1, catalog protocol version 2026-08-25). Read-only: no carts, no checkout, no account. - Context. None. We did not pass a country, currency, postal code or signed-in buyer. Shopify’s documentation says search can be personalized and localized, so a real shopper in Montreal or Ohio may see a different shelf. (Global Catalog MCP, checked October 27, 2026.)
- Depth. Top 10 results per search, the first page only.
- Timing. All 162 responses were saved between about 8:30 and 8:34 p.m. Eastern on October 26, 2026. One evening, one pass.
- What we read. The title, the description, Shopify’s generated feature, spec and selling-point lists, the product rating, and the first returned variant’s rating, availability and checkout flag.
- Recount. On October 27 we recounted every number on this page from the 162 saved responses with a short script, and checked each quote below against the saved file by hand. We did not query the catalog again.
What this route is: according to Shopify’s merchant help, ChatGPT and Microsoft Copilot find Shopify products through Shopify Catalog. Google AI Mode and Gemini get products through the Google & YouTube sales channel, and Meta surfaces through the Facebook and Instagram channel. So this snapshot shows one documented route, not every route. Assistants can also find a product by crawling its page.
Which fields were present, and which were blank
| Field (as received) | Present | Blank or missing |
|---|---|---|
| Product rating | 1,180 | 440 |
| Rating on first variant, when the product rating was blank | 106 | 334 |
| Shopify’s generated spec list | 1,548 | 72 |
| Shopify’s generated feature list | 1,548 | 72 |
| Description | 1,617 | 3 |
| First variant in stock | 1,617 | 3 |
| First variant eligible for native checkout | 0 | 1,620 flagged no |
Everything in this table is one response, with no buyer context, at one moment. The checkout flag covers the first variant of each listing; it does not prove nobody could buy.
A missing rating is not a zero rating
Our first pass treated a missing rating as “0 reviews.” That was wrong, and it made whole categories look review-starved. Here is what the record actually holds:
- 1,180 listings carried a product-level rating.
- 440 did not. But 106 of those 440 had a rating attached to the first variant. Where you look changes the count.
- 334 had neither in this response.
- None of the ratings, at either level, had a count of zero.
So the honest statement is narrow: in this response, 334 listings arrived without a rating in either place we checked. That tells you nothing about the reviews on the product page, in a review app, or anywhere else on the web. It does tell a merchant something useful: check whether your rating actually travels with the catalog record, and at which level.
“Inferred” means Shopify wrote or enriched it
Shopify’s documentation marks several fields as Inferred: the description, the option list, the attribute list, and the spec, feature and selling-point lists. Shopify says these “might not always be present or might vary in accuracy” and should be treated as discovery signals, not merchant-authored text. (Global Catalog MCP, “Inferred response fields,” checked October 27, 2026.)
That matters for every quote below. When a spec line says “Noise Level: 26 dB,” we know the record said it. We don’t know whether the merchant wrote it, whether Shopify extracted it correctly, or under what test condition the number was measured. So below, every quote names its field: the title, the description, or Shopify-generated metadata (the spec, feature and selling-point lists).
Two examples you can trace
The humidifier: a number versus a feeling
The search was “humidifier for dry winter air large room quiet top fill.” The shopper asked for quiet. Here is how the ten results answered, field by field.
| Position | Field | What that field says about noise | Decibel figure? |
|---|---|---|---|
| 1 | Generated metadata | “Quiet operation ensures minimal disruption in any home environment” | No |
| 2 | Description | “21dB Quiet, Top Fill, Clean Tank Technology” | 21 dB |
| 3 | Description | “At just 26 dB” | 26 dB |
| 4 | Description | “runs quietly enough to leave on overnight” | No |
| 5 | Description | “brings noise down to 28dB” | 28 dB |
| 6 | Generated metadata only | “Ultra-quiet operation (as low as 26 dB)” | 26 dB, not in the description |
| 7 | Description | “Ultra-quiet 26 dB operation” | 26 dB |
| 8 | Description | “ultra-quiet making it ideal to have on while you sleep” | No |
| 9 | Generated metadata only | “Ultra-quiet operation at 26 dB” | 26 dB, not in the description |
| 10 | None | No noise wording found | No |
Four of ten descriptions gave a decibel figure (positions 2, 3, 5 and 7). Two more gave one only in Shopify-generated metadata (positions 6 and 9). Counted across either field, that’s 6 of 10 listings. No title gave one.
The listing at position 4 is the instructive one. It isn’t vague everywhere: the same description sentence says it’s “rated for single rooms up to 400 square feet.” It gave a number for room size and a feeling for noise, and no decibel figure anywhere in its record. An agent comparing “quiet” across this shelf can compare 21 against 26 against 28. For position 4 it can only repeat “quiet enough to leave on overnight.”
Two cautions. First, six of the ten results came from one seller, so the number-heavy shelf partly reflects one brand’s habits. Second, a printed number is not a verified measurement. None of the decibel figures we found said how far from the unit it was measured, and only one hinted at a lower setting (“as low as”).
We first published this contrast in Two humidifiers say “quiet.” Only one gives the number.
The snowsuit: the “minus 30” mistake was ours
The search was “toddler snowsuit rated for minus 30.” Our first matcher looked for the words in the question, found no “minus 30” in the top three results, and reported that they didn’t state a temperature rating.
They did. The listing at position 2 says in its title that it “protects to -30 °C.” The listing at position 9 says in its description that the hood has insulation “rated to -30°C.” That’s a rating for the hood’s insulation, not for the whole suit, and Shopify’s generated spec line for the same record drops the word hood. Our tool didn’t know that “minus 30,” “-30 °C” and “-30°C” are the same value, so it reported a gap that didn’t exist.
We corrected it the same day. The lesson cuts two ways:
- For anyone measuring: normalize numbers and units before you call something missing. “Minus 30,” “-30°C,” “−30 °C” with a true minus sign, and “-22°F” all describe the same cold. A checker that can’t read them will invent gaps.
- For merchants: write the number with its unit and say what it applies to, as text, in a sentence or spec line. “Whole suit rated to -30 °C” and “hood insulation rated to -30 °C” are different promises. A temperature printed only on a product photo doesn’t travel at all.
Our pattern search found no -30 figure in the other eight snowsuit listings. That doesn’t mean they lack a rating; some may state a different temperature. We didn’t check them by hand, so we make no claim either way.
What we retired, and why
The first version of this study produced a single “gap score” per search and ranked categories by it. When an outside reviewer and our own recheck took it apart, the score turned out to be mostly a review-count score (about 65% of the points it awarded, though review depth was designed as only 25 of 100), with crude word matching making up most of the rest. It was inflated by the missing-rating error above and by matching failures like the snowsuit. We retired it. No category ranking from it appears here, and none will return under a new name.
What survives is descriptive: what the records said, counted in the right units, with the blanks left blank.
Where the snapshot stops
A shopping journey has several steps. This snapshot observed one of them.
| Step | Did this snapshot observe it? |
|---|---|
| Product is in Shopify Catalog | Indirectly. These products were returned, so they were in it |
| Returned for a shopper’s search | Yes, top 10, no buyer context |
| The facts in the returned record | Yes, as received |
| Whether those facts are true | No. Quoted, not measured |
| What an assistant recommended | No |
| Which seller’s offer was shown | No. We read the first variant only |
| Whether checkout was possible | Only the first variant’s flag, all “no” |
| Whether anyone bought | No |
OpenAI says ChatGPT picks shopping results by relevance to the query and the shopper’s context, including Memory and Custom instructions (Shopping with ChatGPT Search, checked October 27, 2026). A catalog record is an input to that choice, not the choice. Anyone who says they can see what ChatGPT tells your customers is claiming something we can’t see either.
Does stating the number change what a model picks? We tested that separately, in a simulation where models chose among listings we supplied. Vague copy was shut out by every model. Stating facts got the product considered, and the gloss’s facts won on every model. On GPT and Gemini, the humidifier won only when its facts answered a need the shopper had stated and the supplied competitor snippets didn’t. That unique fact was room size: it was the only listing under USD 90 that stated one. Several competitors already stated a runtime. When the brief asked for that room size, it won every time. For a generic “quiet humidifier” ask, those models chose competitors that already stated quieter or cheaper numbers. We wrote that detailed brief to fit the test product, so it shows facts matching stated needs, not a random shopper. That’s a simulation, not live assistant results. The full write-up is Vague vs specific product facts.
Run the same audit on one product
You don’t need 162 searches to use this. You need one product and one honest question.
- Write the question a real customer asks. Use their words, including the hard requirement: “quiet,” “rated to -30,” “fits a 10-gallon tank.”
- Write down the fact that answers it, with its unit and its condition. “26 dB at 1 m on low.” “Rated to -30 °C.” If you don’t have the measurement, write “unknown.” Don’t make one up.
- Find that fact in text in your product description, not only in a photo, a PDF or a spec list you didn’t write.
- Check whether your rating travels, and whether it sits on the product or the variant.
- Keep a dated copy of what you checked, so next month you’re comparing records, not memories.
Start with step 2 for your best-selling product today. If the answer to your customers’ most common question is an adjective, that’s the first fix.
Receipts cited by our guides
Our guides quote the catalog records below. Each one is from the same snapshot (Shopify Global Catalog, October 26, 2026, no buyer context, top 10), and each was checked against the saved response on October 27. Store and brand names are withheld. “Generated metadata” means Shopify’s spec, feature and selling-point lists, which Shopify marks as Inferred.
Humidifier: “humidifier for dry winter air large room quiet top fill”
| What we cite | Where in the record | What it does and doesn’t show |
|---|---|---|
| A decibel figure in 4 of 10 descriptions: 21, 26, 28 and 26 dB | Description, positions 2, 3, 5, 7 | No title had one. None of the four named a distance, setting or test method |
| A decibel figure in 6 of 10 listings, counting either field | Description, or generated metadata only (positions 6 and 9, both 26 dB) | Never cite “6 of 10” without saying it includes Shopify-generated metadata |
| Noise in words only, in the description: 3 of 10 | Positions 4 (“runs quietly enough to leave on overnight”), 8 (“ultra-quiet”), 9 (“low noise level”) | Position 9 has a 26 dB figure in generated metadata. The other three descriptions (1, 6, 10) say nothing about noise |
| Position 4: “rated for single rooms up to 400 square feet and runs quietly enough to leave on overnight” | Description | A room size with no test condition, and no decibel figure. This record carried no generated metadata at all. Doesn’t show whether the product is quiet |
| A room area in 4 of 10 descriptions | Description, positions 2, 3, 4, 7 | None stated the conditions behind the area |
| A runtime in 8 of 10 descriptions, 2 naming the setting | Description. Position 4: “up to 36 hours on low.” Position 8: run time “based off of running the unit on low setting” | The other six gave hours with no setting |
| “Top fill” in 7 of 10 descriptions | Description, positions 1 to 7 | An eighth listing (position 9) says “Top Fill” only in its title, so title or description is 8 of 10 |
| “up to 32 hours” vs “Up to 36 hours” | Position 5: description says 32; generated spec list says 36 | Two runtimes for one product in one record. We don’t know which is right |
| “Maximum Room Area: 150 m²” | Position 10: generated spec list only | The description gives no room area. The number 150 also appears in the product’s model name. We can’t confirm where Shopify’s figure came from |
| 6.2 L tank, 320 ml/h and up to 62 hours | Position 3: description | Our arithmetic: 6.2 L ÷ 0.32 L/h is about 19 hours, so 62 hours implies an average near 100 mL/h, a lower setting the description doesn’t name |
| Six of ten results from one seller | Seller field, positions 1, 3, 6, 7, 9, 10 | The shelf partly reflects one brand’s habits. It isn’t a sample of the category |
Snowsuit: “toddler snowsuit rated for minus 30”
| What we cite | Where in the record | What it does and doesn’t show |
|---|---|---|
| “protects to -30 °C” | Position 2: title | The same description says, separately, “Temperatures ca. 0 - -30 °C” and “generally being outside in temperatures around -10°C to -30°C” (seller’s activity guidance). Three statements, not one range. There’s no generated metadata on this record |
| “a hood with PrimaLoft® insulation rated to -30°C” | Position 9: description | The rating applies to the hood’s insulation, not the whole suit. The generated spec line, “Insulation: Primaloft rated to -30°C,” drops the word hood |
| Our matcher reported both as missing | Our analysis, corrected October 26 | It didn’t treat “minus 30” and “-30 °C” as the same value. Not evidence about any assistant |
Backpack: “anti theft backpack for city travel”
| What we cite | Where in the record | What it does and doesn’t show |
|---|---|---|
| “Dimensions: 19.7 x 11.2 x 7.5 in” | Position 5: generated spec list. The description gives no dimensions | One of two records for what appears to be the same 28-litre backpack |
| “Height: 11.2 inch Width: 7.5 inch Depth: 2.4lbs” | Position 8: description | The depth is printed in pounds. The record’s weight is also 2.4 lbs. The generated spec list says “Depth 2.4 in” |
| The two records disagree on depth (7.5 in vs 2.4) | Positions 5 and 8 | We didn’t confirm they’re the same variant, and we don’t know the true size. It looks as if a weight became a depth, but we can’t prove it |
| “Carry-on compliant” | Positions 3 and 10: description, same sentence | Neither sentence names an airline or a size limit. Position 10’s description gives a size elsewhere (18.9 x 12.2 x 7.1 in); position 3 gives one only in generated metadata (48 x 31 x 18 cm) |
All 162 searches
| What we cite | Where in the record | What it does and doesn’t show |
|---|---|---|
| 1,620 returned listings, 1,612 distinct Catalog product IDs | Every response | Listings, not products, shoppers or sales |
| Product rating present on 1,180, absent on 440 | Product rating field | Absent is unknown, not zero |
| 106 of the 440 carry a rating on the first variant; 334 have neither | First-variant rating field | Says nothing about reviews held elsewhere |
| No rating with a count of zero | Product and variant rating fields | So “no rating” never meant “0 reviews” here |
| Native checkout flagged no on all 1,620 | First variant’s checkout flag | Doesn’t prove nobody can buy |
| Generated spec, feature and selling-point lists each empty on 72 | Generated metadata | Absence in this response only |

