The situation
Northwind Logistics processed about 40,000 supplier invoices a quarter against purchase orders in their ERP. A rules-based matcher handled 78% of them. The remaining 8,800 a quarter went to a shared mailbox worked by four people and an offshore BPO team, at a blended cost of $4.10 per document.
Jane in AP manually fixed invoices that failed OCR on Fridays — a real person, a real Friday. Month-end made it worse: five days of gathering evidence across five systems so the controller could close.
The mailbox was the actual problem. Exceptions weren’t typed, so nobody could say which failure category was expensive. They aged silently, and the only visible number was the auto-match rate.
What we found in the teardown
We asked for the last 600 exceptions and categorised them with the AP team over two days. The distribution decided the design:
41%— non-standard PO line descriptions or unit-of-measure mismatch23%— partial deliveries against a single PO18%— OCR failures on three specific supplier templates11%— currency and tax-code edge cases7%— genuine disputes needing a human
Roughly 82% of exceptions fell into four mechanical categories. Only the last group needed judgement. Nobody had known this, because the mailbox never asked.
What we built
Five weeks, in their Azure tenant, as a state machine with a durable record per invoice: intake, classification, extraction, validation against the ERP, decision, write-back, and a typed exception route for each failure category.
Every item is either finished, waiting on a named human, or in a queue with an owner and an age. Writes are idempotent and any item can be replayed from any state, because a chain you can’t safely re-run will eventually be run twice.
Approval gates use finance’s thresholds, not ours: above $25,000 a human approves with the extraction and the source document side by side; below it the system commits and logs. Those thresholds are configuration — they started tight and loosened once the pass rate earned it.
Because every step writes to one run record, month-end evidence assembles continuously instead of being reconstructed.
Result
Measured over the first two quarters post-launch:
- Auto-match rate
78% → 94% - Cost per processed document
−81%,$4.10 → $0.78 - Month-end audit prep
5 days → 4 hours - Exceptions older than 5 days:
~340 → 11
The BPO contract wasn’t renewed. Two of the four AP staff moved to supplier management. Jane owns the exception rubric and the eval set, which is a better use of a Friday.
“The evals are what sold my board. I can show a number for accuracy and a number for cost, per workflow, per month.”
— Aaron Vasquez, Chief Financial Officer, Northwind Logistics