The standard · v2
The Shelfgrade Score
One number, 0–100, for how ready a store's catalog is to be read by AI shopping surfaces — ChatGPT, Perplexity and Google/Gemini. Deterministic, fully documented below, with every point traceable to a finding that cites the vendor doc it derives from. Free to measure, free to quote.
Three pillars, weighted
robots.txt evaluated per RFC 9309 against each surface-gating bot (OAI-SearchBot, PerplexityBot, Googlebot), storefront password checks, and live bot-UA probes in full audits
catalog fields or a supplied feed validated against the supported vendor schemas and GS1 GTIN checksums; full audits also compare matching live-page prices and availability
Product/Offer JSON-LD on accessible sampled product pages checked against Google's merchant-listing spec
Public scans sample up to three product pages and, when available, check Shopify's public catalog. The Shopify app also samples up to three pages, using its authorized catalog access. Full audits check an uploaded feed or a connected catalog, sample up to 25 product-page URLs, and add live bot probes and price/availability comparisons when pages are accessible.
Unmeasured categories are excluded and the remaining weights are normalized. For example, when structured data cannot be checked, access and product data are weighted 40:35. Password-blocked product pages are unverified; an omitted category does not count as a pass. Compare scores alongside their source, checks, page coverage and scan time.
The point model
Each pillar starts at 100 and deducts per finding by severity. A pillar containing any blocker is hard-capped at 25 — a store that blocks the shopping crawler cannot score well no matter how clean its markup is. The total is the weighted average, rounded.
| Severity | Deduction | Meaning |
|---|---|---|
| Blocker | −40 | kills a surface — e.g. robots.txt disallows the crawler that feeds it |
| Major | −15 | breaks parsing or a documented requirement — e.g. invalid price format |
| Minor | −5 | a documented field the surface reads is missing — e.g. no gtin in markup |
| Info | −0 | recorded for transparency, never scored — e.g. training-only bot blocked |
What it deliberately does not measure
Rankings, traffic, or revenue — no one can honestly score those, and we don't pretend to. The Score measures machine readability against published vendor requirements: the part of AI visibility a merchant fully controls. Whether a surface actually cites you is measured separately (citation monitoring), never folded into the Score.
Why the number can be trusted
- Deterministic: the same captured inputs, checks and scoring version produce the same score. Different page samples, scan times or coverage can change findings.
- Sourced: every finding links the vendor document it derives from.
- Re-verified weekly: an automated pipeline re-checks every underlying rule against the live primary sources; changes are published in Spec Watch and versioned here (current: v2).
The Shelfgrade Index
A fixed panel of 227 well-known DTC stores, re-scored every week — the public baseline the ecosystem can be measured against.
Median score
92/100
week 2026-W42
Grades
A:150 · B:49 · C:27 · D:1 · F:0
Blocking a surface
Perplexity 13% · Google 12% · ChatGPT 0%
Methodology and findings: the DTC AI-readiness study.
Using the Score
Quote it freely — in client reports, audits, internal dashboards — with attribution (“Shelfgrade Score”). Agencies get it natively in white-label reports. Any store can measure itself in 30 seconds: