Claude Opus 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 Opus 5.5default · thinking on · Claude Code 2.1.299 (headless -p) · cloud · 2026-10-16 · by @bobsiopener
- Estimated cost
- $0.17
- Wall time
- 26s
- 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-opus-5.5: $0.174554. 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.17
- Wall time
- 26s
- Human step-ins
- 0
- Turns
- 4
| Model | Input tok | Output tok | Cost |
|---|---|---|---|
| AClaude Opus 5.5anthropic/claude-opus-5.5effort default (no --effort flag) · thinking on | 87,977 | 2,753 | $0.17 |
Reproduce this run
- Use the use case prompt on the use case page.
- Same setup: Claude Opus 5.5 (anthropic/claude-opus-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": 24563,
"stop_reason": "end_turn",
"session_id": "[REDACTED]",
"total_cost_usd": 0.1745538,
"usage": {
"input_tokens": 8,
"cache_creation_input_tokens": 13060,
"cache_read_input_tokens": 74909,
"output_tokens": 2753,
"output_tokens_details": {
"thinking_tokens": 136
},
"server_tool_use": {
"web_search_requests": 0,
"web_fetch_requests": 0
},
"service_tier": "standard",
"cache_creation": {
"ephemeral_1h_input_tokens": 13060,
"ephemeral_5m_input_tokens": 0
},
"inference_geo": "global",
"iterations": [
{
"input_tokens": 2,
"output_tokens": 522,
"cache_read_input_tokens": 23553,
"cache_creation_input_tokens": 1653,
"cache_creation": {
"ephemeral_5m_input_tokens": 0,
"ephemeral_1h_input_tokens": 1653
},
"type": "message"
}
],
"speed": "standard",
"fallback_credit": null
},
"modelUsage": {
"claude-opus-5-5": {
"inputTokens": 8,
"outputTokens": 2753,
"cacheReadInputTokens": 74909,
"cacheCreationInputTokens": 13060,
"webSearchRequests": 0,
"costUSD": 0.1745538,
"contextWindow": 1000000,
"maxOutputTokens": 128000,
"thinkingTokens": 136,
"canonicalModel": "claude-opus-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": 4,
"subtype": "success",
"api_error_status": null,
"result": "I've written `extracted.json` with all 24 invoices, keyed `inv01` to `inv24`. Every invoice passes the check that net + VAT equals total exactly. I also read through all 24 results against the source files and they match.\n\n- **Dates:** each format is read its own way: `MM/DD/YYYY` in the html files, `DD.MM.YYYY` in the txt files, `YYYYMMDD` in the kv files and ISO dates in the eml files. All come out as `YYYY-MM-DD`.\n- **Number formats:** European amounts like `1.277,81` are read as 1277.81, and US amounts like `2,426.01` as 2426.01. A number is treated as European when it ends in a comma plus two digits.\n- **Currency:** the html files use symbols, mapped as \u20ac EUR, \u00a3 GBP and $ USD. The other formats state the ISO code directly.\n- **Credit notes:** there are two, `inv07` (Pixelworks Inc.) and `inv19` (Tidewater LLC). Their net and total are negative, but VAT shows as `0.0` rather than negative because there is no VAT on them.\n- **Ignored amounts:** the \"previous balance \u2026 not included\" amounts in the txt files are left out. Only the Net, VAT and Total due lines are used.\n\nThe extraction script is at `/tmp/xs/extract.py`, outside the work folder. It isn't part of the deliverable, but you can re-run it with `python3 -I /tmp/xs/extract.py invoices extracted.json`.",
"ttft_ms": 2520,
"type": "result",
"duration_ms": 25022,
"uuid": "[REDACTED]",
"ttft_stream_ms": 1200,
"time_to_request_ms": 234,
"first_content_frame_ms": 1201,
"queued_turn_count": 0,
"result_index": 0
}
]