Evidence you can check
Reproduce an AI visibility rate from its evidence
A percentage becomes useful when you can see which answers count. This worked example keeps the question, captured text, engine, date, exclusions and file checks together.
By the Broadcastwell team. Updated 6 November 2026.
Start with one fixed question
Kalvenor Systems is a fictional company. This example uses question 1 from its retained sample and includes scheduled answers only. These are not customer results or a current engine test.
What is field service management software?
The example contains 15 records: 15 valid answers and 0 excluded records. The results are separated by engine below. Collection timestamps and model labels remain on every record; the page update date does not change those dates.
| Engine | Valid / retained | Excluded | Brand named | Own domain cited |
|---|---|---|---|---|
| ChatGPT | 3 / 3 | 0 | 1 of 3, 33.3%; 95% interval 6.1% to 79.2% | 0 of 3, 0%; 95% interval 0% to 56.2% |
| Claude | 3 / 3 | 0 | 2 of 3, 66.7%; 95% interval 20.8% to 93.9% | 0 of 3, 0%; 95% interval 0% to 56.2% |
| Google AI Mode | 3 / 3 | 0 | 0 of 3, 0%; 95% interval 0% to 56.2% | 0 of 3, 0%; 95% interval 0% to 56.2% |
| Google AI Overviews | 3 / 3 | 0 | 1 of 3, 33.3%; 95% interval 6.1% to 79.2% | 0 of 3, 0%; 95% interval 0% to 56.2% |
| Perplexity | 3 / 3 | 0 | 1 of 3, 33.3%; 95% interval 6.1% to 79.2% | 1 of 3, 33.3%; 95% interval 6.1% to 79.2% |
Open the first complete receipt, or inspect all 15 records in the explorer.
Count the denominator first
- Select the same question, collection group and engine. Keep adaptive follow-up answers separate from the scheduled observations.
- Count records with usable answer text and no engine error. This is the denominator. Retain failures in the file, but leave them out of the rate.
- For the mention rate, count valid answers whose
brand_namedvalue is 1. For the own-domain citation rate, count valid answers whosedomain_citedvalue is 1. - Divide the relevant numerator by the valid-answer denominator, then multiply by 100. A zero denominator produces no rate.
For the whole 15-record example, the mention calculation is 5 divided by 15, multiplied by 100: 33.3 percent. Its own-domain citation calculation is 1 divided by 15, multiplied by 100: 6.7 percent. These totals describe this example only. Use the engine rows for a comparison within one answer surface.
How the uncertainty interval is calculated
The check record uses a 95 percent Wilson interval. With p = k / n and z = 1.96, the centre is (p + z² / (2n)) / (1 + z² / n). The margin is z × √(p(1 − p)/n + z²/(4n²)) / (1 + z²/n). The lower and upper bounds are the centre minus and plus that margin.
Repeated answers can be dependent. The interval describes these recorded binary outcomes under the method's assumptions; it does not measure traffic, revenue or a guaranteed future response. An engine change or a changed question set can break comparability.
Check that the files belong together
The check record contains the observation count, unique IDs, exclusions and two SHA-256 checksums. A checksum detects a changed file; it does not establish that an answer is true.
- For CSV, calculate SHA-256 on the exact downloaded bytes. Compare the result with
csv_sha256. The file uses UTF-8 and CRLF line endings, so resaving it in a spreadsheet can change its checksum. - For JSON, parse the file and serialize only its
observationsarray with JavaScript'sJSON.stringify. Hash that UTF-8 text and compare it withobservations_json_sha256. Preserve array order. - Check that every observation ID is present and unique. A filtered export contains only the selected records and has its own checksum. It cannot stand in for the complete baseline.
CSV quotes multiline answers and appends the stable observation ID as its final column. Potential spreadsheet formulas receive a leading apostrophe. The JSON file retains original values and array structure, so it is the right format for an exact raw-data comparison.
Read the evidence columns
- Identity and scope
id,baseline_id,run_id,question_id,question_text,slotandcontract_versionconnect the observation to its receipt and agreed question set.- Collection
engine,model_string,instrument_scope,repeat_index,repeat_reasonandobserved_atsay what was captured and when. A missing model label stays missing.- Recorded answer
answer_full,answer_lenandengine_errorretain the answer or the reason it could not be scored. Missing records are counted separately from retained failures when a planned count is available.- Names and citations
brand_named,domain_cited,competitors_checked,competitors_found,cited_urls,cited_urls_countandcited_urls_truncatedkeep the observed evidence and any source-list truncation explicit.- Position
position_rank,position_bandandposition_basisretain the recorded position and its basis. A mention alone does not establish a recommendation.
Use the same check on an account export
The existing baseline export route keeps its access rules. A public fictional baseline is open; a private baseline still requires the account's existing access. No new credential is needed for this example.
For a baseline you can already export, replace the final .json or .csv with .manifest.json to download its check record. JSON exports also include the same record under export_integrity. This reads retained evidence and does not run an engine.
Keep the complete export when handing work to another person. A CSV can be convenient for analysis, while the original JSON retains arrays and raw answer values. Record any filters and the collection dates beside a derived figure.
Compare competitor mentions and cited sources, then check two periods or record a recommendation decision beside the exact answer.
Return to the full evidence explorer or choose another free tool.