Methodology
How we measure
AI answers are not deterministic — the same question can get different answers minutes apart. Most tools gloss over this. Here is exactly what Promvia does, so you know what a number means before you act on it.
- Perplexity
- ChatGPT
- Gemini
- Claude
- Google AI Overviews
- Google AI Mode
Also measured when an account adds it: Grok. Not measured yet: Microsoft Copilot. The Bing stand-in that once filled a Copilot column was suspended on 2026-09-22 (see What we actually ask).
Product names and logos belong to their owners.
01
What we actually ask
We call each engine's API with web search enabled: OpenAI (web_search), Anthropic Claude (web search tool), Google Gemini (search grounding) and Perplexity (sonar). Grok, when an account adds it, is asked through xAI's API with web search on, capped to a single search round. Google AI Overviews and AI Mode are read via SERP data, including the follow-up request Google sometimes requires. Microsoft Copilot is not measured yet. Until 2026-09-22 a column labelled "Bing (Copilot proxy)" read Bing's organic results as a stand-in for Copilot; we suspended it that day on finding it had been answering a different query than the one asked. Its rows stay labelled as a proxy, were always excluded from sentiment, position and share-of-voice, and are never counted as Copilot answers. API answers can differ from the consumer apps (no account memory, no custom instructions). Other tools collect differently — some read the public web interfaces directly — so we document our collector per surface here rather than claiming everyone measures alike.
02
How many times we ask
Identical prompts commonly vary 10–34% run to run, so any single answer is a snapshot, not ground truth. To reduce that noise, the weekly and on-demand checks ask each LLM engine (Perplexity, ChatGPT, Gemini, Claude) more than once — two samples by default — and count you as mentioned if ANY sample mentions you, since missed mentions are where sampling noise hurts most. SERP-read surfaces (AI Overviews, AI Mode) are checked once. The daily checks ask each engine once, which is why a question is only called lost after two checks in a row miss it. Each result records how many samples agreed, and trends across checks are still the signal: a single flip can still be noise.
03
How often we check
Pro and Agency sites check every question on all 6 engines by default: daily on Perplexity, Gemini, AI Overviews and Google AI Mode, one ask per engine, and weekly on ChatGPT and Claude — the weekly deep check, two asks per engine, which asks the daily engines too on its day. Starter sites get a weekly automatic check on their engines (by default ChatGPT, Perplexity and Gemini) plus a lightweight trend sample every 3 days on 10 questions you choose — a single ask per question that adds a point to your history and share-of-voice charts. A Starter that turns daily checks on for its low-cost engines trades that trend sample for them, and a Pro or Agency account that turns daily off gets it back, daily, on its priority questions (10 on Pro, 30 on Agency). You choose your engines, and which of them run daily, in Settings; daily costs more questions than weekly, and fewer or cheaper engines let you track more. Won/lost alerts come from the daily and weekly checks alike, each compared only with earlier checks of the same kind: a question is called lost only after two checks of that kind in a row miss it, and never while the latest check of the other kind still mentions you. Your dashboard's latest results show each engine's most recent check — today's for the daily engines, the weekly deep check for ChatGPT and Claude — each with its own date. You can run a check on demand any time within your plan's fair-use allowance, and an on-demand check covers all 6 default engines on every paid plan unless you choose other engines. The AI Source Index keeps its own weekly panel, unchanged. History, share-of-voice trends and the visibility score are built from all data, not just the latest run. Every check — automatic and on-demand — executes on a durable background queue; checks start immediately, small runs often finish in about a minute, and larger pools update in the background with live progress.
04
What counts as "mentioned" and "cited"
Cited = the engine linked to a URL on your domain (your subdomains count as you). Mentioned = cited, or your brand name / domain appears in the answer text as a whole word. Position is your ordinal standing among the brands named in the full answer, stored at check time.
05
Why a "lost" alert takes two checks
A win alert is immediate. A loss alert only fires after you're missing from two consecutive checks — and never when an engine merely errored — so one noisy answer can't email you "AI no longer cites you". This deliberately delays true losses by one check.
06
States we never conflate
"Check failed" (provider outage), "no AI answer" (e.g. Google showed no AI Overview), "not configured" (no API key) and "not cited" are four different things, shown as four different states. A gap in data is never presented as a loss.
07
What we don't do
No fabricated results — if there's no data, we say so. The GEO readiness score is a weighted checklist of verifiable signals, not a ranking prediction: nobody can guarantee AI will recommend you, and we don't.
08
How we read sentiment
Paid plans: the answers that name you are read by a small model (Claude Haiku) at least weekly for each question and engine within the plan's monthly allowance, newest first, and labelled positive, neutral or negative toward your brand; an answer is read at most once and its label is kept for good, answers past the month's allowance stay unread, and an answer that only repeats your name from the question is not counted. Free: a keyword estimate.
09
This method, running on us
Everything above also runs against Promvia itself, and the result is public — including right now, while the answer engines do not name us for the questions we track. A methodology page you cannot watch operating is a promise; this one has a scoreboard.
See the live scoreboard →