· 8 min read · Geoptimizer Team
How we score AI visibility (and why the formula is public)
Every GEO tool sells a score, and almost every score is a black box. Ours isn't: the AI Visibility Score is a 0–100 composite of four measurable components — mention rate (35%), citation rate (25%), prominence (20%), and sentiment (20%) — computed per engine over a 7-day rolling window. This post explains each choice; the normative reference lives on the methodology page and is versioned like an API.
The four components
- Mention rate (35%).The share of answers that name your brand at all. It carries the largest weight because presence is the gate everything else passes through — an answer that doesn't mention you can't recommend you.
- Citation rate (25%). The share of answers citing your domain as a source. Citations are harder to earn than mentions and signal the engine treats your site as ground truth, not just a name it knows.
- Prominence (20%). Where you appear among the brands in an answer, scored as 1/√rank: first mention scores 1.0, second 0.71, third 0.58. The square root matters — being second is not half as good as being first, and the falloff should flatten, not cliff.
- Sentiment (20%).How the answer frames you when it mentions you, classified into promoted (1.0), neutral (0.6), caveated (0.3), or negative (0). A mention that says "avoid this product" should not raise your score.
Why a 7-day window instead of live scores
Ask the same engine the same question twice and you can get different brand lists — that's the nature of sampling from a language model. A score computed from one run would jump around and generate false alarms. So the headline score averages daily samples over a rolling 7-day window and shows a confidence band that narrows as samples accumulate. On-demand scans still give instant feedback, but they're labeled as single-sample snapshots — a deliberate distinction most tools blur.
Why per-engine scores are never merged at the data level
Each engine gets its own score from its own answers; the composite is a simple mean of engine scores. Engines differ enormously — a brand strong in ChatGPT can be absent from Gemini, and Grok's X-search gives it a citation profile unlike any other engine. Merging raw data would hide exactly the differences you need to act on.
Versioning: scores that don't rewrite history
Every stored score records the scoring version it was computed with. If we ever change a weight or definition, that ships as a new version with a changelog entry — old snapshots keep their version, and any score remains recomputable from the stored raw answers. Your January number means in June what it meant in January.
The honest limitation
We query engines through their official APIs with web search enabled. API answers approximate but don't exactly equal the consumer apps, which add personalization layers nobody outside those companies can observe. We publish that limitation instead of overclaiming: identical methodology across engines, which is what makes scores comparable engine-to-engine and trackable over time.
Why publish all this?
Because a score you can't interrogate is a vibe, not a metric. Publishing the formula means when your score drops 12 points you can decompose it — mentions held, citations fell, one engine changed — and act. It also means competitors can copy our weights, and we're fine with that trade.