I am by no means an expert in token usage and models. This isn't a how-to, more of an am I stupid post. I pulled a week of token usage logs and found something that surprised me, and I figured I'd share it.
- One week.
- 1.26 billion Claude tokens.
- 15+ parallel workspaces.
- 80% used on Tuesday, limit reset on Saturday.
I pulled up ccusage to figure out where it was all going.
What ccusage is showing: about 95% of my token usage is cache reads. Just re-reading everything that already happened before writing each response.
That was the first thing that surprised me. Can I avoid this or make this cheaper?
So... about the re-reading
Every turn, the model re-reads the full context: system prompt, tools, CLAUDE.md, the entire conversation so far. Then it writes something. Then next turn it reads all of that again, plus what was just added.
Cache reads are actually cheap, around 0.1x the normal input rate. But you pay them every single turn. And the longer the conversation gets, the more there is to re-read. Turn 200 costs a lot more than turn 1.
I sort of knew this, but I didn't really think about what it meant until I saw the cost breakdown by model.
Token vs cost per model
So this was my token usage and cost per model:
- Fable was a third of my tokens but nearly 60% of the cost.
- Sonnet was over a quarter of the tokens and 8% of the cost.
Who knew. Expensive models are expensive.
Why the gap exists
Fable costs about 6x what it costs on Sonnet. And 95% of the tokens are re-reading, which model does the re-reading turns out to matter most.
Like many others I was excited to have Fable in the driver seat. Every turn, re-reading the growing transcript at 6x the rate. Ouchhh.
Taking Fable out of the driver's seat
So here's my idea. Why are we putting the genius Fable in the management seat? I know there's an argument for orchestrating by the smartest model. But what if...
Keep the expensive model available, but call it as a subagent. Like a consultant you ring for a specific question. Fresh context, bounded scope. It does the hard part and returns.
So who do I put in the seat? I'm tempted by Sonnet. But honestly I'm not sure Sonnet is smart enough to know when to delegate. Maybe Opus is the right driver.
I don't know yet. I'm going to run this as an experiment.
Was I paying to switch workspaces?
Then I learned about cache TTL. Apparantly it's 5 minutes by default? I've regularly got 10 sessions open over multiple days. So if my cache expires, I'm back to paying 6x costs again for these tokens.
But actually, Claude Code appears to request a 1-hour TTL on subscriptions. It's hard to track down definitive sources on this, but the numbers suggest it. So parallel workspaces by themselves aren't the biggest issue, although I do have a bunch of multi-week sessions.
Numbers from one real week of my own ccusage logs. Cache reads bill at ~0.1x input rate; per-model prices are blended $/token from that week, dominated by cache reads. Cache writes are 1.25x at 5-minute TTL, 2x at 1-hour TTL. The cost figures are ccusage's cost-equivalent estimate, not something Anthropic publishes directly.