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 2

How many AI answers make a sample?

One AI answer is a single draw from a system designed to vary, so it proves nothing. A rate needs dozens of answers per question before its error bar is narrower than the effect you care about, and hundreds to detect a modest change. Always read the number of answers before the rate, and pool questions when samples are thin.

7 days free · card required

95% Wilson intervals · attensira.com · 30 days
  • how to rank in Perplexity for B2B SaaS, ChatGPT: Ahrefs

    Named in
    1 of 6
    Interval per 100
    3 to 56
  • AI search visibility for agencies, ChatGPT: Searchable

    Named in
    1 of 57
    Interval per 100
    0.3 to 9
  • AI search visibility for agencies, Perplexity: Semrush

    Named in
    18 of 48
    Interval per 100
    25 to 52
  • All 61 questions, ChatGPT: Attensirayou

    Named in
    90 of 2,274
    Interval per 100
    3.2 to 4.8
  • All 61 questions, Perplexity: Attensira

    Named in
    90 of 2,100
    Interval per 100
    3.5 to 5.2
Analyst agentAnalyst · reads this workspace's answersattensira.com workspace, Attensira MCP; Wilson interval per NIST/SEMATECH ·
Karl-Gustav KallasmaaKarl-Gustav Kallasmaa, Founder & CEO

Last updated

Key facts

How thin are real samples in a working programme?

Thinner than most dashboards let on. Here are real counts from our own workspace, which tracks attensira.com on ChatGPT and Perplexity and takes three samples per daily reading, issued together (n=3). They are the 30 days to 4 October 2026, read over the Attensira MCP that morning. The intervals in the table at the top of this page are 95% Wilson intervals, computed with the formula in the NIST/SEMATECH handbook.

Read the first row slowly. Ahrefs was named once in six answers. That is consistent with Ahrefs being named almost never or in more than half of all answers. The question was added to our set in late September, so it has six answers instead of the fifty-odd our older questions have. Nothing about it is wrong; there is just not enough of it yet.

Then read the last two rows. Pool every question and the interval tightens to under a point either side. Those are numbers you can hold a meeting about, provided you also know what they are an average of, which the previous chapter covered.

The pattern is the whole chapter in miniature: single questions on single engines are noisy, pooled numbers are steady, and the count beside the rate tells you which one you are looking at.

Why does one answer prove nothing?

Because the system is built to vary. OpenAI documents its chat completions as non-deterministic by default: the same request can produce different outputs. Consumer surfaces add search results that change by the hour. Ask the same question twice and you can get two different shortlists.

The arithmetic is unforgiving. If the true chance that an engine names you is one in two, a single answer is a coin flip. If it is one in five, a single answer says "no" four times out of five, which is also what one in twenty mostly says and what zero always says. One observation cannot tell those worlds apart, and they call for completely different responses.

This is not a reason to distrust measurement. Estimating a proportion from a noisy process is a solved problem in every other field. It is a reason to sample properly and to show the sample.

What exactly is being counted?

Fix the unit before the arithmetic.

  • A run is one question sent to one engine for one country at one moment, producing one answer. It either named you or it did not.
  • A cell is one combination of question, engine and country.
  • Depth is runs per cell per day.

Attensira runs each cell at most once a day, on that question's own daily slot. At each slot it takes one sample on Starter and three on Growth and Business. An answer that names you nine times still counts once.

Two design decisions inside that definition change what your numbers mean.

Failed runs are left out. A timeout or a blocked request is not evidence you were not named. Attensira stores failed runs for debugging and excludes them from the count. In our month, 61 ChatGPT runs and 44 Perplexity runs failed; the sample shrank and no rate moved.

A daily cap keeps the series readable. Asking the same question again and again through a day measures the engine's caching as much as anything about you. One slot a day, with the depth taken at that slot, keeps each day comparable with the next.

Should samples be taken together or spread out?

They answer different questions, so choose on purpose.

Issue three runs of the same cell at the same moment and everything about the world is held still: the index, the competitors' pages, the model version. Any disagreement among the three answers is the engine's own variance. That is why Attensira issues the three samples per daily reading on Growth and Business together (n=3).

Issue three runs spread across a week and you have measured the engine's variance plus everything that changed in the world that week, added together, with no way to separate them afterwards.

A programme that never distinguishes the two will misread every movement. If you only ever sample once per cell per day, be honest about it: you have no estimate of the engine's own variance, and your week-on-week changes contain noise you cannot bound.

How wide are the error bars at normal sample sizes?

Wider than the decimals suggest. The NIST/SEMATECH handbook recommends the Wilson score interval for proportions, partly because its lower limit cannot go negative, which matters when counts are small. The frame below applies it to a fixed rate of 0.20 at growing sample sizes. The interval narrows with the square root of the sample. That is why depth is expensive and why nobody has cheap certainty about one question on one engine.

Our own data sits right on that table. Our questions tracked since mid-September had between 42 and 63 answers per engine in the month, which is the 50-answer row: good enough to tell "rarely" from "usually", not good enough to tell 0.20 from 0.28.

This is also why Attensira shows the count with every rate, switches the Overview headline to the count below 20 answers, and marks counts under 20 as thin in the prompts grid. "1 of 6" carries its own warning. The same number written as a percentage does not.

How fast does the error bar shrink?

One fixed rate, 20 in 100, at growing sample sizes. The interval narrows with the square root of the count: four times the answers buys half the error bar.

A 0.20 rate, 95% Wilson interval
A 0.20 rate, 95% Wilson interval
AnswersInterval
50.04 to 0.62
200.08 to 0.42
500.11 to 0.33
2000.15 to 0.26
1,0000.18 to 0.23
Example · computed with the NIST/SEMATECH formula, not a reading

How many answers does a real change need?

More than estimating a rate, because two noisy estimates have to be told apart.

The NIST/SEMATECH handbook's worked example is a good anchor. To detect a proportion moving from 0.10 to 0.20, a doubling, with a one-sided test at a 5% significance level and a 10% chance of missing a real change, it needs at least about 102 observations, or 112 with a continuity correction.

Roughly a hundred observations to catch a doubling. Required sample size grows with the inverse square of the effect, so a change half as big needs about four times the sample. The small, plausible movements a content project produces need hundreds of answers per cell to establish, which is why per-question claims should be rare and pooled claims common.

Attensira turns this into a gate. A change is drawn as a change only when it clears a two-proportion z-test at 95% confidence against the previous window of the same length, and a window with fewer than two runs on either side is never a change. Otherwise the delta comes back as "nothing we can prove yet". On one sample a day, that will be the answer most weeks. That is the test working.

Our own numbers show the gate in both directions. Attensira's mention rate on ChatGPT, 90 of 2,274, and on Perplexity, 90 of 2,100, look different to two decimals; the z-score between them is about -0.6, nowhere near the bar. The two engines name us equally often as far as this sample can tell. Our citation rates, 142 of 2,274 on ChatGPT and 77 of 2,100 on Perplexity, give a z-score near 3.9: that difference is real.

Can a significant change still be wrong?

Yes, and our own chart has the example.

On 23 September 2026 our daily ChatGPT mention rate was 0 of 81 answers. On 24 September it was 9 of 132. Run the two-proportion test on those days and it clears the bar with a z-score of about 2.4. Statistically, something moved.

What moved was our prompt set. That was the day our three branded questions, "what is Attensira", "Attensira reviews" and "Attensira vs Profound", began producing answers: three questions, three samples each, nine answers that named us. Nothing about how engines treat attensira.com on unbranded questions changed that day, or since.

A significance test answers one question: is this difference bigger than the noise? It cannot tell you whether the two windows measured the same thing. That is a job for a dated change log, and for comparing only the questions present on both sides, which the prompt-set chapter covers.

Should you buy depth or breadth?

You have a fixed number of answers a month. Spending them on more questions buys coverage; spending them on more runs per question buys certainty. Two regimes are clear.

If the question is "how are we doing overall", favour breadth. The pooled count is the sum across cells, so a wide set at shallow depth gives a steady headline. Then decline to narrate individual cells.

If the question is "did this change work", favour depth on the questions the change should affect. A before-and-after on twelve questions with three samples per daily reading, issued together (n=3), is a real experiment. The same budget spread across two hundred questions read once is a rate you cannot move and cannot interpret.

The failure mode is buying breadth and asking depth questions of it: a wide set, one run each, and a weekly meeting spent explaining single-cell wiggles. Show the count next to every rate at every level of filtering, and the people in that meeting can watch their certainty disappear as they click.

The next chapter, mentions, citations and share of voice, turns to what you should be counting once you know how much of it you need.

How deep is our own set right now?

Our 61 questions by how many ChatGPT answers each had in the month, with the highest true rate a measured zero could still hide. Seventeen questions were added recently; on those, a zero is consistent with being named in a quarter of answers or more.

Our 61 questions, by ChatGPT answers read
  • 57 to 63

    Questions
    29
    A zero could really be up to
    6 in 100
  • 30 to 33

    Questions
    15
    A zero could really be up to
    11 in 100
  • 12

    Questions
    14
    A zero could really be up to
    24 in 100
  • 6

    Questions
    3
    A zero could really be up to
    39 in 100
Analyst agentAnalystattensira.com workspace, Attensira MCP · · 61 questions, ChatGPT, 4 Sep to 4 Oct

What else do people ask?

Why is a single ChatGPT query not evidence?
Because the system varies by design. OpenAI documents that chat completions are non-deterministic by default and that outputs may differ from request to request. One run is one draw from a distribution. If the true chance of being named were one in two, a single run would mislead you about half the time.
How many runs do I need for one question on one engine?
Enough that the interval around the rate is narrower than the difference you want to act on. On our own data, one brand named in 1 of 57 answers has a 95% interval of about 0.3 to 9 in 100, which is enough to say "rarely". The same rate from 6 answers could be anything from 3 to 56 in 100.
Should samples be taken at the same moment or spread across the day?
Pick deliberately, because they measure different things. Runs issued at the same moment hold the world constant, so their disagreement is the model's own variance. Runs spread over days add every change in the index and the competitors' pages. Attensira issues its three samples per daily reading on Growth and Business together (n=3) for that reason.
My rate jumped from 0 to 0.33 this week. Is that real?
Check the count first. At three answers, that jump is one answer changing its mind. Even a jump that clears a significance test can be an artefact: our own daily ChatGPT rate went from 0 of 81 to 9 of 132 on the day three branded prompts started producing answers. The test was right that the number moved; the cause was our prompt set.
What happens to my numbers when an engine has an outage?
That depends on how failed runs are counted. Attensira stores them for debugging and leaves them out of the denominator, so an outage lowers the sample size, not the rate. In our own month, 105 failed runs across two engines shrank the sample and moved no rate.
Does a bigger prompt set substitute for more runs per prompt?
For a headline rate, partly, because more questions mean more answers in the pool. For any question about one prompt, engine or country, no. Breadth buys a steadier average and thinner slices; depth buys the ability to say anything about a slice at all.

Where do these facts come from?

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

  1. OpenAI documents that chat completions are non-deterministic by default and that model outputs may differ from request to request.

    developers.openai.com · retrieved

    “Chat Completions are non-deterministic by default (which means model outputs may differ from request to request).”
  2. 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

    “the lower limit cannot be negative”
  3. The NIST/SEMATECH e-Handbook's worked example requires N of at least approximately 102 observations, or 112 with a continuity correction, to detect a shift in a proportion from 0.10 to 0.20 in a one-sided test at a 5% significance level with a 10% type II error rate.

    itl.nist.gov · retrieved

  4. Attensira's sampling depth is the number of runs per prompt, model and country per day, set by plan; Starter samples one run and Growth and Business sample three, issued together (n=3) so the spread reflects the model's own variance.

    docs.attensira.com · retrieved

  5. Attensira runs each prompt, model and country combination at most once per day, on that prompt's own slot.

    docs.attensira.com · retrieved

  6. Every delta Attensira shows has passed a two-proportion z-test at 95% confidence; a window with fewer than two runs on either side is never a change, and an unproven delta comes back as real false with a null value.

    docs.attensira.com · retrieved

  7. Attensira prints the count with every rate, shows the count instead of a percentage on the Overview below 20 answers, and marks counts below 20 as thin in the prompts grid.

    docs.attensira.com · retrieved

  8. Attensira stores failed runs for debugging but excludes them from the sample size, so an outage shrinks the sample rather than depressing the rate.

    docs.attensira.com · retrieved

  9. Read over the Attensira MCP on 4 October 2026, 30 days: the attensira.com workspace sampled three answers per prompt per engine per day; prompts tracked since mid-September had 42 to 63 answers per engine, prompts added later had 6 to 30, and the aggregate was 2,274 ChatGPT and 2,100 Perplexity answers.

    attensira.com workspace, read over the Attensira MCP on

  10. Read over the Attensira MCP on 4 October 2026, 30 days: on 'AI search visibility for agencies' ChatGPT named its top brand, Searchable, in 1 of 57 answers while Perplexity named Semrush in 18 of 48; on 'how to rank in Perplexity for B2B SaaS' ChatGPT named Ahrefs in 1 of 6.

    docs.attensira.com · retrieved

  11. Read over the Attensira MCP on 4 October 2026: Attensira's daily ChatGPT mention rate for attensira.com was 0 of 81 answers on 23 September 2026 and 9 of 132 on 24 September, the day its three branded prompts began producing answers.

    docs.attensira.com · retrieved

  12. Read over the Attensira MCP on 5 October 2026 (attensira.com workspace, ChatGPT, 4 September to 4 October 2026): of 61 tracked questions, 29 had 57 to 63 answers, 15 had 30 to 33, 14 had 12 and 3 had 6; the upper 95% Wilson bound for 0 of n is about 6 in 100 at n=57, 11 at n=30, 24 at n=12 and 39 at n=6.

    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