Method

How we measure AI visibility

The visibility score weights mention rate at 50%, citation share at 30% and position among named brands at 20%. Here is the exact arithmetic, the rules that stop a failed API call masquerading as an absence, and what the method cannot see.

Updated 19 September 2026 · 8 minute read

We publish this because a score whose method is secret is a marketing graphic. It is also the page a buyer’s diligence asks for, and we would rather it already existed.

The three inputs

MetricDefinitionWeight
Mention rate Answers naming the brand ÷ answers analysed 50%
Citation share Cited sources on the brand’s own domain ÷ all cited sources 30%
Position component A per-answer position score, averaged over every answer analysed 20%

Visibility score = round( (mention rate × 0.5 + citation share × 0.3 + position component × 0.2) × 100 ), clamped to 0–100.

How the position component works

Being the first brand named is worth far more than being the fourth, so position is scored on a scale rather than counted:

Position in the answer1st2nd3rd4th5th or laterNot named
Score1.00.750.50.2500

The important detail is the denominator: those scores are summed and divided by every answer analysed, not only the answers that named you. Otherwise a single lucky first-place mention in a hundred answers would carry the whole score, which is precisely the kind of flattery this measurement exists to avoid.

Average position is reported separately and is averaged only over answers where you were named. When you were never named it is reported as none, not as zero — an undefined value, honestly labelled.

Worked example one: our own zero

From our September 2026 audit: eight questions, one engine, eight answers analysed.

All three inputs were zero, so there is nothing to round and nothing to argue about. Zero is the floor, and it is where we started.

Worked example two: how a real score is built

Illustrative numbers, not a client’s, so you can follow the arithmetic. Eight questions; the brand is named in three of them, at positions 2, 1 and 4; six of the 90 cited sources are on its own domain.

StepWorkingValue
Mention rate3 named ÷ 8 answers0.375
Citation share6 owned ÷ 90 cited0.0667
Position scores2nd = 0.75, 1st = 1.0, 4th = 0.25sum 2.0
Position component2.0 ÷ 8 answers0.25
Weighted sum(0.375 × 0.5) + (0.0667 × 0.3) + (0.25 × 0.2)0.2575
Visibility score0.2575 × 100, rounded26

Notice what that says. A brand named in nearly four answers in ten, once in first place, still scores 26 — because it is almost never the cited source. Citation share is where most brands leave points on the table, and it is the input you control fastest.

What the bands mean

ScoreBand
0–24Rarely surfaced
25–49Occasionally surfaced
50–74Regularly surfaced
75–100Consistently surfaced

The honesty rules built into the run

These are enforced in the code that produces the number, not in a policy document. They exist because each one, broken, would quietly flatter us.

Non-determinism, measured

Engines do not return the same answer twice, so we ran our own audit twice, about a minute apart, and kept both records.

 Run ARun B
Visibility score00
Answers naming Bungad0 of 80 of 8
Competitors namedProfound 2, Peec AI 2, Otterly 2, AthenaHQ 1, Scrunch AI 1Identical
ahrefs.com citations34
blog.hubspot.com citations54
peec.ai citations42

The conclusion we draw, and publish: headline metrics and brand tallies reproduce; per-domain citation counts do not. Treat a single run’s per-domain figures as estimates. Treat a single run of any kind as an anecdote — the signal is the trend across months on a fixed question set.

How to run this yourself

Nothing here is proprietary. If you would rather not pay anyone, this is the method.

  1. Fix a question set and write it down. The questions a buyer actually asks before choosing someone like you, in their phrasing. At least two where price is the question and two you expect to lose. Store it verbatim — it is the denominator of every number that follows.
  2. Name your competitors explicitly, with their domains. Without that list you learn whether you were named, but not who beat you, which is the more actionable half.
  3. Ask every question to every engine you can reach, through an API rather than a chat window, so the run is reproducible and free of personalisation. Set a timeout and allow a small number of retries.
  4. Record failures separately and never as absences. Count errors and empty responses in their own column, keep them out of the metrics, and mark a run containing one as incomplete so it cannot become a baseline.
  5. Parse each answer for three things: whether your brand is named, its position among the brands named, and every cited source domain with a flag for whether you own it.
  6. Compute the three metrics and the weighted score using the arithmetic above.
  7. Store the whole run and repeat monthly, written atomically and never overwritten, comparing only against your own previous runs on the same question set.

Our own run is a script in our repository rather than a spreadsheet, and the stored records behind our published score are the raw output of it.

What this method does not measure

Every limitation below is real and we would rather state them than have a buyer find them.

Common questions

How is an AI visibility score calculated?

Ours combines three measures: mention rate at 50 percent, citation share at 30 percent, and a position component at 20 percent, multiplied by 100 and rounded. The position component gives an answer 1.0 when you are the first brand named, 0.75 for second, 0.5 for third, 0.25 for fourth and 0 from fifth onwards, then averages that across every answer analysed — not only the ones that named you.

What happens if an engine call fails during a measurement run?

It is recorded as a failure and excluded from the metrics entirely. A failed call is never counted as ‘not mentioned’, because that would make the score a measure of the vendor’s reliability rather than your visibility. A run containing any failure is marked incomplete and stored separately so it can never become the baseline for a trend.

Can two AI visibility scores from different vendors be compared?

No. Weightings differ, question sets differ, and engine coverage differs, so two vendors scoring the same brand are not performing the same measurement. A score is only meaningful against itself, on a fixed question set, over time. Treat any cross-vendor comparison of headline scores as meaningless.

What does this method not measure?

It samples a question set rather than counting every time you were cited to anyone. It does not weight questions by how often they are really asked, because no engine publishes that. It covers one engine automatically today, Perplexity, so it says nothing about ChatGPT or Gemini. It does not account for personalisation or chat memory. And sentiment is recorded but deliberately kept out of the headline score.

See the method applied to your domain

Enter your domain. We ask Perplexity three of your buyers’ questions and score them exactly as described above.

3 questions on Perplexity, free. A domain checked in the last week is served from that stored run rather than asked again, and the daily free allowance resets at midnight UTC.