Our AI Agents Credited Charts to Data We Don't Have

October 8, 2026AI & Automation9 min read
Our AI Agents Credited Charts to Data We Don't Have

A source line under a chart is output, the same as the chart. Nothing about it makes the chart more true.

Ours read: ViralFaceless Hook Grader internal study, May 2026, n=55. There was no study. The Hook Grader keeps no scores, so there was nothing to study. The post around the chart described how we had tested 55 hooks, and it closed by offering readers "the structural rubric we used in the hook study."

Our blog is written and illustrated by an agent-driven content pipeline, and no record we found shows where that chart's figures came from. It read like evidence anyway.

We found it on 2026-09-29, when we audited the charts and images in the bodies of our ViralFaceless posts. This post covers what the audit found, why the checks we already had did not stop it, and what we changed. It will not tell you how to stop an agent from inventing things. We do not know how. It will tell you where to look.

What the audit found

Most of it was fine, and that is part of why the rest survived. We checked 46 images across 26 ViralFaceless posts, and spot-checked eight more in posts we had already rewritten. Featured images and the data tables inside code blocks were outside the audit.

Of the 46, thirty-four passed: thirty illustrative with no data in them, and four with numbers an opened source supported. One of the thirty carries a product claim we have yet to confirm. Twelve did not pass.

46 images in 26 ViralFaceless posts, by group 46 images in 26 posts, audit of 2026-09-29 Illustrative, no data in it 30 Numbers backed by opened source 4 Unsourced or unsupported numbers 4 Other defect in the image 4 Credited to our own data 2 Source named, data not openable 2

Counts only, from our chart audit of 2026-09-29. Each image is in one group. The bars are scaled to the 30.

The twelve, and the ones worth telling:

  • Invented rates. A chart of five conversion rates, subtitled "Same channel, same month", carried a ViralFaceless.io footer. There was no channel and no month. A small "Illustrative" line was the only hint.
  • A quit point nobody stated. One post's intro and summary rested on "most creators quit around video 15", credited to two sources. Neither says it. One gives 33 uploads before a video gets traction. The other says the slowest quit before video 30.
  • Weights nobody publishes. A chart ranked YouTube Shorts signals "by weight" and credited a 10,000-Short analysis from a vendor blog that publishes no weights and no data.
  • A shutdown that had already happened. A timeline marked the Sora API "still live". It shut down on 2026-09-24, five days before the audit.
  • An infographic that argued with its own post. It read "High Searoh Volume", repeated two labels, and numbered a step differently from the post's own diagram.
  • Smaller slips. A price chart called a tier the cheapest when a cheaper one existed. A legend carried a "0:15" cliff nobody had measured.
  • Two sources we could not open. Each chart named a source whose underlying data we could not find.

Two images were credited to ViralFaceless data. For the Hook Grader chart above, no such data existed. The other drew on one real person's use of the product, which is not ours to publish. I will not describe it. It was removed from the post.

One diagram and the sentence before it implied that our product swaps video models. It does not. The diagram was rated fine and the sentence was the problem, so the diagram is not among the twelve. The sentence was removed.

The posts we had rewritten earlier that same day had passed an independent review. The spot-check still found a chart credited to a data vendor whose table, according to our own rewritten text, had been taken down.

In total we removed fourteen images from posts, four in the first pass and ten in the second.

Why our checks passed it

Every check we had opened a URL. These credit lines pointed at us.

Our fact check fetches each cited URL and confirms the number appears on the page. A credit line reading "internal study" or "ViralFaceless production case" has no URL. There was nothing to fetch, so there was nothing to fail. The rule was already written: every data claim needs a source. The line satisfied the rule by existing, and nothing tested what it pointed at.

One guide to AI hallucinations in marketing, from Aergos, gives the standard advice: find the primary source, and click every link the AI generated(opens in new tab). That is good advice for a model citing the outside world. It assumes the claim names something outside. Ours named ourselves, and the primary source for our own data is a table in our own system. The table did not exist, and that checklist does not ask for it.

Our instructions may have made it easier to slip. The chart step told the agent to build a chart whenever a section had three or more comparable metrics, and to supply the data points and a source attribution. Read that the way an agent does: a form with a source field. An agent holding numbers from a real page fills the field honestly. One that wrote a plausible section with three comparable numbers fills it with whatever sounds right. That is our reading of our own instruction. We cannot tell which step produced which chart, and nothing on record shows where any of those figures came from.

The independent reviewer, a second agent that reads the draft in a fresh context, arrived on 2026-07-06. It runs the same URL test, so a credit with no URL gives it nothing to fail either.

We wrote before about an agent saying "done" when it wasn't and about instrumenting a content pipeline instead of trusting it. Both argue that the check has to sit outside the thing it checks. This is the harder case. Our check did sit outside the writer, and it still had nothing to check against. The same demand sits behind proof before posts in an SEO agent, applied here to a pipeline that writes its own charts.

We are not alone. An audit of 111 million references from 2.5 million scientific papers estimated 146,900 hallucinated citations(opens in new tab) in 2025 papers across four repositories. Those citations point at the outside world. Ours pointed at ourselves, which made them harder to spot.

What it cost

When we audited it, the Hook Grader post was still describing a study that never happened and offering readers that study's rubric.

Removing the chart was not enough. The paragraphs that leaned on it had to go too: the sample size, the claimed lift, the closing offer. The rewrites and the prose fixes went through the independent reviewer before they went live, and some of the first-pass rewrites needed two or three rounds before they passed.

The fixes also expired. On 2026-10-01 a product release changed our image tiers, and two of the posts we had just rewritten needed a number corrected again. The product facts we rewrote from were dated 2026-09-29. A source of truth with a date on it is still a snapshot.

What we changed, and what we have not

Here is what is different:

  • Reviewed rewrites. The rewrites, and the prose fixes after each chart removal, went through the independent reviewer before they went live.
  • Guarded removal. Removing a chart from a live post takes an explicit flag naming that chart, and each removal is logged.
  • A topic gate. The pipeline's instructions gained it the same day, for an indexing problem and not this one. A new ViralFaceless post now needs a cited demand number or a cited first-party fact before it is approved.
  • The live posts. The charts and the study paragraphs are gone from them.

And here is what is not fixed. Nothing reads the credit line inside a chart automatically. Our lint checks chart geometry and colors, not what a chart claims, so the check is still a reviewer opening a source. When we finished the audit, the data tables inside code blocks had not been checked. One post's infographic was gone, but its prose still needed a sourced rewrite.

Check your own pipeline this week

Take the last ten charts, tables or stat callouts your pipeline published. Next to each, write what its source line points at, in a form someone can open: a URL, a file, a query.

Any line that says "our data", "internal study" or "our analysis" needs the table behind it. If you cannot open that table in ten minutes, remove the claim and the prose that leans on it. Then ask your reviewer, human or agent, to repeat the check without seeing the writer's notes.

FAQ

Can an AI agent invent a source line?

Yes. A source line is generated text, like the chart above it. An agent that is asked for a source attribution and has none can produce one that reads as normal. Ours credited a study that did not exist. Only opening what the line points at tells you whether it is real.

Why doesn't "verify the source" catch data credited to your own company?

Because the usual check follows a link out to someone else's page. A credit to your own company has no page to follow. The equivalent check is asking for the export, the table or the query behind the number, and treating "we can't produce it" as a failed check.

What should you audit first in an old AI-written post?

Start with charts and callouts credited to your own company, because they are the ones no outside check will contradict. Then check dated claims, such as a service described as live or a price, against the source today.

You cannot tell which of your pipeline's numbers are real.

No product of ours fixes that. We audited 46 charts and images we had published. If you are about to do the same for yours, we are happy to compare notes.

About the Author

Dzmitry Vladyka
Dzmitry Vladyka

Dimantika

Co-founder of Dimantika. Builds Clipwright and ViralFaceless with coding agents. Previously ran GlockSoft with a partner for about 15 years. Writes about products and finding customers.

View all posts