Benchmarks / Which Small AI Model Should You Run on a Mac? We Ran 312 Tests / Summarize + extract
summarize-extract-009
hard extractioninvoice
The prompt
user
Extract information from the email below. Reply with only a JSON object with exactly these keys: - "invoice_number" (string): invoice number - "invoice_date" (string "YYYY-MM-DD"): invoice date - "due_date" (string "YYYY-MM-DD"): payment due date - "labor_hours" (number): hours of labor - "hourly_rate" (number): hourly rate - "deposit_applied" (number): deposit already paid - "balance_due" (number): balance still owed - "late_fee_percent" (number): monthly late fee percentage as a number (e.g. 2 for 2%) Rules: include every key listed. Use null for any field that is not stated in the text (do not guess). Dates are YYYY-MM-DD. Times are HH:MM in 24-hour format. Amounts and counts are plain JSON numbers (no currency symbols, no commas). Phone numbers are in international format with + and the country code, for example +1 312 555 0100; leave out any national trunk prefix 0, so (0)20 or 020 becomes 20 after +44. Email: """ From: Rafael Quintero <rafael@quinterocarpentry.com> To: Helen Brandt Date: Tue, 6 Oct 2026 16:40:11 -0600 Subject: Invoice for the built-in bookshelves Hi Helen, Hope you're enjoying the new shelves! Here's the breakdown for the job. The invoice (#A-7731) is dated today. Labor: 12.5 hours at $96/hr = $1,200.00 Materials (walnut veneer ply, hardware, finish): $85.40 Subtotal: $1,285.40 Less deposit paid Sept 2: -$300.00 Balance due: $985.40 Terms are net 30 from the invoice date. A 1.5% monthly late fee applies to balances not paid by then. Check or Zelle both work. Thanks again, Rafael Quintero Carpentry """
What we expected
{
"kind": "extract",
"answer": {
"invoice_number": "A-7731",
"invoice_date": "2026-10-06",
"due_date": "2026-11-05",
"labor_hours": 12.5,
"hourly_rate": 96,
"deposit_applied": 300,
"balance_due": 985.4,
"late_fee_percent": 1.5
},
"fields": {
"invoice_number": {
"type": "code",
"accept": [
"#A-7731"
]
},
"invoice_date": {
"type": "date"
},
"due_date": {
"type": "date"
},
"labor_hours": {
"type": "number"
},
"hourly_rate": {
"type": "number"
},
"deposit_applied": {
"type": "number"
},
"balance_due": {
"type": "number"
},
"late_fee_percent": {
"type": "number"
}
}
}What each model answered
MiMo-V2.6 Distill 9B
✓ pass · score 100 · 3.80 s
{"invoice_number": "A-7731", "invoice_date": "2026-10-06", "due_date": "2026-11-05", "labor_hours": 12.5, "hourly_rate": 96, "deposit_applied": 300, "balance_due": 985.4, "late_fee_percent": 1.5}Scoring detail
{
"fields": {
"invoice_number": {
"score": 1,
"expected": "A-7731",
"got": "A-7731"
},
"invoice_date": {
"score": 1,
"expected": "2026-10-06",
"got": "2026-10-06"
},
"due_date": {
"score": 1,
"expected": "2026-11-05",
"got": "2026-11-05"
},
"labor_hours": {
"score": 1,
"expected": 12.5,
"got": 12.5
},
"hourly_rate": {
"score": 1,
"expected": 96,
"got": 96
},
"deposit_applied": {
"score": 1,
"expected": 300,
"got": 300
},
"balance_due": {
"score": 1,
"expected": 985.4,
"got": 985.4
},
"late_fee_percent": {
"score": 1,
"expected": 1.5,
"got": 1.5
}
},
"fields_correct": 8,
"fields_total": 8
}Ornith-1.5 9B
✗ fail · score 88 · 3.34 s
{
"invoice_number": "A-7731",
"invoice_date": "2026-10-06",
"due_date": "2026-11-06",
"labor_hours": 12.5,
"hourly_rate": 96,
"deposit_applied": 300,
"balance_due": 985.4,
"late_fee_percent": 1.5
}Scoring detail
{
"fields": {
"invoice_number": {
"score": 1,
"expected": "A-7731",
"got": "A-7731"
},
"invoice_date": {
"score": 1,
"expected": "2026-10-06",
"got": "2026-10-06"
},
"due_date": {
"score": 0,
"expected": "2026-11-05",
"got": "2026-11-06"
},
"labor_hours": {
"score": 1,
"expected": 12.5,
"got": 12.5
},
"hourly_rate": {
"score": 1,
"expected": 96,
"got": 96
},
"deposit_applied": {
"score": 1,
"expected": 300,
"got": 300
},
"balance_due": {
"score": 1,
"expected": 985.4,
"got": 985.4
},
"late_fee_percent": {
"score": 1,
"expected": 1.5,
"got": 1.5
}
},
"fields_correct": 7,
"fields_total": 8
}Granite 4.2 8B
✗ fail · score 88 · 3.36 s
{
"invoice_number": "A-7731",
"invoice_date": "2026-10-06",
"due_date": null,
"labor_hours": 12.5,
"hourly_rate": 96,
"deposit_applied": 300,
"balance_due": 985.4,
"late_fee_percent": 1.5
}Scoring detail
{
"fields": {
"invoice_number": {
"score": 1,
"expected": "A-7731",
"got": "A-7731"
},
"invoice_date": {
"score": 1,
"expected": "2026-10-06",
"got": "2026-10-06"
},
"due_date": {
"score": 0,
"expected": "2026-11-05",
"got": null
},
"labor_hours": {
"score": 1,
"expected": 12.5,
"got": 12.5
},
"hourly_rate": {
"score": 1,
"expected": 96,
"got": 96
},
"deposit_applied": {
"score": 1,
"expected": 300,
"got": 300
},
"balance_due": {
"score": 1,
"expected": 985.4,
"got": 985.4
},
"late_fee_percent": {
"score": 1,
"expected": 1.5,
"got": 1.5
}
},
"fields_correct": 7,
"fields_total": 8
}Spark-X2.5 4B
✓ pass · score 100 · 2.63 s
{
"invoice_number": "A-7731",
"invoice_date": "2026-10-06",
"due_date": "2026-11-05",
"labor_hours": 12.5,
"hourly_rate": 96,
"deposit_applied": 300,
"balance_due": 985.4,
"late_fee_percent": 1.5
}Scoring detail
{
"fields": {
"invoice_number": {
"score": 1,
"expected": "A-7731",
"got": "A-7731"
},
"invoice_date": {
"score": 1,
"expected": "2026-10-06",
"got": "2026-10-06"
},
"due_date": {
"score": 1,
"expected": "2026-11-05",
"got": "2026-11-05"
},
"labor_hours": {
"score": 1,
"expected": 12.5,
"got": 12.5
},
"hourly_rate": {
"score": 1,
"expected": 96,
"got": 96
},
"deposit_applied": {
"score": 1,
"expected": 300,
"got": 300
},
"balance_due": {
"score": 1,
"expected": 985.4,
"got": 985.4
},
"late_fee_percent": {
"score": 1,
"expected": 1.5,
"got": 1.5
}
},
"fields_correct": 8,
"fields_total": 8
}Mellum2.1 12B-A2.5B
✓ pass · score 100 · 1.63 s
{
"invoice_number": "A-7731",
"invoice_date": "2026-10-06",
"due_date": "2026-11-05",
"labor_hours": 12.5,
"hourly_rate": 96,
"deposit_applied": 300,
"balance_due": 985.4,
"late_fee_percent": 1.5
}Scoring detail
{
"fields": {
"invoice_number": {
"score": 1,
"expected": "A-7731",
"got": "A-7731"
},
"invoice_date": {
"score": 1,
"expected": "2026-10-06",
"got": "2026-10-06"
},
"due_date": {
"score": 1,
"expected": "2026-11-05",
"got": "2026-11-05"
},
"labor_hours": {
"score": 1,
"expected": 12.5,
"got": 12.5
},
"hourly_rate": {
"score": 1,
"expected": 96,
"got": 96
},
"deposit_applied": {
"score": 1,
"expected": 300,
"got": 300
},
"balance_due": {
"score": 1,
"expected": 985.4,
"got": 985.4
},
"late_fee_percent": {
"score": 1,
"expected": 1.5,
"got": 1.5
}
},
"fields_correct": 8,
"fields_total": 8
}Ling-3.0-tiny (7.9B-A1.3B)
✓ pass · score 100 · 1.13 s
{"invoice_number": "A-7731", "invoice_date": "2026-10-06", "due_date": "2026-11-05", "labor_hours": 12.5, "hourly_rate": 96, "deposit_applied": 300, "balance_due": 985.4, "late_fee_percent": 1.5}Scoring detail
{
"fields": {
"invoice_number": {
"score": 1,
"expected": "A-7731",
"got": "A-7731"
},
"invoice_date": {
"score": 1,
"expected": "2026-10-06",
"got": "2026-10-06"
},
"due_date": {
"score": 1,
"expected": "2026-11-05",
"got": "2026-11-05"
},
"labor_hours": {
"score": 1,
"expected": 12.5,
"got": 12.5
},
"hourly_rate": {
"score": 1,
"expected": 96,
"got": 96
},
"deposit_applied": {
"score": 1,
"expected": 300,
"got": 300
},
"balance_due": {
"score": 1,
"expected": 985.4,
"got": 985.4
},
"late_fee_percent": {
"score": 1,
"expected": 1.5,
"got": 1.5
}
},
"fields_correct": 8,
"fields_total": 8
}MiniCPM5 2B
✓ pass · score 100 · 1.34 s
{"invoice_number": "A-7731", "invoice_date": "2026-10-06", "due_date": "2026-11-05", "labor_hours": 12.5, "hourly_rate": 96, "deposit_applied": 300, "balance_due": 985.40, "late_fee_percent": 1.5}Scoring detail
{
"fields": {
"invoice_number": {
"score": 1,
"expected": "A-7731",
"got": "A-7731"
},
"invoice_date": {
"score": 1,
"expected": "2026-10-06",
"got": "2026-10-06"
},
"due_date": {
"score": 1,
"expected": "2026-11-05",
"got": "2026-11-05"
},
"labor_hours": {
"score": 1,
"expected": 12.5,
"got": 12.5
},
"hourly_rate": {
"score": 1,
"expected": 96,
"got": 96
},
"deposit_applied": {
"score": 1,
"expected": 300,
"got": 300
},
"balance_due": {
"score": 1,
"expected": 985.4,
"got": 985.4
},
"late_fee_percent": {
"score": 1,
"expected": 1.5,
"got": 1.5
}
},
"fields_correct": 8,
"fields_total": 8
}K2-Horizon 0.9B
✗ fail · score 75 · 0.62 s
{
"invoice_number": "A-7731",
"invoice_date": "2026-10-06",
"due_date": "2026-10-26",
"labor_hours": 12.5,
"hourly_rate": 96,
"deposit_applied": -300,
"balance_due": 985.40,
"late_fee_percent": 1.5
}Scoring detail
{
"fields": {
"invoice_number": {
"score": 1,
"expected": "A-7731",
"got": "A-7731"
},
"invoice_date": {
"score": 1,
"expected": "2026-10-06",
"got": "2026-10-06"
},
"due_date": {
"score": 0,
"expected": "2026-11-05",
"got": "2026-10-26"
},
"labor_hours": {
"score": 1,
"expected": 12.5,
"got": 12.5
},
"hourly_rate": {
"score": 1,
"expected": 96,
"got": 96
},
"deposit_applied": {
"score": 0,
"expected": 300,
"got": -300
},
"balance_due": {
"score": 1,
"expected": 985.4,
"got": 985.4
},
"late_fee_percent": {
"score": 1,
"expected": 1.5,
"got": 1.5
}
},
"fields_correct": 6,
"fields_total": 8
}← summarize-extract-008All Summarize + extract itemssummarize-extract-010 →