2026-08-24
The model that invented an invoice
We needed to read photographed documents, insurance policies, garage invoices, the small print of Swiss household admin. So we tested every model our provider offers against a real page and checked the answers by eye.
Eight of eleven could read a document at all. Three scored four out of five on a clean page. One scored zero, and the way it scored zero is the point.
Asked for five printed values, it returned five:
plate CR-123-456 (actual: ZH 318602)
matricule 123456789 (actual: 418.229.703)
type Scooter (actual: 2KD417)
first reg 01/01/2015 (actual: 14.03.2011)
premium 85.50 (actual: 612.40)
Not a misreading. It cannot process images at all on this endpoint. So instead of saying so, it produced a complete, internally consistent, entirely fictional insurance record. Plate-shaped plate. Plausible premium. A vehicle type that isn't the vehicle.
Nothing in the output said anything was wrong.
The one that scored the same and was fine
Another model also missed a field on the same page. It returned null for it.
That difference is worth more than the score. A gap you can see is a gap you can fill; a confident wrong answer is one you act on. We'd have picked the fabricating model on other grounds. It's the sovereign, locally-developed option, and keeping the data in-country matters to us. Choosing it would have meant silently invented vehicle identification numbers on every photographed document, forever.
Then it happened again, differently
Later the same day, a working model produced this from a compressed photo of a garage invoice:
Auftragserweiterung 195
Bremsenreparatur 30
Auspuffanlage 50
Auspuffrohr 50
Auspuffrohr 50
Auspuffrohr 50 ← seven times
Gesamtkosten 584.20
None of it was on the page. The messaging app had shrunk the photo to about a tenth of the pixels the camera captured, and below some threshold the model stopped reading and started generating.
The repetition is the tell. When a vision model runs out of legible signal it doesn't stop. It loops. That turned out to be far more reliable as a warning sign than anything the model says about its own confidence.
Which we also tested. Asked to rate its own reading of that page, the model that had just invented an eleven-line price table called its legibility "partial".
Of course it did. A model that fabricates a total believes it read one.