What a full loop costs: 42 million tokens, $35 — and 96% of it cache
Seven role agents across five phases: one measured run, broken down per role, with the caveats that belong to it.
The first question a developer asks on hearing that seven agents carry one feature through five phases is not "how good is the result". It is: what does this cost me.
The usual answer in this product category is silence. So here is the number, measured rather than estimated.
The case
todo-filter-bar — a filter bar for a todo app, built on 19 September 2026 in a single run. From /spark with a one-sentence feature idea to v0.1.0 released. All five phases, seven role agents, 29 acceptance criteria, QA in a real browser at desktop width and at 375 px. 47 minutes, five gates, a human decision at every one.
It is the same session the demo video is cut from.
The result
| Total tokens | 42,307,448 |
| At API list prices (Opus 5) | $35.52 |
| The same work without prompt caching | $217.37 |
| Saved by caching | $181.85 — 83.7% |
The first number is the one that startles. The last one is the one that matters.
Why 42 million tokens is the wrong measure
Of those 42.31 million tokens, 40.76 million are cache reads — 96.3%.
Fresh input across the entire loop: 960 tokens. Output: 291,732.
A gated loop re-reads the same context constantly. The spec, while the plan is written. The plan, while the reviewer holds it against the diff. The acceptance criteria, ticked off one by one in QA. That shape of workload is exactly what prompt caching was built for — which is why re-reading costs a tenth of reading.
Quote the gross figure and you are measuring data volume. Do the arithmetic and you are measuring cost. They are not the same thing.
Per role
| Role | Output | Cache read | Cache write | Cost |
|---|---|---|---|---|
| Main session (orchestrator + gates) | 145,113 | 29,697,805 | 411,863 | $21.05 |
| QA Tester | 38,576 | 7,365,329 | 281,134 | $6.41 |
| Reviewer | 25,416 | 1,787,327 | 161,016 | $2.54 |
| Product Owner | 39,135 | 682,356 | 128,610 | $2.12 |
| Release Manager | 16,023 | 980,193 | 103,122 | $1.54 |
| Engineering Manager | 16,846 | 178,398 | 82,279 | $1.02 |
| Designer | 10,623 | 69,156 | 86,168 | $0.84 |
Two things stand out.
The main session carries 59%. It is not an agent but the orchestrator: it holds context across all 47 minutes, runs every gate and talks to you. The specialised roles run as subagents with their own, shorter context — they get what they need, not the whole sitting. That is why six agents together cost less than the single thread holding them.
The QA Tester is the most expensive individual agent. Which fits: it is the only one actually driving a browser — 29 criteria, by mouse and by keyboard, once at desktop width and once inside a 375-pixel frame, plus a run with a hundred todos. Checking costs more than planning. It should.
How it was calculated
Not from a gut feeling and not from a status line. The numbers come from the usage fields in this session's Claude Code transcripts: every assistant message in the main session plus the twelve subagent transcripts. Roles are attributed from the agentType field in the matching metadata, not assigned by hand.
Prices as of today, claude-opus-5, API list:
| per 1M tokens | |
|---|---|
| Input | $5.00 |
| Output | $25.00 |
| Cache read | $0.50 |
| Cache write, 5-minute TTL | $6.25 |
| Cache write, 1-hour TTL | $10.00 |
The split between the two TTLs is not assumed but read from usage.cache_creation: 842,329 tokens at five minutes, 411,863 at one hour.
What this number does not say
Without this section the rest would be dishonest.
These are list prices. The session ran through Claude Code. On a subscription, nobody paid that $35.52. The figure answers a different question: what does this workload cost when billed at API rates? That is the comparison figure for someone weighing aSPARK against an alternative — not your invoice.
It is one model. Opus 5. On a cheaper model the arithmetic changes, and whether the result still passes the same gates is an open question.
It is one data point. One feature, one small application, one project. Turning it into an average would be exactly the kind of generalisation this project avoids elsewhere. A second run on a larger feature would be more honest than this one, extrapolated.
The 47 minutes are not 47 minutes of model time. At five gates a human read and decided. That time is on the clock but not on the bill.
Why this is published
Because nobody else states this number, and because software that draws its value from being checkable cannot dodge the question of its own cost.
The calculation is reproducible from the transcripts. Run aSPARK and you can do your own — and if it comes out substantially different, that result is worth more to us than this one.