Results
| Plan | Users | Median week | 25th to 75th percentile | 90th percentile | Median vs plan price |
|---|---|---|---|---|---|
| Pro, $20/month | 85 | $72.51 | $27.14 to $173.18 | $303.30 | 15.7x |
| Max, $100/month | 35 | $277.04 | $123.42 to $482.11 | $886.90 | 12.0x |
| Ultra, $200/month | 33 | $688.19 | $150.16 to $1,825.69 | $3,344.66 | 14.9x |
Each figure is one user's input cost for the week at API list prices. A week of each plan is its monthly price times 12, divided by 52: $4.62 for Pro, $23.08 for Max and $46.15 for Ultra.
Almost everyone sent more than their plan costs: 80 of 85 Pro users, 31 of 35 on Max and 28 of 33 on Ultra. More than half of the users on each plan sent over ten times the plan's price.
These users run Extra Headroom, which compresses tool output before it is sent, so the table shows what reached Anthropic. With the app's input savings added back, the median week would have been $90.47 on Pro, $313.36 on Max and $925.59 on Ultra.
Where the input cost comes from
Claude Code sends the whole conversation on every turn. The part Anthropic's prompt cache has already seen is billed as cache reads, at a fraction of the model's input price. What is new on that turn (tool results, the user's message, the model's previous reply) is billed at the full input price, or at the higher cache-write price when it is written to the cache.
Across the 153 users, cache reads were 95.5% of input tokens: 104.40 billion, against 4.88 billion tokens of new input. That 4.5% of new input made up more than half of the input cost.
New input is the part that depends on how a session runs, and in Claude Code much of it is tool output: test and build logs, search results, JSON from MCP servers. Extra Headroom compresses that output on your machine and leaves the cached prefix as sent, so cache hits are unaffected. Read how it decides what to keep.
Rate limits
On a subscription these dollars are never billed. They are drawn against the plan's usage limits instead. That week, Claude Code got at least one HTTP 429 from Anthropic on 60.8% of active days on Pro, 56.3% on Max and 48.9% on Ultra. A 429 can be the plan's usage limit or short-term throttling, and the daily counts do not yet tell the two apart, so read these as upper bounds on how often users hit their limit.
Since October 30, verified Ultra accounts have no 5-hour limit, only weekly limits. This week predates that change. Related: what's eating the Claude Code weekly limit.
Methodology
The desktop app syncs daily per-user totals: token, request and cost counts, never prompt content. The sample is every user with a detected Claude Pro, Max or Ultra plan whose requests that week were at least 90% Claude Code, and who used it on three or more days: 153 users, 749 user-days and 857,070 requests. Cache figures cover the 690 user-days on builds that report them.
Input cost is the proxy's own figure per model: cache reads, cache writes and uncached input, each at that model's API list price from LiteLLM's price table. Output tokens are not included, so every figure is a lower bound. Plan prices are the monthly ones in US dollars. The week is the last full one before October 30, 2026, when Anthropic renamed Max 5x to Max and Max 20x to Ultra, at the same prices.
People who install a token-saving proxy tend to use Claude Code more than average, so these are figures for heavy users, not for every subscriber.