How we measure

Technical AI-readability measurement — not a quality judgement

This page describes exactly what our AI-Readiness Score measures, how it is weighted, and what it explicitly is NOT. All numbers map one-to-one to the code (computeOverallScore8 in agenticCommerce.ts).

Important: This is a technical measurement of AI readability, NOT a judgement about the quality, trustworthiness or reputation of the shop.

Score version: v2-8pillar-2026-06

1. What we measure

We measure only the technical AI- and agent-readability of a publicly accessible webshop: can AI shopping agents (e.g. GPT, Claude, Perplexity, Gemini) find the shop, interpret it, and prepare transactions with it? The score says nothing about product quality, customer service, pricing or business operations.

2. How we measure — 8 pillars with fixed weights

The final score is a weighted average of 8 pillars. Weights are hard-coded and stored with every scan alongside the score version. In total we run ~30 deterministic checks (no LLM judgement for the deterministic pillars).

PillarWeightWhat
AI Visibility15%Visibility inside AI answers.
  • Queries against GPT/Claude/Perplexity/Gemini via standardised prompts
  • Measures whether the shop is cited, how often, and in what context
  • Fallback: pillar is dropped (never defaulted) if all models fail
Agentic Commerce15%Can an AI agent initiate transactions?
  • /.well-known/mcp.json (20 pts)
  • /.well-known/ai-plugin.json (12 pts)
  • /openapi.yaml|.json (10 pts)
  • /cart.js or /api/cart JSON (10 pts)
  • /llms.txt (10 pts)
  • /.well-known/ai-products.json (8 pts)
  • /llms-full.txt (5 pts)
  • /.well-known/ai.txt (5 pts)
  • ACP/UCP/cart-API reference in HTML (5 pts)
  • robots.txt does NOT block GPTBot/PerplexityBot/ClaudeBot (5 pts)
  • AP2 provider visible (Visa/MC/Amex/PayPal) (5 pts)
  • JSON-LD Offer with price in HTML (5 pts)
Schema.org13%Structured data per schema.org.
  • Presence of Product, Offer, Organization and BreadcrumbList schemas
  • Required-field validation per type
  • HTML/JSON-LD consistency
Product Content13%Quality of machine-readable product data.
  • Title, description, price, currency, availability
  • GTIN / MPN / SKU presence
  • Image URL and alt text
Technical12%Technical baseline readability.
  • HTTPS, valid SSL
  • robots.txt reachable and syntactically valid
  • sitemap.xml present
  • canonical tags, hreflang for multi-language
Trust Signals12%Publicly visible trust signals.
  • Visible company identity / registration / address
  • Contact page with working channels
  • Return and shipping policy publicly findable
  • Cookie / privacy page
Transaction Readiness10%Can a transaction technically complete?
  • Checkout reachable without JS errors
  • Detectable payment providers
  • Clear currency and shipping-country signal
Operational Maturity10%Signals of operational maturity.
  • Fresh content (last-modified headers)
  • Blog / help / knowledge base present
  • Consistent multi-language where applicable

Weight defaults: if a deterministic pillar cannot be measured we apply a conservative default of 40 (see PILLAR_DEFAULTS). For aiVisibility we NEVER apply a default: if all three AI models fail, that pillar is removed from both numerator and denominator — no 'silent 50'.

3. What the score is NOT

This score is explicitly not:

4. Reproducible

Any shop can recompute its own score: the 30+ deterministic checks probe public endpoints and HTML signals (including /.well-known/mcp.json, /llms.txt, robots.txt, JSON-LD Offer). Every scan stores the weights, defaults, aiMeasured status and score version. On request we provide the full `pillarsUsed` / `defaultsUsed` object for a specific scan.

5. Limitations and known uncertainties

Deterministic checks vs. vendor-specific AI Visibility

Seven of the eight pillars consist of deterministic checks against public endpoints and HTML — vendor-independent and reproducible. Only the AI Visibility pillar (15%) is vendor-specific: it measures visibility with the current generation of models (GPT, Claude, Perplexity, Gemini). A high AI Visibility score therefore does not automatically guarantee visibility with future or other agents.

Rendering: agent-suitability ≠ readability without JavaScript

We fetch every shop both with a headless browser (JavaScript executed) and as raw HTML. The difference between the two is reported as an explicit, named finding — a JS-dependent shop is not silently penalised, it gets a visible observation that non-rendering crawlers see less.

Where the weights come from

The weights (15/15/13/13/12/12/10/10) are reasoned estimates based on failure impact: how badly does an agent interaction break when this signal is missing? They are NOT empirically validated against actual agent conversion rates. This is the same approach Google Lighthouse takes; we prefer to state it rather than let the score look more precise than it is.

Bonus categories do not add to the 100

Google Agent-Friendliness and Product Data Integrity are informational findings/badges. They are shown separately, do not add on top of the 100 points, and are not a multiplier. The final score is purely the weighted average of the eight pillars.

Measurement uncertainty and model drift

LLM judgements are sensitive to prompt variation and model updates. We therefore run a weekly test-retest check: the same shop is scanned twice on the same day and the score difference is logged and published as a measurement-uncertainty figure (± points). Score changes within that band should not be read as real site changes.

Selection bias in the discovery engine

Our discovery engine finds more discoverable shops first, so the Registry is not representative of the full EU e-commerce market. This is acknowledged and not yet mitigated. A stratified sample per country and sector is on the roadmap for Q4 2026.

Objection or correction

Are you the shop owner and does something look wrong? Request removal or re-assessment via /data-aanvraag or privacy@langhoormarchal.com.

View the public Trust Registry →