Instrument disclosure

The questions an AI visibility tool should answer

Every tool in this category can write a careful paragraph about uncertainty. Far fewer can tell you how many answers they sampled, what interval they put on the number, or what they do when the sample is too thin. These are those questions, in a fixed order, with our answers read from the code that enforces them.

version instrument-1.1.0reviewed 2026-08-0320 fields · 5 sectionsDownload JSON

Take these questions to any tool you are evaluating, including this one. The form is deliberately reusable and names no vendor. A field that cannot be answered with a number or a named method should be answered NOT DISCLOSED, because a reassuring sentence in a hard field is the specific thing this standard exists to catch.

What was sampled

Which engines are sampled, by name?

4: OpenAI, Anthropic, Perplexity, Google AI Mode

Counting a single vendor's several answer formats as several engines inflates coverage without adding a model. Naming them individually makes that impossible to do quietly. Google AI Mode is read through a SERP vendor rather than a model API, because Google exposes none, and that is said here rather than hidden behind a logo.

apps/web/lib/analysis-deps.ts

How many prompts run per measurement?

Up to 25, customer-editable, versioned and fingerprinted

A prompt set nobody can see is a scoreboard the vendor controls. Ours is editable by the customer and fingerprinted, so a change to it is visible as a change rather than as movement.

packages/providers/src/citation-budget.ts

How many samples per prompt?

Up to 5, with each prompt reduced to one outcome by majority

Engines answer the same question differently on consecutive calls. One sample per prompt is a coin flip reported as a measurement.

packages/providers/src/citation-budget.ts

Is the raw answer kept?

Yes. Every answer is stored verbatim as an immutable artifact and can be re-read

A vendor who discards the answers cannot show you the sentence behind a number, and cannot re-derive a figure when its own rules improve. It has to ask you to trust the score.

packages/worker/src/citation-cache.ts

How uncertainty is reported

What interval is published on a reported share, and by what method?

95% Wilson score interval, on every reported share, over the prompt count

A share with no interval cannot be distinguished from noise by the person reading it. Naming the method matters as much as showing the band: an unnamed interval is not checkable.

packages/providers/src/citation-extract.ts

Is significance tested before a change is called a change?

Yes. Fisher's exact test at 95% on every before-and-after verdict

Without a test, every scan produces a story. A change inside the interval is reported as no measured change rather than as a small win.

packages/core/src/measured-delta.ts

What is the smallest change reported on the composite score?

3 points. Anything smaller is reported as no change

A composite built from sampled parts wobbles between scans with nothing having happened. A vendor with no floor will sell you that wobble as progress.

packages/core/src/score-delta.ts

What happens below the floor

What does the product do when the sample is too thin to report?

It holds. No number is persisted and the surface renders NOT MEASURED with the reason

This is the field that separates the category. Almost every tool renders a zero or an estimate, and a zero is indistinguishable from a finding. Holding costs a vendor the thing they most want to show.

packages/worker/src/citation-cache.ts

What is the minimum sample before a rate is quoted?

3 answers of a kind, and 3 answers naming the brand before any framing breakdown

A rate over two answers moves fifty points on one word, and a rate is the thing people screenshot.

packages/core/src/branded-share.ts, packages/core/src/answer-framing.ts

Is a measured zero distinguished from an absence?

Yes. A measured zero renders as a solid finding; an absence renders dashed with a stated reason

'Nobody cited you' and 'we did not look' are opposite findings that most dashboards draw identically.

packages/core/src/branded-share.ts

Is a composite ever published from partial inputs?

No. Held below 5 of 7 pillars measured; the coverage ratio is shown instead

A composite from two available pillars measures what happened to be available, not visibility.

packages/scoring

Where judgment enters, and how it is bounded

Does a model judge tone, sentiment, or quality anywhere in the score?

No. No reported number is produced by a model's judgment of an answer

A sentiment score has no denominator you can check, no span you can read, and no way to be visibly wrong. It is the easiest impressive number in this category to produce and the hardest to falsify.

packages/core/src/answer-framing.ts

How is 'how you were described' decided, if not by a model?

Deterministic rules over the sentence naming the brand, from 55 published terms, with the matched sentence carried on every label

A word list is still a judgment. The difference is that it is versioned, inspectable, and reproduces the same label on the same answer every time, and we publish the words rather than asking for trust.

packages/core/src/answer-framing.ts

How is factual accuracy assessed?

Against facts the OWNER supplies, never against our reading. Unchecked when no facts exist

A vendor grading accuracy by its own judgment is marking the homework it set. Anchoring to owner ground truth means we can be shown to be wrong.

packages/providers/src/answer-accuracy.ts

Can the vendor's own URL be injected into a citation count?

No. Every counted citation must trace to a source the engine returned, asserted at runtime

This is the cheapest way to inflate a customer's headline number and the hardest for a customer to detect.

packages/providers/src/measurement-integrity.ts

Whether the instrument itself is checked

Is the detector benchmarked against a labelled corpus?

Yes. A labelled corpus with every fixed defect retained as a permanent regression case

A detector nobody benchmarked has an unknown error rate, and its errors run in whichever direction flatters the customer. Ours found three of its own defects before any customer did.

packages/providers/src/detector-corpus.ts

Are the thresholds published with the file that enforces them?

Yes. 16 thresholds across 4 sections, of which 2 are marked provisional

Publishing a threshold without its enforcing file is a claim. Publishing both is a commitment a reader can hold you to.

packages/core/src/methodology-corpus.ts

What is the known error rate of your own labelling rules?

5 of 6 "hedged" labels were wrong when read on 2026-08-10. Rules narrowed since, not re-audited. Counts, not a rate

This is the field a vendor has to answer against itself, and the reason most will leave it blank. A rule set with no audit does not have a low error rate, it has an unknown one. The figure is the last MEASURED one: the rules were narrowed in response to it, so treat it as an upper bound rather than a current rate, and the next audit has not happened yet.

packages/core/src/answer-framing.ts

Is a provisional number labelled as provisional?

Yes, in the same sentence as the value, with what would replace it

Every instrument has placeholders. The disclosure question is whether they are marked or quietly presented as measured.

packages/core/src/methodology-corpus.ts

Does the vendor sell the remediation it grades?

No. We sell measurement only, and no scan outcome is priced

A vendor paid to fix what it measures has no version of its scan that recommends doing nothing. This is a conflict a buyer can check on a pricing page in ten seconds.

apps/web/lib/no-guarantees.test.ts

Why this is a form and not an essay

An essay lets the author choose which questions to answer, and every vendor chooses the ones that flatter them. A fixed set of fields removes that choice. The answers above are interpolated from the constants that govern the behaviour, so if a floor moves in the code this page moves with it or the build fails.

Every threshold, published · How we measure · How to check a tool like this one