Claude Code · Feb 17 to Sep 3 · updated daily from my own logs
18,040,836,087
tokens through Claude Code since February.
Not a flex. A ledger. A token is about four characters, and every message you send re-reads the whole conversation, so the number gets big fast. What matters is not the size. It is that 94% of it was cache reads at a tenth of the input price, that the model only wrote 0.8% of it, and that the bill that actually hurts is the session limit, not the invoice.
- $18,045at API list price
- $926paid for Max seats
- 5,975prompts typed
- 410Mbiggest day, Sep 2
- 199days on record
01
A token has four prices, and you mostly pay the cheapest one.
The API bills four kinds of token. Fresh input you send. Output the model writes. Cache writes, when new context gets stored. And cache reads, when the model re-reads what it already stored. On Opus those run $5 / $25 / $6.25 / $0.5 per million. Output is fifty times the price of a cache read.
Here is my whole ledger split that way. The purple is the conversation being re-read on every turn. The sliver at the end is everything the model ever wrote back.
cache reads 93.8%
cache writes 5.3%
fresh input 0.09%
output 0.82%
This is why a 400M-token day is not a $4,000 day. It is also why the one thing that wrecks a session is anything that breaks the cache, because the same tokens suddenly cost ten times more and eat the limit ten times faster.
02
List price says $18,045. The seats cost $926.
Three plans so far. Max 20x from February, down to Max 5x in June, then a Team seat at work from August. Each card shows what the same tokens would have cost on the API against what the seat actually cost.
Max 20xpersonal
$200/moFeb 17 to May 31 · 104 days
6.73Btokensest. split
- API list price$5,866
- Seat paid$683
- Multiple8.6x
- Prompts3,939
Max 5xpersonal
$100/moJun 1 to Aug 13 · 74 days
9.56Btokensest. split
- API list price$9,063
- Seat paid$243
- Multiple37.3x
- Prompts1,613
Teamwork
Aug 14 to Sep 3 · 21 days
1.76Btokens
- API list price$3,116
- Seat paidwork seat, price not mine
- MultipleAPI + seat, mixed
- Prompts423
The pre-July split between 20x and 5x is an estimate. Claude Code's own stats cache keeps exact lifetime totals per model through June 30 but only input and output per day, so the cache-inclusive lump is allocated by each plan's share of the daily numbers. The Team seat is paid by my employer and the early Team weeks ran on an API key, so that card carries no multiple. 2 of 3 seat prices are mine to publish.
03
Every day since Feb 17.
The ramp is the story. Spring was a few million tokens a day on Opus 4.6 and 4.7. Summer, once agents started running agents, is hundreds of millions. The plan bands are shaded. The grey block in July is the fortnight where no log survived.
Tokens per day, Claude Code and Codex
as of Sep 3- Feb1.1Min+out only
- Mar30.8M$32
- Apr1.6M$3
- May11.9M$14
- Jun1.0M$2
- Jul1.33B$1,159
- Aug2.29B$3,350
- Sep505M$1,039
04
The limit is the real bill.
A seat does not charge per token. It gives you a 5-hour window and a 7-day window and meters both. So the question that matters on a seat is not what a million tokens costs, it is how many million fit in a window before the window closes on you. I poll both accounts every ten minutes and divide the movement in the window by the tokens burned between polls.
At my cache profile a Team seat holds about 59.9 Mtok per 5-hour window and Max 5x about 32.5 Mtok. On a heavy day I burn 13 Mtok an hour, which is 2.5 hours of runway on 5x and 4.6 on Team. The poller caught the Team window pinned at 100% in 35 of 142 polls. Every one of those is ten minutes of work that did not happen.
Polling started Sep 2. polled every 10 minutes since the tracker went live; small sample, read as a data point. Anthropic does not publish the window sizes; these are measured, not quoted.
05
By model, and the Codex column.
| model | share | tokens | at list | in / out / cw / cr per Mtok |
|---|---|---|---|---|
| opus-4-8 | 44.4% | 8,003,110,215 | $7,403 | 5 / 25 / 6.25 / 0.5 |
| opus-4-6 | 21.1% | 3,800,495,054 | $3,998 | 5 / 25 / 6.25 / 0.5 |
| haiku-4-5 | 11.2% | 2,025,004,798 | $445 | 1 / 5 / 1.25 / 0.1 |
| opus-4-7 | 8.4% | 1,520,936,324 | $1,682 | 5 / 25 / 6.25 / 0.5 |
| fable-5 | 7.4% | 1,336,916,102 | $2,641 | 10 / 50 / 12.5 / 1 |
| opus-5 | 3.9% | 699,861,042 | $632 | 5 / 25 / 6.25 / 0.5 |
| fable-5-1 | 2.4% | 428,012,023 | $952 | 10 / 50 / 12.5 / 1 |
| sonnet-4-6 | 1.1% | 205,312,531 | $283 | 3 / 15 / 3.75 / 0.3 |
| sonnet-5 | 0.1% | 21,187,998 | $9 | 3 / 15 / 3.75 / 0.3 |
Codex, side by side
priced with a gpt-5.x proxy table (5 / 30 / 0 / 0.5 per Mtok); Codex rollouts carry cached input, no cache-write. Same machine, same weeks, same kind of work; the Claude column is the one I read every day.
06
How I keep the meter down.
The biggest problem with these tools is not a bad answer. It is the session closing on you at 2pm, or paying API money for work a seat already covers. Everything below follows from the numbers above.
- Keep the cache warm. 94% of my tokens are cache reads at a tenth of the price. Editing early context, swapping system prompts mid-session, or letting a tool dump a huge file into the top of the conversation invalidates the cache and reprices the whole session upward.
- Compact before the window does. Every turn re-reads the conversation. A long session at 150K context costs 150K per turn even when the turn is one line. Compact when the work changes shape, not when the limit warning shows.
- Hand long reads to subagents. A subagent reads the ten files and returns a paragraph. The main conversation pays for the paragraph on every later turn instead of the ten files.
- Pick the plan from window math, not the price tag. Team holds 59.9 Mtok a window against 32.5 on Max 5x at my profile. Measure your own burn per hour, divide, and you know how many hours a window buys you before you sign up.
- Pay API rates only for work that cannot sit in a seat. Cron jobs, pipelines, anything that runs while you sleep. Interactive coding on an API key is the priciest way there is to buy tokens.
07
Method and gaps.
Every number on this page is read from files on my Mac, not from Anthropic. A small Python poller logs the OAuth limit windows every ten minutes and ingests the per-turn usage that Claude Code and Codex write to disk. A daily job aggregates it into a JSON feed and this page is built from that feed. No session transcripts, project names, or account identifiers leave the machine.
- range2026-02-17 -> 2026-09-03 (America/New_York days)
- stats-cache.jsonClaude Code's own /stats cache; dailyModelTokens = input+output only (no cache) per day per model 2026-02-18 -> 2026-06-30; modelUsage = lifetime per-model totals INCLUDING cache read/write through 2026-06-30; dailyActivity = messages/sessions/tool calls per day from 2026-03-19
- history.jsonlevery prompt typed into Claude Code with timestamp, sessionId, project; 5,975 prompts
- limits.db token_eventsper-turn usage from session JSONL (terminal ~/.claude/projects from Jul 16; Claude Desktop local-agent-mode-sessions Mar-Jul); dedup keep-max on requestId; cost = API list price
- GAP2026-07-01 -> 2026-07-15: no token data anywhere local (stats cache stopped 2026-06-30, session JSONL older than ~30 days was cleaned by Claude Code, PokeTokenBar installed later). Prompt and session counts for those days still come from history.jsonl.
- non_cache_tokens vs total_tokensnon_cache = input+output (what stats-cache tracks per day). total = input+output+cache_write+cache_read (what PokeTokenBar shows and what limits meter). Cache reads are ~90%+ of total on long sessions.
- cache_incl_tokens before Jul 1Exact only as a Feb18-Jun30 lump (modelUsage). Split between Max 20x and Max 5x is an estimate: each model's lifetime total allocated by that epoch's share of the model's daily non-cache tokens.
- plan epochsMax 20x 2026-02-17..2026-05-31 $200/mo; Max 5x 2026-06-01..2026-08-13 $100/mo; Team 2026-08-14..2026-12-31 $None/mo
- pricing $/Mtok in/out/cache_write/cache_readfable 10/50/12.5/1 · opus 5/25/6.25/0.5 · sonnet 3/15/3.75/0.3 · haiku 1/5/1.25/0.1 (mirrors PokeTokenBar ModelPricing)
- Team billingAug 14 onward is 'mixed': early Team usage was API-key billed, later covered by the seat; split date unknown, logs carry no billing marker.
generated 2026-09-03 04:32 · feed rebuilt daily · this page replaces a token tracker I ran in February and let die