Astrant Score · methodology

How Astrant scores

Six dimensions of agent discoverability, weighted per the OQ-04 spec. Each dimension is measured by 3-5 sub-checks; sub-checks may be marked N/A and dropped from the formula when they don't apply (e.g. no API surface for the OpenAPI dimension on a content-only site). The composite is computed across the dimensions that actually applied to your site, not the catalog.

Dimension weights

  • 15 · Dim 1 — llms.txt Quality
  • 20 · Dim 2 — MCP Server Discoverability
  • 10 · Dim 3 — OpenAPI / API Catalog
  • 20 · Dim 4 — Structured Capability Data
  • 15 · Dim 5 — Agent-Parsable Content
  • 20 · Dim 6 — Citation Visibility

Dimension 6 — Citation Visibility

Weight 20 · Engine v1 · 4 hosted models · ~10 prompts · ~40 cells per audit

Citation Visibility (Dimension 6) is what Cloudflare's Agent Readiness Score cannot see — it's the dimension that asks the question every AEO buyer actually wants answered: "What do hosted frontier models actually say about my domain?"

Methodology: Astrant generates a short-answer prompt set tuned to your domain's category and signals, dispatches each prompt across OpenAI GPT-4o, Anthropic Claude, Google Gemini 2.0 Flash, and Perplexity Sonar (4 models, ~10 prompts = ~40 cells per audit), scores each response for whether the model correctly identifies and cites your domain, and aggregates. Each cell costs roughly $0.02 in model fees; a full Dim 6 audit costs Astrant about $0.85.

Cell states: a cell is unmeasurable (excluded from the score) when the network failed, the model refused on safety grounds, the provider returned a quota error, or every retry path was exhausted. A cell is truncated (included in the score, with a flag) when the response hit the max_tokens cap but was otherwise valid. A cell scores 0 (included) when the model returned a clean response that simply didn't cite your domain.

Free-tier scans show a static demo preview only — full Dim 6 audit ships with the $79 Audit. The free Score's composite is computed across the 5 measured dimensions; Dim 6 is dropped from the formula rather than scored against a placeholder.

Sub-check signatures

Dim 6 emits four sub-check signatures in every paid audit. The same signatures are emitted under the future Profound-swap path — only the corpus row's source field changes (diy vs profound).

  • citation_domain_named_rate (weight 40) — what fraction of measurable cells named your domain at all.
  • citation_url_referenced_rate (weight 30) — what fraction included an actual URL on your host (not just the brand name).
  • citation_context_relevant_rate (weight 20) — what fraction positioned your domain in the first half of the response (vs a footer-style mention).
  • citation_no_competitor_first_rate (weight 10) — what fraction avoided naming a competitor BEFORE your domain.

Cell states

Each cell is one (model × query) trial. A measurable cell scores 0–100. An unmeasurable cell is excluded from the score formula entirely so a network blip or a safety refusal doesn't penalize you. A truncated cell (response hit max_tokens) is included with a flag — the response was valid up to the cap.

Validator-driven trust pattern

Every Dim 6 call uses the same six-rung validator-driven trust pattern we use on the audit-fulfill remediation generator: deterministic generation (temperature 0; seed 42 where the provider supports it — OpenAI and Perplexity do, Anthropic and Gemini don't), structural validators, retry-once-with-feedback on validator failure, templated fallback to unmeasurable: true (never a fake 0), 30-day cache, and engine versioning so engine-version bumps invalidate stale cells automatically.

Dim 6 engine: dim6:v3 (4 models, prompt-set v3)

Dimension 1 — llms.txt Quality

Full methodology section coming in a subsequent release. Sub-checks: presence, spec compliance, linked-pages quality, curation quality, blockquote eval. Weight 15.

Dimension 2 — MCP Server Discoverability

Full methodology section coming in a subsequent release. Sub-checks: well-known card, tool coverage, OAuth metadata, live invocation, DNS TXT. Weight 20.

Dimension 3 — OpenAPI / API Catalog

Full methodology section coming in a subsequent release. Sub-checks: discovery, spec validity, info completeness, security schemes, operation coverage. Weight 10. Whole-dim N/A on content-only sites.

Dimension 4 — Structured Capability Data

Full methodology section coming in a subsequent release. Sub-checks: JSON-LD presence, Organization, Service/Offer, FAQ, Review schemas. Weight 20.

Dimension 5 — Agent-Parsable Content

Full methodology section coming in a subsequent release. Sub-checks: JS-vs-no-JS render diff, page weight + LCP, markdown negotiation, pricing text visibility, case-study scannability. Weight 15.

Questions about methodology? Run a free Score on your domain or book the $79 Audit for the full Dim 6 live citation audit.