Skip to content
Trust

Methodology

This page is the public version of the document our own code is held to. It states how every number is collected, which data is allowed into a metric, how the AnswerRank Score is weighted, and what our data cannot tell you.

Web-grounded provider APIsLicensed SERP observationNo authenticated-interface scraping

1. What we measure, and what we do not

AnswerRank measures how brands appear in web-grounded AI answer surfaces that expose either a documented API or a licensed structured search-results feed. Those two surfaces are the entire scope of our data.

Product boundary

We do not replicate the signed-in consumer chat experience of ChatGPT, Claude, Gemini or Perplexity, and we do not scrape those interfaces. Their answers are shaped by account history, memory, subscription tier, region, experiment assignment and model routing that no third party can observe. Any vendor claiming to show you exactly what every consumer sees is describing something they cannot measure.

We never write

“Exactly what every ChatGPT user sees.”

We write

“Tracked using OpenAI’s current web-grounded API.”

2. Collection modes

Every stored data point carries the mode it was collected in. The interface never aggregates across modes without labelling them, and a workspace running on demo data shows a demo badge on every metric surface.

ModeMeaningTrust
official_grounded_apiOfficial grounded APICollected from the provider’s own API with web grounding enabled. Citations are provider-attested.Highest — citations are attested by the provider itself.
serp_observedObserved SERP dataObserved from a licensed structured search-results feed. Sampled by location and device.High for presence; sampled by location and device.
fixture_demoDemo fixtureDeterministic local fixture used for demonstration. Not a live measurement.Demonstration only. Never presented as a live measurement.

3. Per-engine collection

These labels are rendered from a single map in the codebase, so the description on this page, the tooltip in the product and the value stored on the row are the same string.

EngineMechanismModeLabel in product
OpenAIOpenAI Responses API + web search toolOfficial grounded APIOpenAI web-grounded API
ClaudeAnthropic Messages API + web search toolOfficial grounded APIClaude web-search API
GeminiGemini API + googleSearch grounding toolOfficial grounded APIGemini + Google Search grounding
PerplexityPerplexity Sonar APIOfficial grounded APIPerplexity web-grounded API
Google AI OverviewsDataForSEO SERP API (ai_overview element)Observed SERP dataObserved Google AI Overview SERP data
  • OpenAI

    Reflects the web-grounded API surface. It is not a capture of a signed-in ChatGPT session, which is personalised by account history and settings we cannot observe.

  • Claude

    Reflects the web-search API surface. It is not a capture of a signed-in claude.ai conversation.

  • Gemini

    Grounding sources are those returned in grounding metadata. Consumer Gemini app results may differ.

  • Perplexity

    Reflects the API surface. Perplexity’s consumer product applies additional personalisation and model routing.

  • Google AI Overviews

    AI Overviews do not appear for every query, and presence varies by location, device and time. Absence in a sample is not proof of permanent absence.

4. Sampling and confidence

AI answers are non-deterministic. The same question asked twice can produce different sources and a different recommendation, so a single execution is a sample rather than a ranking fact. Every metric is reported with the number of valid checks behind it.

Stability

Stability is appearances divided by valid checks over the trailing window of 10 checks, and is written the way it is measured: “mentioned in 8 of 10 recent valid checks”.

Confidence thresholds

Confidence rises with three independent things: sample size, engine diversity, and spread across scan runs. High confidence requires all three — one thin dimension caps the result.

ThresholdValueEffect
Minimum reportable10 valid checksBelow this we warn that the sample is too small rather than display a precise-looking number.
Medium confidence30 valid checksReportable, with the limiting factor named in the tooltip.
High confidence80 valid checksOnly in combination with the two conditions below.
Engine diversity for high3 enginesSingle-engine data stays at medium — one provider’s quirk is not a market signal.
Time spread for high3 scan runsOne snapshot is never high confidence, however large.

5. Execution status and validity

Every check resolves to exactly one status. Only two of them enter a metric. The rest are excluded from both the numerator and the denominator, because failing to observe something is not evidence that it is absent.

  • success
    Counts in metrics

    The engine answered and the answer was captured.

  • no_answer
    Counts in metrics

    The engine answered and your brand genuinely was not in it. A real absence, not a failure.

  • provider_error
    Excluded from metrics

    The provider returned an error. We observed nothing.

  • timeout
    Excluded from metrics

    The request exceeded its time budget. We observed nothing.

  • rate_limited
    Excluded from metrics

    The provider throttled the request. We observed nothing.

  • unsupported
    Excluded from metrics

    The engine cannot serve this kind of check.

  • not_configured
    Excluded from metrics

    No credentials are configured for this engine in this deployment, so it never ran.

Why this matters

A provider outage must never look like a visibility collapse. If an engine is down for a day, your chart shows fewer checks, not a crash in your score. This rule is asserted by unit tests over the scoring code, not by convention.

6. The AnswerRank Score

A 0–100 composite over valid checks only. The default weights below are the exact values used by the scoring code, and they are unit-tested to sum to 100%.

ComponentWeightDefinition
Visibility45%Intent-weighted share of valid checks where your brand is meaningfully mentioned.
Recommendation20%Share of valid checks where your brand is actively recommended, not merely referenced.
Position15%Where you place when an answer contains an objectively ordered list. Prose answers have no rank and are excluded.
Citation15%Presence of your own pages and relevant earned sources among the citations behind answers.
Sentiment5%How favourably your brand is characterised where it appears.
Total100%—

Position is redistributed, never zeroed

Prose answers do not contain ranks. Scoring a missing rank as zero would invent a penalty that the data does not support, so when no objectively ordered list exists the Position weight is redistributed proportionally across the components we could actually measure. The same rule applies to any component with nothing to measure. If no component is applicable, the product reports “no data” rather than a score of zero.

Intent weighting

Not every question is worth the same. A loss on a buying question costs more than a loss on a definition, so presence is weighted by prompt intent before it is averaged.

IntentWeight
Transactional1.50×
Comparison1.30×
Commercial1.15×
Informational1.00×

7. Citations and source influence

Citation URLs are canonicalised before they are counted: host lowercased, www. stripped, tracking parameters removed, fragment dropped, trailing slash normalised. Without that step the same page counts several times and inflates its apparent influence.

Each source is classified as owned, competitor-owned, review platform, community, publication, third party, or unknown. A low-confidence classification resolves to unknown rather than a guess, because a wrong label is worse than an honest gap.

Observed Source Influence

We publish source influence derived purely from citations observed in our own scans. It describes what shaped the answers we measured. It is not a claim about model training data, which no third party can inspect.

8. How we talk about cause

Our evidence supports association, not causation. We can show that a competitor who wins a question is also cited by three review platforms you are absent from. We cannot show that the citations caused the win. Our explanation templates are linted against this rule.

Permitted
  • “Evidence suggests”
  • “Associated with”
  • “Likely contributing factor”
Forbidden
  • “This caused”
  • “This is why you rank below”
  • “Guaranteed to improve”

9. Experiments

An experiment compares the same prompt × engine × market set before and after a change. We report the delta together with its sample size and the evaluation window, and we refuse to declare a verdict below 20 valid checks on either side of the comparison.

External factors — competitor changes, model updates, index refreshes — are uncontrolled and we say so on the result. An experiment is evidence, not proof.

10. llms.txt

The site audit detects and reports llms.txt, and labels it as an emerging convention with unproven impact. We report its presence because customers ask. We do not market it as a ranking factor, because the evidence for that does not exist yet.

Found something that looks wrong?

If a number in the product disagrees with this page, treat it as a bug and tell us. The internal methodology document is the source of truth for both.