Procure-to-pay · finance workload
match.threeway.v1
Three-way match 40 supplier invoices against purchase orders and goods receipts, flagging 12 planted exceptions by type: price variance beyond tolerance, quantity over receipt, missing receipt, and item mismatch — with boundary-exact tolerances, split receipts, and partial invoicing as clean traps (15 scenarios).
No published results for this workload yet — results appear here with the next edition.
Rate-card unit
Match 1,000 invoices — rates on the rate card are the cost per successful outcome scaled to this unit.
Pass criteria
100% recall on the planted exceptions, each with the correct type, with at most one false positive. Grading is deterministic; a model output either passes or fails, and infrastructure errors are excluded and rerun rather than counted against the model.
Prompt (verbatim)
Every model receives exactly this prompt with the item's fields substituted for the {placeholders} — no model-specific tuning.
You are performing three-way matching in accounts payable: each supplier
invoice must be checked against its purchase order and the goods receipts.
Every invoice bills exactly one PO line.
Matching rules:
price_variance — the invoice unit price exceeds the PO unit price by more
than 2%. A price at or below the PO price, or within the 2% tolerance,
is acceptable.
qty_over_receipt — the invoiced quantity exceeds the total quantity
received across all goods receipts for that PO. Invoicing less than the
received quantity is acceptable.
missing_receipt — the PO has no goods receipt at all. Use this instead of
qty_over_receipt when nothing was received.
item_mismatch — the invoice item code differs from the PO item code.
Each invoice has at most one exception.
Respond with ONLY a JSON array, one object per exception invoice, e.g.
[{{"invoice_id": "INV-99-0001", "type": "price_variance"}}]. Do not include
invoices that match cleanly.
Purchase orders (CSV):
{pos_csv}
Goods receipts (CSV):
{receipts_csv}
Invoices (CSV):
{invoices_csv}
Dataset
Datasets are generated synthetically from seeded generators; the seed is
frozen per edition and held out until the run window closes. Generator
source hash (SHA-256): 27fc0b43137fb029ea1216059b20d9e93097eab4914ad3e90fb07dd2d156948b.
See the methodology §7 for the verifiability
protocol and any edition page for the raw graded logs.