StoreSteadyStoreSteady
Summer 2026 methodology

Agentic Commerce Breakage Index Methodology

Methodology version
2026-summer.public-v1
Prompt manifest hash
3af595138de35b2a5655e8a2234ebdeddc915a46be62b517e73048e89e382d40
Canonical path
/resources/research/agentic-commerce-breakage-index/methodology

Why This Report Exists

The Breakage Index measures whether AI shopping answers match real store evidence. It is a fidelity benchmark, not an AI visibility ranking.

A store counts as broken for a metric only when at least one confirmed finding survives reproducibility and calibration gates.

Frozen Prompt Manifest

Public release: Summer 2026. Frozen prompt content hash: 3af595138de35b2a5655e8a2234ebdeddc915a46be62b517e73048e89e382d40.

The public prompt table preserves exact prompt text, model IDs, parser schemas, and audit fields; internal protocol IDs remain available through the run provenance.

System prompt: You are evaluating one public ecommerce store for StoreSteady. Answer only from the store evidence and current AI shopping answer context supplied in the prompt. If evidence is missing, say it is missing. Do not infer private, draft, or admin-only state from public absence.

Scan window: 2026-05-23T16:50:03.820Z to 2026-05-23T23:24:45.338Z.

Response audit fields: prompt_version, system_prompt_version, model_id, provider, agent_surface, timestamp, raw_response_hash, parsed_response, parser_schema_version.

prompt_familymetricagentprovidermodel_idsystem_prompt_idprompt_versionsystem_prompt_versionparser_schemarequired_store_fieldsparser_output_fieldsprompt_text
product_truth_mismatch.chatgpt.v1product_truth_mismatchchatgptopenaigpt-4o-minibreakage-index-shopper-system11breakage-index.product_truth_mismatch.parser.v1@1store_domain, store_name, primary_category, product_titles, product_urlsproduct_name, claimed_price, claimed_availability, claimed_attributes, source_quoteFor {{store_name}} ({{store_domain}}), answer as a shopper comparing these products: {{product_titles}}. Name current price, availability, and any material product attributes you rely on. Cite uncertainty instead of guessing.
product_truth_mismatch.perplexity.v1product_truth_mismatchperplexityperplexitysonar-probreakage-index-shopper-system11breakage-index.product_truth_mismatch.parser.v1@1store_domain, store_name, primary_category, product_titles, product_urlsproduct_name, claimed_price, claimed_availability, claimed_attributes, source_quoteFor {{store_name}} ({{store_domain}}), answer as a shopper comparing these products: {{product_titles}}. Name current price, availability, and any material product attributes you rely on. Cite uncertainty instead of guessing.
product_truth_mismatch.claude.v1product_truth_mismatchclaudeanthropicclaude-sonnet-4-6breakage-index-shopper-system11breakage-index.product_truth_mismatch.parser.v1@1store_domain, store_name, primary_category, product_titles, product_urlsproduct_name, claimed_price, claimed_availability, claimed_attributes, source_quoteFor {{store_name}} ({{store_domain}}), answer as a shopper comparing these products: {{product_titles}}. Name current price, availability, and any material product attributes you rely on. Cite uncertainty instead of guessing.
product_truth_mismatch.gemini.v1product_truth_mismatchgeminigooglegemini-2.5-flashbreakage-index-shopper-system11breakage-index.product_truth_mismatch.parser.v1@1store_domain, store_name, primary_category, product_titles, product_urlsproduct_name, claimed_price, claimed_availability, claimed_attributes, source_quoteFor {{store_name}} ({{store_domain}}), answer as a shopper comparing these products: {{product_titles}}. Name current price, availability, and any material product attributes you rely on. Cite uncertainty instead of guessing.
policy_misstatement.chatgpt.v1policy_misstatementchatgptopenaigpt-4o-minibreakage-index-shopper-system11breakage-index.policy_misstatement.parser.v1@1store_domain, store_name, policy_urlsreturn_window_days, return_cost, free_shipping_threshold, ships_internationally, source_quoteFor {{store_name}} ({{store_domain}}), state the return window, return cost, free-shipping threshold, and whether the store ships internationally. Use only policy evidence from these URLs: {{policy_urls}}.
policy_misstatement.perplexity.v1policy_misstatementperplexityperplexitysonar-probreakage-index-shopper-system11breakage-index.policy_misstatement.parser.v1@1store_domain, store_name, policy_urlsreturn_window_days, return_cost, free_shipping_threshold, ships_internationally, source_quoteFor {{store_name}} ({{store_domain}}), state the return window, return cost, free-shipping threshold, and whether the store ships internationally. Use only policy evidence from these URLs: {{policy_urls}}.
policy_misstatement.claude.v1policy_misstatementclaudeanthropicclaude-sonnet-4-6breakage-index-shopper-system11breakage-index.policy_misstatement.parser.v1@1store_domain, store_name, policy_urlsreturn_window_days, return_cost, free_shipping_threshold, ships_internationally, source_quoteFor {{store_name}} ({{store_domain}}), state the return window, return cost, free-shipping threshold, and whether the store ships internationally. Use only policy evidence from these URLs: {{policy_urls}}.
policy_misstatement.gemini.v1policy_misstatementgeminigooglegemini-2.5-flashbreakage-index-shopper-system11breakage-index.policy_misstatement.parser.v1@1store_domain, store_name, policy_urlsreturn_window_days, return_cost, free_shipping_threshold, ships_internationally, source_quoteFor {{store_name}} ({{store_domain}}), state the return window, return cost, free-shipping threshold, and whether the store ships internationally. Use only policy evidence from these URLs: {{policy_urls}}.
offer_ambiguity.chatgpt.v1offer_ambiguitychatgptopenaigpt-4o-minibreakage-index-shopper-system11breakage-index.offer_ambiguity.parser.v1@1store_domain, store_name, promo_contextoffer_text, discount_value, eligible_scope, promo_code, expiration_claim, source_quoteFor {{store_name}} ({{store_domain}}), describe any active promotion in {{promo_context}}. Include the discount, eligible products, promo code, and expiration only when visible. Say when terms are unclear.
offer_ambiguity.perplexity.v1offer_ambiguityperplexityperplexitysonar-probreakage-index-shopper-system11breakage-index.offer_ambiguity.parser.v1@1store_domain, store_name, promo_contextoffer_text, discount_value, eligible_scope, promo_code, expiration_claim, source_quoteFor {{store_name}} ({{store_domain}}), describe any active promotion in {{promo_context}}. Include the discount, eligible products, promo code, and expiration only when visible. Say when terms are unclear.
offer_ambiguity.claude.v1offer_ambiguityclaudeanthropicclaude-sonnet-4-6breakage-index-shopper-system11breakage-index.offer_ambiguity.parser.v1@1store_domain, store_name, promo_contextoffer_text, discount_value, eligible_scope, promo_code, expiration_claim, source_quoteFor {{store_name}} ({{store_domain}}), describe any active promotion in {{promo_context}}. Include the discount, eligible products, promo code, and expiration only when visible. Say when terms are unclear.
offer_ambiguity.gemini.v1offer_ambiguitygeminigooglegemini-2.5-flashbreakage-index-shopper-system11breakage-index.offer_ambiguity.parser.v1@1store_domain, store_name, promo_contextoffer_text, discount_value, eligible_scope, promo_code, expiration_claim, source_quoteFor {{store_name}} ({{store_domain}}), describe any active promotion in {{promo_context}}. Include the discount, eligible products, promo code, and expiration only when visible. Say when terms are unclear.
non_public_product_exposure.chatgpt.v1non_public_product_exposurechatgptopenaigpt-4o-minibreakage-index-shopper-system11breakage-index.non_public_product_exposure.parser.v1@1store_domain, store_name, product_titles, product_urlsrecommended_product_name, recommended_product_url, access_signal, source_quoteFor {{store_name}} ({{store_domain}}), recommend relevant products from this candidate set only: {{product_titles}} / {{product_urls}}. If a product page appears blocked, noindexed, B2B-only, removed, or otherwise non-public, call that out explicitly.
non_public_product_exposure.perplexity.v1non_public_product_exposureperplexityperplexitysonar-probreakage-index-shopper-system11breakage-index.non_public_product_exposure.parser.v1@1store_domain, store_name, product_titles, product_urlsrecommended_product_name, recommended_product_url, access_signal, source_quoteFor {{store_name}} ({{store_domain}}), recommend relevant products from this candidate set only: {{product_titles}} / {{product_urls}}. If a product page appears blocked, noindexed, B2B-only, removed, or otherwise non-public, call that out explicitly.
non_public_product_exposure.claude.v1non_public_product_exposureclaudeanthropicclaude-sonnet-4-6breakage-index-shopper-system11breakage-index.non_public_product_exposure.parser.v1@1store_domain, store_name, product_titles, product_urlsrecommended_product_name, recommended_product_url, access_signal, source_quoteFor {{store_name}} ({{store_domain}}), recommend relevant products from this candidate set only: {{product_titles}} / {{product_urls}}. If a product page appears blocked, noindexed, B2B-only, removed, or otherwise non-public, call that out explicitly.
non_public_product_exposure.gemini.v1non_public_product_exposuregeminigooglegemini-2.5-flashbreakage-index-shopper-system11breakage-index.non_public_product_exposure.parser.v1@1store_domain, store_name, product_titles, product_urlsrecommended_product_name, recommended_product_url, access_signal, source_quoteFor {{store_name}} ({{store_domain}}), recommend relevant products from this candidate set only: {{product_titles}} / {{product_urls}}. If a product page appears blocked, noindexed, B2B-only, removed, or otherwise non-public, call that out explicitly.
checkout_exception_risk.chatgpt.v1checkout_exception_riskchatgptopenaigpt-4o-minibreakage-index-shopper-system11breakage-index.checkout_exception_risk.parser.v1@1store_domain, store_name, checkout_country, policy_urlspayment_methods, guest_checkout_claim, shipping_country_claim, source_quoteFor {{store_name}} ({{store_domain}}), tell a shopper in {{checkout_country}} which payment methods, guest checkout path, and shipping eligibility are supported. Use only public checkout, payment, help, or policy evidence from {{policy_urls}}.
checkout_exception_risk.perplexity.v1checkout_exception_riskperplexityperplexitysonar-probreakage-index-shopper-system11breakage-index.checkout_exception_risk.parser.v1@1store_domain, store_name, checkout_country, policy_urlspayment_methods, guest_checkout_claim, shipping_country_claim, source_quoteFor {{store_name}} ({{store_domain}}), tell a shopper in {{checkout_country}} which payment methods, guest checkout path, and shipping eligibility are supported. Use only public checkout, payment, help, or policy evidence from {{policy_urls}}.
checkout_exception_risk.claude.v1checkout_exception_riskclaudeanthropicclaude-sonnet-4-6breakage-index-shopper-system11breakage-index.checkout_exception_risk.parser.v1@1store_domain, store_name, checkout_country, policy_urlspayment_methods, guest_checkout_claim, shipping_country_claim, source_quoteFor {{store_name}} ({{store_domain}}), tell a shopper in {{checkout_country}} which payment methods, guest checkout path, and shipping eligibility are supported. Use only public checkout, payment, help, or policy evidence from {{policy_urls}}.
checkout_exception_risk.gemini.v1checkout_exception_riskgeminigooglegemini-2.5-flashbreakage-index-shopper-system11breakage-index.checkout_exception_risk.parser.v1@1store_domain, store_name, checkout_country, policy_urlspayment_methods, guest_checkout_claim, shipping_country_claim, source_quoteFor {{store_name}} ({{store_domain}}), tell a shopper in {{checkout_country}} which payment methods, guest checkout path, and shipping eligibility are supported. Use only public checkout, payment, help, or policy evidence from {{policy_urls}}.
competitor_in_branded_prompt.chatgpt.v1competitor_in_branded_promptchatgptopenaigpt-4o-minibreakage-index-shopper-system11breakage-index.competitor_in_branded_prompt.parser.v1@1store_domain, store_name, primary_category, competitor_setbrand_answered, competitor_mentions, competitor_recommendations, source_quoteA shopper asks specifically about {{store_name}} for {{primary_category}}. Answer the branded question directly. If you mention or recommend alternatives from {{competitor_set}}, label whether they are neutral mentions or explicit recommendations over {{store_name}}.
competitor_in_branded_prompt.perplexity.v1competitor_in_branded_promptperplexityperplexitysonar-probreakage-index-shopper-system11breakage-index.competitor_in_branded_prompt.parser.v1@1store_domain, store_name, primary_category, competitor_setbrand_answered, competitor_mentions, competitor_recommendations, source_quoteA shopper asks specifically about {{store_name}} for {{primary_category}}. Answer the branded question directly. If you mention or recommend alternatives from {{competitor_set}}, label whether they are neutral mentions or explicit recommendations over {{store_name}}.
competitor_in_branded_prompt.claude.v1competitor_in_branded_promptclaudeanthropicclaude-sonnet-4-6breakage-index-shopper-system11breakage-index.competitor_in_branded_prompt.parser.v1@1store_domain, store_name, primary_category, competitor_setbrand_answered, competitor_mentions, competitor_recommendations, source_quoteA shopper asks specifically about {{store_name}} for {{primary_category}}. Answer the branded question directly. If you mention or recommend alternatives from {{competitor_set}}, label whether they are neutral mentions or explicit recommendations over {{store_name}}.
competitor_in_branded_prompt.gemini.v1competitor_in_branded_promptgeminigooglegemini-2.5-flashbreakage-index-shopper-system11breakage-index.competitor_in_branded_prompt.parser.v1@1store_domain, store_name, primary_category, competitor_setbrand_answered, competitor_mentions, competitor_recommendations, source_quoteA shopper asks specifically about {{store_name}} for {{primary_category}}. Answer the branded question directly. If you mention or recommend alternatives from {{competitor_set}}, label whether they are neutral mentions or explicit recommendations over {{store_name}}.

Sample Size

The External Top-500 floor is a fast-launch compromise: large enough for a credible inaugural benchmark, with uncertainty disclosed for every headline and agent cut.

Per-agent cuts can publish only with their own denominator and uncertainty disclosure; they do not replace the all-store headline denominator.

For the Summer 2026 report, per-agent cuts are filterable data only. They are not used for launch copy, vendor rankings, or agent-superlative claims.

Summer 2026 public artifacts report all-store cuts only. Per-vertical cuts were withheld because the vertical validation review did not pass the publication threshold.

Corpora And Exclusions

The External Top-500 corpus uses Tranco list VNGQN from 2026-05-21, filtered to retail and Shopify-detected domains. Included stores: 500. The internal corpus is disclosed separately and is never blended into the External Top-500 headline number. Canonical path: /resources/research/agentic-commerce-breakage-index.

The internal StoreSteady scan corpus is self-selected and reported with a self-selection disclosure when available.

  • homepage_crawl_failed: Homepage did not resolve during the report window
  • policy_pages_missing: Required policy pages were not observable
  • fewer_than_10_indexable_pdps: Store had fewer than 10 indexable product pages
  • aggressive_antibot: Store blocked the scanner with aggressive anti-bot controls
  • pdps_behind_login: Product pages were behind login
  • no_observable_product_truth: Product truth was not observable for this metric
  • no_observable_policy_truth: Policy truth was not observable for this metric
  • no_observable_offer_truth: Offer truth was not observable for this metric
  • no_observable_non_public_signal: No externally verifiable non-public signal was observable
  • no_observable_checkout_truth: Checkout capability truth was not observable
  • unsupported_agent_surface: Agent surface is not supported by the frozen protocol
  • merchant_opted_out: Merchant opted out of internal aggregate reporting
  • calibration_ineligible: Candidate did not pass calibration eligibility
  • reproducibility_failed: Candidate did not survive the 2-of-3 reproducibility rule

Denominator Rules

The headline unit is the store, not the finding and not the response.

Each metric publishes its own evaluable_store_n. Stores with no observable truth for a metric are excluded from that metric denominator and counted in the exclusion funnel.

The at-least-one-breakage headline uses stores evaluable for the full metric bundle, or explicitly discloses the minimum metric-evaluable threshold used.

Crawler blocks, robots restrictions, password or challenge gates, and other non-circumvented access controls are counted separately as access_friction_observed. They are not counted as product, policy, offer, checkout, hidden-product, or competitor breakage unless the relevant detector also has enough observable evidence.

metriccorpusverticalagentevaluable_store_nstores_with_confirmed_breakageexcluded_store_n
checkout_exception_riskexternal_top_500allall104260
checkout_exception_riskexternal_top_500allchatgpt1900
checkout_exception_riskexternal_top_500allclaude10410
checkout_exception_riskexternal_top_500allgemini3310
checkout_exception_riskexternal_top_500allperplexity97240
non_public_product_exposureexternal_top_500allall27250
non_public_product_exposureexternal_top_500allchatgpt27140
non_public_product_exposureexternal_top_500allclaude26840
non_public_product_exposureexternal_top_500allgemini19330
non_public_product_exposureexternal_top_500allperplexity25620
product_truth_mismatchexternal_top_500allall273120
product_truth_mismatchexternal_top_500allchatgpt3100
product_truth_mismatchexternal_top_500allclaude27320
product_truth_mismatchexternal_top_500allgemini27290
product_truth_mismatchexternal_top_500allperplexity12130

Agent Access Friction

StoreSteady does not bypass anti-bot systems, login walls, payment gates, robots restrictions, or challenge pages during this benchmark.

A store can remain in the research frame while a specific detector job is not evaluable. The scan-limitations table separates access_friction_observed from not_evaluable_for_detector so readiness signals do not inflate breakage rates.

Access friction is merchant-actionable product value for Pro Scan because agent-like systems may fail to read, compare, or recommend a store even when no detector-specific mismatch can be evaluated.

classificationaccess_friction_kindstatusreason_codescanned_store_naffected_store_nstore_percentageaffected_job_n
access_friction_observedallall_access_friction5002100.425040
access_friction_observedcrawl_blockedfailedcrawl_blocked_by_robots_without_classified_pages50020.00448
access_friction_observedcrawl_blockedfailedcrawl_failed_without_classified_pages5002080.4164992
not_evaluable_for_detectorallall_not_evaluable_for_detector5002900.582941
not_evaluable_for_detectorunevaluableinconclusive_checkout50060.01218
not_evaluable_for_detectorunevaluablemissing_product_claim5002650.53485
not_evaluable_for_detectorunevaluableno_matching_truth_product50070.0147
not_evaluable_for_detectorunevaluableno_observable_checkout_truth5001800.36701
not_evaluable_for_detectorunevaluableno_observable_non_public_signal500170.03468
not_evaluable_for_detectorunevaluableno_observable_offer_truth5001600.32640
not_evaluable_for_detectorunevaluableno_observable_policy_truth5001780.356712
not_evaluable_for_detectorunevaluableno_observable_product_truth500170.03468
not_evaluable_for_detectorunevaluableunknown_product_status50020.0047
not_evaluable_for_detectorunevaluableunparseable_checkout_response5001080.216188
not_evaluable_for_detectorunevaluableunparseable_offer_response500210.04247

Tolerance Bands

Each metric uses the same public tolerance bands throughout the Summer 2026 report.

  • Product truth mismatch: Price differs by more than 2% or more than $5, stock contradicts the PDP, product does not resolve to a public PDP, or material attributes contradict product evidence. Attribute claims use the two-judge plus human-tiebreak calibration path.
  • Return or shipping policy misstatement: Numeric return, fee, and shipping terms must match the policy page exactly. Categorical claims are binary. Free-text policy claims use the two-judge plus human-tiebreak calibration path.
  • Offer ambiguity: Wrong code, expired offer, or overstated discount scope counts as breakage when public offer or safe dry-run evidence contradicts the agent answer. Ambiguous offer text is held for calibration review when parser output is not deterministic.
  • Non-public product exposure: Only externally verifiable signals count: 401/403, 410, noindex, robots disallow, or explicit B2B-only copy. Public absence alone is not proof. Draft/private status requires connected-store evidence and is not inferred for the external corpus.
  • Checkout exception risk: Unsupported payment method, guest-checkout mismatch, or shipping-country mismatch counts only when public checkout, payment, help, or policy evidence contradicts the agent answer. Checkout dry-runs are non-transactional and blocked runs are exclusions, not breakage.
  • Competitor in branded prompt: Neutral competitor mentions are tracked separately. Explicit recommendations over the named merchant count as breakage. The prompt must explicitly contain the merchant brand for this metric.

Calibration And False-Positive Handling

The calibration set samples flagged candidates and non-finding candidates. Public calibration rows expose labels and rubric versions only, not raw store names, raw URLs, or raw AI responses.

Two independent LLM judges score each candidate. Disagreements require human tiebreak. Krippendorff alpha is published per metric.

Headline metrics require alpha at least 0.80 and calibration accuracy at least 95%. Alpha from 0.667 to 0.80 is tentative. Alpha below 0.667 is dropped.

Public evidence examples are derived from normalized calibration evidence packages. A fail-closed safety review blocks any example containing store names, merchant domains, raw URLs, source quotes, raw AI responses, exact promo codes, or merchant-identifying details.

Judge 1 model: gpt-4.1. Judge 2 model: claude-sonnet-4-6.

Rubric versions: product_truth_mismatch: product_attribute_v1, product_attribute_v2, policy_misstatement: policy_free_text_v1, policy_free_text_v2, offer_ambiguity: offer_ambiguity_v1, offer_ambiguity_v2, non_public_product_exposure: non_public_product_exposure_v1, non_public_product_exposure_v2, checkout_exception_risk: checkout_exception_risk_v1, checkout_exception_risk_v2, competitor_in_branded_prompt: branded_competitor_v1, branded_competitor_v2.

Two independent LLM judges label calibration rows; disagreements are resolved using the human-authored labeling policy and persisted as human tiebreak labels.

metrictierjudge_alphacalibration_accuracycalibration_flagged_ncalibration_nonfinding_nfalse_negative_rate
product_truth_mismatchheadline0.923321894303363199.0%611391.4%
policy_misstatementdropped0.270336738554672856.6%1001000.0%
offer_ambiguitydropped0.1879412325892003799.0%51950.5%
non_public_product_exposureheadline1100.0%161840.0%
checkout_exception_risktentative0.7939404372525392100.0%1001000.0%
competitor_in_branded_promptdropped0.98291878933173567.5%1001000.0%

Limitations

The Breakage Index measures answer fidelity and access friction. It does not measure conversion impact, revenue loss, refund rate, chargeback rate, or support-ticket volume.

This report reflects stores that were evaluable inside the report window. Each metric publishes its own evaluable_store_n, and stores with missing truth are counted in the exclusion funnel instead of being treated as breakage.

Stores that block crawler or agent-like access are retained in the research frame when they are otherwise eligible retail Shopify storefronts. Blocked access is reported separately as access friction, not as a detector mismatch.

The internal corpus consists of stores that voluntarily ran a StoreSteady scan during the reporting period. It over-represents operators who already suspected AI-search issues and is never blended into the External Top-500 headline number.

The External Top-500 is drawn from a frozen Tranco snapshot, filtered to retail and Shopify-detected domains. Long-tail, non-English, and non-Shopify stores are under-represented by design and disclosed as out of scope for this inaugural index.

  • No per-store names, raw URLs, or raw AI responses are published in public artifacts.
  • External non-public product evidence is limited to public signals. Shopify draft status is counted only when connected-store evidence proves it.
  • Checkout and offer probes are non-transactional. Store blocks, anti-bot walls, and inconclusive dry-runs are access-friction or limitation signals, not breakage.
  • Metrics below 95% calibration accuracy are not published in this report. Metrics with judge alpha from 0.667 to 0.80 and calibration accuracy at least 95% are tentative. Headline metrics require alpha at least 0.80 and calibration accuracy at least 95%.
  • Future quarterly runs depend on distribution pickup and detector reuse in Pro Scan, not backlinks alone.

Correction Policy

Methodology gaps, reproducible errors, or source corrections can be sent to research@storesteady.com. Corrections are published with the version history below.

Sources

Version History

  • 2026-05-22: 2026-summer.c4-v1 - Initial C4 methodology content model and renderer contract.
  • 2026-05-24: 2026-summer.public-v1 - Finalized public Summer 2026 release framing, added denominator-forward funnel disclosure, and blocked relisting on complete provenance.