Platform · Measure
Methodology
Measurement you'd bet budget on has to survive its own methodology page. This is exactly how every number on an AEOSearch report is produced.
What we measure
Grounding — and why it matters
How the audit runs
The metrics
- Mention rate — share of samples that mention your brand.
- Share of AI Voice — your mentions ÷ all tracked-brand mentions.
- Average rank — where your brand appears among named brands, when mentioned.
- Recommendation rate — share of your mentions that are positive endorsements.
- Citation share — share of cited sources that are your own domains.
- Volatility — how much the three samples disagreed, shown honestly.
- Unprompted visibility — mention rate and Share of AI Voice computed only over questions whose text names no tracked brand. A comparison question that names you (or a competitor) leads the engine toward the tracked set, so branded questions are scored separately and can never inflate the unprompted numbers.
- Source Map— every domain the engines cited while answering, ranked by how many answers cited it, labeled yours / competitor's / third-party. This is the list of sources that actually decide your category's answers — and the ranked outreach list for getting into them.
- Recognition ladder— mention rate grouped by question specificity, from questions that name a brand down to fully generic category questions. The deepest rung where you're still named is your recognition boundary; monthly re-runs show it moving.
- New-brand readiness — when unprompted visibility is 0%, the report adds a prerequisites checklist run against your own domain: site reachability, AI-crawler access in robots.txt, schema.org structured data, llms.txt, and whether any answer cited your domain at all.
Dashboard scores
Two composite scores appear on the dashboard. Both are published here in full, because a score whose formula you cannot check is an opinion with a decimal point. Every input is one of the metrics above, under whatever filter the page is showing — but read the scope on each line below before plugging the dashboard’s own numbers in. Two of the three components are measured over the unprompted questions only, and the “Share of AI voice” card is not: that card answers over every question in scope, so it is a different number from the one this formula takes.
Visibility index, 0–100:
visibilityIndex = 100 × Σ(weight × component) ÷ Σ(weight)
unprompted mention rate weight 0.5
over questions naming no tracked brand
share of AI voice weight 0.3
over those same unprompted questions
(NOT the all-question figure on the "Share of AI voice" card)
citation share weight 0.2
over every source citation in scope, not per answerA component whose own denominator is empty is dropped and the remaining weights are renormalized — it never contributes a zero, because “we could not measure your citations” is not “you have no citations”. Those denominators are the three the formula names and nothing adjacent: unprompted answers that came back, tracked-brand mentions inside them, and source citations. An engine that failed every unprompted call leaves the first at nought, so the mention rate is dropped rather than read as a rate of zero. The gauge caption names each component that was dropped. The index is refused outright, and reads “insufficient data”, in three cases: fewer than 5 counted answers in scope, no component measurable at all, or fewer than 2components measurable — renormalizing down to one leaves a single measurement wearing a composite’s name. The tier words are labels on that measured number, at Leading ≥ 75, Strong ≥ 50, Building ≥ 20, Low ≥ 0, and each describes the weighted average of the three. A tier word is shown only when all three components were measured; under renormalization the score stands on its own.
Sentiment score, 0–100 with 50 = neutral:
sentimentScore = 50 × (1 + (positive − negative) ÷ classified) classified = positive + neutral + negative
Counted per mention of your brand, not per answer. A mention whose sentiment is absent or off-vocabulary leaves both the numerator and the denominator and is disclosed as unclassified. Below 5classified mentions the score is refused and reads “insufficient mentions”. The scale stays symmetric even though real answers skew positive — a brand the engines dislike has to be able to score below 50, and the number has to mean the same thing for you as for a competitor.
Average position is the mean first-mention rank across answers that named you; lower is better, and a delta chip shows a rank improvement as an improvement rather than as a negative number. Share of AI voiceis zero-sum across you and your run-tracked competitors only. Watch-only brands — scored retroactively from answers already stored — are excluded from it, and every watch-only figure carries the count of answers it was measured across.
AEO health, 0–100, on the Sources page:
healthScore = round(100 × passing ÷ checked)
checks: site reachable · robots.txt per AI crawler
(GPTBot, ClaudeBot, PerplexityBot, Google-Extended)
· schema.org JSON-LD on the homepage · llms.txt / agents.mdA probe that never completed is recorded as unchecked— excluded from both the numerator and the denominator, never a pass and never a fail. Fewer than 3 checked results shows no score at all. These are named checks against your homepage, robots.txt and llms.txt, not a site crawl; the panel prints that scope beside the gauge. When a re-check fails, the panel keeps the last completed results with their timestamp and says the newer attempt failed — it never silently shows stale numbers as current, and never shows a failure as zero.
Monthly re-runs
Movement is only movement when both runs answered comparable amounts. Failed engine calls are excluded from every rate, so a run that lost part of its corpus to an outage produces rates over fewer samples. Comparing those with a later, fuller run would turn the outage's repair into a “change” — the same lie as counting a failed call as a non-mention. So when the share of answered samples differs by ten points or more, on a whole run or on one engine, we show both counts, mark the move †, refuse to colour it as a gain or a loss, and decline to attribute it. The arithmetic is still printed; only the claim about what it means is withheld.
The assistant
Honesty
Start with the free scorecard.
Run it on your own brand — the methodology is the product.
$0 to start · no card required · every number traces to a stored answer