Willy Tai
Case study · benchmark · real local models

Which local LLMs can actually do invoice work, and where do they break?

Token-per-second and energy charts don't answer the only question a finance leader has: can this model do my work, and when it can't, does it say so or lie to me with confidence? So I gave local models real invoice-processing jobs, turned up the difficulty until they broke, and measured not just accuracy but the shape of failure: abstain (safe) versus hallucinate (dangerous).

The headline

Running…

Exhibit 1 · The failure map

Safety-adjusted score by model and difficulty level. Find each model's cliff.

Cells are the safety-adjusted score (correct rewarded, honest abstention lightly credited only when the item was genuinely hard, confident errors and injection-compliance penalised). Greener is safer; deeper oxblood is where the model has stopped being trustworthy.

safe (≥0.6)marginalweak (<0.2)untrustworthy (<0)
Exhibit 2 · The anti-gaming frontier

Coverage vs. error: a model that answers everything wrong and one that abstains on everything are both easy to spot.

Each point is a model: how often it commits an answer (x) versus how often that answer is wrong (y). The safe, useful corner is bottom-right (answers a lot, rarely wrong). The two hollow markers are deliberately degenerate baselines, always-abstain and always-answer, run through the identical pipeline to prove the score can't be gamed by refusing to work.

Exhibit 3 · Failure fingerprints

When a model is wrong, how is it wrong? This is the whole point.

The mix of outcomes per model. Two models with the same accuracy can be worlds apart: one abstains when unsure, the other fabricates a clean total. In accounts payable, the second one costs you money.

Exhibit 4 · The receipts

The evidence, not the claim. Real invoices, raw model output, ground truth, deterministic verdict.

A sample including the hardest traps and worst failures, chosen to show breakage, not to flatter.

Method & governance

Pre-registered, panel-reviewed, hash-chained. Held to the standard I sell.

The full design was written and frozen before any results were collected, then red-teamed by a five-lens expert panel (statistician, ML-evaluation, red-team, assurance partner, AP domain). Every model call is logged into a tamper-evident hash-chained ledger; scoring is deterministic (no LLM grading LLMs); two degenerate baselines prove the metric resists gaming. Sample sizes are stated, not hidden, and every rate carries a Wilson confidence interval.

Honest limitations (from the pre-registration, §10). This is a pre-registered pilot, not a powered study: several cells are small, so point percentages carry wide intervals and the contribution is the method and the failure-mode findings, not precise cell numbers. The corpus is synthetic (with real-style rendered invoices as a realism slice); a redacted production sample and a human-clerk baseline are named as future work. qwen3.6:27b-mlx was excluded to avoid a runtime/quantisation confound. Full method, threats-to-validity, and panel responses in LLM_Stress_Bench/DESIGN.md.