{
  "id": "F04",
  "url": "https://cartforagents.com/research/missing-product-review-data",
  "title": "Missing product review data: a blank rating is not a zero",
  "description": "Audit absent, null, explicit-zero and positive review states with field paths and denominator rules before calculating summaries.",
  "answer": "In 1,620 results that Shopify's agent catalog returned for 162 searches on October 26, 2026, the product-level rating was absent on 440 and present on 1,180, and not one rating anywhere carried a review count of zero; 106 of the 440 had a rating on the returned variant, and 334 had neither. Treat an absent rating as unknown: count absent, null, zero and positive states separately, report how many records had the field, and calculate averages and medians only over the records that did. A blank rating is not a bad product, and it's not a zero.",
  "take": "If your store has reviews, make sure they reach the catalog: 334 of 1,620 listings carried no rating at all. And if you analyze shelves, never turn blanks into zeros; our own first script did.",
  "summary": "A blank where a rating should be is not a zero. In 1,620 catalog results we found 440 blanks and not a single zero, and our own first script still turned the blanks into zeros.",
  "claims": [
    {
      "text": "Across 162 searches, the catalog returned 1,620 results (1,612 distinct Catalog product IDs). The product-level rating was present on 1,180 and absent on 440. Of those 440, 106 carried a rating on the first returned variant, and 334 had neither. No product or variant rating had a count of zero.",
      "source_title": "Cart for Agents: receipts cited by our guides",
      "source_url": "https://cartforagents.com/research/agent-shopping-research#receipts-cited-by-our-guides",
      "source_date": "2026-10-26",
      "method": "observed",
      "limitation": "Occurrences, not distinct products, from searches we wrote. Field presence in one catalog response only; it says nothing about reviews on the product page, in review apps or elsewhere. Absent is unknown, not zero."
    },
    {
      "text": "In every one of the 440 cases, the rating key was missing from the product record; none was present with a null value. Every product record in the response carried exactly one variant, and the variant rating was missing on 451 and present on 1,169. The product rating appeared without a variant rating on 117 results.",
      "source_title": "Cart for Agents: missing review data, how we checked",
      "source_url": "https://cartforagents.com/research/missing-product-review-data#how-we-checked",
      "source_date": "2026-10-26",
      "method": "observed",
      "limitation": "Counts of how the response was written, not of what any store has. Because each record carried one variant, \"first variant\" here means the only variant returned, not the product's full variant list."
    },
    {
      "text": "Where both ratings were present (1,063 results), the product and variant review counts differed in 1,001: the variant count was lower in 709 and higher in 292, and equal in 62.",
      "source_title": "Cart for Agents: missing review data, how we checked",
      "source_url": "https://cartforagents.com/research/missing-product-review-data#how-we-checked",
      "source_date": "2026-10-26",
      "method": "observed",
      "limitation": "We do not know how either figure is compiled; the documentation we read does not say. It shows the two levels are not interchangeable, not which is correct."
    },
    {
      "text": "Of the 1,180 product ratings present, 65 had a review count of 1, 142 had 2 to 9, 346 had 10 to 99 and 627 had 100 or more. All 1,180 used a 1-to-5 scale.",
      "source_title": "Cart for Agents: missing review data, how we checked",
      "source_url": "https://cartforagents.com/research/missing-product-review-data#how-we-checked",
      "source_date": "2026-10-26",
      "method": "observed",
      "limitation": "Distribution of present values only. It does not explain why other records lacked a rating."
    },
    {
      "text": "Our first analysis script counted every absent product rating as 0 reviews. With that zero-fill, 28 of the 162 searches showed a median of 0 reviews; 25 of those 28 had at least one product rating present, and 3 had none at all.",
      "source_title": "Cart for Agents: missing review data, how we checked",
      "source_url": "https://cartforagents.com/research/missing-product-review-data#how-we-checked",
      "source_date": "2026-10-26",
      "method": "observed",
      "limitation": "An error in our own retired script, reproduced on October 27 from the saved responses. It is not evidence about how any assistant treats missing ratings."
    },
    {
      "text": "For \"toddler snowsuit rated for minus 30\", 4 of 10 results carried a product rating (counts 146, 116, 11 and 139), so the zero-filled median was 0 while the median of the four present counts is 127.5. Nine of the ten carried a variant rating. For \"humidifier for dry winter air large room quiet top fill\", 3 of 10 carried a product rating (310, 17 and 1); the zero-filled median was 0, the median of present counts 17, and 7 of 10 carried a variant rating.",
      "source_title": "Cart for Agents: missing review data, how we checked",
      "source_url": "https://cartforagents.com/research/missing-product-review-data#how-we-checked",
      "source_date": "2026-10-26",
      "method": "observed",
      "limitation": "Two searches, ten results each. A median of four or three values is fragile; the point is the denominator, not the number."
    },
    {
      "text": "In the Universal Commerce Protocol schema used by the response (version 2026-08-25), rating is an optional field on both products (\"Aggregate product rating\") and variants (\"Variant rating\"). Inside a rating, value and scale_max are required, while count (\"Number of reviews contributing to the rating\") is optional with a minimum of 0.",
      "source_title": "Universal Commerce Protocol: Rating, Product and Variant schemas (2026-08-25)",
      "source_url": "https://ucp.dev/2026-08-25/schemas/shopping/types/rating.json",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "Schema documents what a valid record may contain, checked on our access date. It does not say when a platform includes a rating or where the numbers come from."
    },
    {
      "text": "Shopify's Global Catalog lets an agent filter search by variant rating: it matches products with at least one variant whose rating meets a minimum value (0 to 5 scale) and a minimum number of reviews.",
      "source_title": "Shopify: Global Catalog MCP, search_catalog filters",
      "source_url": "https://shopify.dev/docs/agents/catalog/global-catalog",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "Living documentation, checked on this date. Our searches used no rating filter, and we do not know whether or when any assistant uses it."
    },
    {
      "text": "OpenAI says ChatGPT considers the shopper's query and context, and gives as an example that it may consider available options, price, reviews and ease of use.",
      "source_title": "OpenAI Help Center: Shopping with ChatGPT Search",
      "source_url": "https://help.openai.com/en/articles/11128490-shopping-with-chatgpt-search",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "Living help page; the date is our check date. It names inputs, not weights or thresholds, and does not say which review source ChatGPT reads."
    }
  ],
  "sources": [
    {
      "title": "Cart for Agents: receipts cited by our guides",
      "url": "https://cartforagents.com/research/agent-shopping-research#receipts-cited-by-our-guides",
      "accessed": "2026-10-27"
    },
    {
      "title": "Cart for Agents: missing review data, how we checked",
      "url": "https://cartforagents.com/research/missing-product-review-data#how-we-checked",
      "accessed": "2026-10-27"
    },
    {
      "title": "Universal Commerce Protocol: Rating schema (2026-08-25)",
      "url": "https://ucp.dev/2026-08-25/schemas/shopping/types/rating.json",
      "accessed": "2026-10-27"
    },
    {
      "title": "Universal Commerce Protocol: Product schema (2026-08-25)",
      "url": "https://ucp.dev/2026-08-25/schemas/shopping/types/product.json",
      "accessed": "2026-10-27"
    },
    {
      "title": "Universal Commerce Protocol: Variant schema (2026-08-25)",
      "url": "https://ucp.dev/2026-08-25/schemas/shopping/types/variant.json",
      "accessed": "2026-10-27"
    },
    {
      "title": "Shopify: Global Catalog MCP",
      "url": "https://shopify.dev/docs/agents/catalog/global-catalog",
      "accessed": "2026-10-27"
    },
    {
      "title": "OpenAI Help Center: Shopping with ChatGPT Search",
      "url": "https://help.openai.com/en/articles/11128490-shopping-with-chatgpt-search",
      "accessed": "2026-10-27"
    }
  ],
  "limitations": [
    "One unpersonalized Shopify agent-catalog snapshot, top 10 for each of 162 searches we wrote, taken October 26, 2026. The 1,620 results are occurrences, not distinct products, and not a sample of Shopify stores.",
    "Field presence in a catalog response is not the same as reviews existing. A product with no rating in this record may have many reviews on its page, in a review app or on other sites.",
    "We do not know how Shopify fills these rating fields, or why a rating was missing on any given record. The documentation we read does not say.",
    "A catalog response is not a ChatGPT, Copilot or Gemini answer. Nothing here measures how any assistant treats missing ratings, and nothing here shows a ranking threshold.",
    "Store and brand names are withheld. The raw responses stay private; only counts and short quotes are published."
  ],
  "related": [
    "https://cartforagents.com/research/agent-shopping-research",
    "https://cartforagents.com/research/quiet-humidifiers",
    "https://cartforagents.com/research/ai-product-data-unit-normalization",
    "https://cartforagents.com/research/ai-visibility-score-methodology"
  ],
  "published": "2026-10-27",
  "updated": "2026-10-27",
  "checked": "2026-10-27",
  "kind": "research"
}