Claude Haiku 5.5 (effort default (no --effort flag) · thinking on) on Extract 8 fields from 24 invoices in 4 formats (EU numbers, credit notes, MM/DD dates)
AClaude Haiku 5.5default · thinking on · Claude Code 2.1.299 (headless -p) · cloud · 2026-10-16 · by @bobsiopener
- Estimated cost
- $0.01
- Wall time
- 35s
- Human step-ins
- 0
- Outcome
- Pass
Compare with other models on this task →
Summary
Exact prompt
# Task: extract structured data from mixed-format invoices `invoices/` has 24 files (txt, html, eml, kv). For each, extract: vendor, invoice_number, date (YYYY-MM-DD), currency (ISO code), net, vat, total, is_credit_note. Rules: credit notes have NEGATIVE net/vat/total. European number formats (1.234,56) must be parsed correctly. Ignore reference/previous-balance amounts that are not part of this document's totals. If a currency symbol is used, map € EUR, £ GBP, $ USD. Write `extracted.json`: {"inv01": {...}, ..., "inv24": {...}} (key = filename stem). No network.
Extract eight fields from 24 invoices in four formats (text, HTML, email and key-value). Traps include European number formats, US versus European date order, credit notes that need negative amounts, and 'previous balance' figures that are not part of the invoice. The bar is near-perfect field accuracy. Original benchmark task written for usecaserank.com (not based on a specific public post). Headless, offline run on a reproducible fixture. Each run's notes say how its cost was measured (estimates are marked).
Success criteria: 1. 24 invoices × 8 fields compared to the key: numeric fields within 0.011, other fields exact (case-insensitive, trimmed); overall field accuracy must be >= 98%. 2. Both credit notes must have every field correct (including negative net/vat/total and is_credit_note=true).
Setup notes: Use Case Scout batch 3 case c05-invoice-extraction (offline fixture). Prepared with batch3/prepare.sh; hidden key/tests kept outside the agent's work dir. Prompt = TASK.md verbatim. Scored with the scout's scorer: `python score.py WORKDIR/extracted.json KEYDIR/key.json`. Tools: Read/Write/Edit/Glob/Grep/Bash, web disabled. Single run, no retries. Claude Code's own reported cost for claude-haiku-5.5: $0.010183. Score: 1/1 checks. Cost is an ESTIMATE: measured tokens x pricing.json list price (Claude Pro subscription, nothing billed); input_tokens include cache reads and writes. Single run.
Estimated cost List-price estimate; not actually billed.
Metrics
- Estimated cost
- $0.01
- Wall time
- 35s
- Human step-ins
- 0
- Turns
- 28
| Model | Input tok | Output tok | Cost |
|---|---|---|---|
| AClaude Haiku 5.5anthropic/claude-haiku-5.5effort default (no --effort flag) · thinking on | 131,896 | 9,729 | $0.01 |
Reproduce this run
- Use the use case prompt on the use case page.
- Same setup: Claude Haiku 5.5 (anthropic/claude-haiku-5.5, effort default (no --effort flag) · thinking on) via
Claude Code 2.1.299 (headless -p), cloud. - It counts as a success only if it meets every success criterion: 1. 24 invoices × 8 fields compared to the key: numeric fields within 0.011, other fields exact (case-insensitive, trimmed); overall field accuracy must be >= 98%. 2. Both credit notes must have every field correct (including negative net/vat/total and is_credit_note=true).
- Log model, tokens, wall time, human step-ins and the evidence log, then submit it as a reproduction. A different model? Submit a head-to-head rerun.
How runs are scored: Methodology.
Was this useful?
Automated checks
Trust 80% comes from these checks (how Trust % works).
- Run date is not in the future : passed
- Model is in the dated pricing table : passed
- Cost recomputed from tokens matches : passed
- Cached tokens are consistent : passed
- Output throughput is plausible : passed
- Autonomy matches step-ins : passed
- Step-ins do not exceed turns : passed
- Retries agree with first-try result : passed
- Evidence log SHA-256 matches : passed
- Evidence log is substantial : passed
Evidence log
[
{
"duration_api_ms": 33773,
"stop_reason": "end_turn",
"session_id": "[REDACTED]",
"total_cost_usd": 0.0101831,
"usage": {
"input_tokens": 10,
"cache_creation_input_tokens": 21046,
"cache_read_input_tokens": 110840,
"output_tokens": 9729,
"output_tokens_details": {
"thinking_tokens": 4259
},
"server_tool_use": {
"web_search_requests": 0,
"web_fetch_requests": 0
},
"service_tier": "standard",
"cache_creation": {
"ephemeral_1h_input_tokens": 21046,
"ephemeral_5m_input_tokens": 0
},
"inference_geo": "global",
"iterations": [
{
"input_tokens": 2,
"output_tokens": 504,
"cache_read_input_tokens": 33065,
"cache_creation_input_tokens": 520,
"cache_creation": {
"ephemeral_5m_input_tokens": 0,
"ephemeral_1h_input_tokens": 520
},
"type": "message"
}
],
"speed": "standard",
"fallback_credit": null
},
"modelUsage": {
"claude-haiku-5-5": {
"inputTokens": 10,
"outputTokens": 9729,
"cacheReadInputTokens": 110840,
"cacheCreationInputTokens": 21046,
"webSearchRequests": 0,
"costUSD": 0.0101831,
"contextWindow": 1000000,
"maxOutputTokens": 128000,
"thinkingTokens": 4259,
"canonicalModel": "claude-haiku-5-5",
"provider": "firstParty",
"costBasis": "list"
}
},
"permission_denials": [],
"terminal_reason": "completed",
"fast_mode_state": "off",
"fast_mode_disabled_reason": "sdk_opt_in_required",
"subagent_stats": {
"spawned": 0,
"requested": {
"background": 0,
"foreground": 0,
"unset": 0
},
"started_in_background": 0,
"max_depth": 0,
"spawned_by_subagents": 0,
"completed": 0,
"failed": 0,
"killed": {
"parent": 0,
"user": 0,
"system": 0
},
"refused": {
"depth_limit": 0,
"concurrency_limit": 0,
"budget": 0
},
"by_type": {}
},
"safety_stops": 0,
"is_error": false,
"num_turns": 28,
"subtype": "success",
"api_error_status": null,
"result": "I wrote `extracted.json` with all 24 invoices (inv01\u2013inv24). The file parses, and every entry has net + vat = total. Both credit notes have negative net and total, and their `is_credit_note` flag is true.\n\nNotes on how I read the documents:\n\n- **Dates:** The HTML files are labelled MM/DD/YYYY, so `01/14/2026` is 2026-01-14. The `.txt` files are DD.MM.YYYY (`09.06.2026` is 2026-06-09). The `.kv` files are YYYYMMDD.\n- **Number formats:** I parsed `1.277,81` as 1277.81 and `2.426,67` as 2426.67. The `.eml` and `.html` files mix formats, so I read each one by its own style.\n- **Excluded amounts:** The \"previous balance\" figures on the Bolt & Nut and Nordlicht `.txt` invoices are not in the totals, so I left them out.\n- **Credit notes:** inv07 (Pixelworks Inc., \u22122276.22 USD) and inv19 (Tidewater LLC, \u22121815.25 USD). Both have VAT of 0.0.\n- **Currency:** \u00a3 \u2192 GBP, \u20ac \u2192 EUR, $ \u2192 USD. Currency for the `.eml` files comes from their \"Totals are in\u2026\" line.\n- **Vendors:** Named from each document's header or sign-off, e.g. \"Kaffee R\u00f6sterei Ost\" with the \u00f6 kept.\n\nI did not change any files in `invoices/`. No network was used.",
"ttft_ms": 1562,
"type": "result",
"duration_ms": 34191,
"uuid": "[REDACTED]",
"ttft_stream_ms": 1070,
"time_to_request_ms": 242,
"first_content_frame_ms": 1071,
"queued_turn_count": 0,
"result_index": 0
}
]