Worked example

82% accurate. Every amount wrong by a factor of a hundred.

Four times, the system reported something confidently wrong. None of the four were model failures. All four were failures in the layer that decides what “right” means — and that is the layer almost nobody budgets for.

The three findings a board should care about

1

Automation invents more exceptions than it removes.

The documents contained 26 genuine exception cases — the reverse charges, credit notes and malformed VAT numbers the person in the chair had learned to spot. The pipeline generated 47 of its own: extractions that failed, abstained or contradicted themselves.

They behave differently, too. Document exceptions concentrate — 62% came from four counterparties, which is fixable with a phone call. Extraction failures spread across 26 counterparties, because they follow the extractor rather than the sender. Supplier-level remediation does not touch them.

Nobody plans for these, because they do not exist until you automate. This is the single strongest argument for finding out before you commit the budget.

2

The accuracy number was the thing hiding the error.

The pipeline scored 82% field-level accuracy on its first pass. Underneath it, every monetary value was wrong by two orders of magnitude — the model had silently decided to report pence, and never mentioned it.

What caught it was not a better model. Each extracted value was required to carry the exact line of text it was read from, and the two disagreed. That check needs no labelled data and no tax expertise, and it runs in production indefinitely. One added sentence took the disagreement rate from 73% to zero, and whole-document accuracy from 11% to 50%.

3

The model that scored better was the one to avoid.

A local model scored 50% on whole-document accuracy against a hosted model’s 45%. It scored higher because it guessed: on expense categorisation it declined 3 times out of 120, where the hosted model declined 43 — and was right 97% of the time on the questions it chose to answer.

In operational terms, the willing model pushes more wrong documents into the ledger unchallenged. Any metric that counts “I don’t know” as a wrong answer selects for exactly the wrong model, which in a regulated process is backwards.

What was delivered

68 of 120 documents processed without human involvement. 52 routed to a person, each carrying a recorded reason. Every figure in the final position traces back through the rules, the extracted claim and the model’s own citation to a specific line on a specific page.

The traceability is the deliverable — not the 57% straight-through rate, which will improve. Six months after a filing, “why is this number what it is?” becomes a query rather than a conversation with someone who may no longer work here.

The boundary that makes it defensible

No language model in this pipeline decides what is reclaimable. It extracts what the document states; deterministic rules apply the tax treatment. That boundary is what makes the output reviewable by someone who knows tax rather than someone who knows prompts.

Caveat

What this is, and what it isn’t

Built as a learning exercise on synthetic data. There was no client, no live filing and no real money at stake. The review decisions were simulated against known answers rather than made by a human reviewer, and every row in the review log is tagged as such — a review record without provenance is indistinguishable from a real one six months later, which is the precise failure the exercise was meant to avoid.

What it demonstrates is the method and our ability to run it. It does not demonstrate an outcome for a client. When that exists, it will be published separately and labelled accordingly.

The assessment this came out of

Two weeks to establish where intelligence is genuinely the bottleneck, then a working prototype on the one or two processes worth proving.