Skip to content

Claude Haiku 5.5 (effort default (no --effort flag) · thinking on) on Spreadsheet-grade loan amortization for 8 loans incl. rate reset and extra payments

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

Trust 80%Fully autonomoussuccess · first trySuperseded
Estimated cost
$0.0061
Wall time
23s
Human step-ins
0
Outcome
Pass

Compare with other models on this task →

Superseded. This run was rescored on 2026-10-28 and replaced by a newer run. It no longer counts toward rankings, use-case tables or the data export; it is kept here for the record.

Summary

Exact prompt

# Task: loan amortization (spreadsheet-grade precision) `loans.csv` lists 8 loans: principal, annual_rate_pct (nominal, compounded monthly), years, extra_monthly (extra principal paid each month from `extra_from_month` on, 1-based), optional `rate_reset_month` + `new_rate_pct`. Rules (follow exactly, use decimal arithmetic, round HALF-UP to cents at each step): 1. Scheduled payment = P·i/(1−(1+i)^−n) with i = rate/12/100, n = years·12, rounded to cents. If rate is 0, payment = P/n rounded. 2. Each month: interest = round(balance·i); principal part = payment − interest; plus the extra payment if active. 3. If principal part + extra ≥ remaining balance, the final payment = interest + remaining balance (no extra that month) and the loan ends. 4. At `rate_reset_month` (before computing that month's interest), switch to the new rate and recompute the payment on the current balance over the ORIGINAL remaining term (n − reset_month + 1 months). Write `results.json`: {"L1": {"monthly_payment": "1234.56" (the initial scheduled payment, string), "total_interest": "…" (string, 2dp), "payoff_month": int}, ...} and `L3_schedule.csv` with header `month,payment,interest,principal,balance` (payment includes extra; principal includes extra; strings with 2dp). No network.

Exact-to-the-cent with HALF_UP per-step rounding, 0% loans, final-payment adjustment (one 60-month loan pays off in month 61 due to rounding), payment recompute at rate reset. 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. For each of the 8 loans: monthly_payment and total_interest must equal the key exactly to the cent (Decimal compare), and payoff_month must be exactly right. 2. L3_schedule.csv must have header month,payment,interest,principal,balance and the exact number of rows, with every month and every amount matching exactly.

Setup notes: Use Case Scout batch 4 case d09-loan-amortization-finance (offline fixture). Prepared with batch4/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 KEYDIR/key.json`. Tools: Read/Write/Edit/Glob/Grep/Bash, web disabled. Single run, no retries. Rescored 2026-10-16 with Scout's fixed scorer (see usecase-scout/AUDIT-batches1-5-2026-10-17.md). The original score was 1/2 checks (fail), and the model's output is unchanged. Claude Code's own reported cost for claude-haiku-5.5: $0.006111. Score: 2/2 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.0061
Wall time
23s
Human step-ins
0
Turns
5
Model usage
ModelInput tokOutput tokCost
AClaude Haiku 5.5anthropic/claude-haiku-5.5effort default (no --effort flag) · thinking on108,8695,181$0.0061

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: 1. For each of the 8 loans: monthly_payment and total_interest must equal the key exactly to the cent (Decimal compare), and payoff_month must be exactly right. 2. L3_schedule.csv must have header month,payment,interest,principal,balance and the exact number of rows, with every month and every amount matching exactly.
  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": 22450,
  "stop_reason": "end_turn",
  "session_id": "[REDACTED]",
  "total_cost_usd": 0.00611133,
  "usage": {
   "input_tokens": 10,
   "cache_creation_input_tokens": 12796,
   "cache_read_input_tokens": 96063,
   "output_tokens": 5181,
   "output_tokens_details": {
    "thinking_tokens": 2312
   },
   "server_tool_use": {
    "web_search_requests": 0,
    "web_fetch_requests": 0
   },
   "service_tier": "standard",
   "cache_creation": {
    "ephemeral_1h_input_tokens": 12796,
    "ephemeral_5m_input_tokens": 0
   },
   "inference_geo": "global",
   "iterations": [
    {
     "input_tokens": 2,
     "output_tokens": 1209,
     "cache_read_input_tokens": 24490,
     "cache_creation_input_tokens": 845,
     "cache_creation": {
      "ephemeral_5m_input_tokens": 0,
      "ephemeral_1h_input_tokens": 845
     },
     "type": "message"
    }
   ],
   "speed": "standard",
   "fallback_credit": null
  },
  "modelUsage": {
   "claude-haiku-5-5": {
    "inputTokens": 10,
    "outputTokens": 5181,
    "cacheReadInputTokens": 96063,
    "cacheCreationInputTokens": 12796,
    "webSearchRequests": 0,
    "costUSD": 0.00611133,
    "contextWindow": 1000000,
    "maxOutputTokens": 128000,
    "thinkingTokens": 2312,
    "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": 5,
  "subtype": "success",
  "api_error_status": null,
  "result": "I wrote `results.json` and `L3_schedule.csv` to the work directory. The script that produced them is at `/tmp/loanscript/amortize.py`, outside the work directory.\n\n**results.json**\n\n| Loan | monthly_payment | total_interest | payoff_month |\n|---|---|---|---|\n| L1 | 666.67 | 0.00 | 180 |\n| L2 | 2734.25 | 429664.00 | 297 |\n| L3 | 42.46 | 1316.13 | 54 |\n| L4 | 2000.00 | 0.00 | 60 |\n| L5 | 184.75 | 30423.20 | 300 |\n| L6 | 5835.89 | 42814.62 | 60 |\n| L7 | 48.61 | 9498.22 | 360 |\n| L8 | 4171.56 | 300879.30 | 180 |\n\n**L3_schedule.csv** has 54 rows, from month 1 to payoff at month 54. The payment rises from 42.46 to 292.46 once the extra starts at month 25. It drops to 280.58 after the reset at month 37. The final row is 17.71 paid, which clears the balance to 0.00.\n\n**Decisions you should check:**\n\n- **L6 needed a forced payoff at the term's last month.** The rules don't cover a balance left over at the end of the term. After the reset at month 37, the scheduled payment of 5946.77 leaves 10 cents unpaid at month 60, so I made the month-60 payment 5946.87 (interest plus the remaining balance). Under the rules as written, that payment is the one not covered by the rules.\n- **L1 and L4 are not affected.** Both have a rate of 0, so the payment is P/n rounded. L1's 666.67 leaves a small final payment at month 180, handled by rule 3.\n- **Interest is rounded per month and summed.** Each month's interest is rounded to cents before it is added to the total, as rule 2 says.\n- **Extra payments stop when the loan ends.** An extra payment is only applied in months where the loan is still open.",
  "ttft_ms": 827,
  "type": "result",
  "duration_ms": 22891,
  "uuid": "[REDACTED]",
  "ttft_stream_ms": 681,
  "time_to_request_ms": 249,
  "first_content_frame_ms": 682,
  "queued_turn_count": 0,
  "result_index": 0
 }
]

Get new runs and ranking changes weekly