Methodology
How Answer Radar measures, in the words the code uses
Every AI visibility number Linkeddit reports is computed by a metric layer with written definitions, version stamps, an admissibility grader and a set of refusals. This page publishes those rules as they read in the code, so a customer, a reviewer or an AI assistant can check what a number means before quoting it.
Copied from the metric layer on 4 September 2026. When the code changes, this page changes in the same commit, and the version strings below change with it.
The unit of measurement is a sample, in a segment
A run asks a set of prompts of a set of engines, optionally in a set of geographies, one or more times each. Each answer is a sample, and the sample is the unit.
What a run is
A run specification is frozen at creation: the prompt texts, the providers, the geographies, the language and the number of samples per prompt. Total samples are prompts times providers times geographies times samples per prompt. Configured maxima on the day: 50 prompts per run, 5 samples per prompt, 200 samples per run. Every sample has a stable index in the run, so a duplicate delivery of any unit is detectable downstream.
How engines are measured
The note that travels with every metric set, verbatim: “Measured through official provider APIs with grounded web search. These are a controlled measurement proxy, not an exact reproduction of consumer ChatGPT, Claude, Gemini or Perplexity, and results are specific to the provider, model, tool version, locale, prompt and sampling configuration disclosed alongside them.” Google AI Overviews is approved as a fifth engine and its pages populate when that engine ships.
What a segment is
Five axes must match before two samples may sit in the same average: provider, model, tool version, geography and language. Metrics are computed per segment and never across them. A run measured on two instruments holds two segments, and a share of voice for the run as a whole would average two different measuring instruments, so it is not emitted.
What a customer sees of the instrument
The engine name and an opaque instrument token: a short digest over provider, model and tool version that is stable for one instrument and different for another. Customers never see a model id and never see a dollar amount. The exact model snapshot is stored, because it is what lets a brief say two weeks are not comparable when a provider changes its model.
The six metrics, as defined
A number whose name is not in this list has no definition and is not emitted. The definitions are stored as text once and reach the API, the MCP tools and every report from that one source.
| Metric | Unit | Definition |
|---|---|---|
| Presence rate | share | The share of admissible samples in which the buyer's brand was named in the answer text or cited by URL. Presence is an observation about the answer, not a judgement about ranking or endorsement. |
| Recommendation rate | share | The share of admissible samples in which the buyer's brand was not merely named but recommended, as judged by the mention extractor. Always lower than or equal to presence rate. |
| Share of voice | share | Each vendor's share of all vendor visibility in the segment. A vendor named anywhere in a sample counts once for that sample, no matter how many of its products the answer lists, so a broad product catalogue cannot inflate the score. Only entities classified as products count; publications and features are excluded. Shares sum to 1 across vendors. |
| Mean position | ordinal | The average ordinal position at which a vendor first appears across the admissible samples that name it, where 1 is the first product named in the answer. Lower is better. Computed from the answer text, not from the model's own claimed ranking. |
| Sentiment mix | share | The distribution of judged sentiment (positive, neutral, negative) across a vendor's mentions in the segment, as a share of that vendor's mentions carrying a sentiment label. |
| Citation share | share | Each domain's share of all cited domains in the segment, counting a domain once per sample that cites it. Flags whether a domain is the buyer's own or a tracked competitor's. |
Two arithmetic rules sit under all six. A ratio with an empty denominator is not silently zero: the honest value differs by metric, so callers state it deliberately, and where zero would be a claim rather than an absence the number is left out of the payload. And the sample is the unit, not the row: a vendor named three times in one answer, or named through three product lines, counts once for that sample.
Which samples may be counted
A provider returning a successful response is not the same as a measurement. Every sample is graded, and only one grade is admissible.
error
The provider failed. A failure stays a failure and is never converted into not mentioned or zero visibility.
ungrounded
The model did not search, or we cannot tell whether it did. It answered from training memory rather than the live web, so absence from that answer is not evidence of absence from an answer engine. Unknown grounding is treated as ungrounded: a missing signal is never read as a passing one.
thin
It searched, but the response is too degenerate to read a verdict off: fewer than one citation, fewer than 500 characters of answer, or no product named at all.
grounded
Everything else. Only grounded samples feed presence, recommendation, share of voice, position, sentiment and citation share.
Every excluded sample is reported by grade in the disclosure block, because a rate over 5 of 8 samples is a different claim from a rate over 8 of 8 and a reader cannot otherwise tell. A segment with nothing admissible reports no metrics at all, with usable set to false. Emitting 0 percent presence would convert a failed measurement into a finding. The thin thresholds, at least one citation and at least 500 characters of answer, are configuration, not code, so tightening them does not require a release.
Versioning: what may be compared with what
A metric version is comparable across customers and across time. A change to any definition, formula, judgement or grading rule bumps its version, and numbers stamped with different versions are not comparable.
| Judgement | Version on 4 September 2026 |
|---|---|
| Metric definitions and formulas | visibility-metrics-v1 |
| Mention judgement (which entities an answer named, and whether it recommended them) | mentions-v4 |
| Entity taxonomy (product, publication, feature, other, and vendor roll-up) | entity-taxonomy-v1 |
| Vendor reconciliation (one vendor is one vendor across a run) | vendor-reconciliation-v1 |
| Sample quality grading | sample-quality-v1 |
The versions are emitted alongside every result rather than kept in a changelog, because a changelog is the thing a reader does not open. One mention judgement version is used per metric set; rows judged under an older version are excluded and counted out loud, including rows with no version at all, which are counted as unversioned rather than silently kept. Evidence itself is append-only: samples, citations, mentions and stored source documents are never updated or deleted outside their parent’s deletion. A parser change recomputes interpretations without rewriting originals.
Entities and vendors: who counts in share of voice
Share of voice divides by the set of things an answer named, so that set must contain products and nothing else, and it must count one vendor once.
Kind
Every judged mention carries a kind: product, publication, feature or other. Only products are admissible to share of voice. A review site the answer cites and a feature the answer discusses are not candidates the buyer competes against. Our ground truth wins over the judge’s: an entity that resolves to the buyer’s brand or a seeded competitor is a product whatever the judge said, and an unknown kind falls back to other, never to product.
Vendor
A vendor key is an attribution, never a presence claim. A deterministic string rule resolves parentage first, and the judge’s answer is used only where no string can reach. Vendors are reconciled across the whole run before segmentation, because “this product belongs to that company” is a fact about the world and applies whichever engine revealed it. Measurements never pool that way.
Direction of error
Reconciliation may only merge, never split. A vendor left split has its share divided between two keys and the denominator inflated by one, so nobody is credited with visibility they did not earn. The invariant tests pin that direction. Nothing in vendor grouping may decide whether the buyer’s brand was present; presence is governed by a separate whole-word match against the answer text.
Coverage and gaps: what the answers require of a page
A coverage score is only as defensible as the set it scores against. The set is derived from admissible samples for one prompt, and agreement is counted in engines, not in samples.
How a requirement is derived
A term or an entity becomes a requirement when independently built engines agree on it, counted by distinct provider rather than by sample, because one engine sampled five times repeats its own phrasing. Terms come from the answer text under the coverage version; entities come from the mention judgement under its own version. They are reported separately and never blended into one weighted number, since that would stamp one figure with two incomparable versions.
Three exclusions
The prompt’s own words, because a page that restates the question has covered nothing. Publications and features, because requiring a page to cover a review site’s domain is nonsense. And the buyer’s own brand, because requiring a customer’s page to mention the customer is free coverage, and free coverage inflates the score of exactly the pages that need work.
Coverage is binary and refuses three ways
A page either says a requirement, by whole-word match with URLs stripped, or it does not. Counting occurrences or weighting a heading above a footer is a judgement about prominence, and that judgement is left to the reader of the page. A page whose text could not be read is unusable with a stated reason, never coverage zero. A prompt with an empty requirement set is unusable for the same reason. A rate with an empty denominator is absent from the payload, not 0.0.
What a finding may claim
Aggregation measures one thing: whether the customer’s brand appears in the answers to a prompt, and who appears instead. That evidence supports exactly two finding types, a content gap and a competitor win. Other finding types each need an evidence source this measurement does not have, and emitting one from an absence would be a fabricated finding wearing a typed card’s credibility. No prose about why a finding matters is written by the measurement layer; the observed facts pass through verbatim.
Fix faithfulness: a draft may cite only what the run recorded
A drafted fix may only reference evidence actually present in the run's stored citations. Fabrication is made structurally impossible rather than semantically graded.
The two checks
Every citation id attached to a fix must be a citation row belonging to that gap’s samples, scoped to the customer’s own project. Every URL in the content must match a stored citation URL, or at least a stored citation domain, and the report says which: an exact page match or a different page on a site the run cited. A gap with no stored evidence fails closed and supports no references at all.
What it does not claim
The guard checks sourcing, not accuracy. A faithful result means the draft is correctly sourced, never that it is correct; whether a cited page supports the specific sentence attached to it is the human review step. A source that is real and public but was never returned in an answer we sampled is still unsupported here. Only measured evidence counts. The same definition serves the check tool, which reports, and the write path, which refuses, so one cannot bless what the other rejects.
Re-measurement: an observed delta, never attribution
Re-verification reports an observed post-change delta, not proof that the fix caused it. Every type in the verification layer is shaped so the honest statement is the easy one, and there is deliberately no field in which a cause could be recorded.
The comparison
A follow-up run uses the identical prompts and configuration after a configured indexing delay, 168 hours by default. Segments are paired only when provider, model, tool version, geography and language all match; a segment present on one side and not the other is not comparable, never a fall to zero. Two metrics are compared, presence rate and recommendation rate, because both are per-sample ratios on identical denominators. Share of voice and mean position are not subtracted, because the first is a distribution and the second an ordinal whose absence is not zero.
When a change counts
A rate over n samples can only take values k over n, so its resolution is 1 over n, taken from the coarser side. The threshold applied is the larger of the configured minimum change, 0.10 by default, and that resolution. A delta is significant only when its absolute value clears the threshold; anything under it is reported as no significant change however large it looks. Each delta carries its own smallest detectable change and the threshold applied. No confidence value is reported, because a plausible-looking number there would be the most quotable thing in the response.
| Outcome | Meaning |
|---|---|
| improved | The comparable metrics moved up by at least the threshold. |
| declined | They moved down by at least the threshold. |
| mixed | Presence and recommendation moved significantly in different directions. This is reported as mixed, never collapsed to one direction. |
| no_significant_change | Both sides were measured on the same instrument and nothing moved beyond what the measurement can resolve. |
| not_comparable | The two sides are not the same instrument, or one carries no admissible evidence. Not a delta of zero. |
| ambient_change_not_isolated | The target prompts moved, and so did the control prompts the change did not target. The measurement cannot separate your change from whatever moved everything. |
Control prompts are prompts the change did not target. If they moved as much as the target, the outcome is ambient change not isolated, which is what stops a market-wide shift from being reported as a win. When the gap has no prompt, no target and therefore no control set exists, and the report says so rather than treating every other prompt as a control.
What no measurement here can tell you
Three things we do not measure, and will not estimate on the page.
How many people asked
No engine publishes prompt volume for a private assistant. Anyone quoting one is estimating. We report which of your approved prompts were answered and how, not how often the world asks them.
Whether an answer sent a visit
Assistants pass little or no referrer, so attribution from an answer to a visit is inference. We measure visibility and citation, which are observable, and report change over time.
Why an engine chose a source
We record what was cited and what was searched. Observed facts, hypotheses about what may contribute, and testable actions are kept strictly separate, and no result states that a page was cited because of anything.
Where to see all of this on a real number
The definitions and the lineage are data, not documentation. They travel with every metric set.
Every metric response from the API or the MCP tools carries, per segment: the engine and instrument token, geography and language; the run ids and time window; the prompt count; total samples, admissible samples and the admissible rate; the count excluded under each grade; the count excluded under each other judgement version; the sampling configuration; every version string in the table above; and the measurement note quoted at the top of this page. A client that renders our numbers can therefore caveat them without a dashboard from us. If you are quoting one of our figures in a review or a report, quote the disclosure block with it. Our editorial policy applies the same standard to what we publish about other vendors, and the citation tracking page explains what a citation is and is not.
Frequently asked questions
What does Linkeddit's AI visibility score measure?
There is no single score. Answer Radar reports six defined metrics per segment: presence rate, recommendation rate, share of voice, mean position, sentiment mix and citation share. Each is computed only over grounded, admissible samples, only within one segment (provider, model, tool version, geography, language), and each travels with its definition and a disclosure block that states the prompt count, total and admissible samples, exclusions by grade, and every version that shaped it.
Why do you refuse to report a number for some segments?
Because a segment with no admissible samples has no measurement, and emitting 0 percent presence would convert a failed measurement into a finding. Those segments are returned with usable set to false and no metrics. The same rule stops a provider error from becoming not mentioned.
Are your numbers comparable with other vendors' scores?
No, and neither are theirs with each other. Every visibility number in this category is a sample of a prompt set on a set of engines on a day, and the prompt sets differ. Our numbers are comparable with themselves across time and across customers only when the metric version, judgement versions and segment match, which is why the versions are emitted with every result rather than kept in a changelog.
How do you measure the engines?
Through official provider APIs with grounded web search, for ChatGPT, Claude, Gemini and Perplexity. These are a controlled measurement proxy, not an exact reproduction of the consumer apps, and results are specific to the provider, model, tool version, locale, prompt and sampling configuration disclosed alongside them. Customers see engine names and an opaque instrument token, never a model id.
What stops a drafted fix from inventing evidence?
A structural faithfulness guard. Every citation id attached to a fix must be a citation row from that gap's own samples, and every URL in the content must match a stored citation URL or domain. A gap with no stored evidence fails closed and supports no references. The guard checks sourcing, not accuracy: whether a cited page actually supports the sentence attached to it is the human review step.
Does re-measurement prove a fix worked?
No. Re-verification reports an observed delta between two measurements on the same instrument, after a configured indexing delay, with control prompts, and only calls a change significant when it clears both a configured minimum and the smallest change the sample size can express. There is no field in which a cause can be recorded, and no confidence value is reported.
See the disclosure block on your own prompts
Answer Radar is included with Compete at $99 a month. Every number it returns carries the definition and the lineage described on this page.