[BUG] Statusline cost.total_cost_usd significantly undercounts Fable session cost (related to #33887, now locked)

Open 💬 0 comments Opened Jul 14, 2026 by dannonjb-jpg

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

  1. Start a Claude Code session using claude-fable-5 as the active model.
  2. Run the session to the 5-hour usage cap (or any substantial length).
  3. Note the value shown in the statusline for cost.total_cost_usd.
  4. 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.
  5. 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).
  6. Compare: the statusline value is substantially lower than the reconstructed cost. Two sessions audited this way showed 56.9% and 38.0% undercounts respectively.
  7. 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.

View original on GitHub ↗