Methodology
How we measure, exactly.
Most AI visibility tools do not publish their measurement method. This page is ours, in full. If you find a flaw in it, tell us and we will fix the method, not the page.
Sample
One API call: one prompt, one engine, one answer, stored raw with its citations. Samples are independent draws with clean context.
Mention rate
The share of samples in a window where your brand appears in the answer text. Computed per brand, per engine, per prompt set.
Wilson interval
A 95% confidence interval on the mention rate that behaves correctly at small sample sizes and near 0% or 100%. It never leaves the 0 to 1 range.
Rolling window
All samples from the trailing 7 days. Each day's reported value summarizes the window ending that day, which smooths run-to-run noise without hiding trends.
01Sampling design
Every active prompt in a workspace is run against every tracked engine on the plan's schedule: N independent samples per prompt per engine per day, where N is 1 on the free plan, 3 on Starter and Growth, and 5 on Agency. Each sample is a separate API call with no shared conversation state. We store the raw answer text, its citations, whether the engine actually invoked web search, latency, and cost. Raw answers stay inspectable in the product, so you can audit any number back to the answers that produced it.
A structured extraction pass then records, for your brand and every tracked competitor: whether it was mentioned, where it first appears as a percentage of the answer length, and sentiment. Citation domains are classified deterministically in code as owned, competitor, or third party. The language model judges only mentions and sentiment, never domain classification.
02The Wilson interval
Mention rate is a proportion estimated from a limited number of samples, so we report it with a 95% Wilson score interval rather than as a bare number. With n samples in the window, m mentions, an observed rate p = m / n, and z = 1.96:
low, high =
( p + z^2/(2n) +/- z * sqrt( p(1-p)/n + z^2/(4n^2) ) )
/ ( 1 + z^2/n )
where p = m/n (observed mention rate)
n = samples in the rolling window
z = 1.96 (95% confidence)We use Wilson instead of the textbook normal approximation because it stays honest where AEO data actually lives: small n and rates near 0% or 100%. The normal approximation can produce intervals below 0% or above 100% there; Wilson cannot. Every chart in the product shows the interval as a shaded band and displays n, because an estimate without its sample size is an invitation to overinterpret.
03Rolling 7-day windows
Daily values are computed over the trailing 7 days of samples per workspace, engine, and brand. A 7-day window at 3 samples per prompt per day pools 21 samples per prompt, enough for intervals narrow enough to act on, while still moving quickly when your visibility actually changes. Share of voice uses the same window: your mentions divided by mentions of all tracked brands, per engine. As your sample count grows, you will see the bands narrow. That is the method working, not a design choice.
04Why single-run rankings mislead
Large language models are nondeterministic. In a public 3,000-prompt study by Rand Fishkin, fewer than 1 in 100 identical runs returned the same list of brands. Related testing found mention rates for a single brand swinging between roughly 20% and 80% across ten identical runs. A tool that runs your prompt once and reports "you rank #3" is reporting one draw from that distribution as if it were the distribution. The next draw can say something else, and the tool will call it movement. We consider that methodology indefensible, and it is why every AEO.day metric is a rate over repeated samples with an interval, never a position from one run.
05What API sampling means, honestly
We sample engines through their official APIs with web search enabled. That yields a clean-context baseline: the answer a model gives with no conversation history, no memory, and no personalization. It is not any individual user's answer, because real users have histories, locations, and accounts that shift results. No monitoring vendor can observe those private contexts at scale. The clean baseline is the honest, reproducible thing to measure, and we would rather label it correctly than imply we are reading over your customers' shoulders. We also record whether the engine actually performed a web search in each sample, because citations from an answer that never searched are not evidence.
06Engines are different products
ChatGPT search leans on Bing's index. Google AI Overviews and AI Mode draw on Google's index with query fan-out into sub-questions. Perplexity operates its own index. The result is published research finding roughly 89% of citations do not overlap between ChatGPT and Perplexity for comparable queries. Averaging engines into one score erases exactly the information you need to act. AEO.day reports every metric per engine and generates separate recommendations per engine, each labeled by its evidence tier: Experimental, Correlational, or Unsupported.
07What we refuse to report
- Single-run rank positions of any kind.
- A blended cross-engine score presented as a headline metric.
- More precision than the sample size supports. If n is small, the interval is wide, and we show it wide.
- Tactics without evidence labels. llms.txt, for example, is labeled Unsupported: to our knowledge no production answer engine reads it. We publish one ourselves for transparency and say the same thing there.
- Fabricated benchmarks, testimonials, or customer counts in our own marketing. The absence of logos on our landing page is deliberate.
Questions about the method, or a flaw to report? We want it. Meanwhile you can see the method applied to your own brand in about a minute.
Related reading: how we compare to other tools.