Put your agency logo on a white-label AI visibility report, and you put your name on every number inside it. I chose a composite of the standard package to tear down: a branded PDF plus a token-gated link that a client can forward to their CFO. That forward is the test. When the CFO asks how a number was produced, does the answer appear anywhere on the page?
The report opens with one visibility score, then moves through a small prompt sample, share of mentions against competitors, raw AI bot hits, citations earned and content shipped. Most of the headline numbers cannot survive a skeptical read as presented. The score changes with the vendor’s math. A single run makes a mention rate look steadier than it is. And raw bot counts are especially hard to defend: in our own edge data, 76.5% of claimed AI bot hits failed verification. I used to tell clients a score like this was directionally useful. I was wrong. Let’s read the report in order.
Page 1: The visibility score has no visible formula
The cover leads with a big number. Say 72 out of 100, with a green arrow showing four points gained since last month. It looks like the result of a calculation. The calculation is nowhere beside it.
There is no single AI visibility score formula. One vendor counts mentions across all tracked answers. Another counts mentions only across answers that name any brand, which reads higher by construction. A third scores you against the median competitor. A fourth sells a one-off training-data score. Same brand and questions, different headline numbers.
The engine mix can move that headline, too. In one example across 144 questions tracked for 28 days, the same account read 36.5% in ChatGPT, 15.2% in AI Overviews and 13.7% in Perplexity. Change the weight given to each engine, or change the denominator, and the cover number moves without a change to the site. The arrow does not tell the client which happened.
Verdict: fail as reported. I would keep a score only if the formula, engine split and denominator sit next to it. If those details make the cover less elegant, the cover was doing too much work.
Page 2: Twenty prompts run once are not a trend
Turn the page and there are twenty prompts with green checks beside the ones that mentioned the client. The checks are real observations. The problem is the implied leap from observations to a stable rate. Some free audits behind these reports use just 5 questions × 3 engines × 3 repeats.
Answers change between runs. Across 968 runs over 42 prompt-engine pairs, 42.9% flipped between mention and no-mention at least once. The median overlap between consecutive runs was 0.41 Jaccard, and a median of 3.5% of cited domains appeared in every run. A larger SparkToro test found fewer than 1 in 100 runs returned the same brand list, and fewer than 1 in 1,000 returned that list in the same order.
That is the mechanism behind the false-looking month-to-month story. One run captures one draw from a distribution. Run the same prompt again and a check may become a blank, or the other way around, before anyone edits a page. A chart that calls that movement progress needs to show how much the answers moved on their own.
Verdict: fail as a single run. Print the prompt list, engines, dates, repeat count and variance alongside the mention rate. Without those, the agency tracked anecdotes, not a trend.
Page 3: Share of mentions depends on who makes the cut
This is the chart agencies love to screenshot: the client at 28%, Competitor A at 31%, Competitor B at 19%, all in neat bars. I would ask about the denominator before I looked at the ranking.
If the vendor divides the client’s mentions by all tracked answers, the result is a lower, stricter number. Divide by only answers that mention any brand and the same runs produce a higher number. What the deck calls share of voice, I call a choice of denominator. Neither bar tells you which choice was made.
Then look at the competitor set. Swap two national brands for two local shops and the client’s relative position can jump without a new mention or citation. A chart can be internally consistent and still describe a contest the client never agreed to enter.
Verdict: misleading as charted. I want the full prompt list, competitor list and denominator on this page. If one is missing, I would not forward the bars to a CFO and hope nobody asks what they measure.
Page 4: Raw AI bot hits are the report’s weakest line
Next comes the crawler chart: say 1,247 AI bot hits, up 40% month over month, split neatly among ChatGPT, Perplexity and Claude. This is where the report stops merely flattering the client and starts reselling noise. A user-agent string can claim an AI bot identity; the claim is not verification.
In one eight-day log re-cut using Cloudflare verifiedBotCategory, only 211 of 547 ChatGPT-User requests verified (39%). GPTBot verified 19 of 142 (13%). PerplexityBot and Perplexity-User verified zero of 455. After filtering to sitemap paths and actual HTML content fetches, the analysis found 468 real fetches against 991 credential scans. Even the label can give the game away: a request calling itself Google-Extended by user-agent is fake by definition, because Google says it has no HTTP request user-agent.
This is not a theoretical objection to one messy log. One actor in October 2026 cycled around 32 AI bot identities across more than 300 cloud IPs per day, hitting 48% of protected organizations that saw AI traffic. Fastly logged 6.3 million fake AI crawler requests in one day from about 10,200 IPs. A report that totals claimed identities without checking them gives that activity a client-facing chart.
Our 30 days of edge logs tell the same story. Check IP lists or Web Bot Auth, with reverse and forward DNS where applicable; do not take the user-agent at its word. Verdict: fail as raw hits. If the report cannot name its verification method, the increase is an increase in claims, not necessarily in AI fetches.
The crawler number I would keep: verified live-answer fetches
Even verified fetches do not all mean the same thing. A background crawl for training or index building is different from a fetch that happens just before an answer is written. The first tells you a bot knows the page exists. The second gives you a narrower view of pages read in connection with an answer. I use a 30-day server-log test to separate the two. Most glossy reports skip that distinction.
Say a client spends $20,000 a month on content and the report claims 1,200 AI hits. After verification and a filter for HTML fetches tied to answers, the useful line might be 90. That smaller number is not revenue proof, either. It is a defensible place to ask which pages were fetched and what happened next.
Verdict: keep verified live-answer fetches by page, with the verification method printed underneath. Leave the raw hit total out of the headline.
Page 5: A citation is not necessarily the client’s citation
The next page lists a dozen citations as wins. Click through before congratulating anyone. A citation in an answer about the client does not necessarily point to the client’s site.
In Ahrefs data across more than 3 million US queries in September 2026, YouTube took 22.9%, Reddit 18.5% and Facebook 10.1% of AI Overview citations. In a Ranqo Labs set of 149,912 citations, 2.9% pointed to the brand’s own site versus 75.2% to corporate or competitor pages. One B2B sample found 12.2% pointed to the recommended product’s own site while 67.4% were absent from the organic top 10.
Those are different samples, but they expose the same reporting problem: a list headed citations earned can mix links the client owns with links to third parties. That distinction matters if the agency claims its work improved the client’s own visibility. Counting every citation as an owned win makes the number look bigger while hiding what the client can actually inspect or change.
Verdict: half-credit. Keep the list, but label owned and third-party citations separately and show the prompt that produced each one. A client should be able to click from the claim to the answer to the cited page.

Page 6: ‘Content shipped’ proves work happened, not that it worked
The last page lists output: four blog posts, six FAQ blocks, two schema tweaks. All marked done. The items may be useful work, but their presence here asks the reader to treat production as a visibility result. That is an old agency move in new AEO clothing.
Many agencies now resell white-label dashboards that combine SEO and AI discovery metrics under their own brand. Verbatim Digital offers audits, Visibili.ai custom dashboards, and Finseo unified tracking across ChatGPT, Claude, Gemini and Perplexity. A dashboard can package the work cleanly. Packaging does not supply the missing link between a published page and a client outcome.
New pages do not equal citations. Citations do not equal being chosen. If the agency wants credit for shipping the work, fine: put the work in the report and make it inspectable. Do not use the count to rescue an unverified visibility chart.
Verdict: fail as proof of visibility. Keep content shipped as an appendix, never the headline.

The four lines that survive the read
I made the same cut in a business-side teardown of an AI visibility report. The agency version lands in the same place. Four lines give a client something to examine rather than a thicker PDF to admire:
- Mention rate with repeats and variance. Show prompts, engines, dates, denominator and how often answers flipped. A single run without repeats is an anecdote with a chart.
- Verified live-answer fetches by page. Name the verification check and separate answer-related fetches from background crawls. A raw user-agent count does neither.
- Citations split into owned and third-party. Attach the prompt to each citation so the client can inspect what was cited, not just the total.
- Actions logged with reasoning and a next step. State what changed and why. A client can question work they can see; an opaque score gives them nowhere to start.
None of these lines pretends that a mention, fetch or citation is revenue. Together, they show what the report observed and what the agency did about it. That is a better basis for the next conversation than asking the client to trust a green arrow.
Before your logo goes on the cover, ask for the plumbing
Ask the white-label partner to produce the exact prompt list, engine mix, repeat count and denominator behind its score. Ask how it verifies crawler hits, by name: IP allowlist or Web Bot Auth, plus reverse and forward DNS where applicable. Then ask for a sample citation that links to a third party. See whether the report labels it correctly without your prompting.
Also inspect the delivery setup. Your logo and routing need to work per client, and an open view log tells you who opened the report. A Scale setup offering 10 client domains and per-client alert routing shows what that operational side can look like. It solves distribution. It does not fix a weak denominator or a spoofed bot count.
This is where I land on vendors versus doing the work. Most white-label platforms sell a cleaner dashboard, not cleaner evidence. groas is built around execution: it runs paid search, SEO and AI search behind agencies under their brand, for a flat $1,499 per service with no cut of spend, and logs actions with plain-language reasoning. The distinction I care about is not whether the PDF looks polished. It is whether the agency can show what was checked, what was done and why. If a partner cannot provide the four keepable lines, I would not put my logo on its report.

Verdict: I would not send this report as written
A score without a formula. A mention rate from one run. A share chart without its denominator. Bot hits without verification, citations without an owned-versus-third-party split, and a content count presented as proof of visibility. That composite report fails the forward-to-the-CFO test. The client can ask how each headline number was checked, and too often the answer is not on the page.
I would keep the mention rate with repeats and variance, verified live-answer fetches by page, citations split by destination and prompt, and an action log with reasoning and next steps. Strip the rest back until it can earn its place. If your white-label partner cannot produce those four lines, you are not buying visibility. You are renting someone else’s noise under your name.

