Method version 1.4 · updated 2 October 2026
Cited Score Methodology
How a Cited Score is produced: what is measured, how it is weighted, when a score is refused, and what the number does not mean. Published so the score can be checked rather than trusted.
What the score measures
A Cited Score is the weighted rate at which a company appears in AI-generated answers to buying-intent questions in its category, measured across four engines. It combines two signals that are kept separate throughout.
Citation — retrieval
The company’s own domain appears in the engine’s source list. The engine fetched their website while composing that answer.
Mention — recall
The company’s name appears in the answer text, with or without a supporting source. The model produced the name from its weights.
These are different facts and most tools collapse them. A brand named without a source has presence but no retrieval footprint. Optimisation work moves the two differently, so they are measured and reported separately.
Engines queried
| Engine | Model | Retrieval |
|---|---|---|
| ChatGPT | gpt-4o (Responses API) | web_search_preview, forced |
| Perplexity | sonar | Native search |
| Claude | claude-haiku-4-5-20251001 | web_search tool |
| Gemini | gemini-2.5-flash | google_search grounding |
Model strings are pinned to dated versions where the provider offers them. A floating alias would let a silent model rotation shift every score in the dataset.
ChatGPT’s web search is forced rather than optional. Without forcing it the model answers from memory and returns no sources, which would read as “not cited” when in fact no search took place.
Query design and sampling
Each vertical has a versioned prompt pack of 11 queries weighted by buyer intent: six recommendation, three comparison, two category. No query names a company being measured, since naming one guarantees it a mention. Any edit to the query set increments the version, and scores are only comparable within a version.
Each query runs three times per engine. This is not redundancy — LLM output is non-deterministic, and the same query to the same model minutes apart can return different sources and name different companies. A single run is a coin flip reported as a fact. One scan is 11 queries × 4 engines × 3 runs = 132 calls.
Matching rules
Citation matching is by hostname, never substring. A source counts only if its host equals the company’s domain or is a subdomain of it. In a single test scan, six unrelated companies with “cover” in their domain appeared as sources for a query about a company called Cover Genius. Substring matching would have counted all six.
Mention matching uses word boundaries, so “Marq” does not match “marquee”. Names that are also ordinary words (Nationwide, Progressive, Coalition) match only when written with a capital, so “nationwide coverage” is not counted as a mention. A company is never counted as its own competitor.
The score
engineScore = 100 × (0.7 × citationRate + 0.3 × mentionRate)
The headline is the unweighted mean of the four engine scores.
Citation is weighted higher because it is the harder signal and the one the product name claims to measure. Mention is not zeroed because being named still shapes buyer perception. These weights are a stated judgement, not a derived optimum, and they are published so they can be argued with.
Engines are weighted equally. A company strong on one engine and absent from three is not 75% visible — the platform split is the finding, not noise to be averaged away. The per-engine breakdown is always shown alongside the headline.
When a score is refused
Only scans that complete the full query pack are scored at all. A run that stops early does not stop at a random sample — it stops partway through the pack, over-sampling whichever queries ran first. Within a completed scan, no score is produced if any engine returned fewer than 60% of its expected runs.
A company looks identical whether an engine found nothing about them or the engine never ran. On a public page about a named company, publishing the second as though it were the first is a false accusation.
A call is treated as failed when the engine returns an error or no answer. An engine that answers without searching the web, from what the model already knows, is different: that is the answer a buyer would read. Since method 1.4 such a memory answer counts as an answer. Names in it count toward “named” and toward the 60% coverage rule, but it can never count as a citation, because there is no source list to be cited in. Each leaderboard and score page says how many of its answers came from memory.
The headline is a rolling average
A single scan is a reading, not a score. The same company measured days apart with the same queries produced 31.2 and 47.6 — a 16.4 point spread. Part of that is genuine movement in what the engines retrieve; part is sampling variation. Two readings cannot separate them.
The published score is the mean of all scoreable scans in a seven-day window, with individual scans shown as a trend beneath it. Scans only average together when they share the same pack version, the same algorithm version, and the same query set. A truncated run that covered six of eleven queries measured a different thing and is excluded rather than averaged in. Fewer than three scans is labelled provisional.
Change notifications fire on individual scans, not the average. The average exists to give a stable number to quote; the scan is what detects movement.
Public score pages and leaderboards are different. They are dated snapshots, measured when we choose to run them rather than on a schedule, so each shows one complete scan with its date. A single scan is a reading rather than a stable score, and is labelled a snapshot. The rolling average applies to tracked accounts, which are scanned continuously.
What the score does not measure
It is not traffic, ranking, or revenue. It is not a Google ranking, and the two correlate loosely at best. It is not a quality judgement. It is not precise to a decimal — given the observed spread, a few points between two companies means nothing and twenty points means a great deal. And it reflects the queries in the pack; a different query set would produce a different number.
Known limitations
Variance
Scores have moved by up to 16 points between measurements of the same company days apart. The rolling average mitigates this; it does not eliminate it. True variance across many scans is not yet established.
Geographic targeting is partial
ChatGPT, Perplexity and Claude accept a location parameter and are queried with one. Gemini’s grounding has no documented location parameter, so its results are not geo-targeted — a regional score is three-quarters localised. Anthropic additionally rejects some country codes, including the UAE; those calls run unlocalised.
Language matters more than geography
Across five languages and four engines — two queries, three runs per cell, 240 calls in total — ChatGPT shared between 0% and 12% of its cited source domains between English and the target language. Turkish returned 0% on every sample. German was the sole exception at 32%. Claude and Gemini resolved across languages far more readily, at 25–52%.
Two caveats. The per-cell ranges are wide — Claude’s Arabic figure averages 36% across a 6–73% spread — so these are bands, not point estimates. And an earlier single-run version of this test reported Spanish as the most divergent language at 7%; that was an artifact of targeting the United States rather than Spain. Retested against Spain it sits mid-range at 19%. The earlier figure is superseded.
Full figures, per-engine ranges and method: cross-engine and cross-language citation overlap.
Domain accuracy is load-bearing
A score depends on having the correct domain. In testing, one incorrect domain halved a company’s score. Domains are verified rather than inferred.
Two verticals tested
The figures above derive from embedded insurance and payments APIs. The cross-engine pattern held in both; whether it holds in every category is not yet known.
See the method applied
Every figure on these pages was produced by the instrument described above, and each traces back to the specific answers that produced it.
- Which embedded insurance companies AI engines name — every company measured in one category, ranked by how often the engines name them.
- Cover Genius’s Cited Score — one company’s measurement in full, with the per-engine split.
- How much the four engines agree — why one engine’s answer is not a proxy for the rest.
- Claude answers payments questions from memory — the one engine that decides whether to search, and when it doesn’t.
Reproducing this
Every figure comes from scans whose raw per-call records are retained: engine, query, run index, citation result, mention result, source domains, and full answer text. Any score traces to the specific answers that produced it. If you run the same queries against the same models and disagree with a result, that disagreement is checkable.
Changes to the method
Changing how something is measured changes what the number means. Every change to the instrument is dated here, because a score is only reproducible against the method that produced it.
2 October 2026 — memory answers count as answers. Claude, and sometimes ChatGPT, answers some buying questions without a web search. Those answers were scored as failures, which withheld scores (in payments, Checkout.com cleared the 60% rule by one answer) and measured something other than what buyers see: a buyer reads that answer whether the engine searched or not. They now count toward “named” and toward coverage, never toward “cited”. Existing snapshots were recounted from the stored answer text with no new scans. Shares on leaderboards and named rates in scores may rise where an engine often skipped search; citation rates are unchanged.
27 September 2026 — vendor-neutral query packs. Embedded insurance moves to pack version 2: two comparison queries named companies being measured (“Cover Genius vs Bolttech vs Qover” and “alternatives to Cover Genius”), which guaranteed those companies a mention and inflated Cover Genius’s score. Both are rewritten without names. Payments moves to version 3 for the same reason: one query asked for “alternatives to Stripe”. Two names were also removed from the embedded insurance comparison set, Sure and Extend, because mention matching counted ordinary phrases such as “make sure” and “extend coverage” as mentions. Scores and leaderboards now use only scans from the newest pack version; earlier versions are a separate baseline and their snapshots stay available, unindexed. Public score pages now show the latest dated snapshot instead of a seven-day average, because public companies are measured on demand, not on a schedule.
26 September 2026 — leaderboards published as dated snapshots. A category leaderboard previously pooled every complete scan from the last 30 days, showed only companies named at least five times by at least two engines, and was withheld from search until three scans existed. It now shows one complete scan, dated, with every company the engines named. Each company’s figure is the share of usable answers that named it; answers with no sources are excluded, as they are from the score. Companies named fewer than five times are listed separately rather than hidden. Frequency bands (0–24%, 25–49%, 50–74%, 75–100%) describe how often a company was named, not how good it is. Earlier snapshots stay available and are not indexed. The Cited Score itself is unchanged.
18 September 2026 — Claude engine model changed. claude-sonnet-4-5-20250929 replaced by claude-haiku-4-5-20251001. Tested on one query, three runs each: both returned an identical nine-domain source set, and Haiku returned it on every run where Sonnet varied between nine and fifteen sources. Sonnet ran a second search on two of three runs, so the current instrument is marginally shallower — an entity surfacing only on a second search pass may now read as uncited. Claude figures before this date are a separate baseline.
18 September 2026 — incomplete scans excluded from scores. Scores previously included scans that stopped early, gated only on per-engine coverage. Because a truncated run measures the first queries in a pack rather than a random sample, this biased scores upward where early queries were more favourable. Published scores may move as a result; the direction depends on the pack.
Cited Score is operated by Brightbay LLC. Questions about this methodology: [email protected]