Model Analytics
A native dashboard over the live benchmark feed: pooled cost trends as the CLI advances and a single-cycle per-model breakdown — real data rendered as themeable, accessible charts, not an embedded frame. Costs are benchmark-harness figures (a warm/cold cache mix from the harness's own warm-up scheme), not dollars a real user is billed.
Data as of 2026-07-25T15:25:25.005Z (2 days ago).
At a glance
24
Benchmark cycles
9
Models tracked
9
Frozen tasks
832
Total sessions
Cost Trends
Pooled cost per session (USD) per model as the CLI advances. Each line is one model; every point is pooled across every cycle at that CLI version, so it is not the same number as a single Cycle Results figure. Gaps are versions where that model was not run.
Data table
| CLI version | claude-fable-5 | claude-haiku-4-5 | claude-opus-4-8 | claude-sonnet-5 | claude-opus-5 |
|---|---|---|---|---|---|
| 2.1.202 | $0.1823 | $0.0177 | $0.0867 | $0.0584 | — |
| 2.1.204 | $0.1720 | $0.0164 | $0.0831 | $0.0712 | — |
| 2.1.205 | $0.1605 | $0.0153 | $0.0764 | $0.0665 | — |
| 2.1.206 | $0.1671 | $0.0168 | $0.0818 | $0.0688 | — |
| 2.1.207 | $0.1388 | $0.0186 | $0.0616 | $0.0553 | — |
| 2.1.208 | $0.1247 | $0.0169 | $0.0575 | $0.0511 | — |
| 2.1.210 | $0.1251 | $0.0164 | $0.0577 | $0.0469 | — |
| 2.1.211 | $0.1236 | $0.0162 | $0.0545 | $0.0472 | — |
| 2.1.212 | $0.1218 | $0.0158 | $0.0543 | $0.0470 | — |
| 2.1.214 | $0.1130 | $0.0166 | $0.0567 | $0.0481 | — |
| 2.1.215 | $0.1167 | $0.0154 | $0.0499 | $0.0456 | — |
| 2.1.216 | $0.1129 | $0.0167 | $0.0522 | $0.0444 | — |
| 2.1.217 | $0.1161 | $0.0161 | $0.0496 | $0.0451 | — |
| 2.1.218 | $0.1185 | $0.0152 | $0.0497 | $0.0464 | — |
| 2.1.219 | $0.1208 | $0.0158 | $0.0495 | $0.0493 | — |
| 2.1.220 | $0.1184 | $0.0147 | $0.0503 | $0.0461 | $0.0665 |
Cycle Results
The latest cycle only (nightly-2.1.220, run2026-07-25), one bar per model. Pick a metric to compare. The cost bar is a single-cycle figure — the newest cycle's cost per session, not the pooled Cost Trends line above.
Data table
| Model | Cost ($) | Output tokens | Input tokens | Cache-read tokens | Cache-write tokens | Total tokens | API calls | Tool calls | Thinking blocks | Latency (s, wall-clock) |
|---|---|---|---|---|---|---|---|---|---|---|
| claude-fable-5 | $0.1184 | 521.5 | 6 | 63,101.5 | 679 | 63,511 | 3 | 2 | 1 | 14.21 s |
| claude-haiku-4-5 | $0.0147 | 572 | 21 | 69,445 | 2,729 | 71,976 | 3 | 2 | 1 | 9.26 s |
| claude-opus-4-8 | $0.0503 | 453 | 6 | 58,903 | 208 | 59,321 | 3 | 2 | 1 | 9.67 s |
| claude-opus-5 | $0.0665 | 488 | 8 | 83,243 | 170 | 83,410 | 4 | 3 | 0 | 12.97 s |
| claude-sonnet-5 | $0.0461 | 369 | 8 | 127,513 | 632 | 128,007 | 4 | 3 | 1 | 8.03 s |
Analysis
Benchmark Auto-Analysis – nightly-2.1.220
Generated 2026-07-25 21:39 UTC by scripts/benchmarks/analyze-digest.py: claude-opus-4-8 narrative over docs/benchmarks/digest-nightly-2.1.220.md, adversarially verified. The digest is the ground truth; on any conflict trust the digest.
Verdict
Blended cost — the real per-task spend a user actually pays, cache luck and all — moved only modestly this cycle: haiku fell 6.6% and sonnet fell 6.4% (the largest moves), fable slipped 2.0%, and opus-4-8 edged up 1.6%. But the warm-only control — which strips out random cache-hit luck to test whether a change is real — shows no significant move for any family (all warm Mann-Whitney p-values are far above 0.05). So these blended shifts are likely cache luck, not real cost changes from 2.1.219 to 2.1.220.
Pooled blended comparison
“Pooled” means all sessions for a family are combined into one number; “blended” means every session counts, including cold-start cache misses — this is the headline that matches the dashboard and cost feed.
| family | prev $/sess | cur $/sess | delta % | blended p |
|---|---|---|---|---|
| fable-5 | 0.1208 | 0.1184 | -2.0% | 0.649 |
| haiku-4-5 | 0.0158 | 0.0147 | -6.6% | 0.613 |
| opus-4-8 | 0.0495 | 0.0503 | +1.6% | 0.937 |
| sonnet-5 | 0.0493 | 0.0461 | -6.4% | 0.992 |
The two biggest headline moves are haiku (-6.6%) and sonnet (-6.4%); opus-4-8 is the only family that rose (+1.6%).
Pooled warm comparison (significance control)
“Warm-only” restricts to sessions where the cache was already warm, removing the random luck of a cold-start cache miss. It answers the separate question: did cost actually change, or did the blended number just get lucky? For that question, trust these p-values, not the blended deltas above.
| family | prev $/sess | cur $/sess | delta % | warm p |
|---|---|---|---|---|
| fable-5 | 0.1117 | 0.1047 | -6.3% | 0.413 |
| haiku-4-5 | 0.0148 | 0.0135 | -8.8% | 0.529 |
| opus-4-8 | 0.0446 | 0.0450 | +0.9% | 0.888 |
| sonnet-5 | 0.0431 | 0.0430 | -0.2% | 0.990 |
Every warm p-value is well above 0.05, so none of the blended moves clears the bar for a real change. Notably, sonnet’s 6.4% blended drop shrinks to just -0.2% once cache luck is removed — a clear sign the headline dip was cache-driven, not a genuine cost reduction.
Notable cells (secondary)
Per-cell movers are a much weaker lens: these are single family-and-prompt combinations, each with small samples, drawn from 36 simultaneous comparisons. With that many tests you’d expect roughly one false positive at p<0.05 for every 20 cells, so no single cell is a finding on its own.
| cell | warm delta % | n (prev/cur) | cost p | blended delta % |
|---|---|---|---|---|
| haiku · fix-off-by-one | -33.5% | 6/6 | 0.076 | -33.6% |
| haiku · add-dry-run-flag | +17.3% | 6/6 | 0.117 | +8.7% |
| sonnet · rename-refactor | +16.4% | 6/6 | 0.917 | +15.8% |
None of these reaches significance (all p ≥ 0.076), so treat them as noise to watch, not results.
Cross-model (within cycle; blended)
These compare cost per task on identical prompts within this cycle — not per-token rates. A cheaper-rated model can still out-cost a pricier one by taking more agentic steps.
Blended cost per session, cheapest to most expensive: haiku-4-5 ($0.0147) « sonnet-5 ($0.0461) < opus-4-8 ($0.0503) < opus-5 ($0.0665) « fable-5 ($0.1184). Fable is by far the most expensive family; every pairing against it is significant (p=0.000), and it is costlier on all 9 shared prompts against each of the others. Haiku is cheapest across the board, costlier on 0 of 9 prompts against every rival, all significant.
- Near-parity pair: opus-4-8 vs sonnet-5 is the one pairing that is not significant (delta -8.3%, p=0.420) — these two are effectively tied on pooled cost.
- Cheaper-pooled-but-costlier-on-prompts pair: in that same opus-4-8 vs sonnet-5 pair, sonnet is cheaper pooled, yet opus-4-8 comes out cheaper on 3 of the 9 shared prompts while sonnet is cheaper on 6 — a reminder that a pooled edge doesn’t hold on every prompt.
- Within the opus family, opus-5 is significantly costlier than opus-4-8 (+32.3%, p=0.019), costing more on 8 of 9 prompts.
The per-prompt median matrix (e.g. rename-refactor at fable 0.1878 vs haiku 0.0258) uses single cells of about 5 sessions each — use those numbers only as illustration, not as standalone findings.
Behavior
These warm medians (current vs prev 2.1.219) carry no significance test — they only help explain a cost move, and are never findings on their own.
- fable: 3 (3) API calls, 2 (2) tool calls, output tokens 491 (523), cache-read 62862 (63273). Slightly fewer output tokens, consistent with its small -2.0% blended dip.
- haiku: 3 (3) API calls, 2 (2) tool calls, output tokens 568 (558), cache-read 71712 (69225). Step counts unchanged; nothing here points to a real cost change behind the -6.6% blended move.
- opus-4-8: 3 (3) API calls, 2 (2) tool calls, output tokens 458.5 (459), cache-read 59857.5 (58908). Essentially flat behavior, matching its tiny +1.6% blended change.
- sonnet: 4 (4) API calls, 3 (3) tool calls, output tokens 366 (367), cache-read 127517 (127517). Behavior is unchanged down to identical cache-read — reinforcing that sonnet’s headline -6.4% is cache luck, not a behavior shift.
In short: no family changed its step count or tool usage, so nothing in behavior supports treating the blended moves as real.
Trend
Blended mean $/session has been stable across recent cycles. Fable has hovered between 0.1129 and 0.1218 (now 0.1184 at n=54); haiku around 0.0147–0.0167 (now 0.0147); opus-4-8 near 0.0495–0.0567 (now 0.0503); sonnet 0.0444–0.0493 (now 0.0461). This cycle (nightly-2.1.220) is the first with opus-5 in the series, entering at 0.0665 (n=53). No family shows a sustained departure from its recent band.
Caveats
- Two lenses, one control. Blended is the real per-task spend including cache luck (the headline); warm-only strips that luck and is the test for whether cost really changed. Judge real change by the warm p-value, not the blended delta — a blended move with no significant warm move may just be cache luck.
- The CLI version changed (
2.1.219→2.1.220), so any pooled delta measures the effect of the CLI version — that’s what this benchmark exists to test. Do not attribute a delta to the model itself without a same-CLI backtest. - Per-cell movers span 36 simultaneous comparisons, where about one false positive per 20 cells at p<0.05 is expected by chance; a single significant cell is not a finding.
- Cross-model rows compare cost per task, not per-token rates: a lower-rated model can cost more by taking more agentic steps, and the per-prompt medians are single small cells (about 5 sessions) — illustrative only.
- Behavior medians are descriptive with no significance test — use them to explain a cost move, never as findings on their own.
- Haiku token capture is known to be incomplete, so treat all Haiku cost and token figures as lower bounds.
- Latency is wall-clock (it includes model/thinking time), and cost is API-equivalent from the hook calculation — not dollars actually billed.
Verification appendix
- Verifier verdict: PASS after 2 round(s).
- A first draft was rejected and revised; the objections were resolved.