Your client opens the monthly deck. Rankings are up. Organic sessions are flat but healthy. Then they say the thing you have been dreading since spring: "I asked ChatGPT who the best vendors in our category are, and we weren't in the list."
You have a screenshot from your AI visibility platform showing a score of 42. You do not know what the 42 means. Neither do they.
That gap is the whole problem. Not a shortage of content, not a missing tool: an evidence gap that opened somewhere between the strategist who spotted the omission, the writer who drafted against it, the editor who approved it, and the deck you are holding. Evidence survives a handoff only when something visibly breaks without it. Everything below is about building that break.
The evidence packet, and who keeps it alive
A strategist spots an omission in a monitoring tool, describes it in a project board, a writer rebuilds the context from memory, and an editor receives a draft with no trace of the source that justified it. Review then collapses into taste.
Fix it with an evidence packet that travels as one object. Four artefacts, and they do not blur: the research canvas where sources are gathered, the register that holds the claims, the draft, and the comment thread. Comments never carry evidence. They carry opinions about evidence.
Give every load-bearing claim an ID and six fields: claim ID, claim text as approved, source URL, the verbatim quote or snippet that supports it, date accessed, and the metric definition where a number is involved. Claim IDs persist through every round. If the claim text changes, the ID stays and a new version row opens beneath it, which means a reviewer can see at a glance that round three widened what round one could prove. Change the number without changing the row and you have a reframing problem nobody will catch until a client does.
Most clients will not review inside your platform. They want a Google Doc and an email thread, which is where the packet usually breaks. Six mechanics keep it attached:
- Issue the ID before the sentence exists. The claim ID is created in the register at research capture, not retrofitted after drafting. Retrofitting is how orphaned citations appear.
- Fix the ID pattern. Something like C-{article-slug}-{###}, zero-padded, stable once issued.
- Put the ID in the document as a comment or a small parenthetical beside the sentence it supports. Never a highlight colour. Colour does not survive a copy-paste.
- Keep the source outside the editable draft. The verbatim quote and URL live in the register, which reviewers can read but not edit. A quote pasted into the body of a Doc will eventually be reworded by someone trying to be helpful.
- Send three links together: draft, register, research reference. A reviewer who disputes a sentence reaches its source in two clicks.
- Lock at approval. Name the current version approved_v1 in version history, write that version ID into the register header and every row, and treat the snapshot as read-only. Further changes open draft_v2 and a fresh cycle.
Two Docs behaviours will break the trail if you do not plan for them. These are the behaviours my own teams have tested rather than a universal product specification, so verify them in your own environment before you build a rule on them. A suggested edit that rewrites a marked sentence sets that claim row to re-check, and the row stays in re-check until the editor has read the quote against the new wording. A comment-only exchange that changes meaning without changing text does the same thing, because the sentence a reviewer defends in a thread is not always the sentence still on the page. Treat a copied draft as a new draft version with a register row to match, never a silent continuation of the old one.
Who does what:
- Freelancer or writer: populates claim ID, source URL, and verbatim quote for every statistic, comparative, or capability claim before submitting. A sentence carrying a number without a populated quote field goes back unread.
- Editor: opens each claim ID, reads the quote against the sentence in the draft, and marks it supports, overstates, or missing. Overstates is the common one. It rarely looks like a lie; it looks like a qualifier quietly dropped.
- Account lead: runs a pre-approval pass confirming the approver can open the exact register row behind every number in the deck, then locks the packet at approval so the signed-off version stays immutable.
Versioning rules cover most edge cases, but three deserve naming. An evidence gap found mid-review belongs to the editor to flag and the account lead to adjudicate, not to the writer to quietly fix, because the writer has an incentive to keep the sentence. A client-requested edit after approval never amends the approved snapshot; it opens the next draft version. When the client rewrites a sentence but wants the ID kept, the editor re-validates the quote against the new wording first. Same number, same scope: keep the ID and open a version row. Wider scope, or a number the source does not carry: retire the ID and repopulate from scratch. "Growth improved" becoming "growth improved sharply" is a new claim, not a tidier one.
There is one more substitution case worth writing down, because it arrives from the client side and nobody plans for it. A reviewer disputes a sentence and offers a different source: their own internal figure, a vendor deck, a competitor's page. Do not swap the URL in place. Open a new row with the client's source, mark who supplied it, and have the editor read it against the sentence like any other quote. If it supports the claim, retire the original row as superseded and keep both visible. If it does not, the reason field carries why you declined it, which is the record that protects you when the same figure reappears next quarter.
Every version of this discipline I have watched fail died the same way: it stayed optional. So make something break.
The packet holds if it sits on the approval gate rather than beside it. The account lead approves the packet, not the draft, and cannot approve a claim ID marked missing. That is the whole enforcement mechanism, and it survives a busy month because skipping it means the deck does not go out, which is a consequence the account lead feels personally rather than one the editor absorbs alone.
The cost of that lands on your most overloaded person, so name what it displaces. In my own accounts the pre-approval pass took the slot that used to hold the account lead's line-edit of the draft. The editor owns prose now; the lead owns proof. When the lead is on holiday or the account changes hands mid-round, the gate fails open unless a named deputy is written into the register header before the round starts. That single field is the difference between a pause and a quiet bypass.
Name the writer's cost too, because that is the objection you will hear in week one. On my own accounts, populating three fields for a claim the writer has already read takes a minute or two; a 1,500-word article carrying eight load-bearing claims adds something closer to fifteen minutes than an hour. That is small enough to put in the brief rather than the rate, provided the brief says so before the first commission. If a freelancer prices it back to you, they are pricing the research they were already meant to do. The training is one page: the six fields, two worked examples showing a quote that supports a sentence and a quote that overstates it, and the date format you want.
Enforcement has to be mechanical rather than editorial, because partial adoption is the normal state. Some editors will work inside your platform, some freelancers will live in Docs, and a few will do both in the same week. A submission with an empty quote field, an unparseable date, or a URL that does not resolve is returned by whoever receives it, without a judgement about the writing. That rule holds regardless of which tool the person is in. Sample two claims per article for the first three articles from a new writer, then one per article after that, and log which writers came back clean. That log is what tells you whether the problem is the brief or the person.
Then the round you are worried about. It is 5pm, the client review is tomorrow, and a freelancer has submitted with three empty quote fields. You do not send it back unread and you do not wave it through. The editor strips the three unsupported sentences and the draft goes out shorter. The claim dies, the deadline holds, and the freelancer's next brief carries a note that unsupported claims get cut rather than chased. Two rounds of that and the fields get filled, because writing a sentence that gets deleted is more expensive than pasting a quote.
Go Fish Digital ran a version of this on itself. For the query "digital PR agency", ChatGPT Search was citing a third-party listicle that named a competitor while omitting the agency. Rather than publishing more articles, the team found that cited page and added a Notable Clients list to it, and the agency reports that after waiting a week, ChatGPT Search started pulling in that information when listing Go Fish Digital [1]. No business metric was published, so it proves the mechanism and nothing more. Report it that way.
The larger point is that the intervention often sits outside your own domain, which raises a scoping question most retainers do not answer: who owns outreach to a third-party publisher, and what does client approval look like for a change to someone else's page.
The regulated account, one round
If any of your accounts are regulated, that is where the packet earns its cost. Tighten three rules for those clients.
First, restrict acceptable source types to a named list: the regulator's own publications, peer-reviewed or published studies, the client's approved fact library, and client-approved PDFs. A competitor's marketing page is context, never proof.
The failure this next rule prevents is a paywalled table sitting in a shared draft with nobody able to say who is licensed to use it. Handle permissioned material by reference rather than by copy, and record the permission itself as data. Six permission fields on the row, separate from the claim fields above: document ID or licence reference, permitted use, audience or territory restriction, expiry or review date, storage location, and the internal owner who can confirm all of the above. A licensed report used in a client-facing article is not the same permission as the same report used in a public blog, and the row should say which one you hold. At re-measurement, carry a permission forward only if the expiry date has not passed and the use has not changed. A new audience, a new market, a new distribution channel, or a lapsed date sends the row back to the owner before the claim can be reused.
Third, keep the tone and context approvals in a separate register from the claim evidence. This is the rule that saves an eleven-client team from a slow mess. Whether a sentence is supported is a factual question with one answer; whether it fits the client's approved vocabulary, risk appetite, and disclosure wording is a client-specific judgement that changes per account and sometimes per product line. Mixing them means a compliance reviewer cannot tell whether a blocked sentence failed on proof or on phrasing, and an editor starts treating a tone objection as an evidence problem. Two registers, one decision mark each, cross-referenced by claim ID. Round IDs, actors, codes, timestamps, and a reason where the code is not self-explanatory apply to both, exportable in the same format. The reason a claim was blocked is more useful twelve months later than the sentence that replaced it.
Here is one row through two rounds, on a regulated account.
| Field | Round 1 | Round 2 |
|---|---|---|
| Claim ID | C-ai-visibility-014 | C-ai-visibility-014 (version row 2) |
| Claim text | "AI-driven discovery now decides which vendors reach a shortlist." | "Most surveyed buyers say AI guidance changed which vendor they chose." |
| Quote field | Survey line on buyers reporting AI guidance led them to a different vendor than expected | Unchanged. It already supported the narrower wording. |
| Review round | R1 | R2 |
| Evidence decision | OVERSTATES, editor, 04 Sep | SUPPORTS, editor, 09 Sep |
| Tone decision | Deferred pending evidence | APPROVED, client reviewer, 10 Sep |
| Reason | Reported influence on a choice is not a decision mechanism; "now decides" is a scope the source never granted | Scope now matches the source |
| Adjudicated by | Account lead, 05 Sep | Not required |
| Snapshot | draft_v1 | approved_v1 |
Round one is never overwritten. The original wording, the overstates mark, and the reason stay in the log even though the published sentence is different, which is the part a compliance reviewer wants. A second claim about UK buyer behaviour had no quote field at all in round one, so it was cut rather than softened, and the rejection row records that too.
Package the methodology so a reviewer can audit it in minutes rather than reconstruct it. Front page: an index listing the approved version ID, the claim count, the number of rows marked supports, and the named approver. Second page: the claim-to-methodology crosswalk, so any number in the article maps to the prompt set, sample size, date window, and metric definition that produced it. Behind that: the raw answers and capture files. Tell the reviewer explicitly what is not evidence. Draft summaries, deck commentary, and the account lead's narrative framing are interpretation, and labelling them as such is what keeps the rest credible.
A dashboard screenshot is not proof
A screenshot records one observation under conditions the reader cannot see. Proof requires the conditions: the prompt, the engine, the date window, the competitor set, the raw answer, the sampling method. Strip those out and you have decoration.
Two agencies can report opposite trends on the same client in the same month because one ran 20 prompts weekly across three engines and the other ran eight prompts once. Neither is lying. Only one is auditable.
That variance is the reason to defend a cadence rather than assert one. Identical prompts do not reliably return identical answers, and buyers rarely phrase the same intent the same way, so recommendations move across paraphrases as well as across repeats of one prompt. A variance-components decomposition of non-determinism in LLM brand answers reports that a repeat past the fifth reduces relative-error variance by about 0.0003, while spreading the same budget across languages or models reduces it several times more [2]. Treat that as the scoping rule: paraphrase and engine breadth beats repeat depth. State it in the methodology note so the client understands why the panel is shaped as it is.
Build a proof ladder, and label every metric with the rung it sits on. Levels one to three are your monthly pack; level four belongs in the quarterly review with its caveats attached.
| Level | What you capture | What it supports | What it cannot support |
|---|---|---|---|
| 1. Observation | Fixed prompt, engine, country, date, full answer text, brand and competitor presence, and the tone of the mention | The brand appeared, or did not, in that sampled answer, and how it was characterised | Market share, or any causal claim |
| 2. Citation | Cited domain and URL, position, the exact claim it supported, source type and age | The assistant leaned on a specific source | That the source drove a purchase |
| 3. Trend | Same prompt set, same sampling method, baseline, time series, competitor comparison | Visibility or citation changed across a defined period | That your content alone caused the change |
| 4. Business signal | AI referral sessions, engagement, conversions, CRM source, self-reported influence | A measurable downstream association | Incremental revenue without attribution design |
Rung one carries a field most panels skip. A mention is not automatically a win. A model that names your client while describing them as the cheap option for small teams has produced a visibility result and a positioning problem in the same sentence, and if your register only records present or absent, the second half disappears. Log the characterisation verbatim and mark it favourable, neutral, or unfavourable, because that is the field that turns a reassuring score into a brief.
Run one metric through all four rungs so the method is testable on a single account next month. The numbers below are illustrative rather than a real account. Rung one: on 4 September, the prompt "best [category] vendors UK" returned four names in ChatGPT, none of them the client, with two competitors present. Rung two: the answer cited a third-party comparison page that lists both competitors and omits the client. Rung three: the same 20-prompt panel, re-run 60 days later under the same conditions, shows the client present in six answers against one at baseline. Rung four: AI-source sessions rose from 180 to 310 that month with nine form fills tagged to them in the CRM, plus one line in a sales call note where a buyer said a chatbot surfaced the client. That last item is self-reported influence, and it belongs in the register with the caller's name and date, not in the headline. The rung-four claim your register can carry is "AI-source sessions and form fills increased over the period", with sample size and attribution method in the metric definition field. The claim it cannot carry is that the content caused the revenue.
What an AI visibility platform measures, and where it goes quiet
An AI visibility platform samples answer engines against a defined prompt set and records whether the brand is mentioned, recommended, described accurately, or cited, alongside which competitors appear and which sources the engine leaned on. The same work travels under other names, so expect vendors to sell it as AI search visibility, GEO, answer engine optimisation, or LLM monitoring; the evidence questions below do not change with the label. A credible panel spans ChatGPT, Perplexity, Gemini, Claude, and Google's AI Overviews and AI Mode, which behave differently enough that one blended figure hides the interesting movement. Ranking is about position on a list. Answer inclusion is about whether the model puts your name in its own sentence.
Take that score of 42. Most vendors build something like it from share of mentions, the proportion of sampled prompts where the brand appeared, sometimes weighted by position or sentiment and aggregated across engines. The arithmetic is illustrative rather than any vendor's published formula: 21 appearances across 50 prompts on one engine is 42, and so is 84 appearances across 200 prompt-engine pairs, unless position weighting moves it. No standard formula exists across vendors, so require four disclosures before any score reaches a client deck: the prompt count and wording, the engines and model versions sampled, the repeat and date window, and the exact weighting applied. Without those, the number is a house metric, not a measurement.
Clients will ask whether to move budget from SEO, and the answer is a test rather than a percentage. Three questions decide it per prompt. Does the question have a commercial destination page on the client's site? Then write for both, because a ranked page still earns the session and still feeds the answer. Does the buyer resolve the question inside the answer and never click? Then the work is on the source the engine already trusts, which may not be your domain at all. Is the client absent from the answer while ranking well for the same intent? Then the problem is inclusion, not position, and more pages will not fix it. Run those three across your prompt panel and the split falls out of the evidence instead of out of a meeting.

Two access facts belong in the packet. OpenAI publishes separate robots.txt controls for OAI-SearchBot and GPTBot, each setting independent of the other, so each manages a different use of your content [3]. So a robots.txt line is a claim about access and needs a register row like any other, with a check on current bot-specific behaviour rather than a settled rule from last year. And a citation is not claim verification: Perplexity's source review process rates some domains and marks them with one of three labels, Government, Academic, or Trusted, and that rating attaches to the domain rather than to any single page on it [4]. A citation tells you the model reached for a page. It does not tell you the page supported the sentence built on top of it.
One measurement surface did get firmer. Google now publishes a generative AI performance report in Search Console showing how your site performs in generative AI features on Search [5], and it has been available to all sites worldwide since 31 August 2026 [6]. What it gives you is impressions and cited pages, with no clicks and no query-level detail [6], so it sits at rung one or two of the ladder and never at rung four. First-party, bounded, and silent on ChatGPT, Claude, Perplexity, and Gemini. Treat it as one series beside your prompt panel, never as the panel itself.
Four capabilities, not four subscriptions. One monitoring surface that samples multiple engines against your own prompt set and exports the raw answer, not only a score. A technical check on whether AI crawlers can reach and parse the pages you expect them to cite, because a retrieval blocker will defeat any amount of messaging work. Your existing analytics, with AI referrals segmented and tagged into the CRM. And somewhere the register lives with version history and read-only rows. The first three map to tools you can buy today, from dedicated monitoring vendors through to the SEO suites adding these features. The register is the part nobody sells you.
Protecting evidence across client accounts
Run five B2B accounts and the boundary between them becomes the thing that makes scale safe. A UK financial services client should never inherit prompts, competitor sets, or claims from a US software account. Cross-contamination is quiet and expensive. It shows up as a mis-scoped prompt panel, or worse, a claim borrowed from one industry and published into another where it does not hold.
Operationalise the boundary in the artefacts, not the intention. One workspace per client, never a shared folder with client subfolders, because the second structure invites copy-paste. Client-scoped definition libraries: what counts as a mention, what counts as a recommendation, which competitors form the baseline, which market the sampling runs in. Prefix every prompt set and register with the client code, so a stray file is visible on sight. When you clone a prompt structure from one account to another, clone the template and rebuild the content, never duplicate the populated set.
Then add one review step before approval. The account lead scans the packet for any source URL, prompt string, or competitor name that belongs to another client. Thirty seconds, every time. On my own accounts this catches something roughly once a quarter, usually a competitor list a strategist reused because two clients sit in adjacent categories.
Handovers are the pressure test, and they arrive without warning. An account lead resigns on a Tuesday with a client review booked for the Thursday of the following week. The successor opens the shared drive and finds eleven months of finished decks, none of which say why the prompt panel excludes two obvious category terms, or which claim was rejected in March because the source turned out to be a vendor blog. They inherit the relationship and a set of promises nobody wrote down. A decision log carries what a deck folder cannot, because a rejected claim with a round ID, an actor, and a reason is a readable argument rather than a deleted sentence.
Disclosure, since I am about to name my own product: I founded Eclipse, which keeps each client's evidence and approvals in an isolated workspace. Separation supports a consistent standard of proof as you add accounts. Only the review discipline delivers one.
Reporting progress without overclaiming
Move from what you observed, to what changed, to what it might be worth, and stop where the evidence stops.
Volume and value diverge, which is where overclaiming creeps in. A Seer Interactive case study of one site found ChatGPT referrals converting at 16% against Google organic's 1.8%, close to nine times the rate [7]. What that case study carries is the rate, on one site, and nothing about how much traffic sat behind it, so the volume half has to come from your own analytics rather than from the source. Report only the conversion rate and you may oversell a channel that is still tiny for your client. Report only the traffic share and you miss a high-intent segment forming in front of you. Show both, with the sample size.
Then there is the client who wants the number and nothing else. That conversation has a shape, and it is worth rehearsing before you are in it. Put the method under the headline before they ask for it. When they challenge it, and the good ones do, open the packet rather than defend the score. Show the prompt log, the raw answers, the cited URLs. In my experience the challenge usually dissolves at that point, because what they were testing is whether you can produce the working. If it does not dissolve, offer re-measurement on a wider sample at their cost, or a scope change that swaps prompt breadth for engine depth. Agreeing to report a number you cannot reconstruct is the one option worth refusing. And say what you do not know. A stated limit on attribution, paired with the test that would close it, survives a CFO question that a confident figure will not.
When an AI visibility platform closes the loop
Judge an AI visibility platform on one question: does the evidence it produces travel into approved, client-safe action, and does the result come back to inform the next decision? Monitoring without that loop is an alert system. Action without evidence is opinion with a deck around it.
The loop is the six fields and the approval lock described earlier, applied to measurement rather than to a sentence. A prompt where the client is absent and a competitor is cited generates a claim ID and a source URL before anyone writes a brief. That brief inherits the prompt string and the cited page as its metric definition, so the editor reviewing the draft is reading the same evidence the strategist saw. At approval, the packet locks and the prompt string carries forward into the next re-run unchanged, because a changed prompt makes the delta meaningless. The re-run result writes back to the same claim ID as a new version row, which is how you learn whether the intervention did anything. Break any one of those four connections and you have monitoring beside action rather than monitoring driving it.
Nobody in this category has closed that loop cleanly yet. Most agencies are still stitching a monitoring surface to an analytics view to a register that lives in a spreadsheet, and that should make you sceptical of any vendor promising a definitive score.
The one-round test
Before any prompt panel, run the smallest possible test. One article, one account, one round. This is the deliverable you can hand an editor tomorrow.
Every load-bearing claim in that article carries the six register fields and a C-{slug}-{###} ID issued at research capture. The gate applies as described above: the packet, not the draft, with a deputy named in the register header before the round opens. After publication, sample five claims at random. The run passes if every one of the five resolves from sentence to claim ID to source URL to verbatim quote to a decision mark with an actor and a date, with no orphaned citation in the article and no register row pointing at a source nobody can open. Four out of five is a fail.
When it fails, find the step where the chain broke before you run again, because the failure is almost always a single missing gate rather than a general lack of discipline: an ID issued after drafting, a quote pasted into the Doc instead of the register, or an approval taken while a row still read re-check. That test costs you one article's overhead and tells you whether the gate holds on your team. Run it before you buy anything. If you want the register columns, the ID pattern, and the two worked examples as a single sheet, ask me for the one-round test pack and run it on next week's article.
The prompt panel, as a second track
Once the gate holds, add measurement. Days 1 to 5: define 25 to 50 prompts across problem, category, comparison, alternatives, and trust questions, and capture a baseline with raw answers filed. Days 6 to 15: map which sources the engines cite and which of your client's claims those sources fail to support. Day 30: re-run the identical sample and report the delta beside the unchanged prompts, including the ones that did not move. Judge it on traceability rather than on the delta, because the delta at 30 days is noise.
Scale it by sample size rather than by method. Flagship retainers carry the full 50-prompt panel across four engines, re-run monthly; smaller accounts run 15 to 20 prompts on two engines, quarterly, with the same packet discipline. Itemise the two halves separately in the scope: monitoring as a fixed line covering panel size, engine count, and re-run cadence; optimisation as a variable line covering briefs produced, third-party source outreach, and page changes. Clients cut the second in a tight quarter and keep the first, which is the right order, because the panel is what makes next quarter's work provable.
On cost, so you can take a figure to your ops lead rather than a promise. This is one agency's experience rather than a benchmark, so time your own first run before it appears in any scope. On my own accounts a first baseline run has taken between six and ten hours end to end, covering prompt design, capture, raw-answer filing, source mapping, and write-up. The spread came almost entirely from prompt design: a client with a settled category and a known competitor set sits at the bottom; a client whose buyers use three different names for the same problem sits at the top. The re-run drops to roughly two hours once the panel is fixed. The baseline is a strategist job, because somebody has to judge whether a prompt reflects how a buyer asks. The monthly re-run sits with whoever assembles the reporting pack today, and in most teams it displaces the ranking commentary nobody reads.
That is enough to answer the question your client opened with, and to answer it the same way next month. Before the Q4 cycle, write down what each client's "visible" means, in one sentence, with the prompt set attached. The record is the proof.
Our Opinion
The part nobody sells you is the part that decides whether any of this holds. In the agency workspaces we run, the trail rarely breaks at research. It breaks at the second handoff, when a packet is reused rather than rebuilt, and the near misses we see are almost never invented numbers. They are inherited ones: a figure that was true for a US software account, carried into a UK regulated one by a strategist who trusted the row without reading the quote. Ownership of a claim ends where the account boundary starts.
What most of the market still gets wrong is buying the monitoring surface first and treating the score as evidence because a vendor rendered it neatly. We watch agencies absorb register work into editor time, where it quietly disappears by the third month. Our position is simple: the register belongs in the retainer as a named line with an hour figure beside it, owned by the account lead rather than the editor, and any number a client cannot trace to a row with an actor and a date does not belong in the deck at all.
About the Author
Mark Ridgeon is the founder of Eclipse, a B2B content operating system used by agencies running multi-client programmes, and does fractional COO work through ridgeon.me. He writes about evidence-led go-to-market content, client-scoped workflows, and keeping claims tied to proof from research through publication. He still runs his own prompt panels by hand once a quarter, on the grounds that nobody should scope work they have not timed.
References
- SEO Case Study: How We Influenced the ChatGPT Search Results, Go Fish Digital.
- Where Does the Noise Come From? A Variance-Components Decomposition of Non-Determinism in LLM Brand Answers, arXiv.
- Overview of OpenAI Crawlers, OpenAI.
- Understanding source labels, Perplexity.
- Generative AI performance report (Search) - Search Console Help, Google.
- Search Console's generative AI report has been worldwide since 31 August 2026, AIXH.
- Case Study: 6 Learnings, 1 site - How Traffic from ChatGPT Converts, Seer Interactive.





