The Second Model Marked the Fiction as Sourced

Quick conclusion

I ran an experiment on August 23, 2026 to see whether a second, independent AI model could catch the things a first model invents. It could not. Against a pre-registered bar of 0.75 recall and 0.50 precision, the two checkers I tested scored 0.333 and 0.278, and 0.167 and 0.333. Both failed. I logged the result as ineffective and kept my earlier rule: I do not hand first drafts to cheap models.

The interesting part is not that it failed. It is how. In one case the checker noticed the problem, wrote the discrepancy down, and then classified the sentence as sourced anyway.

What I tested

Earlier this summer I scored eleven AI-written drafts and every one of them failed the same item: they invented experiences and numbers that were not in the material I gave them. My working theory for why was that a model grading its own output goes easy on itself.

So the obvious fix is to split the job. One model writes. A different model, with a clean context and no stake in the draft, checks the claims against the source. That is what I wanted to measure.

I reused three drafts from that earlier round rather than generating new ones, because those three already had human-scored fabrications marked with exact quotes. That gave me an answer key: ten confirmed inventions across the three drafts.

The setup

The source document was the planning and research memo the writers had originally received, 6,950 characters. I passed it through unedited, along with the full submission being checked.

The instruction to the checker was narrow on purpose. List every claim in the draft that involves a fact, an experience, a number, or a quote. For each one, mark it sourced or not sourced. Do not grade. Do not judge quality. And explicitly: do not use your own general knowledge to decide something is plausible. The only question is whether the source contains it.

I registered the pass mark before running anything:

  • Effective: recall at or above 0.75 and precision at or above 0.50, averaged across the three drafts
  • Partial: one of the two
  • Ineffective: neither

Recall here means the share of the ten known inventions the checker flagged. Precision means the share of its “not sourced” flags that were actually absent from the source.

I used two checkers, both cheap models available through OpenRouter. I will call them Checker D and Checker E, new labels so they do not collide with Models A, B, and C.

What the checkers caught

Four catches from D. Two from E. All six were on the same draft.

CheckerDraftKnown inventionsCaught"Not sourced" flagsClaims listed
DModel A30033
DModel B44632
DModel C30030
EModel A30021
EModel B42316
EModel C30021

Read the zeros. On two of the three drafts, both checkers went through the entire submission, listed 21 to 33 individual claims, and marked every single one as sourced. Not one flag.

I want to be fair about the flags they did raise. When I adjudicated each flag against the source by hand, none of them pointed at something the source actually contained. One of D’s six flags was a call to action rather than a factual claim, so it does not count as a catch. That is why precision sits at 0.833 for D and 1.000 for E if you ignore the drafts where they said nothing.

That sounds good until you remember what the job is. A checker that is right when it speaks but silent six times out of ten does not let me stop reading the draft myself.

What they missed, and why

The ten known inventions sort into three types, and only one of those types is the checker doing its job.

They never listed it. Three inventions never made it into the enumeration at all. An opening summary sentence claiming months of effort and a specific level of failure. An image placeholder describing a screenshot that does not exist. Three fabricated policy quotations sitting inside a paragraph in quotation marks. The instruction asked for claims expressed as sentences, and these three shapes are not sentences in the way the instruction meant. They fell through the net before any judgment happened.

They listed it and called it sourced. Three more were picked up and then cleared. One draft described a soft warning mechanism as doing the opposite of what the source described, and the checker cited the source passage about that mechanism as proof. Another invented a conversation, and the checker cited the existence of a documented preference as evidence that the conversation happened.

The third is the one I keep coming back to. A draft had a date wrong by three days. Here is what the checker wrote, translated from its Japanese output:

Claim: “On July 4, 2026, I finalized the delegation gate following a stray subagent incident from the previous day [the source says 2026-07-01].”

Verdict: Sourced

Basis: The source says the incident of 2026-07-01 led to the gate being formally installed on 2026-07-04.

It saw the mismatch. It wrote the mismatch into its own output, in brackets, unprompted. Then it filed the sentence under sourced.

That is not a model being careless. That is a model answering the question I asked. I asked whether the source contains a corresponding passage. It does. I never gave it a way to say “yes, and it says something different.”

They caught it. The four that worked were all the same shape: pure additions with nothing corresponding in the source at all. A follow-up incident that never happened. A claim of being saved several times. A paragraph of expectations about how annoying the gates would feel. A motive attributed to the agent that the source never states.

The prediction I sealed before running

Before I called the API, I wrote down four predictions based only on the wording of the checker instruction, and locked the file.

  1. The fabricated image placeholder will not be detected.
  2. A statement that reverses the source will be marked sourced.
  3. A date mismatch will also slip through.
  4. Pure additions will be the easiest to catch.

All four were right.

That matters more than the scores. If I had only the scores, the reasonable next move would be to try a better checker. But the failures were derivable in advance from the shape of the question, which means a smarter model runs into the same wall. The fix is not a different model. It is a different question: not “does the source contain a corresponding passage” but “does this match what the source says, including reversals and wrong numbers.”

That is a different experiment, and it needs its own pre-registration. I have not run it.

What it cost, and one thing I did not expect

The whole thing came to $0.1302 and about 9.8 minutes, including three runs I threw away.

I threw them away because my first pass capped output at 8,000 tokens and two runs were cut off mid-sentence, at claim 22 and claim 28. My instruction had suggested 10 to 20 claims. The checkers produced 22 to 36. Scoring a truncated list would have measured my token limit, not the checker. I decided the rule before looking at the content, re-ran everything at a higher cap, and kept the broken files.

The thing I did not expect was the pricing. The same model ID was routed to a different inference provider on almost every call, and the effective output price ranged from about $0.50 per million tokens to $4.74 per million tokens. Same work, same token count, $0.0088 on one run and $0.0409 on another. The catalog price does not tell you what a run will cost. Checker E stayed on one provider all six times, ran 3 to 7 times faster, and cost the same every time. For repeatable work that consistency is worth more than the headline rate.

Next steps

I am keeping the current rule: cheap models do research shaping and rephrasing, not first drafts with facts in them. A second reader does not fix the problem, at least not when the second reader is only allowed to ask whether something appears in the source.

If you are building the same pipeline, the takeaway I would hand you is smaller and more useful than “checkers do not work.” It is this: write down what your checker is structurally unable to see, before you trust it. I could have derived six of the ten known inventions from the instruction text alone. I only know that because I wrote the predictions down first.

FAQ

How confident are you in these numbers?

Moderately. Three drafts, one run each, at default temperature (0.7). I did not measure run-to-run variance, so treat the exact figures as a single sample rather than a stable score. The direction is not close to the threshold, which is why I am comfortable calling it.

Could the answer key be wrong?

The answer key is a list of ten inventions a human scorer confirmed with quotes. It is not an exhaustive census of everything invented in those drafts. If anything, the real number of inventions is higher, which would push recall down, not up.

Was the scoring blind?

No, and that is a weakness. I knew the answer key when I adjudicated the checker output. Instead of claiming a blind review I did not have, I attached the specific source passage to every adjudication, so the calls can be checked against the document rather than taken on trust.

Leave a Comment

CAPTCHA