A single visibility score tells you whether you showed up. Share of voice tells you whether you showed up more often than the brands you compete with. In crowded categories, the second question matters more, because AI answers are finite: when ChatGPT names three products, those three slots come at someone else's expense.
What AI share of voice actually measures
AI share of voice is the percentage of tracked AI answers where your brand appears, out of all the answers you tracked. That's it at the simplest level. The useful version adds two dimensions: which prompts, and which engines.
So the working definition is: mentions of your brand divided by total answer slots observed, across a defined prompt set and a defined set of engines, over a defined time window.
Two decisions shape the number more than anything else:
- What counts as a mention. A brand name in the prose, a linked citation, a product card, or all three. Pick one definition and keep it. If you count citations for yourself but only prose mentions for competitors, the number is meaningless.
- Which prompts are in the set. A prompt set built from guesswork produces a share of voice that moves for reasons unrelated to your actual position. If you haven't built one deliberately, see Choosing the Prompts to Track: A Method, Not a Guess.
The formula
For a single engine:
Share of voice = (answers mentioning your brand) / (total answers collected) × 100
For a competitive view, count every brand in every answer:
Brand share = (answers mentioning brand X) / (total answers collected) × 100
Note that these shares do not sum to 100 across brands. One answer can mention four brands, and many answers mention none of the brands you track. That's normal. Don't force the numbers to add up; the sum is a property of the category, not an error.
A worked example
Suppose you track 10 prompts. You run each prompt once per engine across three engines: ChatGPT, Gemini and Perplexity. That gives 30 answers.
Your raw results, counting a mention as the brand appearing anywhere in the answer:
| Prompt | ChatGPT | Gemini | Perplexity |
|---|---|---|---|
| 1 | You | You, Competitor A | Competitor A |
| 2 | Competitor A | Competitor A | Competitor A, Competitor B |
| 3 | You, Competitor B | You | You |
| 4 | Competitor A | Competitor A | Competitor A |
| 5 | You | Competitor B | Competitor B |
| 6 | Competitor A, Competitor B | Competitor A | Competitor A |
| 7 | You | You | Competitor A |
| 8 | Competitor B | Competitor A, Competitor B | Competitor B |
| 9 | You | You | You |
| 10 | Competitor A | Competitor A | Competitor A |
Tally the rows:
| Brand | ChatGPT (of 10) | Gemini (of 10) | Perplexity (of 10) | Overall (of 30) |
|---|---|---|---|---|
| You | 6 | 4 | 2 | 12 → 40% |
| Competitor A | 4 | 6 | 7 | 17 → 57% |
| Competitor B | 2 | 2 | 3 | 7 → 23% |
Three things fall out of this table that a single visibility score would hide.
First, you lead on ChatGPT but trail badly on Perplexity. Your blended 40% looks respectable; your Perplexity position is a problem.
Second, Competitor A beats you overall despite losing to you on one engine. If you only measured ChatGPT, you'd conclude you were winning.
Third, Competitor B appears in fewer answers but shows up on all three engines. Breadth and depth are different things.
Counting engines and prompts fairly
If you run different numbers of prompts per engine, weight before you average. Otherwise an engine you tested heavily will dominate the total. The clean approach: compute share per engine, then average the per-engine shares if you want an equal-weight view, or weight by estimated query volume if you have a reason to.
State which one you used. "40% share of voice, equal-weighted across three engines, 10 prompts, one run each" is a claim someone can check. "40% share of voice" on its own is not.
How to count competitors
Start with the brands that actually appear in your answers, not the brands on your competitor slide. Those lists diverge more often than people expect, and the AI answer is the thing you're trying to influence.
A workable process:
- Run your prompt set and record every brand named, including ones you don't consider competitors.
- Keep any brand that appears in more than a small handful of answers. In a 30-answer sample, a brand appearing once is noise; a brand appearing eight times is a rival.
- Cap the tracked list. Five to eight brands is usually enough to see the shape of the category. More than that and the table stops being readable.
- Re-check the list quarterly. AI answers change as models and indexes change, and new entrants appear.
One caution: if you track a brand only in the prompts where it appears, you inflate its share. Every tracked brand must be measured against the same denominators.
Why share of voice beats a single score
A visibility score answers "did we appear?" Share of voice answers "did we appear relative to the alternatives?" In a category with three or four credible options, the second question is the one that maps to commercial reality, because the model is choosing between you and them in the same sentence.
Share of voice also behaves better over time. A raw visibility number can rise simply because you added prompts where you happen to rank. Share of voice is harder to move that way, since every brand in the set is measured on the same prompts.
And it survives engine differences. If ChatGPT and Perplexity weight sources differently, your per-engine shares will differ. That difference is a finding, not a measurement error. It tells you where to spend effort.
What share of voice does not tell you:
- Whether the mention was positive, neutral or a warning. Read the answers.
- Whether the mention drove anything. Pair it with whatever traffic or conversion signal you have.
- Whether a competitor's mention came from a citation you could also earn. That requires looking at sources, not counts.
For the discipline around these limits, How to Measure AI Visibility Without Fooling Yourself is worth reading before you build a dashboard.
A note on crawler access
Share of voice is downstream of whether AI systems can reach your content at all. The access rules differ by bot, and the differences matter:
| Bot | What it affects |
|---|---|
| OAI-SearchBot | Surfaces sites in ChatGPT search; opted-out sites are not shown |
| GPTBot | Collects content for foundation model training; blocking it does not affect ChatGPT search |
| ClaudeBot | Collects content that may be used for training |
| Claude-SearchBot | Indexes content to improve search results |
| Claude-User | Fetches pages when a user asks Claude a question |
| PerplexityBot | Surfaces and links sites in Perplexity search results |
| Perplexity-User | Fetches pages for user questions; generally ignores robots.txt because the user requested it |
| Google-Extended | Controls training and grounding for Gemini; does not affect Google Search inclusion |
AI Overviews sit inside Google Search, so they follow normal Googlebot crawling and indexing rather than a separate control. Robots.txt changes can take up to about 24 hours to take effect for OpenAI and Perplexity. And robots.txt expresses intent; it is not access control. If a page is blocked from the bots that feed an engine's answers, no prompt-tracking setup will show it appearing there.
Set up your first measurement
Pick 10 prompts that reflect how buyers in your category actually ask, run each across three engines, and record every brand named in each answer. Build the two tables above, compute share per engine and overall, and write down the date and method alongside the numbers. Tools like PromptRanking can track brand mentions across engines so you don't have to run the prompts by hand, but the formula and the counting rules are yours to define. Do the first pass manually, so you understand what you're counting before you automate it.