How Ocita measures AI visibility
AI assistants don't give the same answer twice, so a single check proves very little. This page explains exactly how Ocita samples answers, scores them, and decides what counts as a real change.
In short
- Every week, each prompt goes to ChatGPT, Gemini, Google AI Mode and Google AI Overviews 5 times on Standard and 3 times on Founding.
- Each number comes with a 90% range from a two-stage bootstrap.
- A number is Stable only with enough prompts and a narrow range. Everything else is Directional.
- A change is real only when this week's range doesn't overlap the range from the previous weeks.
What gets asked
You choose the prompts, up to 50 active per brand. Ocita collects the answer each engine's own app shows, or Google's results page, through a data provider (cloro), asked from the country you set:
- ChatGPT: the ChatGPT app's answer and the sources it cites.
- Gemini: the Gemini app's answer and its sources.
- Google AI Mode: AI Mode's answer and the pages it links.
- Google AI Overviews: the AI Overview on Google's results page for the prompt, and its sources. When Google shows no overview, the answer mentions no one, which is what a searcher saw.
The provider asks from a country, not a city. A brand set to a city is asked from its country, and its answers say so. Each answer records how it was collected, and a metric never mixes answers collected different ways: if collection changes, the numbers start a new baseline.
How answers are sampled
One prompt on one engine is a pair. A weekly run sends every pair 5 times on Standard and 3 times on Founding.
Repeats don't go out together. A weekly run lasts seven days, and its repeats are spaced evenly across the first 80% of that time. The rest leaves room for failed answers to get a second try. Answers sent minutes apart could lean on the same search results, so spacing them across the week gives a fairer sample.
A pair needs at least 3 completed answers to count that week. If it has fewer, it's left out of that week's numbers, and the run log says so. On Founding, that means all 3 repeats must complete.
Your first check after setup uses 3 repeats sent at once, so results arrive quickly. Its numbers are always Directional. A Check now run also sends its repeats at once. Its answers are shown under Answers, marked Check now with their date, but they never enter your weekly metrics, ranges or Real changes, so an extra check can't move a number.
How each answer is scored
- Mention: your brand or a competitor counts as mentioned if its name or one of its aliases appears as a whole word, in any capitalization. If a name is also a common word, such as Atlas, a small model reads the surrounding text to check it means the brand.
- Position: if the brand appears in a top-level item of a bulleted or numbered list of at least two items, its position is its place in that list. If it isn't in a list, the answer has no position.
- Citation: Ocita records the links the API returns plus any URLs in the answer's text. A link counts as yours if it's on your domain or a subdomain.
The four metrics
- Visibility: the share of answers that mention the brand.
- Share of voice: the brand's mentions divided by mentions of the brand and all tracked competitors. Each name counts once per answer, however many times it appears.
- Citation rate: the share of answers linking to your domain, out of answers that have citations. Answers with no citations are left out and reported separately.
- Average position: the mean position across answers that place the brand in a list, shown with how many answers that is.
How ranges are calculated
Every metric above carries a 90% range from a two-stage bootstrap, repeated 2,000 times:
- Draw prompts at random, with replacement, until you have as many as you started with.
- Within each drawn prompt, draw its answers at random, with replacement.
- Calculate the metric on that resample.
The range runs from the 5th to the 95th percentile of those 2,000 results, and always includes the measured value. Each calculation uses a fixed seed from the run, so the same answers give the same range.
Resampling prompts first matters. Answers to one prompt resemble each other, so treating every answer as independent would make numbers look more certain than they are. The range reflects how much your result depends on which prompts you track as well as how much each answer varies.
Here's the real calculation on a made-up example. Two brands are mentioned in the same share of answers, with 15 answers per prompt:
- 10 prompts: visibility 51%, range 39 to 63.
- 30 prompts: visibility 51%, range 44 to 57.
The headline is the same, but the second number deserves more trust.
Stable and Directional
A metric is Stable when all three of these are true:
- At least 20 prompts were sampled.
- The range is no wider than 10 points, or 1 place for average position.
- The brand's first full weekly run is done.
Anything else is Directional: worth watching, but not worth acting on yet.
What counts as a real change
Ocita pools the answers from up to 4 previous weekly runs, prompt by prompt, and calculates a range for that baseline the same way. A change is a Real gain or Real drop only when this week's range and the baseline range don't overlap.
If they overlap, Ocita reports no real change, even if the headline number moved. A brand's first check has no baseline, so it can't show a real change, and soon after setup the baseline holds fewer than 4 weeks.
When the way answers are collected changes
Every answer records how it was collected: through the engine's developer API, or from what its consumer app shows. An app answer and an API answer to the same prompt can name different brands, so Ocita never mixes the two for one engine:
- Within a week, each engine's numbers use one method. An answer collected another way, such as a backup asked through the API when the usual source failed, is shown with its label but left out of the numbers.
- Across weeks, a change of method for an engine starts a new baseline. Weeks from before the change aren't compared with weeks after it, and the app shows New baseline where a real change would otherwise appear, until there's a week collected the new way to compare with.
How ties work
Rankings use share of voice. A brand shares a rank with the leader of its group when their ranges overlap, so you'll see a rank like 3–5 instead of an order the data can't support.
What this can't tell you
- It isn't one person's screen. APIs can differ from the consumer apps, which add memory and personalization. Ocita measures the overall pattern, not what any one person sees.
- A range isn't a guarantee. A 90% range will sometimes miss. It reflects variation in the sample, not errors in mention detection or changes in how an engine works.
- Detection can be wrong. Matching names is simple, and aliases need your review. We don't publish an accuracy figure yet.
- Prompts are your sample. The numbers describe the prompts you track, not every question people ask.
Two small summaries in the app use a different method. With only a handful of answers, the figure for one prompt on one engine uses a 95% Wilson interval, and so does the four-week band on This week. Neither one decides a Real gain or Real drop.