[BUG] Statusline cost.total_cost_usd significantly undercounts Fable session cost (related to #33887, now locked)
Claude Code 1M Context Billing Issue (Public).md
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
cost.total_cost_usd in the Claude Code statusline undercounts actual usage cost for Fable sessions specifically. Sonnet sessions audited with the identical method matched the statusline closely, ruling out the audit method itself as the cause.
Related: #33887 reported a general version of this (statusline vs /cost mismatch) in March 2026. It was closed as "not planned" and is now locked, so I can't comment there with new findings. Filing fresh with Fable-specific data that narrows the cause.
What Should Happen?
The statusline cost estimate should reliably reflect real cost, or should visibly flag "this session's cost estimate is unreliable" rather than silently understating it.
Error Messages/Logs
None — this is a silent calculation discrepancy, not a crash or visible error.
Steps to Reproduce
- Start a Claude Code session using claude-fable-5 as the active model.
- Run the session to the 5-hour usage cap (or any substantial length).
- Note the value shown in the statusline for cost.total_cost_usd.
- Open the session's own transcript (.jsonl file under the Claude Code project directory) and sum actual per-turn input / output / cache-write / cache-read token counts.
- Compute actual cost using Fable 5's published rates ($10/MTok input, $50/MTok output, 5-min cache write ≈1.25x input rate, cache read ≈0.1x input rate).
- Compare: the statusline value is substantially lower than the reconstructed cost. Two sessions audited this way showed 56.9% and 38.0% undercounts respectively.
- Repeat the same audit on an equivalent-length Sonnet session as a control — the Sonnet statusline value tracks the reconstructed cost closely, isolating the discrepancy to Fable.
Claude Model
Fable
Is this a regression?
I don't know
Last Working Version
n/a
Claude Code Version
2.1.207 (confirmed present). Not independently re-verified on 2.1.208; changelog for 2.1.206–2.1.208 has no entries mentioning statusline, cost.total_cost_usd, or Fable billing.
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Termius
Additional Information
Full write-up with token-by-token reconstruction attached (Claude_Code_1M_Context_Billing_Issue__Public_.md). A related bug — background jobs with an extended-context [1m] model flag appearing to silently cross from subscription billing into metered API billing — is being filed as a separate issue per the single-bug-per-report guideline; will cross-link once both are up. Note: billing was configured as subscription-based (Pro/Max, OAuth) — it was not intentionally set up on API/metered billing, and usage bled into metered API billing without any indication that had happened.