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.

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). Google AI Overviews and AI Mode are read via SERP data, including the follow-up request Google sometimes requires. "Bing (Copilot proxy)" is exactly that — Bing's organic results as a proxy, since Copilot exposes no citation API; it is excluded from sentiment, position and share-of-voice. 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.

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, each check asks each LLM engine (Perplexity, ChatGPT, Gemini, Claude) more than once — two samples by default — and counts you as mentioned if ANY sample mentions you, since missed mentions are where sampling noise hurts most. SERP-read surfaces (AI Overviews, AI Mode, Bing) are checked once. Each result records how many samples agreed, and trends across checks are still the signal: a single flip can still be noise.

How often we check

Pro and Agency sites get an automatic weekly check across all 7 visibility surfaces; Starter sites get a weekly automatic check on their three engines (ChatGPT, Perplexity, Gemini). All paid plans additionally get a lightweight daily trend sample on those three engines — a single ask per query that adds a day-level point to your history and share-of-voice charts. Daily samples are single answers, so they're noisier than a full check: won/lost alerts are computed only from full checks (weekly or on-demand), never from a daily sample, and your dashboard's latest results always show one full check, not a mix. You can run a check on demand any time within your plan's fair-use allowance, and an on-demand check covers all 7 visibility surfaces on every paid plan — the weekly AUTOMATIC sweep is what differs in depth. History, share-of-voice trends and the visibility score are built from all data, not just the latest run. Every run — automatic and on-demand — executes on a durable background queue and covers your plan's full prompt pool; checks start immediately, small runs often finish in about a minute, and larger pools update in the background with live progress.

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.

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.

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.

What we don't do

No fabricated results — if there's no data, we say so. Sentiment is a keyword heuristic (most reliable in English) and is labeled as such. 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.