Published misses · updated with every corpus run

The blind-spot ledger.
What our guard can't catch — on purpose.

Our document reading is measured at zero silently-committed wrong high-risk numbers across a 41-image adversarial corpus. This page is the other half of that sentence: the attack classes we know we don't catch, each with the reason we refused the cheap fix. Every one is pinned in our test suite so it can't be quietly forgotten. Nobody else in this industry publishes their misses. That's the point.

Structural blind spots — the fix would flood honest documents with false flags

Checksum-invariant transpositions routing numbers

Some digit swaps in a bank routing number still pass the checksum — the math that validates it can't see them.

Why refused: flagging every routing number as unverifiable would train owners to rubber-stamp the flag. The checksum catches most corruption; the residue is documented, not hidden.

On-catalog neighbor swaps 6207 ↔ 6307

Our catalog check caught 6397 because it doesn't exist. But 6207 and 6307 are both real bearings — a misread between two valid parts sails through every plausibility test.

Why refused: the only "fix" is flagging every catalog-valid part number, which is all of them. This is exactly the class where the photo crop beside the field — and a human's eyes — is the design.

Valid-but-wrong dates and phone numbers

A 4/22 read as 6/22 is a perfectly well-formed date. A phone number one digit off is still a phone number. Sanity checks catch impossible values, not plausible-wrong ones.

Why refused: date/phone repeat-conflict checks already fire when the document itself disagrees; flagging every well-formed date would be noise. High-risk contexts route these to confirm anyway.

All-alpha glyph runs IOOB · O/0 soup

Pure-letter sequences give the numeric cross-check nothing to anchor on — two readers can agree on the same wrong letters.

Why refused: a letters-are-suspect rule flags every word on the page. Model/serial fields (mixed alpha-numeric) are already always-confirm; free text rides the owner's read.

European locale amounts 12,50 vs 12.50

Beyond the canonicalizer fix we shipped (after our own guard once turned 12,50 into 1250 — that story's in the guide), locale ambiguity persists when a document doesn't declare its convention.

Why refused: guessing the locale IS the bug we fixed. Ambiguous-locale amounts stay flagged for a human instead of auto-resolved.

Fine print below the detector floor 9pt footnotes · wrapped values

Designed blind spots: tiny footnotes and values that wrap across lines can slip layout detection. On real photographs both still tend to flag — the two readers diverge more on real JPEGs than clean renders — but we don't promise it.

Why refused: lowering the detector floor multiplies phantom regions. The whole-page recall pass is the backstop; fine-print documents route to full resolution.

The self-consistent misread the one that scares us

A wrong value that agrees with itself — passes arithmetic, matches its restatement, looks plausible. We built 39 targeted attacks in this class and closed 11 initially-silent commits; the corpus has never produced one that survived. That is a clean record on 41 images, not a proof it can't happen.

Why refused (overclaiming): we say "zero on our corpus," never "impossible." The corpus grows with every real capture class; this line updates when the number does.

The two honest structural limits

The safety is carried by a human

Every flag this system raises is worthless if the confirm step gets rubber-stamped. The UI is built to make review real — per-field confirms, the crop beside every number, no bulk OK — but a determined shrug defeats any guard ever built.

41 images is a clean pass, not a proven error rate

Glare-shot nameplates, 1936 typewriter invoices, crumpled receipts, dashboard phone photos, and 30 documents built specifically to fool it — zero silent high-risk errors. It's a real corpus and a real zero. It is not a statistical guarantee, and we won't dress it as one.

Try to catch a misread yourself: spot-the-lie — two AIs and our own human ground-truther all missed it. The measured numbers behind every claim live on the receipts page. The method — the cross-check, the corpus, the validators — is in the guides. And the box that does this for your paperwork is Boone. · ThirdShift R&D