AI Visibility
What it tells you
More buyers now open an assistant instead of a search box, and the answer they get names a few vendors and quietly leaves out the rest. AI Visibility is where you find out whether you’re in that answer — and, if you’re not, who’s being handed the recommendation instead.
| What you see | What it means |
|---|---|
| Presence | The share of usable answers that named a brand, pooled over this check and up to four previous ones, with a 95% range. This is what standing rests on. |
| The market map | Every company the answers named, grouped into three zones by presence — including companies you never listed. |
| AI Visibility Score | A 0–100 reading of where you land when you are named. Not a statement about who is ahead. |
| Endorsement and price read | How warmly the chat engines describe a brand, and where they place its price. |
There is no average position. CompetLab stores, publishes and shows no average rank for AI Visibility. A brand’s standing is its presence — how often it is named — never how high it appeared. Ordering by presence and ordering by position answer different questions, and only the first survives the way AI answers actually vary.
What a check looks like
A check puts each of your buyer questions to every engine it asks. Today that is 8 questions across 5 engines — 40 queries, on every plan and in the trial — though each stored check records the engines and question count it actually asked, so an older check may legitimately carry a smaller ask.
Because the same questions run on every engine, you can see where a gap comes from — a brand can lead on one model and go missing on another, and that shows up plainly rather than washing out.
Three outcomes, never two. A query can produce an answer, produce no answer shown, or fail to be read at all, and CompetLab never blurs them.
- An answer that didn’t name you is a measured absence — a real finding, and the thing to act on.
- No answer shown means the engine was read and had nothing to show — today, a Google results page that carried no AI Overview. It is excluded from every count. It is never “not mentioned”.
- A query we couldn’t read is missing data. Also excluded, and also never “not mentioned”.
So a 0 always means “we looked and you weren’t there”, never “we couldn’t tell”.
The market map
The map is the answer to who do the AI models recommend in my category. Every brand that at
least one usable answer named appears on it, matched on domain — including companies you never
added to your competitor list. Your own row is always there, at a measured zero if nothing named
you. A row at zero has no rank (rankByPresence is null): brands are ordered by how often they
are named, so it reads not named in any answer — never a place, and never a fall.
Each brand carries its presence: the share of usable answers naming it across this check and up to four previous published ones, with a 95% interval. Brands fall into three zones:
| Zone | What it means |
|---|---|
| Core | Recommended in at least a quarter of AI answers, even allowing for how few answers we have. These companies are your market as the AI models draw it. |
| Too early to tell | Recommended sometimes, but too few answers so far to say whether that is often or rarely. |
| Rarely recommended | Recommended in fewer than a tenth of AI answers, even allowing for how few answers we have. |
Over the API those zones arrive as condition tokens rather than labels —
named_in_a_quarter_or_more_of_answers, share_not_yet_separable,
named_in_under_a_tenth_of_answers — worded that way on purpose, so an agent reading one aloud
states the measurement instead of a judgement.
Two brands whose intervals overlap are not ordered. That is the point of shipping the range rather than a bare percentage: it tells you when a difference is real and when it is sampling noise. Until enough answers have accumulated, no brand can be ruled out of the market at all, and the map says so rather than implying a bottom.
Brands the answers never named are simply absent — not Rarely recommended, not a zero. Nobody can enumerate the companies AI didn’t mention.
Companies you aren’t tracking get called out separately: core-zone brands that aren’t on your competitor list, offered as a suggestion to add them rather than as a claim about them. This one is withheld unless the prompt-market reading below is healthy — a recommendation drawn from a map that may describe the wrong market is not worth making — and when it is withheld it is absent rather than empty, so absence never means “none”.
The score, and what it is not
The AI Visibility Score is one number from 0 to 100, pooled across every engine a check asked and averaged over this check plus up to four previous published ones.
It counts only the top five positions in an answer, evenly spaced — first place the most, the fifth the least — and nothing below them. So it reads where a brand lands when it is named.
The score does not say who is ahead. A standing claim — “you lead”, “you trail”, “the leader is X” — rests on how often each brand is named, never on this score, which can favour a brand named half as often. Read standing off presence on the market map.
A score of 0 for a brand the answers did name is a measurement, not a blank: it was named only below the top 5, or too seldom inside them for the average to register.
There is no per-engine score, by design — it is a single cross-engine figure, which is why a provider-filtered trend returns no score rather than a pooled number wearing one engine’s name. A per-prompt score does exist, so you can see which of your questions is carrying you.
How the engines talk about you
Beyond who is named, AI Visibility reads how the chat engines describe each brand. Every mention is tagged for sentiment and for the role the brand played in the answer:
Those roll up into two readings per brand, each with its own 95% range:
- Endorsement — how warmly the chat engines recommend it. The scale starts at 21 rather than 0, because a bare mention offered as an alternative is the weakest reading the scale can produce.
- Price read — where the models place its price, reported beside the tier stated most often, since a mean over disagreeing tiers can land on a tier nobody stated.
Both are absent rather than zero where no answer described the brand, and both come from the chat engines only — Google AI Overviews names companies without describing them, so it never contributes to either.
A reading built on very few answers renders faint and carries its count: below six describing answers it is a label, not a measurement. A wide range means refuse the ordering — it does not mean the brand scored badly.
Google AI Overviews reads differently
Four of the five engines answer as a chat assistant. Google AI Overviews answers in prose on a results page, and that changes what can honestly be read from it:
- It names companies and says nothing else about them — no sentiment, no rationale, no confidence. Those fields are simply absent on its entries.
- Its position is ours, not Google’s. CompetLab orders the companies by first mention in the overview text. Google assigned no rank, so it is never reported as one.
- The overview may not appear at all for a question. That is no answer shown — measured, and in no count.
- It reports the pages it cited. Cited is not recommended — for what the engines actually read before answering, see AI Sources.
Are your questions describing your market?
Every check also reports whether your prompts are reaching the competitors you track — a reading over the answers that named at least one brand on your list.
| Reading | What it means |
|---|---|
| Market matched | The answers mention companies on your list, so your numbers describe the market you set out to watch. |
| Too few answers | Some answers named tracked rivals and some named none. More checks will settle it. |
| Market mismatch | Either your prompts and your competitor list describe different markets, or your market genuinely doesn’t come up in AI answers yet. |
It suppresses no figure — every number on the check is computed and published whatever the reading says. But it is a gate, and two things wait behind it: the untracked-companies recommendation above, and every market alert. So if your reading isn’t healthy, your standing alerts go quiet, including the critical one for leaving the core — which is why the mismatch itself arrives as a high-severity alert rather than in silence.
A mismatch doesn’t say which side is wrong: a narrow B2B market that genuinely doesn’t surface in AI answers produces exactly the same reading, and that is a real finding. The fastest way to tell which you have is to read the stored answers.
A trend, not a snapshot
AI answers wander from one day to the next, so no single check is the whole truth. In the app the
trend is a chart — presence, rank and score on one time axis, engines as tabs — with a table
beneath it as its twin. Over the API and MCP the same thing arrives as a digest: one row each
for you, every competitor you track and up to three companies you don’t, with its reading now, its
reading at the start of the window, and the difference between them, plus the events that explain a
jump, like a standing change or the last time you edited a prompt. Each reading pools several checks
and says how many (checksAnalysed), so the reading now is never the latest check alone.
You and every competitor you track keep a row even when no answer in the window named that company:
presence 0 and score 0, both measured, and no rank — rank and rankChange are null, read as
not named in any answer, never a place and never a fall.
A movement is always reported, and always carries a flag saying whether it is real: the difference ships alongside a separability marker, and only a movement whose ranges actually separate should be narrated as a rise or a fall. A change of eight points that overlaps its own uncertainty is data, not news.
Alerts follow the same principle: they fire on membership, never on score — your own zone changing, a tracked rival’s changing, an untracked company reaching the first zone, or the prompt-market reading changing state. A change is announced only once it has held for two consecutive published checks, so your first two checks are quiet and a real move arrives one check late rather than as a false alarm.
You can tune the questions a check asks to match how your buyers really talk. Change one and your history stays intact — a marker drops onto the trend exactly where the wording changed.
AI Visibility runs on its own cadence, set independently of the other dimensions, with a minimum of three days between checks. Turning it on, choosing the frequency, and editing the questions are all covered in How monitoring works.
Work with it in code
Everything quantitative here is available programmatically — the same data the dashboards render.
FAQ
What is AI Visibility?
AI Visibility is one of CompetLab's six continuously monitored dimensions. It tells you how the major AI answer engines — ChatGPT, Claude, Gemini, Perplexity and Google AI Overviews — respond when a buyer asks for a recommendation in your space: which companies they name, how often each one comes up, and where you sit among them. Each check puts the same buyer questions to every engine and reads every answer for the companies it names, then builds a market map of the whole field, including companies you never added to your competitor list. Your own row is always on that map, measured exactly as everyone else's is. Because it's monitored, every check is kept as history and can raise alerts between briefings.
Does CompetLab report an average rank or average position?
No. CompetLab stores, publishes and shows no average position for AI Visibility, on any surface, by design. A brand's standing is its presence — the share of usable answers that named it, pooled over the current check and up to four previous published ones, and shipped with a 95% range. Ranking is by how often a brand is named, never by how high it appeared. The reason is that an average of ordinal positions across answers of different lengths, from engines that phrase things differently, moves far more from sampling than from anything a company did — so it read as signal while mostly being noise. Where position still appears, it is inside one stored answer, which you can reach by asking for the raw answers.
What is the AI Visibility Score, and can I use it to say I'm winning?
The score is a 0–100 reading of where you land when you are named — no, you can't use it for that. It counts only the top five positions in an answer, evenly spaced from first place down, and nothing below them, pooled across every engine a check asked and averaged over up to your last five checks. That makes it a reading of position, not of standing: it can favour a brand named half as often as another. Any claim about who leads or trails belongs to presence on the market map instead. A score of 0 for a brand that was named is a real measurement — it was named only below the top 5, or too seldom inside them for the average to register — not a missing value. There is no per-engine score, which is why filtering the trend by provider returns none.
Which engines does CompetLab query?
Five: ChatGPT (OpenAI), Claude (Anthropic), Gemini (Google), Perplexity, and Google AI Overviews. Every check runs your questions across the engines it records asking, so a check carries its own ask rather than a fixed number — the number of questions a project runs is set per organization. Google AI Overviews behaves differently from the other four: it answers in prose on a results page rather than as a chat assistant, so it names companies without describing them, and any order attributed to it is the order of first mention computed by CompetLab, never a rank Google gave. We name only the engines we actually query, and coverage can change as the pipeline evolves.
What does it mean when two brands' ranges overlap?
It means you cannot order them, and the map deliberately doesn't. Every presence figure ships with a 95% interval, because the number of answers behind it is small enough that a bare percentage would read far more precisely than it deserves. When two brands' intervals overlap, the difference between them is inside the noise — treat them as level rather than picking a winner. The same rule applies to the endorsement and price readings, which carry their own ranges and render faint until at least six answers have described a brand. A wide range is a statement about how much evidence there is, not a bad result for the brand.
Why did an engine produce no answer, and does that count against me?
It doesn't count at all — that's the important part. There are two separate cases and neither is treated as an absence. "No answer shown" means the engine was read and had nothing to show; today that's a Google results page that carried no AI Overview for the question. It's a measured fact about that query, not a failure, and not something your prompt did wrong. The other case is a query CompetLab couldn't read, which is not measured. Both are excluded from every count and from every rate, and neither is ever reported as "not mentioned". Only an engine that answered and didn't name you is a real absence, and that one is a finding worth acting on.