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

Methodology

How Attensira measures AI visibility

Attensira asks the prompts you track on the consumer apps of ChatGPT, Perplexity, Google AI Overviews and Gemini, and on Claude through its API, once a day per prompt, model and country. Every rate counts successful runs and carries its sample size, n. A change is reported only when it clears a 95% two-proportion z-test.

7 days free · card required

Sampling depthruns per prompt, engine, day
Starter
n=1
50 prompts
Growth
n=3
150 prompts
Business
n=3
350 prompts
Shipped work re-read
+7 · +14 · +30 days
A change is real at
95%, z‑test
Share of voice per engine with its 95% Wilson interval and n
EngineShare of voicen
ChatGPT4.2%3.5% to 5.1%2,349
Perplexity4.5%3.7% to 5.5%2,175
Claude, Google AI, Gemininot tracked, never 0%

attensira.com’s share of voice per engine, read over the Attensira MCP, 4 Sep 2026 to 4 Oct 2026, as 95% Wilson intervals: the range the true rate plausibly sits in. ChatGPT and Perplexity overlap, so this reading cannot say one names us more often than the other.

Plan ladder, docs.attensira.com/account/plans · attensira.com via Attensira MCP · · n=4,524
Karl-Gustav KallasmaaKarl-Gustav Kallasmaa, Founder & CEO

Last updated

Key facts

What does Attensira read, and how often?

A tracked prompt is a question your buyers ask. Each day, on that prompt's own slot, Attensira sends it to every engine your plan reads and in every country you track, records the full answer and the links it cites, and stores the answer verbatim. One prompt, sent to one engine, for one country, at one moment, is a run. Every rate on the site is counted over runs.

We read the surface your buyers use, not the API behind it. A model's API is not what someone sees on chatgpt.com: the model version, the system prompt and the retrieval differ. Where a consumer surface can be read, that is the reading; an API reading is a labelled fallback, and the two are never averaged together.

How each engine is read
  • ChatGPT

    How the answer is read
    The consumer app, as a person sees it; API only as a labelled fallback
    In a country you track
    Read from a browser in the country
  • Perplexity

    How the answer is read
    The consumer app; API only as a labelled fallback
    In a country you track
    Read from a browser in the country
  • Google AI

    How the answer is read
    Google's AI Overview on the results page. It has no API at all
    In a country you track
    Read from a browser in the country
  • Gemini

    How the answer is read
    The consumer app; API only as a labelled fallback
    In a country you track
    Read from a browser in the country
  • Claude

    How the answer is read
    The API. Claude has no consumer reader
    In a country you track
    Never located: the country is stated in the question

Local readings are available in 42 countries (markets, in the docs). A consumer engine that cannot be read from a country you add is shown as not measured, never as zero.

How big is the sample on each plan?

Models do not answer the same question the same way twice, so a single ask is an anecdote. Sampling depth is how many runs are issued per prompt × model × country, per day. Where a plan samples more than once, the runs are sent together, so the variation you see is the model's own and not a change in the world between morning and evening.

Sampling depth, prompts, engines and history per plan
  • Starter

    Runs per prompt, engine and day
    n = 1
    Prompts
    50
    Engines read
    ChatGPT, Perplexity, Claude, Google AI
    History kept
    3 months
  • Growth

    Runs per prompt, engine and day
    n = 3
    Prompts
    150
    Engines read
    ChatGPT, Perplexity, Claude, Gemini, Google AI
    History kept
    12 months
  • Business

    Runs per prompt, engine and day
    n = 3
    Prompts
    350
    Engines read
    ChatGPT, Perplexity, Claude, Gemini, Google AI
    History kept
    Unlimited

Sampling deeper buys confidence, not a different number. Three runs instead of one grow the numerator and the denominator together, so the rate holds and only n grows. Failed runs (a timeout, a blocked request, a malformed answer) are stored for debugging and left out of n, so an outage shrinks the sample instead of lowering the rate.

What does each number count?

Share of voice and citation rate are defined apart on purpose: an answer that names you has not necessarily linked you, and the two are never merged into one figure.

  1. AnswerOne model response to one tracked prompt, on one platform, in one reading. It is the unit every rate below is counted over, which is why every rate carries its n.
  2. Share of voiceThe share of successful runs whose answer names the brand anywhere in its text, whether or not a link is given. It is a rate, not a slice of a pie: every brand is counted over the same runs, so rates do not sum to 100%. Reported as {value, n}: value: null means the platform was never read, not that the brand was absent. Some tools call this rate a mention rate.
  3. Citation rateThe share of successful runs whose answer credits a URL on the brand's own domain as a source. A link in the answer's source list counts; the brand's name in the prose does not. The two rates can diverge in either direction, and the gap is the thing worth acting on: named but not sourced is a different problem from sourced but not named.
  4. Sampling depthHow many runs are issued per prompt × model × country, per day, before a rate is computed: the n= on a plan. Models do not answer the same question identically twice, so a single ask is an anecdote; the depth is published per plan rather than averaged away.

How does one of our own readings look?

This is one reading of the workspace we run for attensira.com itself, kept as a dated snapshot rather than a result claim. Across 61 tracked prompts, AI answers named Attensira in about one answer in 23, and nearly all of those answered a prompt that already names Attensira.

attensira.com · 61 prompts2026-09-04 to 2026-10-04
Share of voice
4.4%
n=4,524
Citation rate
5.3%
n=4,524
Change vs the 30 days before
nothing we can prove yet
did not clear the 95% test

The workspace total across both engines, each rate with its n and the change as a verdict. The per-engine intervals are at the top of this page.

Analyst agentAnalyst · reads this workspace's answersattensira.com workspace, Attensira MCP · · 24 of 31 days read
Sample
4,524 answers
Window
4 Sep 2026 to 4 Oct 2026
Days read
24 of 31
How a change is judged
  • Each rate sits next to its n. A rate with its n is a measurement; a rate alone is a guess about how many answers there were, and the same percentage over 40 answers and over 4,000 means very different things.
  • Claude, Google AI and Gemini are not configured for this workspace, so they were never asked. They read as not tracked, never as 0%: a zero would report a failure that did not happen.
  • The month-on-month change did not clear the significance test, so it reads “nothing we can prove yet”. That is not a claim that nothing moved; it is a refusal to call noise a trend.
  • Runs that failed in the window are excluded from n, and the days the window actually holds readings for are printed beside the sample (the reading's own coverage field) rather than hidden.
  • The total hides where the mentions come from, so we split it by prompt type. The 3 prompts that already name Attensira were answered with our name 99.5% of the time (n=198); the other 58 prompts, which name no brand or name a rival, named us in 0% of answers (n=4,440). Unprompted, AI answers do not name Attensira yet, and a total that blends the two would say otherwise.

When is a change real?

Every change Attensira shows is a pair: the movement and whether it is real. The current window's rate and the previous window's rate are compared as two proportions, each with its own n, in a two-proportion z-test at 95% confidence. If the difference does not clear it, the change comes back with no value and reads “nothing we can prove yet”. A window with fewer than two runs on either side is never a change.

At one run per prompt per engine per day, a seven-day window holds seven observations per cell, and only large swings clear the test. To prove smaller moves, widen the window, read a topic or an engine instead of one prompt, or sample deeper.

Shipped work is judged the same way. When a change the crew made goes live, the same prompts are re-read at +7, +14 and +30 days, each comparing a week before the change with a week around the re-read date, and only after checking the change is actually on the live page. The verdict is moved, fell, no change, too close to call, too few answers or not live. Beside a page, as on the attribution view, the same results read as three labels: moved, too early, or nothing we can prove yet. None of them says the change caused the movement.

What rules does every published number follow?

Attensira distinguishes "we did not measure this" from "we measured zero". Any tool or API consumer should preserve that distinction rather than rendering an unmeasured value as 0%.

  1. A rate carries its sampleA rate is {value, n}, where value: null means never measured and n is the sample size behind it.
  2. A delta clears the noise floorA delta is {value, real}, and movement is only reported when it clears the noise floor.
  3. An untracked platform has no numberPer-platform metrics carry {tracked, readable}. tracked: false means the plan never queried that platform, so it has no visibility number at all. Reporting it as 0% invents a failure.
  4. Surfaces are never averagedAnswers are also separated by surface (the consumer app versus the model's API), and the two are never averaged together, because they do not answer alike.
  5. There is no visibility score, and sentiment counts only answers with a stanceNo composite visibility score exists in the product, so none is published. Sentiment is measured only over answers that take a position on the brand, and it is reported beside that scored count; an answer that names the brand without judging it is left out, not counted as neutral. Average citation position is the mean place of a URL within a model's own list of cited sources, computed per source domain; it is not a brand rank.
  6. A published figure names its method on the page it appears onOriginal research under /data states its sampling frame, its dates, its sample size and the conditions under which the page refuses to render at all, next to the number rather than beneath it.

What can this method not tell you?

Stating the edges is cheaper than being asked about them later, and a number read without them is read wrong.

  1. How many people askedAttensira asks your prompts on a schedule; it does not see real users' questions or their volume.
  2. Whether a mention became a visit, a signup or revenueThere is no identity join between an answer and a person who later reached your site. Connect the two with your own analytics, and say that you did.
  3. Whether a common word is your brandA mention is a whole-word match of your name or a host-aware match of your domain. A brand called Linear is counted in “scales in linear time”, so such a brand reads high, never low. Every answer is stored verbatim, so you can read it and the detection can be re-run over history.
  4. What a search from a country returns on ClaudeClaude is read through its API with the country stated in the question, so its rate says how the model answers someone who says where they are.
  5. Today, finishedEach prompt runs at most once per day on its own slot, so today's numbers are partial until the day closes. Compare whole days with whole days.

How is the original research under /data produced?

Studies are collected on a schedule into a dated artifact, and the page is built from that artifact rather than from anything a person typed.

  • Each study names its sampling frame precisely enough for anyone to download the identical frame and re-run it.
  • Every figure is computed from a dated, committed run; no number on a research page is typed by hand.
  • A measurement below the per-row floor is reported as not measured, never as zero.
  • A missing run, a run older than two refresh cycles, or a collection rate under the floor means the page does not render at all. There is no placeholder state.
  • Every run keeps its own dated URL, so a citation keeps resolving to the numbers it was taken from.

How do I report a wrong number?

If a figure on this site is wrong, write to team@attensira.com with the page and the number. A correction changes the page; where the number came from a dated run, the correction is noted next to it rather than applied silently.

Questions about the method

How does Attensira measure AI visibility?
It asks the prompts you track on the engines your plan reads, once a day per prompt, engine and country, and stores every answer verbatim. Share of voice is the share of successful runs that name you; citation rate is the share that link to your domain. Each rate carries its n, and a change counts only if it clears a 95% significance test.
Why does a Starter workspace often say “nothing we can prove yet”?
Because Starter samples each prompt once per engine per day, and a two-proportion test on a week of single runs only detects large swings. The test is working: it will not present noise as movement. Read a wider window or a whole topic, or move to a plan that samples three runs per day, to prove smaller changes.
Is Attensira's share of voice the same as other tools' share of voice?
No. Ours is a rate: the share of answers that named you, over all successful runs. It does not sum to 100% across brands. Many tools use the name for the pie version, your mentions over every tracked brand's mentions, which moves when you edit your competitor list. Ours moves only when the answers do, so the two are not comparable.
Does Attensira have an AI visibility score?
No. The product computes no composite score, so none is published. You get share of voice, citation rate, position among the names you track, and sentiment, each with its own n. Sentiment counts only answers that take a position on your brand, and its scored count is shown beside it.
Why read the ChatGPT app instead of the OpenAI API?
Because the API is not what your buyers see. The app runs a different model version, system prompt and retrieval, so a number built on the API answers a question nobody asked. Attensira reads the consumer surface where one can be read, labels any API fallback, and never averages the two.
How long does Attensira keep measurement data?
It depends on the plan: Starter keeps 3 months, Growth keeps 12 months, Business keeps unlimited history. Every answer inside that window is stored verbatim, which is what lets a reading be checked by hand and detection be re-run over history.

Want whatever it takes to win the answer?

7 days free · card required