The math nobody does: your prompts are a rounding error
A long day of Claude Code might involve a few thousand tokens of things you actually typed. The window, meanwhile, drains by hundreds of thousands. The difference is machine-generated context: files Claude Code decided to read, test output, build logs, search results, and the entire conversation history replayed on every turn. When the limit hits on Wednesday, it isn't because you asked too much — it's because each ask dragged an invisible payload behind it.
Suspect #1: sub-agents re-pay for context you already bought
Claude Code leans on Anthropic's prompt cache: the stable prefix of a conversation is billed at a fraction of the normal input rate on repeat turns, which is why long sessions are more affordable than raw token counts suggest. The catch is that sub-agents spin up fresh contexts that don't inherit the cached prefix. A multi-agent run re-reads — at full price — the context your main session was getting cheaply. If you've recently adopted agent-heavy workflows and your weekly limit suddenly evaporates, this is the first place to look.
Suspect #2: one failing build outweighs a hundred prompts
A passing test suite prints dots. A failing one prints stack traces, deprecation warnings, and dependency noise by the thousand lines — and every line goes through the model, on every debugging turn, replayed in history until the session ends. A single stubborn CI failure investigated inside Claude Code can cost more of your window than a full day of feature work.
Suspect #3: exploration reads you never see
"Find where X is defined" sounds cheap. Behind it, Claude Code greps, opens candidate files, reads surrounding context, and keeps much of it in the conversation. On a large repo with generated files or fixtures, one exploration pass can move tens of thousands of tokens. Do a few of those before lunch and the weekly cap notices.
What to do this week
- Keep noisy work out of the window. Run builds and test suites in your own terminal and paste in only the failing part. The model doesn't need six hundred passing dots.
- Be deliberate with sub-agents. They're powerful, but each one re-buys context at full price. Use them for genuinely parallel work, not as a default.
- Start fresh sessions for new tasks. Replayed history is the quiet tax on every turn; a fresh session on a new task drops the dead weight.
- Compress what goes in. The three suspects above are all input noise, which is exactly what Headroom strips: it reversibly compresses tool output, logs, and boilerplate locally before they reach the model — around 50% fewer tokens, so the same weekly limit covers roughly twice the work.
The upgrade question
Moving from Pro to Max raises the ceiling, but you'll send the same bloated context at the bigger ceiling too. It's the right move when your useful work genuinely exceeds the plan — and a $100-plus answer to a noise problem when it doesn't. Fix the noise first, then decide with clean data.
For the reference material: how the 5-hour window and weekly cap work, what counts toward usage, and the full cost-cutting toolkit.