Methodology
This page tells you exactly what we do, with which models and with which parameters. It is published because it is the first question of any buyer who knows what they are talking about, and because a measurement that cannot be audited is worthless.
Why this is not the same as asking in the ChatGPT app
We say that we measure whether your brand appears in AI engines. What we technically do is call the official API of each model. These are different things, and the differences are material.- The consumer product has its own system prompt, which is not public and which we do not reproduce.
- It has memory and per-user personalisation: two different people get different answers to the same question.
- It routes to different model variants and has active A/B experiments that change without notice.
- Its search stack and result re-ranking are not the ones exposed by the API.
The consequence is concrete: if you open the ChatGPT app and ask the same thing, you may get something different from what your report says. That is why the product's value is not “the absolute truth of one answer”, but the comparative time series against your competitors, which is robust because the bias is constant for everyone.
Engines and fidelity
Each engine carries a fidelity label that says how close what we measure is to what a person sees. It appears in the interface next to every figure, not in a footnote.
| Engine | Fidelity | Web search | Returns citations |
|---|---|---|---|
| openai | API with web search enabled | Yes | Yes |
| anthropic | API with web search enabled | Yes | Yes |
| gemini | API with web search enabled | Yes | Yes |
| perplexity | API with web search enabled | Yes | Yes |
| dataforseo_llm | API without web search | No | No |
| dataforseo_aio | Result observed in the search engine | Yes | Yes |
Google AI Overviews has no official API: only the actual search engine result can be observed. That signal is the system's highest-fidelity one, and while it is in beta it does not count towards the headline figure.
Exact parameters
| Parameter | Value |
|---|---|
| Temperature | Whatever the provider defaults to. We do not fix it: forcing zero does not produce determinism in hosted models, and it moves the configuration away from the real product. |
| System prompt | None beyond a neutral, documented one. We give no instructions that could bias which brands get mentioned. |
| Memory and personalisation | Disabled. Every query starts from zero. |
| Scanner response tokens | 600 |
| Language and country | Those of the market being measured, not the visitor's. Asking in Spanish from Spain versus Spanish from Mexico gives different answers, and that difference is part of what is measured. |
| Mention parser version | 1 |
How the scanner score is calculated
5 questions × 2 engines × 1 repetition = 10 responses. One of the two engines always returns citations, so the citation rate has a denominator.
| Component | Weight | Formula |
|---|---|---|
| Presence | 40 | 40 × presence_rate |
| Relative Share of Voice | 25 | 25 × SoV / max(SoV) |
| Position in the text | 15 | 15 × (1 − avg_offset_pct/100) |
| Citation | 10 | 10 × citation_rate |
| Sentiment | 10 | 10 × (sentiment + 1) / 2 |
Formula version: 1. If we change the weights, reports already issued are NOT recalculated: new reports are issued with a new version. A shared report cannot change its number.
How to read this figure, and how not to
This score is NOT comparable between brands with different questions. It is an acquisition diagnosis with ten responses, not a market index. It is meant to compare you with yourself within the same sector and country, and to see whether you rise or fall by repeating the analysis. Any other use turns it into a meaningless number.How we define each metric
- Share of Voice
- Your appearances divided by the appearances of all the brands we track. Each response contributes at most one appearance per brand, even if the text repeats the name eight times. If the denominator is zero, the figure is “no data”, never zero.
- Presence rate
- Your appearances divided by ALL the responses in the period, including those that mention nobody. It is the honest metric of absolute visibility, which is why we never show Share of Voice without it alongside.
- Citation rate
- Responses where one of your domains is cited, divided by the responses from engines capable of citing. Engines that structurally cannot cite are left OUT of the denominator: averaging them in would produce a meaningless figure.
- Position
- The midpoint of the text where you first appear, calculated only over the responses where you appear. That is why it is never shown without the presence rate: if you lose visibility, your average position can improve simply because only the good responses remain.
Limits worth knowing
- The responses are not deterministic. We repeat each question several times on paid plans and present every figure with its response count and confidence interval.
- Below 30 responses in the slice, the figure is labelled a small sample and does not trigger alerts. The scanner score has ten: it is a diagnosis, not a measurement.
- On paid plans we mix model tiers: mid-range for the weekly sweep, which is the data that is sold, and budget-range for the daily sweep, which is used to detect changes. The specific model behind each response is stored and auditable from the detail view.
- Google AI Overviews data is in beta, depends on an external search-engine observation provider, and is excluded from any service commitment.