· Updated · 17 min read · Geoptimizer Team

AI Visibility Score: The Evidence Behind Our Formula

  • generative engine optimization
  • ai visibility score
  • methodology
  • measurement

Ask ChatGPT the same buying question twice and there is a less than 1-in-100 chance you get the same list of brands back. Ask for the same brands in the same order and you are down around 1 in 1,000. Those odds come from SparkToro's research with Gumshoe.ai, which put 600 volunteers through 12 prompts for 2,961 combined runs across ChatGPT, Claude and Google AI in late 2025.

If that were the whole story, no honest company could sell an AI visibility score. But the same study found the other half: in narrow categories, the leading brands showed up in 55–77% of responses no matter how the question was phrased. Individual rankings are noise. Rates are signal.

That distinction is the design brief for a visibility score, and it is why ours is built the way it is — and why the formula sits on a public methodology page as a versioned composite with a changelog. This post is the evidence layer: what each weight is doing, which third-party research supports it, and where a published formula still does not save you.

The formula, stated in full

Here it is, unchanged from the methodology page:

EngineScore = 100 × (0.35·MentionRate + 0.25·CitationRate + 0.20·Prominence + 0.20·Sentiment)
VisibilityScore = mean(EngineScore)

Four components, per engine, then averaged across ChatGPT, Gemini, Claude and Grok:

  • Mention rate (35%) — the share of answers in which your brand name appears.
  • Citation rate (25%) — the share of answers in which your domain is used as a linked source.
  • Prominence (20%) — how early you appear, scored as 1/√(mention_rank). First brand named scores 1.0, second 0.71, third 0.58, averaged across the answers that mention you.
  • Sentiment (20%) — a four-point scale: Promoted 1.0, Neutral 0.6, Caveated 0.3, Negative 0.0.

The formula is stamped version 1.0.0, published July 11, 2026. When the weights change, the version changes with them, and historical scores keep the version they were computed under. Nothing silently re-scores overnight.

That is the mechanical part. The interesting question is why those four numbers and not one.

Why four components instead of one visibility percentage

The simplest possible AI visibility score is a mention rate: how often does the engine say your name? It is easy to explain and easy to audit — Peec AI publishes exactly that definition, a straight count of responses mentioning your brand divided by total responses. Credit where it is due: publishing a plain definition is more than most of this category does.

The problem is that a single mention rate is blind to a very large event. In Semrush's ghost citations study with Kevin Indig — 3,981 domain appearances across 115 prompts, 14 countries and four platforms — only 13.2% of appearances involved both a brand mention and a citation. 61.7% were citations with no mention at all: the engine used your page as a source and never said your name. Another 25.1% were mentions with no citation.

Mentions and citations are mostly disjoint events. Collapse them into one number and you are averaging two different things while pretending they are one. Worse, the mix flips by engine: in that dataset ChatGPT cited on 87% of appearances but mentioned brands on 20.7%, while Gemini mentioned on 83.7% and cited on 21.4%. A brand optimising against a single blended percentage cannot tell which of those two realities it is living in.

So mention rate and citation rate get separate weights. Mention rate carries more (35% vs 25%) because being cited is not the same as being seen: an eye-tracking study by usability.de with 33 participants found 55% engaged with the AI summary, but the sources shown alongside it took only 7% of first clicks, and around 20% of searches ended with no click at all. A citation is how your material enters the answer; the name inside the answer is what the reader takes away.

Why prominence is worth 20%

Position inside an answer is not decoration. Peec AI's listicle study — roughly 200,000 AI responses across eight engines between September 2025 and March 2026 — found that ranking #1 in frequently-cited third-party listicles raised a brand's probability of being mentioned at all by 16.5 percentage points in B2B SaaS and 13.4 points in emerging MarTech, and moved the brand 0.82 to 1.80 positions earlier in the answer depending on market.

Retrieval order matters upstream too. AirOps' Fan-Out Effect report — 16,851 queries and 353,799 pages — found a page retrieved in position 1 was cited 58.4% of the time, against 14.2% at position 10.

The 1/√(mention_rank) curve is deliberately gentle. A linear penalty would treat fifth place as near-worthless; a square-root decay says being named third is better than being named eighth, but not catastrophically worse than being named first. That is a judgement call, and we would rather label it as one than dress it up as a discovered constant.

One boundary worth stating plainly, because Rand Fishkin is right about it: "any tool that gives a 'ranking position in AI' is full of baloney." Prominence is not a rank. It is an average position within the answers that mention you, aggregated over many runs — a rate-like quantity, not a leaderboard slot.

Why sentiment is worth 20% despite low variance

Here is an honest tension. In rocketblue's dataset of 1.8M+ brand-mentioning responses across eight platforms, 80.6% of AI brand mentions were neutral, 18.4% positive and about 1% negative. A component that sits near-constant for most brands most of the time contributes little discrimination — and it is consuming a fifth of the score.

We keep it at 20% anyway, for one reason: the 1% case is the single most valuable thing a monitoring tool can tell you. With ChatGPT reporting 900 million weekly active users as of February 2026, an engine that has learned to describe your product with a caveat is a commercial problem that compounds quietly. Twenty percent is cheap insurance against a rare, expensive failure mode — and if you think that trade is wrong, the weight is published precisely so you can argue with it.

Why the score is a window, not a number

The most common misunderstanding about AI visibility measurement is that the variation comes from temperature settings. It mostly does not.

Thinking Machines Lab traced the real cause: inference kernels are not batch-invariant. Server load changes the batch size, batch size changes floating-point accumulation order, and accumulation order changes the output — even at temperature 0, even with greedy sampling. Their Qwen3-235B experiment ran 1,000 identical requests at temperature 0 and got 80 unique completions. The first 102 tokens were identical every time; divergence started at token 103. With batch-invariant kernels enabled, all 1,000 runs matched exactly. As they point out, this is not GPU flakiness — "running the same matrix multiplication on the same data repeatedly will always provide bitwise equal results."

The practical consequence for anyone calling an API: bitwise reproducibility is not on the menu. Which means a single scan is a sample, not a measurement. The April 2026 paper Don't Measure Once: Measuring Visibility in AI Search puts it directly — "answers can vary across runs, prompts, and time, making one-off observations unreliable" — and argues visibility should be characterised as a distribution rather than a single-point outcome.

How wide is that distribution? Evertune ran 10,700 ChatGPT prompt runs on product recommendation prompts and published the margin of error by repetition count:

Repetitions Margin of error
5 ±27 percentage points
12 ±12 percentage points
100 ±6 percentage points

That table is uncomfortable and we publish it anyway, because it is the honest reason the headline score is a 7-day rolling window with a confidence band rather than a number. It is also why a single on-demand scan in the product is labelled a snapshot, not a score. A scan finishing in about 30 seconds is a useful, current read on what the engines said just now; the rolling window is what you report to anyone.

Read the band before you read the point estimate. If you are tracking three prompts on the free plan, your band is wide and small movements mean nothing. That is not a flaw in the disclosure — it is the disclosure.

Why we publish the weights

Fishkin's verdict on this category was blunt: "anyone who's selling AI tracking should be ashamed of themselves if they don't publish transparent, public, reviewable reports." He also landed on what a defensible metric looks like — "visibility % across dozens to hundreds of prompts run multiple times is a reasonable metric." Both statements come from research that started out sceptical of the whole idea, which is exactly why they are worth quoting.

There is a good precedent outside GEO. Google's Lighthouse performance score is a 0–100 composite whose exact weights are public — in version 10, Total Blocking Time 30%, Largest Contentful Paint 25%, Cumulative Layout Shift 25%, First Contentful Paint 10%, Speed Index 10%. Google documents what changed between versions, ships a public scoring calculator, and tells users outright that "a lot of the variability in your overall Performance score and metric values is not due to Lighthouse," recommending you think of performance as a distribution of scores rather than a single number.

That is the whole model: publish the weights, version the changes, be candid that the number wobbles. Lighthouse's weights have never stopped being useful for being public.

The counter-example is instructive too. The Leaderboard Illusion, a 2025 paper from researchers at Cohere Labs, AI2, Princeton, Stanford and elsewhere, documented undisclosed private testing on a widely-cited model leaderboard — including 27 private variants tested before one major release, and 205 models silently removed against 47 officially deprecated. The platform publicly disputed parts of the analysis, which is rather the point: when a score's policies are not fully documented, every argument becomes an argument about methodology instead of results.

This expectation is hardening beyond marketing tools. The AIVO Standard white paper argues the first generation of AI visibility tools leaned on opaque dashboards and unverifiable claims, and proposes transparency, reproducibility, attestation and governance alignment as baseline requirements. Publishing a formula is starting to look less like a differentiator and more like table stakes.

One thing we will not claim: that 35/25/20/20 is correct. No public validation study shows that split predicts commercial outcomes better than another. These are our judgements about what matters, written down so you can disagree with them specifically rather than vaguely.

What publishing the formula does not fix

The obvious objection to a public formula is Goodhart's law — or Marilyn Strathern's sharper phrasing of it: "when a measure becomes a target, it ceases to be a good measure." If everyone knows the weights, everyone games the weights.

Our answer is that the four components are outcomes, not proxies. Mention rate can only rise if engines genuinely mention you more often. Citation rate can only rise if engines genuinely cite your domain. Compare that with the classic gameable proxies of the SEO era, where the number could be inflated while the underlying reality stayed flat. Notably, AirOps found domain authority — the most familiar proxy of all — showed no positive correlation with citation in ChatGPT.

But there is a genuinely gameable surface, and it is not the formula. It is the prompt set.

Nothing in a published weighting stops anyone — vendor or customer — from picking prompts a brand already wins. And prompt phrasing has large, measured effects. In the ghost citations data, comparative queries produced a 43.3% mention rate, 2.4× the 18% of informational ones. A Peec AI study of 1,754 prompts and 37,804 responses found ranking or list-shaped prompts delivered about 20% more visibility on average than open-ended questions, and keyword-style prompts up to 25% more, while prompt length had effectively no impact.

So the disciplines that actually protect a score are prompt-set disciplines:

  1. Buyer-intent prompts, not brand-name prompts. Asking an engine about your own brand measures recall, not consideration.
  2. Competitor-neutral phrasing. A prompt naming only you is a leading question.
  3. Stable prompts across periods. Change the prompts and change the number, independent of anything you did to your site.
  4. Prompts the customer can see and edit. Ours are visible in the workspace with full edit and pin control on paid plans, and the free Prompt Ideas Generator turns a domain into 20 buyer-intent prompts you can inspect before tracking any of them.

If a score can be moved by quietly swapping the prompt set, then the prompt set — not the formula — is the thing that needs auditing. Ask any vendor, including us, to show you theirs.

What we log besides the formula

A formula alone does not make a score reproducible. Reproducibility needs the model version, the reasoning mode, the web-search state, the region and the date — and thanks to batch invariance, even all of that will not reproduce an answer bit for bit.

Two findings show how much those variables matter:

  • Mode changes the answer more than most content edits do. Semrush and Kevin Indig ran 100 prompts through ChatGPT's Instant and Thinking modes and found only 25.6% overlap in cited domains between the two, with citation rate rising from 50% to 68% and citations per response from 2.6 to 4.5. Indig's summary: "the brand that wins under minimal reasoning is not the brand that wins under high reasoning… These are two different systems."
  • Model updates cause step-changes that have nothing to do with you. SISTRIX tracked 3.8 million German-language ChatGPT responses and found day-to-day citation variation normally runs 1–2%, but spiked to 47% across a model-identifier change in May 2026, with average citations per response falling from 30.9 to 28.4.

The source layer underneath is unstable by default too. SISTRIX's AI citation drift study — 82,619 prompts and 1,548,213 snapshots across six countries over 17 weeks — measured weekly domain churn of 74% for ChatGPT Search and 56% for Google AI Mode. Their conclusion is one we would happily put on our own methodology page: "a single citation placement is not a reproducible result but merely a snapshot."

So we log the engine, the model, the mode, the web-search state and the timestamp with every run, and we publish the limitation that matters most: queries run against official APIs with web search enabled, and API-grounded answers approximate but do not exactly equal what users see in the consumer apps. That is a real gap, not a footnote. It is also why Premium scans exist — they re-run your prompts on the flagship models the consumer apps ship with, for the highest-fidelity read available.

The objections we take seriously

"AI visibility is a vanity metric." Seer Interactive makes this case and it deserves a straight answer: visibility is a leading indicator, not revenue. Our position is close to Brainlabs', where Adam Edwards argues you should "measure AI visibility upstream: mention volume, competitive share, AIO inclusion, quality of citations, and AI referrals" and correlate it against branded search and conversions rather than claiming direct attribution. A visibility score is a diagnostic. Treat it like Lighthouse, not like a P&L.

Averaging four engines mixes four different scales. This is the sharpest technical objection and it is correct. In rocketblue's dataset, Claude named brands in 97.3% of responses against 48.5% for Google AI Overviews, and linking behaviour ranged from Perplexity at 96.5% to ChatGPT at roughly 31%. Engines differ structurally, so a per-engine score is partly measuring engine architecture, not your brand. Two consequences we would rather state than bury: the per-engine breakdown is the real product and the composite is a headline; and the composite is only meaningful against competitors measured on the same prompts in the same window, never as an absolute grade.

The window may be too small — or too large. A 7-day window with daily sampling is a small n by Evertune's table, which argues for more repetitions. But ChatGPT Search rotates 74% of its cited domains weekly, so a longer window would average over a source landscape that no longer exists. There is no settled answer. Kevin Indig recommends five repetitions per prompt per platform, weekly; Evertune argues for many more repetitions of fewer, carefully-worded prompts; Fishkin argues for dozens to hundreds of prompts run multiple times. We lean toward more prompts, on the SparkToro evidence that category-level rates stabilise faster than rankings do — and the confidence band is how we admit the residual uncertainty.

Sentiment and prominence are model-scored, and model judges have known biases. Research covering 15 judge models, 22 tasks and over 150,000 evaluation instances documents systematic — not random — position bias in LLM judges. We classify sentiment on a coarse four-point scale specifically to reduce the surface area for that bias, but "coarse" is a mitigation, not a fix.

What would change our mind? If citation rate turns out to predict branded search lift substantially better than mention rate across a large multi-brand sample, citation deserves the heavier weight. If sentiment stays flat for the overwhelming majority of tracked brands over a full year of data, its 20% is buying too little discrimination. Either finding gets a new version number and a changelog entry, not a quiet edit.

How to read your own score

Four habits make the number useful instead of decorative:

  1. Read the band before the point. A 3-point move inside a ±9 band is not a move.
  2. Read the per-engine split first. A composite of 72 built from ChatGPT 81 and Grok 64 is a completely different marketing problem from a flat 72 across all four.
  3. Always look at a competitor line. The score's absolute value is a scale artefact; the gap between you and a competitor on identical prompts in the same window is the signal.
  4. Pair it with branded search and direct traffic. Visibility explains movements in those numbers; it does not replace them.

For a deeper look at how per‑engine splits map to competitive “share of answers” and what that implies for positioning, read Competitive AI Visibility Analysis: Share of Answers.

It is worth remembering how new all of this measurement is. Semrush's 2026 AI Visibility Index, built on 126 million US AI search prompts from January to April 2026, reports that 45% of marketing leaders say they cannot measure brand visibility in AI answers and only 9% have tools covering all relevant metrics across platforms. The formula in this post is a first attempt at a shared, checkable answer — version 1.0.0, with the arithmetic on the table.

FAQ

Does publishing the weights make the score easier to game? It makes the score easier to audit, which is the trade we want. The components are outcomes — engines mentioning and citing you — rather than proxies you can inflate independently. The genuinely gameable input is the prompt set, which is why prompts are visible and editable rather than hidden.

Why is a single scan called a snapshot instead of a score? Because one run is one draw from a distribution. Evertune measured a ±27-point margin of error at five repetitions of a single prompt. The headline score uses a 7-day rolling window with a confidence band; individual on-demand scans are labelled snapshots so nobody reports a sample as a trend.

Why average the four engines equally instead of weighting by user share? Equal weighting is a defensible default that does not require us to keep a proprietary estimate of engine market share up to date. It is also a genuine open question — engines differ in how often they name brands and how often they link at all — which is why the per-engine breakdown is shown alongside the composite and never replaced by it.

Does the score change retroactively when the formula changes? No. The formula carries a version number — currently 1.0.0, published July 11, 2026 — and scores keep the version they were computed under. Weight changes ship as a new version with a documented rationale.

Start with the number you can check

The case for an AI visibility score is not that AI answers are stable. They are not. It is that stable rates exist underneath unstable answers, that four components measure four genuinely different things, and that any number worth acting on should come with its arithmetic, its version and its error bar attached.

You can test that claim without talking to anyone. The free AI Visibility Check shows live whether ChatGPT, Gemini, Claude and Grok mention your brand, with no signup and no credit card, and the free plan tracks 3 AI-suggested prompts across all four engines with on-demand scans. When the data earns it, the paid plans add prompts, competitors, weekly refresh and Premium scans — with all four engines in every tier, because per-engine pricing is not a thing here.

If you want the technical groundwork first, our guide to which AI crawlers to allow before Cloudflare's September rules land covers the access layer that has to work before any of this measurement means anything — and the rest of the Geoptimizer blog goes deeper on earning citations engine by engine.

Keep reading

See it on your own domain.

Free visibility check across ChatGPT, Gemini, Claude, and Grok — about 30 seconds.

Run the free check