Guide · Measurement
The GEO measurement guide
To measure GEO, ask a fixed set of buyer questions on each AI engine every day, record who each answer names and links, and report each rate with the number of answers behind it. Keep branded and unbranded questions apart, show unmeasured engines as gaps, not zeros, and call a change real only when it clears a significance test.
7 days free · card required
Questions tracked
- ChatGPT
- 61
- Perplexity
- 61
Answers read
- ChatGPT
- 2,274
- Perplexity
- 2,100
Named us, 3 branded questions
- ChatGPT
- 90 of 90
- Perplexity
- 90 of 90
Named us, 58 unbranded questions
- ChatGPT
- 0 of 2,184
- Perplexity
- 0 of 2,010
Linked attensira.com
- ChatGPT
- 142
- Perplexity
- 77
Days with a reading
- ChatGPT
- 23 of 31
- Perplexity
- 23 of 31
Gemini, Claude, AI Overviews
- ChatGPT
- not measured
- Perplexity
- not measured
Last updated
Key facts
What does this guide answer?
Each of these stands on its own, without the paragraph before it.
- An AI visibility number is a sample from a system built to vary, so it means nothing without the questions, engines, window and number of answers that produced it.
- A cell nobody measured reads as a gap, never as zero: reporting an engine you do not track as 0% invents a failure nobody observed.
- Share of voice in Attensira is the share of answers that named you, a rate rather than a pie, so it does not add up to 100% across brands and does not move when you edit your competitor list.
- Branded questions name you almost every time and unbranded ones decide whether buyers find you, so mixing them produces a number that describes neither.
- Nobody can yet tie an AI mention to a visit, a signup or revenue; any tool that claims it is reporting a correlation with a causal label.
Which chapter answers my question?
- 1. What AI visibility tools can and cannot measure What can an AI visibility tool actually observe, and what is it guessing at?
- 2. How many AI answers make a sample? How many times do I have to ask before an AI visibility number means anything?
- 3. Mentions, citations and share of voice What is the difference between being mentioned, being cited and having share of voice in AI answers?
- 4. How to build a prompt set for AI visibility How do I choose the questions to track so the resulting numbers actually mean something?
- 5. What a defensible AI visibility report shows What has to be in an AI visibility report before I should believe the numbers in it?
What does honest GEO measurement look like on a real brand?
What does honest GEO measurement look like on a real brand?
It looks less flattering than most dashboards, and more useful. The scorecard at the top of this page is ours. Attensira tracks its own site, attensira.com, the same way it tracks a customer's, and the scorecard covers the 30 days to 4 October 2026, read over the Attensira MCP that morning: 61 questions, 2,274 answers from ChatGPT and 2,100 from Perplexity, with Gemini, Claude and Google AI Overviews not measured at all. The days row matters as much as the counts: readings landed on 23 of the 31 days in the window, so the rates describe those days and say nothing about the eight days without one.
Every line is a count you could check by opening the stored answers. Read top to bottom, it tells a plain story. When a buyer asks about us by name, both engines know who we are. When a buyer asks a category question, such as "best GEO tools", neither engine names us. On that question ChatGPT named Otterly AI in all 57 of its answers and Perplexity named Profound in 35 of 57; we were on none of the pages either engine cited.
A summary line such as "named in 90 of 2,274 answers" would be true and misleading at once, because all 90 came from three branded questions. The split is the finding.
This guide is about producing that kind of scorecard for your own brand: what to count, how much of it you need, which questions to ask, and how to report it without letting a number say more than the evidence. The five chapters go deep on each part. This page is the map.
What is GEO measurement for?
What is GEO measurement for?
To decide what to do next, and later to know whether it worked. Every design choice below follows from those two jobs.
Deciding what to do needs to know where you are absent and who is present instead. That is a question about specific buyer questions, on specific engines, compared with specific competitors. It does not need decimal precision. It needs the right questions and an honest zero.
Knowing whether it worked needs before-and-after comparisons on the questions a change was meant to affect, with enough answers on both sides to tell a movement from noise. It needs depth, discipline about the question set and a significance test.
A measurement programme that serves neither, such as a single score on a weekly slide, is reporting, not measurement. It tells you how you are doing in a way that does not tell you what to do.
What exactly do you count?
What exactly do you count?
Four units, defined before any number is computed.
- A run: one question, sent to one engine, for one country, at one moment, producing one answer. It either named you or it did not; it either linked your domain or it did not.
- A cell: one combination of question, engine and country.
- A window: the days a rate is computed over. Only days with readings count.
- A denominator: successful runs only. A run that timed out is not evidence you were left out, so it is set aside and kept for debugging.
Every rate is then the runs where something happened divided by all successful runs in the window. An answer that names you nine times counts once. That is what keeps rates comparable across questions, engines and months.
Where you read matters as much as what you count. Attensira reads the consumer surfaces of ChatGPT, Perplexity, Google AI Overviews and Gemini the way a person would, from a browser in the country being tracked, and uses model APIs only as a labelled fallback. Claude has no consumer reader and is read through its API with the country stated in the question. Consumer and API runs are never averaged together. A tool that reads only APIs is measuring something close to what buyers see, not the thing itself.
Chapter one, what AI visibility tools can and cannot measure, draws the line between observation and estimate in detail.
What does one pooled rate hide?
The same 30 days of ChatGPT answers, counted per kind of question. Every branded answer named us and no unbranded one did. Pooled, that is 4.0%: a rate that describes neither.
- branded answers named attensira.com
- 90 of 90
- 3 branded questions
- unbranded answers named attensira.com
- 0 of 2,184
- 58 unbranded questions
- pooled: 90 of 2,274 answers
- 4.0%
- n=2,274 answers
Analystattensira.com workspace, read over the Attensira MCP on 2026-10-04, ChatGPT · ChatGPT · to Which numbers matter?
Which numbers matter?
Five, each answering a different question.
Share of voice
- What it answers
- In what share of answers were you named?
- Shape
- A rate with its count; does not sum to 100% across brands
Citation rate
- What it answers
- In what share of answers did the engine link your domain?
- Shape
- A rate with its count, same denominator
Source share
- What it answers
- Which domains supply the answers in your category?
- Shape
- A true share of all citations; sums to 100%
Competitors' share of voice
- What it answers
- Who is named when you are not?
- Shape
- Same rate, same denominator, per brand
Position among tracked names
- What it answers
- Where are you named, when you are named?
- Shape
- An average, always with its base
Two numbers are missing on purpose. There is no single visibility score, because a blend of weighted ingredients cannot tell you which ingredient moved. And there is no "AI impressions" figure, because no engine publishes how many people saw an answer; Google even folds appearances in AI Overviews and AI Mode into ordinary Web search traffic in Search Console.
Chapter three, mentions, citations and share of voice, explains why the first two so often disagree. On ChatGPT, our pricing page was attached to 42 of 57 answers to a pricing question that never once named us.
How many answers do you need?
How many answers do you need?
More than a weekly spot check, fewer than most people fear, and it depends on the claim.
AI engines vary by design. Ask twice, get two answers. So a rate is an estimate with an error bar, and the error bar is set by the number of answers behind it. The NIST/SEMATECH handbook's Wilson interval makes this concrete on three real counts from our workspace: at 1 of 6 answers the 95% interval runs from 3 to 56 in 100, so you know almost nothing; at 1 of 57 it runs from 0.3 to 9, so you know it is rare; and at 90 of 2,274 it runs from 3.2 to 4.8, so you know it well. Chapter two's table shows more.
The pattern holds everywhere: single questions on single engines are noisy; pooled numbers are steady. So make per-question claims sparingly, pool by topic or engine when you need a firm number, and always print the count beside the rate. Attensira takes three samples per daily reading, issued together (n=3), on Growth and Business and one on Starter, and switches the headline to the count, such as 3 of 12, when there are fewer than 20 answers.
Chapter two, how many AI answers make a sample, has the arithmetic and the trade-off between more questions and more answers per question.
Which questions should you track?
Which questions should you track?
The ones your buyers ask before they know your name, in their words. This is the decision that matters most, because every number above is an average over the set.
Three rules carry most of the weight.
- Keep branded questions in their own group. Our scorecard shows why: three branded questions produced every mention we had. Mixed into the total, they make a brand that is absent from its category look present.
- Write the set down before looking at results, with the source of each question: a sales call, a support ticket, a Search Console query, a competitor's page that answers cite.
- Date every change. A new question does not backfill, so adding questions changes the average with nothing in the world changing.
Chapter four, how to build a prompt set, works through our own set, flaws included.
Who do the engines name when we are not named?
On the category question "best GEO tools", each engine had a clear favourite and neither named us once. The split by engine is why a pooled number hides the finding.
ChatGPT
- Most-named brand
- Otterly AI, 57 of 57
- Named Attensira
- 0 of 57
Perplexity
- Most-named brand
- Profound, 35 of 57
- Named Attensira
- 0 of 57
How do you know a change worked?
How do you know a change worked?
By comparing like with like, past the noise, and saying so when you cannot tell.
The method is a before-and-after on the questions the change was meant to affect. Attensira does it automatically for work that ships: it re-reads the attached questions at 7, 14 and 30 days after a change goes live, compares a week before with a week around each date, and first checks that the change is actually on the live page. A difference is called a movement only when it clears a two-proportion z-test at 95% confidence. Otherwise the honest answer is "nothing we can prove yet".
Three traps catch most teams:
- Calling a change on too few answers. At one sample a day, a week holds seven answers per cell, which only detects large swings.
- Changing the question set inside the window. Our own daily ChatGPT rate went from 0 of 81 to 9 of 132 on the day our branded questions started. The test said "real". The cause was our set.
- Reading a movement as proof of cause. A movement past the test means the number moved by more than noise. It does not rule out everything else that changed in the same weeks.
What does a change that passes the test, but is not a win, look like?
Our own daily ChatGPT reading, the day before and the day our three branded questions were added. The test called the jump real. The cause was the question set, not the world, which is why every change to the set is dated.
Named us
- Day before
- 0 of 81
- Day the branded questions started
- 9 of 132
Rate
- Day before
- 0.0%
- Day the branded questions started
- 6.8%
Z-test at 95%
- Day before
- baseline
- Day the branded questions started
- passed: called real
What can nobody measure yet?
What can nobody measure yet?
Four things, whichever tool you use.
- Who asked. Tools ask their own questions; real prompts are private.
- How many people saw an answer. No engine publishes it.
- What happened next. There is no identity link between an answer and a later visit or sale. You can count assistant-referred visits in your own analytics and you can measure answers, but joining the two is inference.
- Why the engine chose what it chose. You see which pages an answer leaned on, not the ranking function.
Say these out loud in every report. A report that is honest about its edges is believed about its middle.
Does one engine read us more than the other?
Over the same 30 days ChatGPT linked attensira.com almost twice as often as Perplexity, while the two named us at the same rate. One engine reads us more; neither recommends us more.
- of ChatGPT answers linked attensira.com
- 6.2%
- 142 of 2,274 answers
- of Perplexity answers linked attensira.com
- 3.7%
- 77 of 2,100 answers
- gap in naming us (ChatGPT 4.0%, Perplexity 4.3%): not provable
- 0.3 pts
- n=2,274 and n=2,100
Why measure each engine separately?
Why measure each engine separately?
Because they are different products that disagree, and an average across them hides the disagreement you need to act on.
Our own data shows it on one question. Asked "AI search visibility software", ChatGPT named Ahrefs in all 57 of its answers in the month. Perplexity's most-named brand on the same question was SE Ranking, in 27 of 52. The two engines were not giving slightly different versions of one answer; they were recommending different shortlists.
They also lean on different sources. Across all 61 of our questions, the domains ChatGPT cited most were help.openai.com and developers.google.com: the platforms' own documentation. Perplexity's were semrush.com, linkedin.com and blog.hubspot.com, with reddit.com close behind. Attensira's per-engine guidance draws the same line from a wider base: ChatGPT tends to lean on a brand's own docs and pricing pages, Perplexity on threads, videos and roundups. The move that wins one engine may do nothing on the other.
The same split shows up in what the engines do with our own pages. ChatGPT linked attensira.com in 142 of its answers and Perplexity in 77, a difference that clears a significance test easily, while the two engines named us equally often. One engine reads us more; neither recommends us more. Without the per-engine split, that difference disappears into an average and the obvious next step, finding out what ChatGPT reads on our site that Perplexity does not, never gets taken.
Three practical consequences:
- Report per engine first, pooled second. A pooled rate is a useful headline; it is never a plan.
- Expect changes to land on one engine before another. Each engine keeps its own index on its own schedule, so a fix can show on Perplexity weeks before ChatGPT, or the reverse.
- Do not compare engines you read differently. A consumer reading and an API reading of the same engine are different measurements. If one engine is read through its API, say so next to its numbers.
How often should you look at the numbers?
How often should you look at the numbers?
Less often than the data arrives. Readings are daily because samples need to accumulate, not because a daily number is meaningful.
A cadence that works:
- Daily: nothing to read, unless an alert fires. Today is always partial, because each question is read once a day on its own slot and some slots have not opened yet. A "drop" at eleven in the morning is usually the morning.
- Weekly: glance at the competitors named on your most important questions, and at anything flagged as a real change. Expect most weeks to say "nothing we can prove yet" on a single-sample plan.
- Monthly: the report. Thirty days pools enough answers for per-topic rates to be worth reading, and lines up with how budgets are reviewed.
- After each change ships: the before-and-after at one, two and four weeks.
Windows should be whole days and the same length on both sides of any comparison. Read the days actually sampled too: our month had readings on 23 of 31 days, and a window with half its days missing is not the same evidence as a full one, even when the count looks healthy.
Which mistakes make AI visibility numbers wrong?
Which mistakes make AI visibility numbers wrong?
Eight, and we have made several of them ourselves.
- Mixing branded and unbranded questions. The branded ones name you nearly every time and lift the average. Ours supplied every mention we had.
- Reading a percentage without its count. One of three and three hundred of nine hundred are the same percentage and very different evidence.
- Showing an unmeasured engine as zero. It invents a failure and hides a coverage gap.
- Counting failed runs as "not mentioned". An engine outage then looks like a collapse in visibility you caused.
- Changing the question set mid-window. The average moves with nothing in the world moving.
- Using a pie share of voice and then editing the competitor list. Your number moves with your settings.
- Trusting mention detection blindly on a common-word brand. Every use of the ordinary word counts, so the rate reads high.
- Treating a citation as a recommendation. An engine can lean on your page and name someone else, as ChatGPT did with our pricing page.
Each of these produces a number that is precise, repeatable and wrong. None of them is fixed by more data; each is fixed by a rule.
Where does crawler data fit?
Where does crawler data fit?
Beside the answer data, never inside it. AI crawlers fetch pages; answer engines answer questions. They are separate pipelines on separate schedules, and a rise in one does not predict the other.
On attensira.com in the same month, Meta's training agent made 108,487 of roughly 120,000 AI crawler requests. OpenAI's agents made 7,060 and PerplexityBot 595. Not one of those numbers tells you whether an answer named us. What crawler data does tell you is coverage: a section the search agents never fetch cannot become a fresh citation, and a page a user-triggered agent fetched is one a person just asked an assistant about.
Count crawlers at the server or the edge, because they do not run JavaScript and never reach a browser analytics script, and treat the counts as directional, because a user-agent string is self-reported. The AI crawler guide covers reading them properly.
How should you report it?
How should you report it?
As a short list of claims, each with its evidence attached.
- The question set, engines, countries and window, and the days actually read.
- Each rate with its count, branded and unbranded apart.
- Unmeasured engines listed as not measured.
- Competitors named instead of you, on the questions that matter most.
- Changes called real only past the significance test, with the windows compared.
- A dated log of every change to the question set.
Chapter five, what a defensible AI visibility report shows, builds a full report from our own data, including the parts that do not flatter us.
What does a report built on these rules look like?
Our own month, one line per claim: the set, the engines, the window and the days read, each rate with its count, branded and unbranded apart, the gaps named and the change judged.
| Line | Reading |
|---|---|
| Question set | 61 questions: 3 branded, 58 unbranded |
| Engines | ChatGPT and Perplexity |
| Not measured | Gemini, Claude, Google AI Overviews |
| Days with a reading | 23 of 31 |
| Named us, branded | 180 of 180 answers |
| Named us, unbranded | 0 of 4,194 answers |
| Change vs the 30 days before | nothing we can prove yet |
Get this scorecard for your own brand
7 days free · card required
What should you ask any AI visibility tool?
What should you ask any AI visibility tool?
Ten questions separate measurement from decoration. Ask them of any vendor, including us.
- Do you read the consumer product people use, or the model's API?
- How many samples per question per engine per day, and are they taken at the same moment?
- Is every rate shown with the number of answers behind it?
- Is a failed run excluded from the denominator or counted as "not mentioned"?
- Does an engine I do not track show as zero or as not measured?
- Is your share of voice a rate or a pie, and what is its denominator?
- What test does a change have to pass before you call it a change?
- Can I read the stored answer behind any number?
- How do you detect a mention, and where does that method go wrong?
- What do you not measure, in writing?
Attensira's answers are in its public documentation: consumer surfaces first; one sample on Starter and three concurrent samples above it; counts on every rate; failed runs excluded; unmeasured shown as a dash; share of voice as a rate; a two-proportion test at 95%; every answer stored verbatim; whole-word matching that reads common-word brands high; and a limitations page.
What happens after the measurement?
What happens after the measurement?
Measurement only matters if someone acts on it. That is the gap most teams fall into: the dashboard says where you are absent, and nobody has the time to do the work that changes it.
Attensira is built to close that gap. A crew of AI agents reads these numbers every day, finds which pages decide the answers you lose, and does the work: fixes to your own pages, new articles, and placements on the third-party pages the engines cite. You approve what ships, and each change is re-read against the same questions so you can see whether it moved anything. Each re-read, at 7, 14 and 30 days, first checks that the change is live, then compares a week before it with a week around that date.
You do not need Attensira to apply this guide. You need a fixed question set, enough answers, honest zeros and a test for change. If you would rather have the measurement and the work done for you, that is what the crew is for.
What do the terms in this guide mean?
What do the terms in this guide mean?
| Term | Meaning here |
|---|---|
| Run | One question to one engine for one country at one moment |
| Cell | One question, engine and country combination |
| Share of voice | Answers that named a brand divided by all answers read |
| Citation rate | Answers that linked a domain divided by all answers read |
| Source share | A domain's citations divided by all citations |
| Not measured | Nothing was read; never the same as zero |
| Nothing we can prove yet | A difference inside the noise for the sample involved |
| Branded question | A question that contains your brand name |
What else do people ask?
Can you actually measure AI search visibility, or is it guesswork?
How many answers does a rate need before it means anything?
Why does one tool show a different share of voice from another?
Should an engine I do not track show as zero?
Can any tool prove an AI mention produced revenue?
How do I know whether a change I made to a page worked?
Where do these facts come from?
10 sources, 16 statements: each statement with the page it came from and the day it was checked.
Attensira reads the consumer surfaces of ChatGPT, Perplexity, Google AI Overviews and Gemini the way a person would, uses model APIs only as a labelled fallback, and never averages consumer and API runs together.
docs.attensira.com · retrieved
Attensira reads each prompt, model and country at most once per daily slot, taking one sample on Starter and three samples per daily reading, issued together (n=3), on Growth and Business.
docs.attensira.com · retrieved
Every delta Attensira shows has passed a two-proportion z-test at 95% confidence; otherwise it reports no change it can prove.
docs.attensira.com · retrieved
Attensira shows an unmeasured value as a dash and returns null for it, and shows a measured zero as 0.
docs.attensira.com · retrieved
Attensira's share of voice is successful runs naming the brand divided by all successful runs, a rate that does not sum to 100% across brands.
docs.attensira.com · retrieved
Attensira re-reads the tracked prompts attached to a shipped change at 7, 14 and 30 days, compares a week before with a week around each date, and checks the change is live before measuring.
docs.attensira.com · retrieved
Attensira cannot tell you that a mention produced a visit, that a citation produced a signup, or that any of it produced revenue.
docs.attensira.com · retrieved
Attensira computes no visibility score.
docs.attensira.com · retrieved
“There is also no visibility score in Attensira.”
Google counts sites appearing in AI Overviews and AI Mode in the overall Web search traffic in Search Console.
developers.google.com · retrieved
Google documents that AI Mode and AI Overviews may use different models and techniques, so the set of responses and links they show will vary.
developers.google.com · retrieved
“AI Mode and AI Overviews may use different models and techniques, so the set of responses and links they show will vary.”
The NIST/SEMATECH e-Handbook gives the Wilson score interval for a proportion and notes its lower limit cannot be negative.
itl.nist.gov · retrieved
Read over the Attensira MCP on 4 October 2026, 30 days: the attensira.com workspace tracked 61 prompts on ChatGPT and Perplexity, read 2,274 and 2,100 answers, was named in 90 on each engine (all on its three branded prompts), was linked in 142 and 77, and took readings on 23 of 31 days; the answers carried 97,149 citations, 1,442 of them to Attensira's own domains.
Read over the Attensira MCP on 4 October 2026, 30 days: on 'AI search visibility software' ChatGPT named Ahrefs in 57 of 57 answers while Perplexity's most-named brand was SE Ranking, in 27 of 52; ChatGPT's most cited domains were help.openai.com and developers.google.com, Perplexity's semrush.com, linkedin.com and blog.hubspot.com.
docs.attensira.com · retrieved
Attensira's per-engine guidance, from a static table until a workspace has enough of its own readings, says ChatGPT answers lean on a brand's own docs and pricing pages, Claude on review sites and listicles, and Perplexity, Gemini and Google AI Overviews on threads, YouTube and roundups.
docs.attensira.com · retrieved
Read over the Attensira MCP on 4 October 2026, 30 days: Meta-ExternalAgent made 108,487 of about 120,000 AI crawler requests to attensira.com, OpenAI's agents 7,060 and PerplexityBot 595, counted by user agent and not verified.
docs.attensira.com · retrieved
Read over the Attensira MCP on 4 October 2026, 30 days: on 'best GEO tools', ChatGPT named Otterly AI in 57 of 57 answers and Perplexity named Profound in 35 of 57; Attensira was named in none and was on none of the pages the answers cited.
docs.attensira.com · retrieved
Want software that does your AI-search visibility work, with you in control of every change?
7 days free · card required
