Skip to content

Claude Fable 5.1: pricing entry with the 0.025x cache-read exception - #80

Merged
szjanikowski merged 3 commits into
mainfrom
pricing/fable-5-1
Sep 9, 2026
Merged

szjanikowski merged 3 commits into
mainfrom
pricing/fable-5-1

Conversation

@szjanikowski

@szjanikowski szjanikowski commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Adds claude-fable-5-1 to the bundled price catalog and re-verifies every Claude entry against the official pricing page as of 2026-09-04.

Targets main. #78 (which carried the claude-sonnet-5 entry) is merged; this PR still carries the CHANGELOG entry for it, since #78 landed without one.

The one thing worth reviewing

Fable 5.1 bills cache reads at 0.025x base input ($0.25/MTok) — every other Claude model reads at 0.1x. This is published per-model on the pricing page, not a typo, and the catalog header says so explicitly to stop a future "consistency fix".

It matters because our runs are cache-heavy (93–98% of input is cache reads):

trial tokens our cost_usd Harbor's own accounting if read were 0.1x
qoVXn7k (threshold) 1.16M in / 30.5k out $3.577042 $3.57704175 $4.38
tYW2nM9 (weather) 4.11M in / 104k out $10.177842 $10.17784175 $13.11

Both agree with Harbor to the cent. The 0.1x variant would overstate a weather trial by $2.93.

Changes

  • pricing.toml: claude-fable-5-1 ($10/$50, cache write $20, cache read $0.25); all Claude as_of bumped to 2026-09-04 (rates themselves unchanged)
  • tests/test_pricing.py: real-trial calibration case pinned to tYW2nM9, plus a guard on the 0.25 read rate
  • tests/test_evaluator.py, tests/test_results_exporter.py: the two assertions on the stamped as_of
  • CHANGELOG.md: entries for Fable 5.1 and the missing claude-sonnet-5 one

Verification

uv run pytest tests/test_pricing.py tests/test_evaluator.py tests/test_results_exporter.py — 105 passed. End-to-end: two real trials (threshold + weather), both reward 1.0, cost table and pricing_used.json correct. Results in NoesisVision/nasde-results@ee2eb07.

Rebased onto main after #78 and #81 merged. The as_of conflicts in pricing.toml and the two test assertions resolve in this PR's favour (2026-09-04 supersedes #78's 2026-08-24); the CHANGELOG.md conflicts were link-reference unions. Full suite green afterwards: 465 passed.

🤖 Generated with Claude Code

https://claude.ai/code/session_018vLdNDXktXCC5brNXSZTfe

szjanikowski pushed a commit that referenced this pull request Sep 5, 2026
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018vLdNDXktXCC5brNXSZTfe
@szjanikowski
szjanikowski changed the base branch from viz/heatmap-t2-highlight to main September 9, 2026 10:14
Szymon Janikowski and others added 3 commits September 9, 2026 12:17
claude-fable-5-1 at $10/$50 per 1M tokens, 1-hour cache write $20, and a
cache read rate of $0.25 — 0.025x base input, where every other Claude
model reads at 0.1x. That exception is published per-model on the pricing
page, so the catalog header and a dedicated test pin it down: on our
cache-heavy grids (93–98% of input is cache reads) treating it as 0.1x
would overstate a Fable 5.1 run's cost by roughly 3.5x.

All Claude entries re-verified against the pricing page on 2026-09-04 and
their as_of bumped; the two economics tests that assert the stamped
as_of follow. gpt entries unchanged (still 2026-06-08).

Also records the missing CHANGELOG entry for claude-sonnet-5 (#78).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018vLdNDXktXCC5brNXSZTfe
Trial qoVXn7k (ddd-threshold-discount, claude-vanilla / claude-fable-5-1
at xhigh, reward 1.0): 1.16M prompt tokens of which 1.07M cache reads,
30.5k output. Our cost_usd and Harbor's own per-step accounting agree to
the cent at $3.57704175 — both apply the 0.025x read rate. Reading at
0.1x would have produced $4.38 on the same token mix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018vLdNDXktXCC5brNXSZTfe
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018vLdNDXktXCC5brNXSZTfe
@szjanikowski
szjanikowski merged commit 3f4c0d5 into main Sep 9, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant