Why a 98%-accurate extractor is more dangerous than one that fails loudly — and the arithmetic that catches the difference.

Every developer who has been handed a PDF bank statement and asked to "just get the transactions out" starts in the same place: a PDF text extractor, a regex or two, and a quiet confidence that this is a weekend job.

It isn't. But not for the reason you expect.

The parsing is genuinely hard, and there is plenty written about that already — statements are laid out for printing, columns are visual alignment rather than structure, and a naive text dump turns a tidy table into one smeared column. That part you find out immediately, which is exactly what makes it the easy part. It fails loudly.

The hard part is the failure that doesn't announce itself.