{"schemaVersion":1,"qualityContract":{"title":"Research Report Quality Contract & Publish Template v1","version":"2026-summer.public-v1","path":"tasks/specs/research-report-quality-contract-v1.md"},"reportName":"Schema-vs-Page Consistency Index","slug":"schema-page-consistency-index","releaseLabel":"Summer 2026","methodologyVersion":"2026-summer.public-v1","generatedAt":"2026-05-26T02:48:44.361Z","paths":{"canonical":"/resources/research/schema-page-consistency-index","methodology":"/resources/research/schema-page-consistency-index/methodology","aggregateCsv":"/resources/research/schema-page-consistency-index/schema-page-consistency-index-summer-2026.csv","reportJson":"/resources/research/schema-page-consistency-index/report.json","reportJsonDownload":"/resources/research/schema-page-consistency-index/report-json","ogImage":"/api/og/research-report/schema-page-consistency-index"},"headline":{"metric":"deterministic_schema_page_conflict","label":"Deterministic schema-vs-page conflict","tier":"headline","denominatorLabel":"Schema-page-evaluable stores","evaluableN":19,"findingN":6,"alpha":null,"accuracy":null,"flaggedN":null,"nonFindingN":null,"caveat":"Deterministic field comparison only; missing counterpart states are reported separately and are not legal sufficiency or trustworthiness claims.","rate":0.3158,"ciLow":0.1536,"ciHigh":0.5399,"statement":"6 of 19 schema-page-evaluable storefronts had a deterministic public-surface conflict.","interpretation":"The report measures disagreement between store-controlled public surfaces. It does not judge legal sufficiency, merchant trustworthiness, or whether AI agents can answer a policy question."},"corpus":{"publicDescription":"For this report, StoreSteady evaluated a frozen corpus of 100 Shopify storefronts.","selectionRule":"Deterministic rank-stratified 100-store tranche from the frozen external_top_500 Shopify storefront corpus; no merchant-identifying examples are published.","freezeTimestamp":"2026-05-21T22:00:01.570Z","evaluationWindow":"2026-05-26T02:47:00.000Z to 2026-05-26T02:48:44.361Z","scannedStoreN":100,"fieldsCollected":["visible PDP product and offer evidence","Product/ProductGroup/Offer JSON-LD","visible and structured price and availability signals","canonical, sitemap, Offer.url, and image signals","visible return and shipping policy pages","MerchantReturnPolicy and OfferShippingDetails JSON-LD","visible contact and footer identity evidence","Organization, LocalBusiness, Store, and OnlineStore JSON-LD"]},"evidenceFunnel":[{"label":"Frozen corpus tranche","value":"100","detail":"Rank-stratified Shopify storefronts selected from the frozen external_top_500 corpus."},{"label":"Blocked or noindex","value":"75","detail":"Stores blocked/noindexed before enough public field evidence could be compared."},{"label":"Not evaluable after access","value":"6","detail":"Stores reached by the crawl but without enough field-level counterparts for a store-level classification."},{"label":"Schema-page evaluable","value":"19","detail":"Stores with enough visible and/or structured public evidence for at least one field comparison."},{"label":"Deterministic conflict","value":"6","detail":"Stores where two public store-controlled surfaces deterministically disagreed."}],"metricQuality":[{"metric":"deterministic_schema_page_conflict","label":"Deterministic schema-vs-page conflict","tier":"headline","denominatorLabel":"Schema-page-evaluable stores","evaluableN":19,"findingN":6,"alpha":null,"accuracy":null,"flaggedN":null,"nonFindingN":null,"caveat":"Deterministic field comparison only; missing counterpart states are reported separately and are not legal sufficiency or trustworthiness claims.","rate":0.3158,"ciLow":0.1536,"ciHigh":0.5399},{"metric":"missing_structured_counterpart","label":"Visible evidence missing structured counterpart","tier":"supporting","denominatorLabel":"Schema-page-evaluable stores","evaluableN":19,"findingN":11,"alpha":null,"accuracy":null,"flaggedN":null,"nonFindingN":null,"caveat":"Counts stores where visible public evidence existed for at least one field but the structured counterpart was missing.","rate":0.5789,"ciLow":0.3628,"ciHigh":0.7686},{"metric":"missing_visible_counterpart","label":"Structured evidence missing visible counterpart","tier":"supporting","denominatorLabel":"Schema-page-evaluable stores","evaluableN":19,"findingN":1,"alpha":null,"accuracy":null,"flaggedN":null,"nonFindingN":null,"caveat":"Counts stores where structured public evidence existed for at least one field but the visible page counterpart was missing from the scanned public evidence.","rate":0.0526,"ciLow":0.0094,"ciHigh":0.2464},{"metric":"blocked_or_noindex","label":"Blocked or noindex before field comparison","tier":"limitation","denominatorLabel":"Rank-stratified frozen schema-page corpus","evaluableN":100,"findingN":75,"alpha":null,"accuracy":null,"flaggedN":null,"nonFindingN":null,"caveat":"Separated from findings. Blocked/noindex stores are not counted as schema-vs-page conflicts.","rate":0.75,"ciLow":0.657,"ciHigh":0.8245},{"metric":"not_evaluable_after_access","label":"Not evaluable after access","tier":"limitation","denominatorLabel":"Rank-stratified frozen schema-page corpus","evaluableN":100,"findingN":6,"alpha":null,"accuracy":null,"flaggedN":null,"nonFindingN":null,"caveat":"The crawl reached public evidence but did not collect enough field-level counterparts to classify a store-level finding.","rate":0.06,"ciLow":0.0278,"ciHigh":0.1248}],"detectorPrimitives":[{"signalId":"product","label":"Product visible-vs-structured counterpart","status":"15 consistent, 3 missing structured counterpart, 1 not evaluable field row","caveat":"Field-row counts are among the 19 schema-page-evaluable stores. Compares visible PDP evidence with Product/ProductGroup markup where a PDP was collected."},{"signalId":"offer","label":"Offer price, availability, URL, and image consistency","status":"6 deterministic conflicts, 6 consistent, 3 missing structured, 3 missing visible, 1 not evaluable field row","caveat":"Field-row counts are among the 19 schema-page-evaluable stores. Counts deterministic conflicts only when public page and schema/URL/image signals disagree under exact parser rules."},{"signalId":"return_policy","label":"Return policy counterpart","status":"2 consistent, 12 missing structured, 1 missing visible, 4 not evaluable field rows","caveat":"Field-row counts are among the 19 schema-page-evaluable stores. Compares visible return/refund policy pages with MerchantReturnPolicy or nested return policy markup."},{"signalId":"shipping","label":"Shipping counterpart","status":"3 consistent, 14 missing structured, 2 not evaluable field rows","caveat":"Field-row counts are among the 19 schema-page-evaluable stores. Compares visible shipping policy pages with OfferShippingDetails markup."},{"signalId":"contact_identity","label":"Contact and business identity counterpart","status":"21 consistent contact/identity field rows, 10 missing structured counterparts, 3 missing visible counterparts, 4 not evaluable field rows","caveat":"Combines two field rows per evaluable store: contact evidence and business identity evidence. Compares contact-page/footer evidence with Organization, LocalBusiness, Store, and OnlineStore markup."}],"attributeReadiness":null,"sections":[{"id":"what-measured","heading":"What StoreSteady Measured","paragraphs":["StoreSteady compared public machine-readable commerce data against visible public page evidence across product, offer, shipping, return, contact, and business identity fields.","The state contract was consistent, missing_structured_counterpart, missing_visible_counterpart, deterministic_conflict, blocked_or_noindex, and not_evaluable."],"bullets":["Deterministic conflicts require two store-controlled public surfaces to disagree.","Missing structured or missing visible counterparts are reported separately from conflicts.","Blocked/noindex and not-evaluable stores are not treated as findings."]},{"id":"not-measured","heading":"What StoreSteady Did Not Measure","paragraphs":["The report does not decide whether a policy is legally sufficient, whether a merchant is trustworthy, or whether an AI agent can answer a shopper question.","It also does not use private Merchant Center, Shopify admin, customer, order, checkout, or feed evidence."]},{"id":"quality-gates","heading":"Quality Gates","paragraphs":["All published rows are deterministic parser rows. Judge alpha and calibration accuracy are not applicable because no LLM judgments were used.","The 1-3 store smoke validated the state contract before the rank-stratified 100-store tranche. The headline denominator is schema-page-evaluable stores, while access limitations use the full scanned corpus denominator."]}],"limitations":["Dynamic pricing, localization, sale timing, member pricing, and storefront personalization can make some fields not evaluable without being conflicts.","The widened tranche still had high blocked/noindex exposure, so the headline denominator remains narrower than the full frozen corpus.","A missing counterpart is not a policy correctness claim and is not counted as a deterministic conflict.","The report publishes aggregate counts only and omits store names, domains, raw URLs, source excerpts, exact policy quotes, promo codes, and merchant-identifying examples."],"sources":[{"label":"Google merchant listing structured data","url":"https://developers.google.com/search/docs/appearance/structured-data/merchant-listing","note":"Structured-data context for Product, Offer, shipping, return, and merchant listing evidence."},{"label":"Google return policy structured data","url":"https://developers.google.com/search/docs/appearance/structured-data/return-policy","note":"MerchantReturnPolicy context for public return-policy counterpart checks."},{"label":"Schema.org OfferShippingDetails","url":"https://schema.org/OfferShippingDetails","note":"Shipping-details context for structured shipping counterpart checks."},{"label":"Schema.org Organization","url":"https://schema.org/Organization","note":"Organization and contact metadata context for business identity counterpart checks."},{"label":"StoreSteady published aggregate report JSON","url":"https://www.storesteady.com/resources/research/agentic-commerce-breakage-index/report.json","note":"Published aggregate artifact used as the source of calibrated public-report counts."},{"label":"OpenAI crawler documentation","url":"https://developers.openai.com/api/docs/bots","note":"Context for AI crawler and robots controls; not used as a ranking or reach claim."},{"label":"Google robots.txt guidance","url":"https://developers.google.com/search/docs/crawling-indexing/robots/intro","note":"Crawler-access context for robots restrictions and non-circumventing evaluation."},{"label":"Google merchant listing structured data","url":"https://developers.google.com/search/docs/appearance/structured-data/merchant-listing","note":"Public product-structured-data context for merchant listing evidence."},{"label":"OpenAI product feed specification","url":"https://developers.openai.com/commerce/specs/file-upload/products","note":"Product-data freshness context; not used as a connected-merchant-data audit."},{"label":"Shopify product taxonomy","url":"https://help.shopify.com/en/manual/products/details/product-category","note":"Shopify product-data context for product categorization and storefront facts."}],"versionHistory":[{"version":"2026-summer.public-v1.1","date":"2026-05-26","change":"Widened Schema-vs-Page tranche from 50 to 100 stores; clarified field-row detector primitive denominators and explicit limitation rows."},{"version":"2026-summer.public-v1","date":"2026-05-26","change":"Initial public report from a 1-3 store smoke and rank-stratified 50-store deterministic schema-page comparison tranche."}],"redactionPolicy":{"aggregateOnly":true,"rowLevelPublicFieldsAreHashed":null,"excludedPublicFields":["store names","raw domains","raw URLs","raw crawl text","raw AI responses","exact promo codes","private feed/admin evidence","merchant-identifying product examples"]}}