Skip to content

Claude Sonnet 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 Sonnet 5.5default · thinking on · Claude Code 2.1.299 (headless -p) · cloud · 2026-10-16 · by @bobsiopener

Trust 80%Fully autonomoussuccess · first try
Estimated cost
$0.08
Wall time
20s
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-sonnet-5.5: $0.080389. 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.08
Wall time
20s
Human step-ins
0
Turns
5
Model usage
ModelInput tokOutput tokCost
AClaude Sonnet 5.5anthropic/claude-sonnet-5.5effort default (no --effort flag) · thinking on108,1882,359$0.08

Reproduce this run

  1. Use the use case prompt on the use case page.
  2. Same setup: Claude Sonnet 5.5 (anthropic/claude-sonnet-5.5, effort default (no --effort flag) · thinking on) via Claude Code 2.1.299 (headless -p), cloud.
  3. 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).
  4. 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?

⇄ Rerun on another model

Automated checks

Trust 80% comes from these checks (how Trust % works).

Evidence log
[
 {
  "duration_api_ms": 19465,
  "stop_reason": "end_turn",
  "session_id": "[REDACTED]",
  "total_cost_usd": 0.0803893,
  "usage": {
   "input_tokens": 10,
   "cache_creation_input_tokens": 11785,
   "cache_read_input_tokens": 96393,
   "output_tokens": 2359,
   "output_tokens_details": {
    "thinking_tokens": 175
   },
   "server_tool_use": {
    "web_search_requests": 0,
    "web_fetch_requests": 0
   },
   "service_tier": "standard",
   "cache_creation": {
    "ephemeral_1h_input_tokens": 11785,
    "ephemeral_5m_input_tokens": 0
   },
   "inference_geo": "global",
   "iterations": [
    {
     "input_tokens": 2,
     "output_tokens": 429,
     "cache_read_input_tokens": 23891,
     "cache_creation_input_tokens": 433,
     "cache_creation": {
      "ephemeral_5m_input_tokens": 0,
      "ephemeral_1h_input_tokens": 433
     },
     "type": "message"
    }
   ],
   "speed": "standard",
   "fallback_credit": null
  },
  "modelUsage": {
   "claude-sonnet-5-5": {
    "inputTokens": 10,
    "outputTokens": 2359,
    "cacheReadInputTokens": 96393,
    "cacheCreationInputTokens": 11785,
    "webSearchRequests": 0,
    "costUSD": 0.0803893,
    "contextWindow": 1000000,
    "maxOutputTokens": 128000,
    "thinkingTokens": 175,
    "canonicalModel": "claude-sonnet-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": 5,
  "subtype": "success",
  "api_error_status": null,
  "result": "I wrote `extracted.json` in the working directory with all 24 invoices, keyed `inv01` to `inv24`. For every invoice that isn't a credit note, net plus VAT equals total. Credit notes weren't checked this way. I haven't checked the output against the source files by hand.\n\n- **Credit notes:** `inv07` and `inv19` are the only two (the `.kv` files marked `CREDIT NOTE`). Their net, VAT and total are negative. The VAT on both is zero, so it shows as `-0.0` in the JSON.\n- **Date formats:** The `.html` files use MM/DD/YYYY, as they state. The `.txt` files use DD.MM.YYYY. The files don't say so, but dates like `18.07.2026` and `24.08.2026` can only be day-first.\n- **European number formats:** Amounts like `1.277,81` are parsed as 1277.81.\n- **Ignored amounts:** The \"previous balance\" figures in the `.txt` files are left out.\n- **Currencies:** `\u20ac`, `\u00a3` and `$` map to EUR, GBP and USD.\n- **Vendors for `.eml` files:** The vendor name comes from the \"Thanks, \u2026\" sign-off line.\n\nI ran the extraction with a script at `/tmp/s/x.py`.",
  "ttft_ms": 2642,
  "type": "result",
  "duration_ms": 19927,
  "uuid": "[REDACTED]",
  "ttft_stream_ms": 1659,
  "time_to_request_ms": 215,
  "first_content_frame_ms": 1660,
  "queued_turn_count": 0,
  "result_index": 0
 }
]

Get new runs and ranking changes weekly