How AEOLedger measures AI visibility
AEOLedger measures AI visibility as a count: how many times a brand is named across repeated runs of a fixed set of buyer prompts in each AI assistant. We report “named in X of N” and share of voice, always with the sample size, and never a rank.
Summary
- We measure whether AI assistants name a brand, and which sources they cite, for a fixed set of buyer prompts.
- Each prompt is run 3 times per assistant in fresh sessions, because AI answers vary from run to run.
- The audit covers ChatGPT, Claude, Perplexity and Gemini, plus manual checks of Google AI Overviews and AI Mode.
- Results are reported as named in X of N and share of voice, with N always shown.
- We do not report a rank or position score, because there is no stable rank to report.
Definitions
- Prompt
- A question written the way a buyer would ask it, such as “best SOC 2 automation tool for a 50-person startup”. Prompts are fixed before measurement and never edited mid-study.
- Prompt set
- The full list of prompts for one client. It mixes shortlist prompts, “alternatives to [leader]” prompts and problem-shaped prompts that don’t name the category.
- Run
- One answer to one prompt from one assistant, captured in a fresh session with a screenshot and the date.
- Named
- The brand appears by name in the answer as an option or recommendation. A mention only in a citation link, or only as a negative example, is logged separately and not counted as named.
- Cited source
- A URL the assistant links to or lists as a source for its answer.
- Share of voice
- The brand’s named count divided by the total named count of all tracked brands (the client and its named competitors) over the same runs.
Engines
| Engine | Snapshot | Audit | How it’s run |
|---|---|---|---|
| ChatGPT | Yes | Yes | Consumer app, default model, fresh chat, logged out where possible |
| Claude | Yes | Yes | Consumer app, default model, web search on, fresh chat |
| Perplexity | Yes | Yes | Consumer app, default mode, fresh thread, logged out |
| Gemini | When buyers are Google-heavy | Yes | Consumer app, default model, fresh chat |
| Google AI Overviews and AI Mode | No | Manual check | Signed-out browser; noted when no AI Overview appears |
We use the consumer apps, not the developer APIs, because that’s what buyers use. API answers can differ in model, settings and search behaviour. Model names and dates are recorded for every run.
Run protocol
- Agree the prompt set and up to 3 named competitors with the client before any runs.
- Open a fresh session for every run: new chat, no custom instructions, memory off, logged out where the app allows it.
- Paste the prompt exactly as written. No follow-up questions.
- Run each prompt 3 times per engine, at least a few minutes apart.
- Capture a screenshot and log date, engine, model label, country of the connection, brands named in order, and cited URLs.
- For re-measures, rerun the identical prompt set with the same protocol, and report both periods side by side.
Metrics
named rate = runs in which the brand is named ÷ total runs
share of voice = brand’s named count ÷ named count of all tracked brands
A snapshot has 9 runs per prompt (3 engines × 3 runs). An audit has 300 runs (25 prompts × 4 engines × 3 runs). We report the overall figures, and the same figures split by engine and by prompt type, because a brand can be strong in Perplexity and absent in ChatGPT.
Sample size and uncertainty
Small samples are noisy, so we show how noisy. Alongside each named rate we give a 95% Wilson interval, which describes the range the true rate plausibly falls in.
| Result | Named rate | 95% interval | How to read it |
|---|---|---|---|
| 4 of 9 | 44% | 19–73% | Directional only. Good for spotting absence, not for tracking change. |
| 18 of 75 | 24% | 16–35% | One engine across 25 prompts in an audit. |
| 40 of 300 | 13% | 10–18% | A full audit. Large enough to compare against a re-measure. |
That’s why the free snapshot is labelled as a small sample, and why we only claim an improvement when the re-measure clears the earlier interval.
Technical checks
Visibility depends partly on whether AI systems can read your site at all. The audit checks:
- Crawler access: robots.txt rules and CDN or firewall settings for OAI-SearchBot, GPTBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User, Google-Extended and Bingbot.
- Rendering: whether key claims (what you do, pricing, features, comparisons) appear in the HTML before JavaScript runs.
- Structured data: whether Organization, Product, FAQ and other markup is valid and matches the visible page.
- Hygiene: sitemap, canonical tags, llms.txt, and how docs and pricing pages read as plain text.
On rendering: Vercel and MERJ found that the major AI crawlers they observed, including GPTBot and ClaudeBot, fetched JavaScript files but did not execute them. Vercel, “The rise of the AI crawler”, 17 December 2024. vercel.com
Limits
- Answers vary. Repeated runs of the same prompt rarely return the same list. That’s the reason for repeated runs, and also the reason no single run proves anything.
- Personalisation. Logged-in users with history, memory or location may see different answers. We measure the fresh-session case and say so.
- Location. We record the country each run comes from. When it differs from where your buyers are, the report flags it.
- Engines change. Models and search features are updated without notice. Each run is dated, and re-measures note any model change we can see.
- Prompts are a sample. 25 prompts can’t cover every question buyers ask. We choose them with you to represent the questions that matter most.
- Correlation, not proof. When visibility changes after a fix, we report the change. We don’t claim that one fix caused it unless the evidence is specific.
On variability: SparkToro and Gumshoe ran 2,961 prompts through ChatGPT, Claude and Google’s AI search and found the same brand list under 1% of the time for ChatGPT and Google. Search Engine Journal, 30 January 2026. searchenginejournal.com
What we don’t report
- A rank or “position”. Order changes across runs even when the brands don’t, so we log order but don’t headline it.
- A composite visibility score. Blended scores hide the sample size and the engine split.
- Traffic or revenue forecasts from AI visibility alone.
How to cite this page
AEOLedger. “How AEOLedger measures AI visibility.” Methodology v1.0, 17 October 2026. https://aeoledger.com/methodology/
Changes to this methodology are versioned and dated on this page. Questions: hello@aeoledger.com.