Write the shopper’s requirements down, one per row. Then, for each one, mark what the product record actually says. There are five possible answers: a fact that meets the requirement, a fact that rules the product out, words with no checkable value, two facts that disagree, or nothing at all.

The answer that gets misread most is the last. A missing fact means unknown. It doesn’t mean the product is bad, and it doesn’t guarantee the product loses. A stated fact that fails the requirement, such as 400 sq ft for a 450 sq ft room, is different: that’s a real no, for that shopper.

This kind of coverage tells you what an agent can check. It doesn’t tell you whether the product is good or whether it will be picked. The method is our proposal, worked on ten real catalog records below.

Start from a brief you can write down

This guide starts from a brief you already know. That might come from a customer email, a support ticket or the search itself. Working out what a vague ask really means is a separate job. Here, the requirements are given.

On October 26, 2026, we searched Shopify’s agent catalog for “humidifier for dry winter air large room quiet top fill” and saved the top 10 results. That search names four needs. To make them checkable we borrowed the room size, budget and refill habit from the shopper in our simulation: a light sleeper with a 450 sq ft bedroom, under $90, who hates refilling daily. The brief is our illustration, not a real customer:

Requirement From What counts as support
Large room: at least 450 sq ft Search, plus the example room size A stated coverage of 450 sq ft or more
Quiet Search A stated decibel figure. The shopper gave no limit, so we check for a number, not a verdict
Top fill Search The record says top fill
Under USD 90 Example budget The listed price
At least a day per fill Example refill habit A stated runtime of 24 hours or more

Two of these rows needed a decision from us. “Large room” became 450 sq ft, and “hates refilling daily” became 24 hours. If you write a brief, make these translations explicit. They change the answers, and a vendor tool that hides them is hiding the part that matters.

Shopping prompts are moving toward briefs like this. ReFiBuy, a vendor in this space, describes them as conversational problems, often 10 to 30 words, not keywords. OpenAI says ChatGPT picks shopping results by relevance to the shopper’s query and context, and may weigh options, price, reviews and ease of use. Neither tells you how requirements are scored, so the useful work is making sure each one can be checked at all.

The matrix: ten humidifier records against one brief

Each cell shows what the listing’s title, description and price said for that requirement. The states are:

  • Yes: the record states a value that meets the requirement.
  • No: the record states a value that fails it.
  • Words only: the record makes the claim with no checkable value.
  • Two values: the record disagrees with itself.
  • Unknown: the record says nothing about it.

Positions are the order the catalog returned. Store names are withheld.

Room size, noise and runtime

Position Room of at least 450 sq ft Decibel figure stated Runtime of at least 24 h
1 Unknown Unknown Unknown
2 Yes: 700 ft² Yes: 21 dB Yes: 100 h, setting not stated
3 Yes: 536 ft² Yes: 26 dB Yes: 62 h, setting not stated
4 No: up to 400 sq ft Words only: “runs quietly enough to leave on overnight” Yes: 36 h on low
5 Unknown Yes: 28 dB Yes: 32 h, setting not stated
6 Unknown Unknown Unknown
7 Yes: 536 ft² Yes: 26 dB Yes: 62 h, setting not stated
8 Words only: “medium to large rooms” Words only: “ultra-quiet” Yes: 120 h on low, cool mist
9 Unknown Words only: “low noise level” Yes: 25 h, setting not stated
10 Unknown Unknown Yes: 25 h, setting not stated

Fill style and price

Position Top fill Under USD 90
1 Yes Yes: 89.99
2 Yes No: 119.99
3 Yes Yes: 69.99
4 Yes Yes: 69.99
5 Yes Yes: 39.99
6 Yes No: 109.99
7 Yes Yes: 79.99
8 Unknown: “easy to fill” only Yes: 69.99
9 Yes, in the title only Yes: 39.99
10 Unknown Yes: 45.99

The rows side by side

Position Yes No Unknown, words only or two values
1 Top fill, price — Room, noise, runtime unknown
2 Room, noise, top fill, runtime Price —
3 All five — —
4 Top fill, price, runtime Room Noise in words only
5 Noise, top fill, price, runtime — Room unknown
6 Top fill Price Room, noise, runtime unknown
7 All five — —
8 Price, runtime — Room and noise in words only; top fill unknown
9 Top fill, price, runtime — Room unknown; noise in words only
10 Price, runtime — Room, noise, top fill unknown

For this brief, two listings, positions 3 and 7, support every requirement in their own text. Our metrics guide turns this table into counts, with rules for each state.

The field you read changes the answer

Everything above counts the title, description and price. Shopify’s catalog also returns generated spec, feature and selling-point lists, which Shopify marks Inferred: generated or enriched by Shopify, and possibly inaccurate. (Shopify marks the description Inferred too.) Read those lists as well and four rows change:

Position Title and description only Adding the generated lists
5 Runtime: Yes, 32 h Runtime: two values, 32 h in the description, 36 h in the spec list
6 Room, noise, runtime: Unknown Room: No, 430 sq ft. Noise: “as low as 26 dB”. Runtime: 60 h
9 Noise: words only, “low noise level” Noise: 26 dB. Runtime gains “(low mode)”
10 Room: Unknown Room: “150 m²”, a figure that also appears in the model name. Source unclear to us

Noise is the cleanest example. A decibel figure appears in the description of 4 of the 10 listings (positions 2, 3, 5 and 7). Counting the generated lists as well, it appears in 6 of 10 (adding positions 6 and 9). No title has one. Both counts are true. They answer different questions, so every coverage number should say which field it counts.

Adding a field doesn’t only add support. At position 5 it created a conflict, and at position 6 it turned an unknown into a no. If you own position 6, the catalog is saying something about your room coverage that your own description doesn’t. Either confirm 430 sq ft and publish it with its condition, or find where it came from. Our claim-record guide shows how to trace a value like that back to its source.

Unknown is not a failed product

Look at position 1. It costs USD 89.99, it’s top fill, and its record says nothing about room size, noise or runtime. It might be perfect for a 450 sq ft bedroom, or it might be wrong. Nobody reading this record can tell, and that includes an agent.

Now look at position 4. It says “up to 400 square feet”. For our 450 sq ft brief, that’s a stated no. For a shopper with a 350 sq ft bedroom, the same fact is a yes. Coverage always belongs to a brief, never to a product on its own.

Those two cases need different fixes:

State What it means What the merchant should do
Unknown The record doesn’t say Publish the fact if you have it, with its condition. If you don’t, measure it or leave it unknown
No The record rules the product out for this brief Nothing, if the fact is true. A true no sends the wrong shopper elsewhere, and that’s a return you didn’t have to process
Words only A claim with nothing to compare Replace the adjective with the value and its condition, or cut it
Two values Your own copies disagree Settle it at the source, then correct the wrong copy

Never fill an unknown by inventing a value or matching a competitor’s number. And don’t soften a true no. Position 4’s “up to 400 square feet” is useful precisely because it’s specific. Our guide to negative product facts covers publishing limits like that.

Coverage is not quality, and not a pick

Positions 3 and 7 support all five requirements. That doesn’t make them good humidifiers, and it doesn’t mean an agent will pick them. Three reasons.

Support is not truth. “Yes” means the record states a qualifying value. We didn’t test any unit. A false value would score exactly the same.

Support usually comes without conditions. In the title and description text, the matrix has 15 “Yes” cells for room size, noise and runtime. Only 2 of those 15 state the condition behind the value, and both are runtimes on the low setting (positions 4 and 8). None of the four decibel figures says which setting, at what distance or by what method. A light sleeper comparing “26 dB” with “28 dB” is comparing numbers that may not have been measured the same way.

Being able to check a fact is not the same as winning. In our simulation, six models each picked 2 of 8 supplied listings, so random picking would include any one listing 25% of the time. An invented humidifier with vague copy was almost never picked: 3 of 180 Claude sessions, 0 of 60 on GPT-6.1-Sol, 6 of 60 on Gemini 3.8 Flash and 3 of 54 on Gemini 3.1 Pro. With its facts stated, GPT and the two Gemini models picked it every time the shopper’s brief asked for what it stated (20 of 20, 19 of 19, 15 of 15), and never with a one-line ask or no shopper (0 of 40 on each model). Claude picked it in 59, 32 and 43 of 60 sessions for those three briefs. In the snippets the models saw, the invented product was the only listing under USD 90 that stated a room size. On a plain “quiet humidifier” ask, competitors already stated 21, 26 or 28 dB, and the 28 dB one cost USD 39.99 and had 310 ratings to our product’s 18. That brief was written to fit the test product, and none of this is live ChatGPT or Gemini behaviour.

The lesson carries over to the matrix. Vague copy gets excluded. Facts get you considered. You win when your facts answer a need the shopper stated that competing listings don’t.

What the shortened snippets hid

There’s a twist in that simulation, and it’s the strongest reason to look at full records. The seven real competitors were positions 1 to 7 of this same search, shown as titles, descriptions cut to about 215 characters, and three feature bullets. Positions 3 and 7 both state “536 ft²”, but only further into their descriptions, first at about character 247 and 268. In the snippets, that room size was cut off. In the full records, two other listings under USD 90 did state a room size above 450 sq ft.

So “the only listing under USD 90 that stated a room size” was true of what the models saw, not of the catalog. We haven’t measured how any assistant shortens a description. OpenAI does say ChatGPT may generate simplified product titles and descriptions. If the fact that answers a shopper’s requirement sits in your third paragraph, a shortened copy may drop it. Put the facts that answer your customers’ most common requirements near the start of the description, with their units and conditions.

Build the matrix for your own product

  1. Write the brief. Use a real customer question. Split it into requirements, one per row, and write down every threshold you chose.
  2. Say what counts as support for each requirement: the value, unit and condition that would satisfy it.
  3. Read the record that’s received, not your memory of the page. Note which field each answer came from.
  4. Mark each cell Yes, No, Words only, Two values or Unknown. Quote the text.
  5. Fix in this order: two values first (your own copies disagree), then words only, then unknowns you can fill from a real source. Leave true no answers alone.

A blank you can copy:

Requirement Fact that would answer it What the record says, and in which field State
[requirement 1] [value, unit, condition] [quote] ([title / description / generated list]) [Yes / No / Words only / Two values / Unknown]
[requirement 2]

Repeat it for two or three competitors that come back for the same search. The rows where you’re the only “Yes” are your strongest facts. The rows where everyone says “Yes” decide nothing on their own: the shopper falls back on price, ratings or something else.

How we checked

On October 27 we reopened the saved Shopify agent-catalog response for “humidifier for dry winter air large room quiet top fill”, taken on October 26, 2026 with no buyer context, top 10 results. A script checked every quote in the matrix against the field it is attributed to (title, description with HTML removed, the generated spec, feature and selling-point lists, or the price) and recomputed every count on this page. Prices are the listed USD price in the record.

The new observations here are ours from that response:

  • Position 6’s description gives no room size, noise level or runtime, while its generated spec list gives “Coverage Area: Up to 430 sq ft”, “Noise Level: As low as 26 dB” and “Runtime: Up to 60 hours”.
  • Position 9’s description says “low noise level”, while its generated spec list says “Noise Level: 26 dB” and “Run Time: Up to 25 hours (low mode)”.
  • Positions 3 and 7 first state “536 ft²” at characters 247 and 268 of their descriptions, after HTML tags are removed. The simulation’s supplied snippets cut descriptions at about 215 characters.

Six of the ten listings came from one seller, so this shelf isn’t a sample of the category. We didn’t test any product.

Your next step

Take your best-selling product and the question customers ask you most often. Write it as three to five requirements, then fill in the blank matrix from what your product record actually says, quoting each field. Every “Unknown” you can fill from a real document is your first fix. Every “Two values” is a fix you should make today.