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.
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.
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.
“Exactly what every ChatGPT user sees.”
“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.
| Mode | Meaning | Trust |
|---|---|---|
| official_grounded_apiOfficial grounded API | Collected 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 data | Observed from a licensed structured search-results feed. Sampled by location and device. | High for presence; sampled by location and device. |
| fixture_demoDemo fixture | Deterministic 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.
| Engine | Mechanism | Mode | Label in product |
|---|---|---|---|
| OpenAI | OpenAI Responses API + web search tool | Official grounded API | OpenAI web-grounded API |
| Claude | Anthropic Messages API + web search tool | Official grounded API | Claude web-search API |
| Gemini | Gemini API + googleSearch grounding tool | Official grounded API | Gemini + Google Search grounding |
| Perplexity | Perplexity Sonar API | Official grounded API | Perplexity web-grounded API |
| Google AI Overviews | DataForSEO SERP API (ai_overview element) | Observed SERP data | Observed 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.
| Threshold | Value | Effect |
|---|---|---|
| Minimum reportable | 10 valid checks | Below this we warn that the sample is too small rather than display a precise-looking number. |
| Medium confidence | 30 valid checks | Reportable, with the limiting factor named in the tooltip. |
| High confidence | 80 valid checks | Only in combination with the two conditions below. |
| Engine diversity for high | 3 engines | Single-engine data stays at medium — one provider’s quirk is not a market signal. |
| Time spread for high | 3 scan runs | One 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.
- successCounts in metrics
The engine answered and the answer was captured.
- no_answerCounts in metrics
The engine answered and your brand genuinely was not in it. A real absence, not a failure.
- provider_errorExcluded from metrics
The provider returned an error. We observed nothing.
- timeoutExcluded from metrics
The request exceeded its time budget. We observed nothing.
- rate_limitedExcluded from metrics
The provider throttled the request. We observed nothing.
- unsupportedExcluded from metrics
The engine cannot serve this kind of check.
- not_configuredExcluded from metrics
No credentials are configured for this engine in this deployment, so it never ran.
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%.
| Component | Weight | Definition |
|---|---|---|
| Visibility | 45% | Intent-weighted share of valid checks where your brand is meaningfully mentioned. |
| Recommendation | 20% | Share of valid checks where your brand is actively recommended, not merely referenced. |
| Position | 15% | Where you place when an answer contains an objectively ordered list. Prose answers have no rank and are excluded. |
| Citation | 15% | Presence of your own pages and relevant earned sources among the citations behind answers. |
| Sentiment | 5% | How favourably your brand is characterised where it appears. |
| Total | 100% | — |
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.
| Intent | Weight |
|---|---|
| Transactional | 1.50× |
| Comparison | 1.30× |
| Commercial | 1.15× |
| Informational | 1.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.
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.
- “Evidence suggests”
- “Associated with”
- “Likely contributing factor”
- “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.