Invoice extraction agent: evaluation report
50 invoices, double-graded, with AI-grader comparison
Accuracy by field
| Field | Correct | Accuracy |
|---|---|---|
| Vendor name | 49 / 50 | 98% |
| Invoice date | 46 / 50 | 92% |
| Total due | 45 / 50 | 90% |
| Line items (all present and correct) | 36 / 50 | 72% |
Where it fails
| Failure type | Count | Where it shows up |
|---|---|---|
| missed_line_items | 6 | Multi-page invoices; items on page 2+ are dropped |
| total_is_subtotal | 3 | Takes the pre-tax subtotal as the total due |
| date_day_month_swap | 2 | Non-US invoices written DD/MM/YYYY |
| currency_dropped | 2 | EUR and GBP amounts returned with no currency |
| wrong_vendor_entity | 1 | Used the remit-to company instead of the seller |
Graded cases
Can you trust your AI grader?
Your LLM judge agreed with human graders on 43 of 50 invoices (Cohen's kappa 0.61). It was reliable on vendor, date and total. It was not reliable on line items: it marked 5 of the 6 invoices with missing line items as complete, and failed 2 correct outputs.
Recommendations
- Extract multi-page invoices page by page and merge, instead of in one pass. This targets 6 of 14 errors.
- Add a deterministic check that line items plus tax equal the total. It would catch every
total_is_subtotaland mostmissed_line_itemserrors. - Don't rely on the LLM judge for line items. Use the arithmetic check above, and keep the judge for vendor, date and total.
- Add 10 more non-US invoices to the test set; date and currency errors cluster there.