How we measure AI visibility.

An AI answer is a probability distribution, not a ranking. Ask the same question twice and you can get two different citation lists back. Anyone selling you a single daily number is selling noise. This page is our protocol: how we sample, how we compute confidence, and where we refuse to claim more than the data supports.

7runs per prompt per engine per day, the statistical floor
95%Wilson confidence interval on every trend we publish
0.12cross-engine source overlap: why scores are never blended
45.5%how often sentiment flips between runs, reported aggregated only

Sampling design

A single query run tells you almost nothing. Day-to-day overlap in cited sources for the same prompt averages a Jaccard score of 0.34 to 0.42 across 45 days of live engine monitoring: roughly two-thirds of cited sources change day to day with no content change anywhere on the underlying pages. Same-day repeated prompts come back nearly as unstable. One snapshot is a coin flip dressed up as a fact.

So we run every prompt multiple times per engine per day. The literature floor for a brand-rate standard error under 0.10 is 7 runs; that is our minimum, not our ceiling.

The schedule is adaptive, not flat. About 77.5% of prompt-engine cells are deterministic: your brand is always mentioned or never mentioned. After 14 days of history, a stable cell drops to 2 runs a day; a flipping cell (mentioned somewhere between 30% and 70% of the time) keeps the full 7. Same statistical confidence where it matters, roughly half the query volume overall.

Confidence intervals

Every trend line we publish carries a Wilson 95% confidence band, computed from the actual run count behind that cell. A narrow band means we ran enough queries to trust the point estimate. A wide band means we did not, and we show that width instead of hiding it behind a clean-looking line.

A change only counts as movement when the bands for two periods stop overlapping. If they still touch, we label it “no significant change,” full stop, even when the point estimate moved. Most of this category screenshots every uptick and calls it progress. We would rather tell you the data is flat than sell you a story it cannot support.

Share of voice

Share of voice for brand b on a given prompt set:

SoV(b) = M(b) / ( M(b) + Σ M(c) )

M(b) is how often your brand is mentioned across the prompt set. The sum in the denominator runs over qualified competitors only: brands that appear repeatedly or resolve to a real, checkable domain. A model hallucinating a made-up competitor name once does not earn a seat in the denominator, so it cannot quietly dilute your score. Most tools count every name the model happens to say; we filter first.

Per-engine isolation

ChatGPT, Gemini, and Perplexity draw from almost entirely separate source pools for the same prompt: cross-engine cited-source overlap sits around 0.12 Jaccard. They are not three windows onto the same answer. They are three different answers built from three different sets of sources.

That is why we never publish a blended “AI visibility score” across engines. Every number on this site and in your dashboard is reported per engine. Averaging them would smooth over the exact differences you need to see to know which engine actually needs fixing.

Sentiment, honestly

Sentiment is the least stable signal we measure. Across repeated runs of the same prompt, sentiment flips 45.5% of the time, 6.7 times noisier than a simple mention. A single answer’s sentiment is close to a coin flip.

We only report sentiment aggregated across 10 or more prompts per platform, with the sample size printed next to the number. No per-answer sentiment badges, no green or red chip on a single response. When the sample is too thin, we show no sentiment number at all rather than a false one.

API versus UI

We sample ChatGPT, Gemini, and Perplexity through their published APIs and label them API-sampled in your dashboard. That is a deliberate, repeatable, billable query path, and it can diverge from what a person sees typing into the consumer app: consumer interfaces layer on personalization, memory, and product-specific ranking that the API does not expose.

Google AI Overviews, Google AI Mode, and Microsoft Copilot have no equivalent API for this. We sample those from the real user-facing surface through data providers who scrape the actual product, not a proxy endpoint. Both approaches are labeled in the dashboard so you always know which surface produced a number.

Crawler verification

When we report AI crawler traffic on your site, we check the requesting IP against the vendor’s published range for that bot, not just the user-agent string a request can forge. A bot with a published range gets a verified badge. A bot without one gets labeled UA-only, because nobody, including the vendor running it, can currently prove a given request came from them.

BotVerification methodStatus
OpenAI (GPTBot, ChatGPT-User)Published IP rangesVerified
Google (Google-Extended, Googlebot)Published IP rangesVerified
Anthropic (ClaudeBot, Claude-User)Published IP rangesVerified
Perplexity (PerplexityBot)Published IP rangesVerified
Amazon (Amazonbot)Published IP rangesVerified
Bytespider (ByteDance)No published rangesUA-only
Grok (xAI)No published rangesUA-only
Meta AI crawlerNo published rangesUA-only
Mistral crawlerNo published rangesUA-only

Prior art

The design choices above are not opinions. They trace back to three 2026 papers and one public metric glossary, listed here so anyone can check our work.

arXiv 2604.07585

45 days of live engine monitoring measuring day-to-day citation volatility. Source for our run-count floor (n=7 for brand-rate standard error under 0.10) and the case for confidence bands over single snapshots.

arXiv 2606.20065

The Ranqo dataset paper on mention and sentiment stability across repeated runs. Source for the qualified-competitor share-of-voice formula, the cross-engine source-overlap figure, and the sentiment aggregation floor.

arXiv 2410.03492

Demonstrates that large language model outputs vary even at zero temperature and a fixed seed. Source for treating every measurement as a distribution rather than a single ground truth, and for cheap prediction-interval methods from repeated runs.

docs.peec.ai

Peec AI's public metric definitions, the closest existing prior art for generative-engine measurement terminology. We link it because a shared vocabulary helps buyers compare tools; we do not adopt every definition unchanged.

This protocol runs behind every audit.

Every metric in a Noetio audit is built on the sampling, confidence, and per-engine rules on this page. See the audit itself, or check where you stand first with the free scan.

Run the free visibility scan →See pricing →