How Tarnua Visibility scores AI visibility, and when it refuses to
31 August 2026 · Updated 14 September 2026 · 7 min read · Tarnua, Dublin
Every AI-visibility tool gives you a number. Here is the arithmetic behind ours. The formula is implemented in code, not in a prompt, so this post can simply print it. What it counts is an AI model’s judgement of each answer, and the report lets you read every answer it judged. If you disagree with a scoring decision, you’ll at least know exactly which decision you disagree with.
One answer, one cell
A report asks real buyer questions across ChatGPT, Gemini, Claude, and Perplexity. Each question × engine pair is one cell. An AI model reads that engine’s own answer and classifies the cell by these rules:
- Absent: the answer doesn’t name you. Hard rule, regardless of what the other engines said.
- Cited: the answer names you and comes from a live web-search engine that backed it with at least one real third-party link. Your own domain doesn’t count, and neither does an opaque redirect.
- Mentioned: everything in between, named from model knowledge, or with only self-citations.
A model can misjudge an answer, so you can open any cell in the report and read the full answer behind it: quoted, dated, and clearly labelled as the AI’s output, not ours.
Markets are asked, not just labelled
A report can target up to five markets (three until 7 September 2026), and every prompt belongs to one of them. Since 1 September 2026 that market is a real query parameter, not a label: before it answers, each chat engine is told the person asking is based in that market (a location signal comparable to the locale a consumer chat app infers from an account) and, since 7 September, the engines that search the web are given the market as the search location too. Google’s AI Overview is geo-targeted at the search layer, as it always was.
Before that date the market reached the four chat engines only through geography words in the prompt text, so a run phrased without them measured every market identically. Reports run before 1 September 2026 don’t claim the simulation and say nothing about it; the ones that do carry a line saying so in their methodology table.
The formula
live_citation_% = cited cells ÷ live-search cells awareness_% = named cells ÷ all assessable cells score = 0.7 × live_citation_% + 0.3 × awareness_%
Citations dominate deliberately. A mention from model knowledge can drift from run to run; a real third-party citation is the durable, defensible signal: an answer that names you, backed by a link to a page on the wider web. Being named is worth something. Being backed is worth more.
The hard caps
- Zero cited cells → the score is capped at 15. However often you’re named, durable AI visibility without a single third-party citation is a shortlist you can fall off overnight. The score says so.
- Fewer than two usable engines → no score at all. One engine’s opinion isn’t a visibility measurement. You get an N/A, not a number we can’t stand behind.
When we refuse to score
This is the part we’d most like you to steal from us, even if you buy someone else’s tool: a tool failure must never masquerade as poor performance.
If an engine was unavailable during your run (a provider outage, an API error), its empty cells are excluded from every rate and marked unavailable in the report. They are never counted as “absent”, because “we couldn’t ask” and “it didn’t name you” are different facts. The same rule keys on configuration: if your workspace disables every live-search engine, citations were never measurable, so the live term is dropped and the report says “not measured” rather than showing a fake 0%.
Share of voice, and the metric we deleted
Next to the score you’ll see share of voice: of every vendor named across all the answers, the percentage that was you.
share_of_voice = your namings ÷ (your namings + rival namings)
We used to report “competitor co-mention rate”: the share of queries where any rival was named. Measured across our production reports it read 100% on almost every run: buying-intent questions always name some vendor, so the metric couldn’t tell one brand from another. We deleted it. The replacement moves when your visibility moves, and its ranking pool excludes vendors named only once: spelling variants and passing references were inflating denominators to nonsense like “rank 8 of 176”.
Why Google AI Overview isn’t in the score
Reports also measure Google’s AI Overview as a fifth answer surface, shown in its own panel, deliberately excluded from the score. Its coverage is best-effort and varies run to run, and folding a variable surface into the headline number would make your score non-comparable with last month’s. A tracker that quietly changes what its number means isn’t tracking anything.
There is a second reason it stays out: this surface is sampled. The AI Overview check is capped at 30 prompts per run, so on a 40- or 50-prompt run we measure a proportional slice of each market’s prompts, never a head slice, which would starve whichever market you weighted heaviest. The report says so in as many words: “This surface is sampled: 30 of the run’s 40 prompts were measured here.” The four chat engines cover every prompt, every run. A number built partly on a sample and partly on the full set would be neither.
Read the answers yourself
The score is a summary, never the product. The product is the evidence: every AI answer behind every cell, open to you, with sensitive claims flagged and a correction route if an assistant says something false about your brand. See exactly what that looks like in the sample report, no signup needed.
Researched and drafted with AI assistance. Product behaviour described here is verifiable in the report itself. When it changes, this post gets updated or dated.
See it on a real report
One score. Four engines, plus Google AI Overview. Every answer readable.