Back to the blog

A Month on Claude Ultra: Where 19 Billion Tokens Went

EO-Map's sovereignty territory drawn as glowing 3D shells over New Eden, with the Milky Way above.
EO-Map's 3D sovereignty shells, from one of October's most expensive sessions. Number seven on the list below.

October was the first month in a long time where I didn't spend half of it bouncing off usage limits. As far as I can remember, everything I built went through Claude Code, mostly Opus 5.5 on extra high effort, on Anthropic's $200 plan. That plan was called Max 20x until 30 October, when Anthropic renamed it Ultra. At no point in the month did I get close to the weekly limit. The highest I remember seeing the meter was somewhere around 70%.

Claude Code keeps a transcript of every session on your machine, and every response the model sends back carries a token count. So I had the agent go through the whole month and count everything: sessions, the helper agents it started, which models did the work, how many tokens, how much time, and what it would all have cost if I'd been paying per token instead of a flat fee. I didn't realise there was that much in there. This is what came out, and it covers EO-Map and EF-Map, the EVE Frontier map I built first, plus the tools around them.

$200What I paid for the month. The plan was Max 20x, now called Ultra
$6,418What the same tokens would cost at Anthropic's API prices
19.1 billionTokens the models read and wrote
185Conversations with the main agent
477Subagents it started to help
323 hoursOf agent working time

That $6,418 is what the same tokens would cost at Anthropic's published API prices. It isn't what I paid. I paid $200. It isn't what Anthropic spent serving them either, and nobody outside the company knows that number. I think it's a fair yardstick for how much work the plan did though, and it works out at about 32 times the subscription.

I've put this on the EF-Map blog as well, because both maps came out of the same month of work.

The month, day by day

API-equivalent cost per day

UK days, 1 to 31 October. Hover or tap a day for the hours.

$0$200$400$6001 Oct8 OctNine agents at once15 OctTranslation nightOverlay and Fleet Replay22 Oct29 Oct
Table view
Day (UK)API-equivalentHours with an agent workingAgent-hours
Thu 1 Oct$59.872.22.5
Fri 2 Oct$36.221.61.8
Sat 3 Oct$15.720.90.9
Sun 4 Oct$2489.614.0
Mon 5 Oct$1055.76.1
Tue 6 Oct$2259.710.6
Wed 7 Oct$1868.19.0
Thu 8 Oct$1706.410.4
Fri 9 Oct$44412.029.1
Sat 10 Oct$2358.711.7
Sun 11 Oct$1184.95.8
Mon 12 Oct$28011.012.2
Tue 13 Oct$30412.214.4
Wed 14 Oct$2619.010.3
Thu 15 Oct$57511.126.3
Fri 16 Oct$1716.29.3
Sat 17 Oct$34814.517.4
Sun 18 Oct$28315.217.6
Mon 19 Oct$3459.915.4
Tue 20 Oct$43312.417.5
Wed 21 Oct$1314.26.4
Thu 22 Oct$2088.010.6
Fri 23 Oct$1475.87.6
Sat 24 Oct$1456.310.0
Sun 25 Oct$31.852.12.3
Mon 26 Oct$1244.76.3
Tue 27 Oct$1804.07.2
Wed 28 Oct$2596.010.5
Thu 29 Oct$95.945.47.2
Fri 30 Oct$1423.77.1
Sat 31 Oct$1104.35.0

Most days land somewhere between $100 and $350. The busiest was the 15th at $575, which was the night the agent caught EF-Map's translations up into six languages while another session made RootFit's packing faster. On the 9th there were nine agents working at once at one point, mostly helpers building a batch of visual upgrades for EO-Map side by side. The quietest days were the 3rd and the 25th, the Sunday the clocks went back. Hover or tap on a day for how many hours it had an agent working.

Where 19 billion tokens went

A token is roughly three quarters of a word. Nineteen billion sounds daft. It makes more sense once you see what they were.

19.1 billion tokens, one square per 100 million

The model wrote less than half of one square. Almost everything else is it re-reading the conversation.

Re-reading from the cache18.8 billionWriting to the cache252.2 millionEverything the model wrote, thinking included40.9 million
Table view
Kind of tokenTokensShare
Read from the cache18,817,927,34398.47%
Written to the cache (5 minute)144,627,9650.76%
Written to the cache (1 hour)107,526,0280.56%
Output, including thinking40,942,7420.21%
of which thinking16,038,8200.08%
Uncached input187,3300.001%

Almost all of it is the model re-reading. Every time the agent takes a step, runs a command, reads a file, makes an edit, the whole conversation so far goes back to the model and it reads the lot again. Across the month that averaged about 296,000 tokens per step, over 64,320 steps. Prompt caching is what makes that bearable. When the start of the conversation hasn't changed since the last step, the model reads it from a cache at a fraction of the price, and 98.7% of everything the models read in October came from the cache. The part the models actually wrote, all the code and replies and thinking, was 41 million tokens. That's less than half of one square on that chart.

Where the $6,418 API-equivalent goes

By kind of token, at list price.

Cache reads59%Cache writes, 1 hour15%Output and thinking14%Cache writes, 5 minute12%
Table view
Part of the billAPI-equivalentShare
Cache reads$3,79959.2%
Cache writes, 1 hour$94314.7%
Output and thinking$91414.2%
Cache writes, 5 minute$76011.8%
Uncached input$1.110.02%
Total$6,418100%

Cheap per token doesn't mean cheap overall though. Re-reading from the cache is still 59% of the API-equivalent cost, just because there's so much of it, and writing into the cache is another 27%. Everything the models wrote, thinking included, comes to 14%. So the cost isn't really the agent writing code. It's long sessions, where every small step re-reads a big conversation. Some of mine run for a day or more.

Which models did the work

API-equivalent cost by model

94% of all requests ran at extra high effort.

Opus 5.560,343 requests$5,756
Fable 5.12,160 requests$589
Sonnet 5.51,718 requests$68.70
Sonnet 586 requests$3.46
Haiku 5.513 requests$0.03
Table view
ModelRequestsOutput tokensCache readsAPI-equivalent
Opus 5.560,34337,314,23317,887,804,699$5,756
Fable 5.12,1603,276,472717,009,211$589
Sonnet 5.51,718338,529203,297,008$68.70
Sonnet 58612,3809,076,058$3.46
Haiku 5.5131,128740,367$0.03

Opus 5.5 did 94% of the requests and 90% of the API-equivalent cost. I run it on extra high effort and the logs agree, 94% of every request in the month went out at that setting, helpers included. It has been an absolute champ this month. I wrote about why it changed how I work in Opus 5.5 Changed How I Use AI Agents, and October is basically that, for a full month.

Fable 5.1 was next at $589. In that post I said I hadn't touched Fable since Opus 5.5 came out, and that stopped being true in the middle of October. I'd assumed that was all RootFit, and some of it was, because two of the RootFit sessions ran partly on Fable in the main conversation. But the biggest single chunk, $259 of it, was the EO-Map killboard night, where Fable helpers did a lot of the work. Sonnet 5.5 did $69 worth, all of it as helper agents, and Haiku barely registers.

Agents and subagents

Claude Code can start helper agents, called subagents, to go off and do a piece of work and report back. A research job, a review, a batch of edits in parallel. The main agent, the orchestrator, writes their brief and picks their model. I've told it to use subagents where it makes sense and to choose the model itself, and then I mostly leave it to it.

Main agents and subagents, side by side

Model requests49% / 51%
API-equivalent cost61% / 39%
Agent working time53% / 47%
Text the models wrote81% / 19%
Main agents (185 sessions)Subagents (477)
Table view
Main agentsSubagents
Count185477
Requests31,39532,925
API-equivalent$3,939$2,479
Agent hours171151
Output tokens33,112,1567,830,586
Cache writes107,526,028144,627,965

So that's 477 helpers across 185 sessions, about two and a half per conversation, and between them they did 39% of the cost and nearly half of the agent time. 451 of the 477 ran in the background, which means the main agent kept working, or kept talking to me, while they ran. They wrote a lot less than the main agents though, because most of their job is reading and reporting back.

Which model the orchestrator picked for 477 subagents

Opus 5.5, asked for by name184
No model namedgets the session's model, Opus in practice185
Sonnet91
Fable 5.116
Haiku 5.51
Table view
Model the orchestrator asked forSubagents
Opus 5.5, asked for by name184
No model named185
Sonnet91
Fable 5.116
Haiku 5.51

When it named a model, it named Opus 184 times, Sonnet 91 times, Fable 16 times and Haiku once. Another 185 didn't name one and got the session's own model, which in practice was Opus.

Average API-equivalent cost per subagent

Not like for like: the cheaper models tend to get the lighter jobs.

Opus 5.5368 subagents$5.82
Fable 5.116 subagents$16.60
Sonnet 5.586 subagents$0.80
Sonnet 55 subagents$0.69
Haiku 5.52 subagents$0.01
Table view
ModelSubagentsAPI-equivalentAverage per subagent
Opus 5.5368$2,141$5.82
Fable 5.116$266$16.60
Sonnet 5.586$68.70$0.80
Sonnet 55$3.46$0.69
Haiku 5.52$0.03$0.01

An Opus helper averaged about $5.80 of API-equivalent tokens and a Sonnet one about 80 cents. That's not like for like, because the orchestrator tends to give Sonnet the lighter jobs like lookups and web searches, and Opus the ones that need judgement. My view is that if it's picking Opus, it's picking it for a reason. The logs give a hint on speed too. The median Sonnet helper was busy for about two and a half minutes and the median Opus one about 12, though again Sonnet got the smaller jobs. I might try nudging it towards Sonnet more often to see if things come back faster. On cost alone though it doesn't matter to me while I'm nowhere near the weekly limit, and if anything this tells me I could be using more subagents, not fewer.

Time, and what running agents in parallel bought me

226 hReal time with at least one agent working
323 hAgent time, every agent counted separately
97 hSaved by running agents side by side
9Agents working at once at the peak

Over the month there was at least one agent working for 226 hours of real time. That's about 30% of every hour in October, day and night. Add up each agent separately though and it comes to 323 hours, because a lot of the time more than one was running. If one agent had done all of it back to back, it would have needed about 97 more hours, which is four days of running round the clock. About 69 of those hours were helpers working alongside their own main agent. The other 28 were separate sessions I had going at the same time.

How many agents were working at once

Hours of real time in October, out of 226 busy hours.

1 agent169.6 h
2 agents33.2 h
3 agents12.0 h
4 agents6.7 h
5 agents2.4 h
6 to 9 agents1.7 h
Table view
Agents working at onceHoursShare of busy time
1 agent169.675.2%
2 agents33.214.7%
3 agents12.05.3%
4 agents6.73.0%
5 agents2.41.1%
6 to 9 agents1.70.8%

Most of the time it's just the one agent, 75% of the busy hours. Two at once is another 15%. The peak was nine at once, at 19:16 on 9 October.

When the agents were working

Every row is a day and every column an hour. 32% of the busy time was between midnight and 7am.

00:0003:0006:0009:0012:0015:0018:0021:001 Oct5 Oct10 Oct15 Oct20 Oct25 Oct31 Oct
Minutes of the hour with an agent working060
Table view
Hour of day (UK)Busy hours over the month
00:009.7
01:0010.4
02:0012.9
03:0010.5
04:009.8
05:0010.1
06:009.3
07:007.0
08:009.0
09:0013.0
10:0010.7
11:0013.7
12:0012.8
13:0011.7
14:0010.5
15:009.6
16:008.4
17:004.6
18:003.8
19:004.5
20:006.0
21:008.8
22:007.7
23:0011.2

The heatmap shows when. The columns from midnight to 7am are nearly as busy as the afternoons, and 32% of all the busy time fell in those hours. Those are the overnight runs, where I give it a big job before bed and look at what it did in the morning. I wrote about the first of those in the unattended overnight run. The quietest stretch is early evening.

I sent 748 prompts in October, plus about 90 messages while an agent was already mid-task, usually steering it or adding something I'd forgotten. That works out at about 26 minutes of agent work for every prompt I sent. Most of them were dictated rather than typed, which I wrote about in my dictation post.

77,725 tool calls, the top eight

Shell commandsbuilds, tests, git, deploys, scripts51,603
Reading files9,030
Editing files6,532
Writing new files4,519
Searching code1,772
PowerShell commands823
Web searches704
Fetching web pages655
Table view
ToolCalls
Shell commands51,603
Reading files9,030
Editing files6,532
Writing new files4,519
Searching code1,772
PowerShell commands823
Web searches704
Fetching web pages655
All tool calls77,725

The agents made 77,725 tool calls. Two thirds of those were shell commands, which is builds, tests, git, deploys, screenshot scripts and queries against my server. Reading files was 9,030 calls, edits 6,532 and new files 4,519. They searched the web 704 times and fetched 655 pages.

The ten most expensive sessions

These ten sessions were 36% of the month's API-equivalent cost. A session here is one conversation with the main agent, counted with every helper it started. Claude Code names each session itself, which is how I ended up with one called "Refuge LNS repair tuning on rootfit" that I didn't remember at all. I've given them plainer titles here. Click any picture for the full size.

RootFit's 3D preview with module blocks placed inside the Creation hull
#1RootFit

A 3D fitting preview for RootFit

Fenris Creations showed a 3D ship fitting screen on a stream, so I gave the agent the clip and had it build an unofficial preview in RootFit. You can click modules into the real ship model in 3D, or build your own hull from parts. The shapes are estimates until the real thing ships.

$430 API-equivalent · 22 agent-hours · 12 subagents
EO-Map killboard overview with weekly totals, a kills chart and top pilots, corporations and alliances
#2EO-Map

A killboard for EO-Map, built overnight

Top pilots, corporations and alliances, with rings on the map sized by how much fighting happened in each system. It was built while I slept, then I spent the next morning on feedback rounds: search, exact ranks, a 30 day window and a padding watch.

$340 API-equivalent · 12 agent-hours · 21 subagents
RootFit's 3D view with modules packed inside a ship hull
#3RootFit

Making 3D packing actually work

RootFit already packed modules into a ship automatically in 2D. This session picked up after an earlier one died in an overnight restart, got the same packing working in 3D, and gave the 3D view a new look with a proper sky.

$300 API-equivalent · 16 agent-hours · 17 subagents
EF-Map's interface in Russian
#4EF-Map

Catching up six languages in one night

Cycle 7 had left a lot of English behind. Overnight the agent machine-translated 1,248 missing strings into six languages, made 556 hard coded ones translatable, and checked screenshots of every language. The star right click menu followed the next morning.

$292 API-equivalent · 15 agent-hours · 43 subagents
The EF Helper overlay's mining, combat and live log windows drawn over the game
#5EF Helper

Rebuilding the in-game overlay

Version 1.2 of the overlay that draws map information over the game: a From Here card for the system you're in and a quicker bookmark form. I tested it in game, and the text got sharper after my feedback.

$268 API-equivalent · 12 agent-hours · 29 subagents
EO-Map Fleet Replay playing a battle on the map
#6EO-Map

Replaying a whole fleet fight

A player who runs fleet reports asked for a way to replay a fleet's fight. Fleet Replay finds the fleet from its killmails and plays the battle back on the map with a moving camera and music. It went live the same day.

$151 API-equivalent · 6 agent-hours · 13 subagents
EO-Map sovereignty territory drawn as 3D shells
#7EO-Map

A visual pass for EO-Map

I asked for premium visual upgrades and the agent built 18 of them in parallel. I kept all of them. The next day it added 3D territory shells that rise out of the flat sovereignty map.

$150 API-equivalent · 11 agent-hours · 17 subagents
EF-Map's Frontier Timelapse replaying the map being charted
#8EF-Map

Cycle 7 effects for EF-Map

With players charting the map star by star this cycle, it built the Frontier Timelapse, a replay of the map being discovered, plus a glow for new discoveries, heat rings and a live kill hover.

$129 API-equivalent · 7 agent-hours · 13 subagents
3xfaster packing search on the Refuge, from 156 to 494 moves a second
#9RootFit

The one I couldn't remember

Refuge is the hardest ship in RootFit to pack, and LNS is the search behind the Try Add Modules button: clear a patch of the ship, re-pack it, keep it if it's better. The agent profiled it overnight and made it about three times faster on the Refuge.

$127 API-equivalent · 5 agent-hours · 7 subagents
EO-Map's old cloud backdrop next to the new sky
#10EO-Map

EF-Map's polish, copied to EO-Map

EO-Map started as a copy of EF-Map, so when a batch of polish landed on EF-Map I had it carried across: the loading hand-off, route reveal, crisp gate lines, the selected star glow and the sky on phones.

$119 API-equivalent · 9 agent-hours · 9 subagents

Only two of the ten were EF-Map itself. Four were EO-Map, three were RootFit and one was the overlay, the Windows helper that draws EF-Map information over the game. The most expensive was the RootFit 3D preview, which ran across 27 hours with 22 hours of agent time in it.

By product

API-equivalent cost by product

EF-Mapthe EVE Frontier map$3,987
EO-Mapthe EVE Online map$1,097
RootFitEVE Frontier ship fitting$862
EF Helper overlaythe in-game overlay$268
CivilizationControlgovernance tools and Open Market$119
Everything elseodds and ends, docs$85.18
Table view
ProductAPI-equivalentShare
EF-Map$3,98762.1%
EO-Map$1,09717.1%
RootFit$86213.4%
EF Helper overlay$2684.2%
CivilizationControl$1191.8%
Everything else$85.181.3%

EF-Map is still most of it at 62%. EO-Map took 17%, RootFit 13% and the overlay 4%. I've moved two sessions to the product they were really about, the RootFit 3D preview and the overlay rebuild, because I started both of them from the EF-Map folder.

The other $200: API credit

The $200 plan also comes with $200 a month of credit for Anthropic's API, which is separate from Claude Code and can't be used by it. It doesn't roll over either. I started using it on 20 October for a handful of jobs that run on a schedule on my server. The news ticker on EF-Map is the main one: Sonnet reads new game news, posts and videos as they come in, Opus writes the ticker lines when something has changed, and Sonnet translates them into six languages. EO-Map has run its own copy of the same ticker since 21 October, on the same key. There's an hourly check on Haiku that screens new map names, player reports and translation suggestions for anything I need to moderate. And a few reports post to a private channel on my Discord: a morning note on the health of the server, which only calls a model when something is wrong, a weekly list of questions the Intelligence console couldn't answer, and a weekly check where Opus compares what my public pages say against what actually changed that week.

API credit used by the scheduled jobs: $14.34 of $200

List-price spend each job records for itself, 20 to 31 October. EO-Map's ticker shares the same key.

News tickerSonnet reads, Opus edits, Sonnet translates$5.08
Weekly stale-claims checkOpus$1.50
Moderation reviewerHaiku, hourly$0.05
Morning ops noteonly calls a model when something is wrong$0.00
Unanswered questions digestweekly$0.00
EO-Map news tickersame pipeline, since 21 October$7.71
Table view
JobSpend, 20 to 31 October
News ticker$5.08
Weekly stale-claims check$1.50
Moderation reviewer$0.05
Morning ops note$0.00
Unanswered questions digest$0.00
EO-Map news ticker$7.71
Total$14.34

From 20 to 31 October those jobs used $14.34, going by the spend each one records for itself at list price. The two news tickers are 89% of it, and EO-Map's is the hungrier of the two. At the rate of the last week a full month comes to about $35, so there's still a lot of room left. I'll probably find more for it to do.

Was it worth $200?

$200 a month is a lot of money for what is a hobby. I think this shows I'm getting the use out of it though. That's 185 conversations and 323 hours of agent time, on a flat fee I never got near the top of. Opus 5.5 did nearly all of it.

The bit that surprised me is that the limit isn't what holds me back any more. What holds me back is how quickly I can check what comes back and decide what's next. I still read the closeouts, test things and send it back when it's wrong. That's most of what those 748 prompts were.

From now on the plan is called Ultra, and verified Ultra accounts lose the five-hour limit as well. The weekly limit hasn't changed and that's the one I watch, so I don't expect much to change for me. If you're on one of these plans and you've wondered where it all goes, the transcripts are in the .claude folder in your home directory, and any agent can count them for you. That's all this was.

How I counted

The numbers come from the Claude Code transcripts on my main PC, from 1 October to the afternoon of 31 October. Sessions on my laptop aren't included, and neither is the session that wrote this up. Claude Code logs a streamed response several times, so each response is counted once, by its request ID. It keeps 30 days of transcripts by default, so the start of the month was only just still there.

The API-equivalent cost uses Anthropic's list prices per million tokens, in the table below. Writing to the cache costs 1.25 times the input price for the five-minute cache and twice the input price for the one-hour cache. Main sessions in Claude Code use the one-hour cache and subagents the five-minute one, which shows up cleanly in the numbers.

ModelInputOutputCache write, 5 minCache write, 1 hourCache read
Opus 5.5$4.00$20.00$5.00$8.00$0.20
Fable 5.1$10.00$50.00$12.50$20.00$0.25
Sonnet 5.5 and Sonnet 5$2.00$10.00$2.50$4.00$0.20
Haiku 5.5$0.10$0.50$0.125$0.20$0.01

Agent time is the time between one entry in an agent's transcript and the next, as long as the gap is under 20 minutes and the agent wasn't sitting waiting for me or for a background helper to finish. When the main agent was only waiting on a helper, I count the helper and not both. It probably over-counts a little, because a wait of up to 20 minutes on a permission prompt or a question the agent asked me still counts. Real time is the same periods merged together, so an hour with three agents running counts once. Times are UK time. Sessions are counted under the folder I started them in, apart from the two I moved. The 70% on the weekly meter is from memory, not from the logs.

Related posts

claude ultraclaude code usageclaude max 20xopus 5.5ai coding agentseve online map