Methodology

How we measure AI visibility

Your visibility score is a percentage, and a percentage is easy to doubt. This page is the method behind it — what we ask, what we keep, how the number is worked out, and what it does not tell you.

What we ask

A check is a batch of questions put to four assistants. You write the questions.

The prompts are yours. The product will suggest some from your Search Console queries and your saved keywords, but nothing is tracked until you add it, and there is no hidden prompt set running behind the one you can see.

Every check sends each of your prompts to ChatGPT, Claude, Gemini and Perplexity. Web search is on for all four. An assistant answering from memory tells you what it read months ago; we want the answer someone gets today, which means the model has to look.

Searches are geolocated to the country set on the configuration. Three of the four accept a country; Gemini's endpoint rejects one, so its answers are not geolocated. That is a real gap and we would rather write it here than let you assume otherwise.

Each prompt is asked of each assistant once per check. No averaging across repeats, and no re-asking a question whose answer we did not like. The model version that answered is recorded on every answer, so a run stays readable after the versions move on.

What we keep

The answers are the product. They are stored as written, and they are what every number links back to.

The answer, in full

The complete text, as the assistant wrote it. Not a summary, not a truncation, not a sentiment label applied at collection time and kept instead of the words.

Who wrote it, and when

The assistant, the model version we asked for, and the timestamp of the check.

Every citation

For each source the answer pointed at: the URL, the page title and the domain.

Nothing, when there was nothing

An answer that came back empty is discarded rather than recorded as an absence. A model that ran out of budget before writing anything has told you nothing about your brand, and counting it as a miss would quietly push the score down.

How we decide you were named

Two different rules, because prose and URLs do not behave the same way.

In the prose, we match your brand name, any aliases you add, your domain, and the bare label of that domain — so a configuration on example.com also matches a plain “Example”. Matching ignores case and respects word boundaries, so a brand called HP is not found inside “sharp”.

Very short terms are refused outright: a one-character alias, or a domain label under three characters, would match nearly every answer ever written. A false mention is worse than a missed one on a number people screenshot for a client.

In citations the rule is looser — a plain substring, applied to the URL and the page title. Brand names turn up inside slugs, where word boundaries do not apply. So an answer that linked a page about you counts as naming you even when the prose never does.

Position is the rank of your first mention among all the brands an answer names: you and the competitors you listed, in the order they appear. An answer that only linked you has no position, because a link is not a recommendation and reporting one as a rank would overstate it.

How the percentage is worked out

Answers that named you, divided by answers in the period.

That is the whole calculation. Nothing is weighted by assistant, by prompt, or by how prominently you appeared — those are reported separately, not folded into the score.

It is rounded to a whole percent. The underlying figure is a ratio of small counts, and a decimal place would imply a precision it has not got.

A period with no answers in it has no score. It shows as a dash, never as 0% — a brand whose first check has not landed is not at zero, and a dashboard that says so is lying to you.

Every score is shown with the counts behind it, and every count opens the answers it came from.

What it does not tell you

The limits are part of the method. A number is only worth defending if you know where it stops.

It is one sample

Each question is asked once per assistant per check, and assistants do not answer the same question the same way twice. A few points of movement between checks is as likely to be the model varying as anything you changed. Asking each prompt several times and averaging would be the fix; until that exists, saying so is the honest alternative to presenting a sample as a measurement.

It is a share of the answers we asked for, not of the internet

You choose the prompts, so the figure describes your prompt set and nothing wider. Adding or removing prompts moves the number without anything having changed outside the product. Comparisons are only meaningful across a stable set of questions.

A mention is not a visit

An answer naming you says nothing about whether anyone read it or clicked through. There is no impression count behind an AI answer, from us or from anyone else.

We count naming, not approval

A cited page about you counts as a mention whether it is complimentary or not. Read the answers for that — which is most of why we keep them.

The ground moves

Web search results change hour to hour, and the assistants ship new versions on their own schedule. A difference between two checks can come from either. Recording the model version on each answer at least lets you see when one of those changed.

Why this page exists

The common complaint about this category is not that the numbers are wrong. It is that nobody can check them: a report says 34% and the client asks where that came from, and there is no answer that ends the conversation. If you resell this inside a retainer, you are the one who has to defend it.

So the method is published and the raw answers are kept. Every number links back to the answers behind it — and where a number has a limit, the limit is written down next to it rather than left for someone to discover in front of a client.

See what AI visibility looks like in the product

Stay in the loop

Product updates, new features, and the occasional behind-the-scenes.