Skip to content

Claude Haiku 5.5 (effort default (no --effort flag) · thinking on) on Rebuild two years of a repayment mortgage statement with a rate change, overpayments and a bounced payment

AClaude Haiku 5.5default · thinking on · Claude Code 2.1.299 (headless -p) · cloud · 2026-10-21 · by @bobsiopener

Trust 80%Fully autonomoussuccess · first try
Estimated cost
$0.0040
Wall time
13s
Human step-ins
0
Outcome
Pass

Compare with other models on this task →

Summary

Exact prompt

# Rebuild a mortgage statement Inputs: `loan.json` (opening balance on 2024-11-01, starting annual rate, contractual monthly payment), `rate-notices.csv` (rate changes) and `payments.csv` (everything that hit the mortgage account, including returned direct debits). Rebuild the 24 monthly statements from November 2024 to October 2026. - Each month: interest = opening balance x annual rate / 12, rounded to the penny half-up, and added to the balance. Then every payment for that month that was not returned comes off the balance. - A rate notice applies from the month in its `effective_month` (that month's interest already uses the new rate). - A payment whose `status` is `returned` never reached the lender; ignore it. Overpayments are payments like any other. - Keep the balance in exact pence; there is no other rounding. Write `out/statement.json`: `{"closing_balance": <balance after October 2026>, "total_interest": <sum of the 24 monthly interest charges>, "interest_by_year": {"2024": <...>, "2025": <...>, "2026": <...>}, "total_paid": <sum of payments counted>, "interest_after_rate_change": <interest charged from the first rate-change month onwards>}`. ## How this run works - Work on your own: nobody will answer questions in this task, and writing to `ask/` counts against the run. - Write only under `out/`. Create `out/` if it is missing. Inputs are synthetic; don't fetch anything from the network. - Scoring is partial credit: each listed check is pass/fail, and the score is the share passed. Numbers are compared to within 0.005 unless the task says otherwise.

Rebuild 24 months of a repayment mortgage from the loan terms, a payment log and the lender's rate notices. Interest is charged monthly on the opening balance and rounded to the penny each month, a rate change applies from its stated month, overpayments come straight off the balance, and a returned direct debit has to be ignored. Rounding only at the end, missing the rate change or counting the bounced payment each changes the closing balance. 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: closing_balance monthly_penny_rounding rate_change returned_payment

Setup notes: Batch 22 case x01-loan-statement-overpayments (offline, synthetic inputs, seed 14318806). Autonomous case: no stand-in user and no step-ins expected; any file the solver wrote to ask/ is counted as a measured intervention (0) and blocks a pass. Prompt = TASK.md verbatim. Hidden key kept outside the solver's work dir. Scored with the case's scorer (python3 score.py WORKDIR KEYDIR, absolute paths); pass = every check true and no ask/ files. Tools: Read/Write/Edit/Glob/Grep/Bash, web disabled. Single run, no retries. 1-min load average at scoring 0.16 (8 cores). Time-zone results depend on the system time-zone database: tzdata 2026c-0+deb13u1 (Python zoneinfo). Claude Code's own reported cost for claude-haiku-5.5: $0.004017. Score: 4/4. 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.0040
Wall time
13s
Human step-ins
0
Turns
4
Model usage
ModelInput tokOutput tokCost
AClaude Haiku 5.5anthropic/claude-haiku-5.5effort default (no --effort flag) · thinking on85,5722,272$0.0040

Reproduce this run

  1. Use the use case prompt on the use case page.
  2. 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.
  3. It counts as a success only if it meets every success criterion: closing_balance monthly_penny_rounding rate_change returned_payment
  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": 11860,
  "stop_reason": "end_turn",
  "session_id": "[REDACTED]",
  "total_cost_usd": 0.0040174600000000005,
  "usage": {
   "input_tokens": 8,
   "cache_creation_input_tokens": 10658,
   "cache_read_input_tokens": 74906,
   "output_tokens": 2272,
   "output_tokens_details": {
    "thinking_tokens": 689
   },
   "server_tool_use": {
    "web_search_requests": 0,
    "web_fetch_requests": 0
   },
   "service_tier": "standard",
   "cache_creation": {
    "ephemeral_1h_input_tokens": 10658,
    "ephemeral_5m_input_tokens": 0
   },
   "inference_geo": "global",
   "iterations": [
    {
     "input_tokens": 2,
     "output_tokens": 393,
     "cache_read_input_tokens": 22832,
     "cache_creation_input_tokens": 365,
     "cache_creation": {
      "ephemeral_5m_input_tokens": 0,
      "ephemeral_1h_input_tokens": 365
     },
     "type": "message"
    }
   ],
   "speed": "standard",
   "fallback_credit": null
  },
  "modelUsage": {
   "claude-haiku-5-5": {
    "inputTokens": 8,
    "outputTokens": 2272,
    "cacheReadInputTokens": 74906,
    "cacheCreationInputTokens": 10658,
    "webSearchRequests": 0,
    "costUSD": 0.0040174600000000005,
    "contextWindow": 1000000,
    "maxOutputTokens": 128000,
    "thinkingTokens": 689,
    "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": 4,
  "subtype": "success",
  "api_error_status": null,
  "result": "I rebuilt the 24 monthly statements (November 2024 to October 2026) and wrote `out/statement.json`:\n\n```json\n{\n  \"closing_balance\": 252001.52,\n  \"total_interest\": 30950.92,\n  \"interest_by_year\": {\"2024\": 2503.29, \"2025\": 14852.94, \"2026\": 13594.69},\n  \"total_paid\": 60402.75,\n  \"interest_after_rate_change\": 13594.69\n}\n```\n\nEach month's interest is the opening balance \u00d7 rate / 12, rounded half-up to the penny. The rate switches from 5.34% to 6.19% in January 2026. Payments are grouped by the calendar month of their date.\n\nChoices to check:\n- **December 2025 has two counted payments.** The returned direct debit of 1,623.67 is ignored, but the 14 December card payment of 1,623.67 is counted as paid. So December's total is 3,247.34, and that card payment is taken to be the replacement for the bounced debit.\n- **Interest and payments in the same month.** Interest is added first, then that month's payments come off, as the spec describes.\n\nOnly `out/` was written to. The month-by-month trace was printed during the run and not saved.",
  "ttft_ms": 1430,
  "type": "result",
  "duration_ms": 12300,
  "uuid": "[REDACTED]",
  "ttft_stream_ms": 1186,
  "time_to_request_ms": 314,
  "first_content_frame_ms": 1186,
  "queued_turn_count": 0,
  "result_index": 0
 }
]

Get new runs and ranking changes weekly