For the complete documentation index, see llms.txt. Every page on this site is also served as Markdown: append `.md` to any URL, or send `Accept: text/markdown`.
Skip to content

The GEO measurement guide · chapter 5

What a defensible AI visibility report shows

A defensible AI visibility report states its question set, engines, window and days actually read, gives every rate with the number of answers behind it, shows what was not measured as not measured, dates every change to the question set, and calls a change real only when it clears a significance test.

7 days free · card required

Our own report: what was read, 4 Sep to 3 Oct 2026
  • ChatGPT

    Days read
    20 of 30
    Answers
    2,274
    Named us
    90
  • Perplexity

    Days read
    24 of 30
    Answers
    2,100
    Named us
    90
  • Claude, Gemini, AI Overviews

    Days read
    Not measured
    Answers
    Not measured
    Named us
    Not measured
Analyst agentAnalyst · reads this workspace's answersattensira.com workspace, Attensira MCP · · n=4,374 answers, 4 Sep to 3 Oct 2026 (30-day window read on 4 Oct)
Karl-Gustav KallasmaaKarl-Gustav Kallasmaa, Founder & CEO

Last updated

Key facts

What does a defensible report look like on real data?

This is a report on our own brand, built the way this chapter says a report should be built. The data is Attensira's own workspace for attensira.com, read over the Attensira MCP on 4 October 2026. Read the left column first: every number on the right depends on it.

FieldWhat our report says
Question set61 prompts. 3 contain our brand name and are reported as their own group; 58 do not.
Changes to the setThe 3 branded prompts started producing answers on 24 September. Other prompts were added in mid and late September. No comparison below crosses those dates without saying so.
Engines and surfaceChatGPT and Perplexity, read in their consumer apps. Claude, Gemini and Google's AI Overviews are not read in this workspace and are reported as not measured, not as zero.
Window4 September to 3 October 2026 (30-day window read on 4 October). Answers were stored on 24 of its 30 days: all 24 on Perplexity, 20 on ChatGPT, first read on 14 September.
Answers read4,374, split by engine in the frame at the top of this page.
Named, branded group180 of 180 answers.
Named, unbranded group0 of 4,194 answers.
Cited our domain6.2% of 2,274 ChatGPT answers; 3.7% of 2,100 Perplexity answers.
Notable findingOn ChatGPT, the question "AI search visibility starting price" cited attensira.com in 42 of 57 answers and named us in none.
Change against the previous 30 daysNot measured. Nothing was read from 5 August to 3 September, so there is no earlier window to test against. That is a gap, not a failed test.
What this report does not sayWhether any answer produced a visit, a signup or revenue. Nothing joins an answer to a later visitor.

Two lines in it are uncomfortable for us and both stay in. The unbranded line is zero. And the headline we could have written instead, "Attensira named in 4.1% of AI answers", is technically true and almost entirely produced by the three questions that contain our name. A report that leads with that number and leaves out the split is not lying, and it is not defensible either.

Which fields does every AI visibility report need?

Eight, and each one exists because a number without it can be read two ways.

1. The question set. How many questions, where they came from, and which contain the brand name. Every rate in the report is an average over these questions; without them the rate has no meaning. Branded and unbranded questions belong in separate rows, always.

2. Changes to the question set, with dates. A question added mid-window changes the sample. Our own ChatGPT share of voice read zero on every sampled day up to 23 September and turned positive on 24 September, the day three branded questions began producing answers. Nothing in the engines changed that day. Without the dated change, the chart reads as a win.

3. Engines and surface, each reported separately. Engines differ in which sources they trust and which brands they name, so a blended figure hides the finding. Surface matters too: Attensira records whether each answer came from a consumer app or a model's API and never averages the two, because they do not answer alike.

4. The window and its coverage. The dates, and how many days were actually read. A month with a week of missing readings is a smaller sample than it looks.

5. Every rate with its sample size. A rate is two numbers: the value and the count behind it. Attensira's dashboard switches from a percentage to a count below 20 answers, for example "3 of 12", and marks it thin. That line is a display rule, not a statistical test, and it is a good one to copy.

6. Unmeasured as unmeasured. An engine nobody asked has no rate. Showing it as zero invents a failure that never happened. Attensira's documentation is blunt about it: never render an unmeasured cell as zero.

7. Changes with their test. A movement is reported as real only when it clears a significance test against the previous window of the same length. Attensira uses a two-proportion z-test at 95% confidence and, when a change does not clear it, says "nothing we can prove yet". It also declines to call a change real when fewer than 70% of the window's days were read, because two thin samples weeks apart are not a trend. And when there is no earlier window at all, as in our own report above, the change is not measured. A missing window is a gap, not a failed test.

8. The work done. What shipped, where and when: pages, passage rewrites, crawler fixes, placements. A movement read without the work is a weather report. A movement read beside dated work is evidence you can argue about.

What does the cited line look like, week by week?

Our citation line as this chapter's fields ask for it: per engine, each count over its answers, unread weeks marked not measured, and a last week of six days. Most of the rise from 21 September arrives with the branded questions, which linked us in 159 of their 180 answers.

Answers citing attensira.com, per week
  • 4 to 6 Sep

    ChatGPT
    Not measured
    Perplexity
    0 of 16
  • 7 to 13 Sep

    ChatGPT
    Not measured
    Perplexity
    0 of 89
  • 14 to 20 Sep

    ChatGPT
    12 of 582
    Perplexity
    0 of 519
  • 21 to 27 Sep

    ChatGPT
    49 of 726
    Perplexity
    32 of 576
  • 28 Sep to 3 Oct

    ChatGPT
    81 of 966
    Perplexity
    45 of 900
Analyst agentAnalyst · reads this workspace's answersattensira.com workspace, Attensira MCP · · n=4,374 answers, 4 Sep to 3 Oct 2026

Which claims should an AI visibility report never make?

That visibility produced revenue. Nothing joins an answer a model gave someone to a person who later visits your site. Attensira's limitations page says the product cannot tell you that a mention produced a visit or a citation produced a signup. Referral visits from assistants are real and can be reported, but they are not the influence of the answers that never got a click.

That a blended score went up. A single score built from several engines and metrics can rise while every engine you care about falls, if the mix changes. Report the components.

That you beat a competitor because your slice of the pie grew. A share computed against all tracked brands' mentions has the competitor list as its denominator. Remove a competitor and your slice grows. Attensira's share of voice divides by answers, not by brands, so rates do not sum to a whole and editing the competitor list does not move your number.

That a small sample moved. One answer changing its mind in a sample of four moves a rate by a quarter of the scale. Quote counts for small samples and save the word "trend" for changes that clear the test.

That the engines think something. An engine's answer is one draw from a process that varies. "ChatGPT recommends X" from one screenshot is an anecdote. "ChatGPT named X in 41 of 57 answers over 30 days" is a measurement.

How do true numbers mislead?

The most common ways are not false numbers. They are true numbers with something missing.

  • Branded questions in the total. Our own report shows how far apart the two groups can be: 180 of 180 against 0 of 4,194.
  • A question set that changed in the window. The 24 September step in our ChatGPT line is the example.
  • Averaged engines. A brand strong on one engine and absent from another averages to a number that describes neither.
  • Missing days drawn as zero. Every outage becomes a drop.
  • Citations read as mentions. Our pricing question shows the opposite case: cited in 42 of 57 ChatGPT answers, named in none. A report that only counted citations would call that question won. It is not. A buyer reading those answers never saw our name.
  • Before and after from single answers. Two screenshots, one from before a change and one after, show changed wording, not movement.

What does a changed question set look like day by day?

Four days of our own ChatGPT line. 22 September was a thin read, not a bad day. On 30 September new questions arrived and the same nine mentions fell from 6.8% to 5.2%. Nothing in ChatGPT changed on any of these days.

ChatGPT · answers naming attensira.com, by day
  • 21 Sep

    Named us
    0 of 87
    Rate
    0.0%
  • 22 Sep

    Named us
    0 of 30
    Rate
    0.0%
  • 29 Sep

    Named us
    9 of 132
    Rate
    6.8%
  • 30 Sep

    Named us
    9 of 174
    Rate
    5.2%
Analyst agentAnalyst · reads this workspace's answersattensira.com workspace, Attensira MCP · · n=423 ChatGPT answers on 4 days, 21 to 30 Sep 2026

How should the report read for someone who will not read the method?

Put a sentence beside every number. Most readers of a visibility report are deciding whether the work is worth continuing, not checking statistics. Give them sentences they can repeat accurately:

  • "Named in 0 of 4,194 answers to questions that do not contain our name, on ChatGPT and Perplexity, over 24 days read in the last month."
  • "Cited in 42 of 57 ChatGPT answers about AI visibility pricing, but not named in any of them."
  • "Compared with the previous month: not measured, because nothing was read that month."

Each sentence carries its own evidence. None of them can be quoted out of context into something stronger than it is. That is the whole idea of a defensible report, applied to a slide.

How often should an AI visibility report be produced?

As often as the sample can support, and no more. A weekly report on a small question set read once a day mostly says "nothing we can prove yet", because a week holds only seven readings per question per engine. That is the test working, not the report failing, but it makes for a dull week. A monthly report on the same set pools four times the answers and can detect changes the weekly one cannot.

A sensible rhythm for most teams is a short weekly note on the work done and anything that crossed the significance line, and a full monthly report with every field above. Attensira's own reports follow the same idea: the work is listed as it ships, and a movement is only called a movement once the re-reads have enough answers behind them.

What should you ask a vendor before trusting their report?

Three questions cover most of it.

  1. "How many answers is this percentage built from, and on which engines?" If the answer is a single blended figure, the report cannot be checked.
  2. "What happens in this chart on a day you could not read an engine?" If the line drops to zero, every outage is reported as a loss.
  3. "How do you decide a change is real?" If there is no test, every wobble is a story.

Apply them to the report at the top of this chapter. It should survive all three.

Where does this chapter sit in the guide?

It is the last chapter of the GEO measurement guide, and it assumes the earlier ones: what can and cannot be measured, sampling and sample size, the difference between a mention, a citation and share of voice, and building a prompt set. The reports feature shows how Attensira lays out these fields in the product, and the AI search visibility page covers which numbers belong in a report at all.

What else do people ask?

What is the quickest test of an AI visibility report?
Pick any percentage in it and ask how many answers it was built from, on which engines, over which days. If the report cannot say, the number cannot be checked, and a number that cannot be checked should not drive a decision.
What should an AI visibility report never claim?
That a mention produced a visit, a signup or revenue, because nothing joins an AI answer to a later visitor. It should also never present an unmeasured engine as zero, average engines into one figure, or call a movement real without a significance test against the window before.
Can a report mislead without a single false number?
Yes. Mixing branded and unbranded questions, changing the question set mid-window, quoting a percentage from a handful of answers, or showing a pie-chart share whose denominator is the competitor list can each make a true number tell a false story.
How should uncertainty be shown to a non-technical reader?
In words beside each number. Write counts for small samples, such as 3 of 12 answers, write "nothing we can prove yet" when a change did not clear the test, and write "not measured" when there was no earlier window to test against. Readers handle a plain sentence better than an error bar.
Should AI visibility numbers go in a board deck?
Yes, as evidence of consideration with their sample sizes and the question set described, next to the work that was done. They should not appear as revenue, as a single blended score, or as a trend line drawn across a change to the questions.

Where do these facts come from?

5 sources, 13 statements: each statement with the page it came from and the day it was checked.

  1. Attensira MCP, read 5 October 2026 (attensira.com, 4 Sep to 3 Oct 2026): answers citing attensira.com per week were, on ChatGPT, not measured until 14 September, then 12 of 582, 49 of 726 and 81 of 966; on Perplexity 0 of 16, 0 of 89, 0 of 519, 32 of 576 and 45 of 900. The three branded prompts linked attensira.com in 159 of their 180 answers.

    attensira.com workspace, read over the Attensira MCP on

  2. Attensira MCP, read 5 October 2026 (attensira.com, 4 Sep to 3 Oct 2026): ChatGPT answers were stored on 20 of the 30 days (2,274 answers, 90 naming Attensira) and Perplexity on 24 (2,100 answers, 90 naming Attensira); Claude, Gemini and Google AI Overviews were not read.

    attensira.com workspace, read over the Attensira MCP on

  3. Attensira reports every rate as a value with the number of successful runs behind it, and every change as a value with a flag saying whether it is real.

    docs.attensira.com · retrieved

  4. Attensira's documentation says never to render an unmeasured cell as zero, because reporting null as zero invents a failure that was never observed.

    docs.attensira.com · retrieved

  5. Attensira reports a change between two windows of equal length only when it clears a two-proportion z-test at 95% confidence, and otherwise reports nothing we can prove yet; a change that clears the test is still not reported as real when fewer than 70% of the window's days were read.

    docs.attensira.com · retrieved

    “fewer than 70% of the window's days were read”
  6. Attensira's dashboard shows a count rather than a percentage below 20 answers and marks such counts as thin, calling the 20-answer line a display rule rather than a statistical test.

    docs.attensira.com · retrieved

    “The 20-answer line is a display rule, not a statistical test”
  7. Attensira's limitations documentation states that it cannot tell you that a mention produced a visit, a citation produced a signup, or any of it produced revenue, because there is no identity join between an answer and a later session.

    docs.attensira.com · retrieved

  8. Attensira records whether each run came from a consumer surface or an API and never averages the two; a window spanning both is reported as mixed.

    docs.attensira.com · retrieved

  9. Attensira's share of voice divides answers naming the brand by all answers, so rates across brands do not sum to a whole and adding a competitor does not change the brand's own number.

    docs.attensira.com · retrieved

  10. Attensira MCP, read 4 October 2026 (attensira.com): 61 prompts, 3 of them branded, read on ChatGPT and Perplexity from 4 September to 3 October 2026 (read 4 October), answers stored on 24 of 30 days; 4,374 answers; branded prompts named in 180 of 180 answers, unbranded in none of 4,194; nothing was read in the prior window (5 August to 3 September), so the change is not measured.

    attensira.com workspace, read over the Attensira MCP on

  11. Read over the Attensira MCP on 4 October 2026: ChatGPT's 57 answers to 'AI search visibility starting price' cited attensira.com in 42 and named Attensira in none.

    attensira.com workspace, read over the Attensira MCP on

  12. Read over the Attensira MCP on 4 October 2026: Attensira's ChatGPT share of voice read zero on every sampled day from 14 to 23 September 2026 and turned positive on 24 September, when its three branded prompts began producing answers.

    attensira.com workspace, read over the Attensira MCP on

  13. Read over the Attensira MCP on 4 October 2026 (attensira.com workspace, ChatGPT, per day): Attensira was named in 0 of 87 answers on 21 September, 0 of 30 on 22 September, 9 of 132 on 29 September and 9 of 174 on 30 September 2026.

    attensira.com workspace, read over the Attensira MCP on

Want software that does your AI-search visibility work, with you in control of every change?

7 days free · card required