[email protected]Telegram [TBD: Telegram]

Blog

How to Measure AI Visibility When AI Answers Keep Changing

If you want to know how to measure AI visibility, start with one fact: AI answers change between runs, models and dates. A single screenshot shows what one answer looked like once; it doesn't measure anything. A measurement is a fixed set of prompts, run several times, with the conditions written down. Below: the protocol, the metrics, and a template for the table.

Download measurement template

Checked against Google's documentation on October 20, 2026.

A row of six identical run cards each marked with a tick or a dash, beside a plain unlabeled ruler scale
Contents
  1. 01Why one answer isn't a measurement
  2. 02The measurement protocol
  3. 03Metrics worth tracking
  4. 04LLM share of voice
  5. 05Why answers change
  6. 06The measurement template
  7. 07Common mistakes
  8. 08If you don't want to run it yourself
  9. 09FAQ

Why one answer isn't a measurement

Ask an AI engine a question, see your brand in the answer, and it feels like a result. It's an observation. Here is what you'll run into as soon as you repeat it:

A measurement has to survive a repeat, or it's an anecdote. That's the point of everything below: measuring without fooling yourself. If you also wonder how this differs from classic SEO reporting, see how GEO and SEO measurement differ.

Tally · same prompt, 8 runs

[engine] · [model] · [date range]Answers change from run to run, so we count repeats instead of trusting one screenshot.

Fig. 1 The same prompt, eight runs: the brand is named in some runs and not in others. Illustration of the method, not real data.

The measurement protocol

This is the protocol we use at GeoAeoLab. It has ten steps, and each one can be repeated next month under the same conditions. If you want to know how to measure AI visibility in a way you can repeat, don't skip steps; each one removes a way to fool yourself.

Define the cohort

Write a fixed set of prompts in the language your buyers use. Cover the situations that matter:

  • finding a vendor
  • comparing options
  • looking for alternatives
  • asking about price
  • solving a specific problem

Give the set a version. Any change to any prompt makes it a new version. Treat your set as a hypothesis, not as measured demand.

Keep prompts unbranded and verbatim

Don't put your brand name in the prompts. A buyer who doesn't know you yet won't type it. Enter each prompt word for word, with no edits between runs. If you want branded checks, keep them as a separate group and never mix them into the main share.

Fix the conditions

Decide and record these before the first run:

engine
[engine]
model
if the interface shows it (otherwise "not shown")
date
[date]
market and language
for example US / en
prompt set version
[prompt set version]
account state
signed in or not, memory or personalization on or off

We record them because they can differ between runs.

Choose engines

A common base set is ChatGPT, Perplexity and Gemini. You can add AI Overviews and AI Mode in Google (see Google's guidance on AI features). Each engine is its own series, and results from one engine don't carry over to another. If you only want to track ChatGPT brand mentions on your own, run the same protocol on one engine, and don't generalize to the others.

Repeat every prompt

Run every prompt on every engine several times within the same date window. Our protocol uses at least three runs per prompt per engine, and we start each run in a fresh chat so earlier turns don't carry over. More runs give a steadier picture; how many you need is something you decide from the spread you see.

Log every run in full

One row per run. Don't skip rows and don't tidy up answers you don't like. The columns are in the template below.

Count across runs, not per screenshot

Calculate the metrics over all runs in the period. The result for a prompt is "named in k of n runs", not "named" or "not named".

Report the spread

Next to each metric, show how much it varied: in how many of the n runs the result was the same. A change smaller than the spread is noise, not progress.

Compare like with like

Compare two periods only if engine, prompt set version, market and language, and account state match. If they don't, write "not comparable". Same conditions, next month. Put model changes, new engine features and edits to your site in Notes (see why answers change).

Start with a baseline

Your first measurement is a baseline, not a grade. If your brand or site is new, it may not appear in the answers at all, and that is a result too. The most useful output of a first run is the list of competitors named and sources cited. Or have us run the baseline.

AI search visibility metrics worth tracking

Calculate every metric across all runs of the period, separately for each engine and prompt set.

MetricDefinition
Mention rate

the share of runs in the period where your brand is named.

Citation rate

the share of runs where the answer links to a page on your site. A mention is not a citation; count them separately. When ChatGPT names you but links elsewhere, see ChatGPT brand citation mismatch.

Spread between runs

how much the result for one prompt differs across repeats within the same period.

Cited sources

which domains and pages the answers cite across the prompt set: yours, competitors' and third parties'.

Share of voice gets its own section below.

Don't collapse these into a single "visibility score". One number glues engines together and hides the spread. If you also want to know how answers describe you, mark excerpts by hand as accurate or not; no scales or points needed.

What LLM share of voice measures, and when it doesn't

LLM share of voice (sometimes called share of model) is the portion of brand mentions that belongs to you, out of all mentions of the brands you chose to track (you plus competitors) in answers to one prompt set on one engine.

LLM share of voice = your brand's mentions ÷ mentions of all tracked brands

(for one prompt set, one engine, one period). The number means nothing when:

  • the prompt sets, or versions of the set, differ
  • engines are added together
  • competitors were picked after you looked at the answers

To see how we define these metrics in a tracking setup, read our definitions in AI visibility tracking.

Why answers change between runs

Some changes you can't control and can't see. So write down what you can see: a new model in the interface, a new engine feature, edits to your site, changes at competitors you noticed. Put each in the Notes column of the template, with a date. Then when you compare periods you have something to explain a shift, or you can say honestly "not explained". We don't know why an engine changed its answer; we log what we can see. The causes in detail: AI visibility prompt volatility.

The measurement template

One row is one run of one prompt on one engine.

Column

What goes in it

Why it matters

Prompt ID

Your own code for the prompt in the set

Links runs of one prompt across periods

Prompt text

The exact text as entered

Any edit makes it a different prompt

Prompt set version

The version of the set

Only compare identical versions

Engine

The platform you ran it on

Each engine is its own series

Model

The model if shown, otherwise "not shown"

A model change can explain a shift

Date

Date of the run, plus time if a series spans days

Defines the period's date window

Run #

Repeat number for this prompt on this engine

Gives you k of n

Market / language

For example US / en

Don't mix markets

Account state

Signed in or not; memory or personalization on or off

A condition to hold constant

Target brand named?

Yes or No

Basis of mention rate

Brands mentioned

Every brand named, in order of appearance

Basis of share of voice

Cited links

URLs the answer links to

Basis of citation rate and cited sources

Answer excerpt

A short quote where your brand is named or should be

Lets you check and mark how you're described

Notes

What changed: new model, engine feature, site edits

Explains shifts between periods

Required

on every row: engine, model (or "not shown"), date and prompt set version.

A blank spreadsheet with these columns: no data, no sample results.

Common mistakes

  • Treating one screenshot as the result.

    Repeat and count instead. See step 5.

  • Putting your brand in the prompt.

    It skews the answer toward you. See step 2.

  • Editing prompts between periods without a new version.

    You're no longer comparing the same thing. See step 1.

  • One number for all engines.

    Each engine is its own series. See step 4.

  • Mentions and citations in one column.

    They answer different questions. See metrics.

  • Comparing periods with different conditions, or calling a change smaller than the spread progress.

    See step 9 and step 8.

If you don't want to run it yourself

Frequently asked questions

What is LLM share of voice?

It's the share of brand mentions that belongs to you among the brands you chose to track, in answers to one prompt set. It's only meaningful within one prompt set and one engine. See the definition above.

How many times should I run each prompt?

Our protocol uses at least three runs per prompt per engine. More runs make the picture steadier, and you can decide how many you need from the spread you see. See step 5 and step 8.

Should my brand name be in the prompts?

Not in your main prompt set. Run branded checks as a separate group so they don't inflate your share. See step 2.

Can I compare results from ChatGPT and Perplexity?

Side by side, yes; as one combined number, no. Results from one engine don't carry over to another, so keep each engine as its own series. See step 4.

Why did our visibility change when nothing changed on our site?

Answers change between runs, models and dates, so a shift isn't always about your site. First check whether the change is bigger than the spread and whether the conditions match. Then look at your Notes column. See why answers change and step 9.

Do I need a paid tool to measure AI visibility?

No. The protocol works in a spreadsheet. A tool can speed up runs, but check that it logs engine, model, date and every run. For Google specifically, its documentation states: "No third-party tool has access to our internal ranking or AI systems" (Google's guide to generative AI search).

Can GeoAeoLab run this for us?

Yes. We run the same protocol as AI visibility tracking, or as a one-time baseline audit. We don't guarantee results in AI answers.

Download the measurement template

Start with the table and a first run of your prompt set; that's how to measure AI visibility without guessing.

Or start with an AI visibility audit.