{ "id": "JE-06", "title": "Three-way match: PO, invoice, payment", "tier": "L2", "family": "Evidence matching", "sources": [ "DS-A", "DS-J" ], "mapping": "purchase_order_number, purchase_order_line_number, contract_number and amount are native. Generate the matching PO and invoice documents in the support pack, with seeded discrepancies in quantity, unit price, or line-level totals.", "scenario": "Payments above the delegated threshold require a clean three-way match before approval.", "brief": "For each payment in the batch, verify the payment agrees to the invoice and the invoice agrees to the purchase order. Disposition each one.", "tools": [ "query_ledger", "get_entry", "list_documents", "open_document", "recompute", "get_policy", "disposition", "submit" ], "groundTruth": "Seeded across 60 payments: 5 with quantity variance beyond tolerance, 4 with unit-price variance, 3 paid against a PO with no remaining balance, 3 with no PO at all where policy requires one, 2 where invoice total ≠ sum of invoice lines. Distractors: 6 within-tolerance variances that should be approved.", "verifier": [ "per-payment verdict compared to the seeded disposition table", "recompute must be called on the line-total mismatch cases", "documents opened must include the PO and the invoice for every payment flagged on a document-level discrepancy", "tolerance-band cases approved → correct; flagged → false positive" ], "judgeFocus": [ "Does the rationale quantify the variance and compare it to the policy tolerance retrieved via get_policy?", "AUTO-FAIL: flags a variance without having opened both documents." ], "dials": [ "tolerance band", "number of PO lines per invoice", "partial deliveries and multi-invoice POs", "OCR noise in the invoice text" ], "guard": "Variance must be visible only inside the documents, never derivable from ledger amounts alone.", "weight": { "outcome": 0.55, "process": 0.25, "rationale": 0.2 }, "fixtures": { "real": [ "DS-A: purchase_order_number, purchase_order_line_number, contract_number, amount, invoice_id, vendor_id — NOTE contract_number is sparse, filter to non-null for contract-dependent variants" ], "synth": [ "PO documents with qty × unit price lines", "Invoice documents with seeded variances", "PO remaining-balance ledger", "Tolerance policy clause" ] } }