What gets checked
- Every invoiced line exists on the purchase order
- Quantity billed ≤ quantity received ≤ quantity ordered
- Unit price matches the PO within your tolerance
- Totals and tax recompute exactly
- Duplicate invoice numbers and amounts across the batch
Each invoice comes back as pay, hold or escalate, with the failed check named.
Measured
On a 30-invoice exception desk with exact known answers, Yellowjacket and an Opus agent were both exact. The Opus agent cost about $0.026 per invoice; once Yellowjacket's plan existed, each new batch of 30 cost $0.006 in total.
On purchase orders against delivery dockets in mixed layouts (including EDI notes), the readings that settled were all exact; the ones that didn't were flagged rather than guessed.
How it works
- A top model plans the job once. Claude Opus looks at a few samples and writes the instructions, the checks and the arithmetic. You pay for that once per kind of job, and the plan is kept for next time.
- Cheap models do the reading. A short tryout picks the cheapest open models that pass the job's checks; they read every document. Sums, dates and comparisons are done in code, not by a model.
- Every answer is checked. Totals have to reconcile and two different models have to agree. When they don't, a stronger model reads it again; only real disagreements go back to the top model.
- You get a receipt. Before the job you see what Claude, ChatGPT and Gemini would each charge alone; after it, what each document cost and which checks it passed.
Questions people ask
What is three-way matching?
An accounts payable control: before paying, compare the invoice with the purchase order and the goods receipt, and only pay what was ordered, received and billed at the agreed price.
What's the difference between two-way and three-way matching?
Two-way matching compares invoice and purchase order; three-way adds the goods receipt, so you never pay for goods that didn't arrive.
Do suppliers need a standard format?
No. The models read each supplier's layout; the comparison itself is code, so it is the same every time.