data//run-costs
Claude Code agent run costs: recorded tokens and modeled API-equivalent pricing
Recorded token fields from devweb agent-workflow runs, with dated API-equivalent pricing scenarios and coverage limits.
Recorded run costs
This page records the token fields available from a defined set of devweb agent-workflow runs and applies a dated pricing scenario to the captured tokens. The dollar figures are modeled API-equivalent amounts, not billed spend, invoices, quotes, or forecasts. See run accounting for the terms used throughout the page.
The two complete-coverage essay examples report 27,804,254 captured tokens and $24.64 in modeled API-equivalent cost for vectors-in-the-file, and 12,955,270 captured tokens and $12.27 in modeled API-equivalent cost for clean-audit-run-proves-nothing. These are individual recorded examples. They do not establish a typical run cost or a representative average.
Coverage varies across the sample. Some rows contain exact counts for every recorded leg, some contain only part of the run, and some contain no captured Claude token counts. Native Codex usage and cost data are unavailable where the source accounting did not capture them. Unavailable does not mean zero.
Sample and coverage
Each row below is one recorded run. Coverage describes what the accounting captured, not whether the workflow itself ran. Legs captured/recorded counts only legs present in the accounting denominator. Older records may omit the Delegate or cold reviewer, and a run with no specialist spawn records can still have used specialists. The totals for that run are therefore an undercount.
The modeled Claude amounts use captured token fields from subscription-backed Claude Code runs. They describe what those tokens would cost under the listed API pricing scenario, not what the subscription holder paid. Grok amounts are byte-derived estimates for successful recorded passes. They are not measured invoice costs.
In captured-total columns, 0 means the dataset captured no tokens for that measure. It must not be read as proof that the run used no tokens. n/a means a modeled amount or share is unavailable. Some recent rows contain measured GPT token legs but no applicable pricing model. The extractor preserves those token measurements while setting the run's modeled USD totals to null. The field name claude_usd_equiv remains for compatibility with the older dataset shape; it does not mean GPT usage was assigned a Claude price.
| Run | Date | Workflow | Produced | Coverage | Legs captured/recorded | Specialists recorded | Tokens processed (captured) | Output tokens | Cache-read share | Grok calls | Grok USD | Claude USD equiv | Total USD equiv |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 20260723-devweb-recallatron-improvements | 2026-07-23 | write-article | structured-memory-graph-workers | partial | 10/11 | 10 | 3,833,106 | 15,531 | 88% | 1 | 0.0145 | 4.92 | 4.93 |
| 20260723-devweb-static-nextjs-wordpress | 2026-07-23 | write-article | static-nextjs-vs-wordpress | none | 0/1 | 0 | 0 | 0 | n/a | 1 | 0.0088 | n/a | n/a |
| 20260905-glossary-harness-cluster | 2026-09-05 | write-glossary | 8 glossary-terms | partial | 3/3 | 0 | 35,429,140 | 63,479 | 94% | 8 | 0.0184 | 21.77 | 21.79 |
| 20260906-article-prompt-context-harness | 2026-09-06 | write-article | the-layer-between-wording-and-wiring | partial | 3/3 | 0 | 36,050,569 | 33,411 | 90% | 3 | 0.0309 | 30.18 | 30.21 |
| 20260906-glossary-memory-cluster | 2026-09-06 | write-glossary | 7 glossary-terms | partial | 3/3 | 0 | 55,082,076 | 42,399 | 95% | 7 | 0.0166 | 26.03 | 26.05 |
| 20260906-topic-overviews | 2026-09-06 | write-topic-overview | 3 topic-overviews | complete | 11/11 | 8 | 50,805,095 | 33,626 | 93% | 3 | 0.0096 | 34.25 | 34.26 |
| 20260624-delegate-gating-article | 2026-06-24 | write-article | gate-the-flow-not-the-judgment | none | 0/9 | 9 | 0 | 0 | n/a | 1 | 0.0105 | n/a | n/a |
| 20260624-meta-pipeline-article | 2026-06-24 | write-article | the-pipeline-that-wrote-this | none | 0/9 | 9 | 0 | 0 | n/a | 1 | 0.0113 | n/a | n/a |
| 20260624-project-agent-article | 2026-06-24 | write-article | deny-by-default-grounding | none | 0/9 | 9 | 0 | 0 | n/a | 1 | 0.0100 | n/a | n/a |
| 20260625-growoperative-architecture-article | 2026-06-25 | write-article | growoperative-foaf-protocol-architecture | none | 0/9 | 9 | 0 | 0 | n/a | 1 | 0.0150 | n/a | n/a |
| 20260626-rheo-memory-v2-article | 2026-06-26 | write-article | give-the-model-the-tools-not-the-context | none | 0/9 | 9 | 0 | 0 | n/a | 1 | 0.0098 | n/a | n/a |
| 20260705-article-rheo-track5 | 2026-07-05 | write-article | vectors-in-the-file | complete | 12/12 | 11 | 27,804,254 | 105,283 | 95% | 1 | 0.0106 | 24.63 | 24.64 |
| 20260705-article-run-metrics | 2026-07-05 | write-article | agent-run-cost-attribution | partial | 11/12 | 11 | 4,466,012 | 16,751 | 82% | 1 | 0.0116 | 7.12 | 7.13 |
| 20260712-audit-convergence-article | 2026-07-12 | write-article | clean-audit-run-proves-nothing | complete | 12/12 | 11 | 12,955,270 | 45,980 | 95% | 1 | 0.0111 | 12.26 | 12.27 |
| 20260723-bureau-shift-left-quality | 2026-07-23 | write-article | shift-left-quality-agentic-pipeline | none | 0/0 | 0 | 0 | 0 | n/a | 1 | 0.0092 | n/a | n/a |
| 20260723-devweb-wordpress-nextjs-v2 | 2026-07-23 | write-article | static-nextjs-vs-wordpress | partial | 1/1 | 0 | 112,104 | 511 | 99% | 1 | 0.0109 | 0.08 | 0.09 |
| 20260723-write-article-evalpal | 2026-07-23 | write-article | evalpal-audhd-assessment | partial | 2/2 | 0 | 8,539,517 | 9,323 | 95% | 1 | 0.0097 | 8.26 | 8.27 |
| 20260906-article-mcp-tool-design | 2026-09-06 | write-article | mcp-tool-design | none | 0/0 | 0 | 0 | 0 | n/a | 3 | 0.0332 | n/a | n/a |
| 20260906-glossary-mcp-claude-code | 2026-09-06 | write-glossary | 4 glossary-terms | none | 0/0 | 0 | 0 | 0 | n/a | 4 | 0.0093 | n/a | n/a |
| 20260907-article-claude-headless-backend | 2026-09-07 | write-article | claude-p-backend-process | partial | 1/6 | 5 | 311,261 | 6,650 | 78% | 0 | 0.0000 | n/a | n/a |
| 20260907-article-skills-subagents-mcp | 2026-09-07 | write-article | skills-subagents-mcp-where-logic-lives | partial | 1/1 | 0 | 612,128 | 6,907 | 79% | 0 | 0.0000 | n/a | n/a |
| 20260907-topic-guides-claude-mcp-refresh | 2026-09-07 | write-topic-overview | 2 topic-overviews | none | 0/7 | 7 | 0 | 0 | n/a | 0 | 0.0000 | n/a | n/a |
The coverage table exposes the accounting boundary at leg level. exact means exact token counts were recorded. partial means the counts are incomplete. not recorded means the accounting holds no record of that leg and excludes it from the denominator. absent means the older schema had no field for it.
| Run | Schema | Coverage | Conductor | Delegate | Reviewer | Specialists captured / recorded | Grok calls |
|---|---|---|---|---|---|---|---|
| 20260723-devweb-recallatron-improvements | v2 | partial | not recorded | exact | not recorded | 9/10 | 1 |
| 20260723-devweb-static-nextjs-wordpress | v2 | none | not recorded | partial | not recorded | 0/0 | 1 |
| 20260905-glossary-harness-cluster | v2 | partial | exact | exact | exact | 0/0 | 8 |
| 20260906-article-prompt-context-harness | v2 | partial | exact | exact | exact | 0/0 | 3 |
| 20260906-glossary-memory-cluster | v2 | partial | exact | exact | exact | 0/0 | 7 |
| 20260906-topic-overviews | v2 | complete | exact | exact | exact | 8/8 | 3 |
| 20260624-delegate-gating-article | v1 | none | absent | absent | absent | 0/9 | 1 |
| 20260624-meta-pipeline-article | v1 | none | absent | absent | absent | 0/9 | 1 |
| 20260624-project-agent-article | v1 | none | absent | absent | absent | 0/9 | 1 |
| 20260625-growoperative-architecture-article | v1 | none | absent | absent | absent | 0/9 | 1 |
| 20260626-rheo-memory-v2-article | v1 | none | absent | absent | absent | 0/9 | 1 |
| 20260705-article-rheo-track5 | v2 | complete | exact | absent | absent | 11/11 | 1 |
| 20260705-article-run-metrics | v2 | partial | partial | absent | absent | 11/11 | 1 |
| 20260712-audit-convergence-article | v2 | complete | exact | not recorded | not recorded | 11/11 | 1 |
| 20260723-bureau-shift-left-quality | v1 | none | absent | absent | absent | 0/0 | 1 |
| 20260723-devweb-wordpress-nextjs-v2 | v2 | partial | not recorded | exact | not recorded | 0/0 | 1 |
| 20260723-write-article-evalpal | v2 | partial | exact | exact | not recorded | 0/0 | 1 |
| 20260906-article-mcp-tool-design | v2 | none | not recorded | not recorded | not recorded | 0/0 | 3 |
| 20260906-glossary-mcp-claude-code | v2 | none | not recorded | not recorded | not recorded | 0/0 | 4 |
| 20260907-article-claude-headless-backend | v2 | partial | not recorded | not recorded | exact | 0/5 | 0 |
| 20260907-article-skills-subagents-mcp | v2 | partial | not recorded | not recorded | exact | 0/0 | 0 |
| 20260907-topic-guides-claude-mcp-refresh | v2 | none | not recorded | not recorded | not recorded | 0/7 | 0 |
Method and arithmetic
For Claude legs, the cost model applies the recorded input, cache creation, cache read, and output token fields to the corresponding rate:
modeled API-equivalent cost = (input tokens / 1e6 x input rate) + (cache creation tokens / 1e6 x one-hour cache-write rate) + (cache read tokens / 1e6 x cache-read rate) + (output tokens / 1e6 x output rate)
The rates were checked against the linked provider pages on 2026-09-07. The one-hour cache-write rate is a pricing-scenario assumption. It does not prove which cache TTL applied to every historical leg. Likewise, sonnet, opus, haiku, and fable are priced as the models those aliases mapped to on the fetched date. That mapping is not evidence of the model ID that originally executed an earlier run.
The million-token operands printed in the Arithmetic column are rounded for display and are illustrative. The extractor computes from the raw integer token fields, rounds each priced native leg to cents, and then sums those leg amounts. Recomputing a total from the displayed million-token operands can therefore produce a different result.
Grok token values use the dataset rule bytes / 4. bytes_in is the draft file size, so it omits the system instruction and user-message frame also sent with the request. The estimate is a rough content-size proxy, not complete request usage. The extractor includes successful recorded passes only. It does not count every attempted or potentially billed request. Although the underlying service was metered, grok_usd is a byte-derived modeled estimate, not recorded billed spend.
The two complete-coverage essay breakdowns show the arithmetic at each recorded leg.
vectors-in-the-file
| Agent | Model | Input | Cache write | Cache read | Output | USD equiv | Arithmetic |
|---|---|---|---|---|---|---|---|
| The Conductor | opus | 26,512 | 470,069 | 23,346,127 | 92,070 | 18.81 | 0.027M x $5.0 + 0.470M x $10.0 + 23.346M x $0.5 + 0.092M x $25.0 = $18.81 |
| Tally | sonnet | 20 | 111,894 | 1,305,545 | 10,460 | 0.81 | 0.000M x $2.0 + 0.112M x $4.0 + 1.306M x $0.2 + 0.010M x $10.0 = $0.81 |
| The Counselor | sonnet | 10 | 43,730 | 143,002 | 317 | 0.21 | 0.000M x $2.0 + 0.044M x $4.0 + 0.143M x $0.2 + 0.000M x $10.0 = $0.21 |
| The Scribe | sonnet | 9 | 43,169 | 229,164 | 368 | 0.22 | 0.000M x $2.0 + 0.043M x $4.0 + 0.229M x $0.2 + 0.000M x $10.0 = $0.22 |
| The Scribe | opus | 13,116 | 73,339 | 283,394 | 33 | 0.94 | 0.013M x $5.0 + 0.073M x $10.0 + 0.283M x $0.5 + 0.000M x $25.0 = $0.94 |
| The Scribe | opus | 13,114 | 71,116 | 221,730 | 18 | 0.89 | 0.013M x $5.0 + 0.071M x $10.0 + 0.222M x $0.5 + 0.000M x $25.0 = $0.89 |
| The Scribe | opus | 13,116 | 64,295 | 273,956 | 28 | 0.85 | 0.013M x $5.0 + 0.064M x $10.0 + 0.274M x $0.5 + 0.000M x $25.0 = $0.85 |
| The Scribe | opus | 13,114 | 46,466 | 164,261 | 20 | 0.61 | 0.013M x $5.0 + 0.046M x $10.0 + 0.164M x $0.5 + 0.000M x $25.0 = $0.61 |
| The Counselor | sonnet | 13 | 49,607 | 324,452 | 767 | 0.27 | 0.000M x $2.0 + 0.050M x $4.0 + 0.324M x $0.2 + 0.001M x $10.0 = $0.27 |
| The Counselor | sonnet | 8 | 89,606 | 71,270 | 723 | 0.38 | 0.000M x $2.0 + 0.090M x $4.0 + 0.071M x $0.2 + 0.001M x $10.0 = $0.38 |
| The Scribe | sonnet | 5 | 28,189 | 61,909 | 17 | 0.13 | 0.000M x $2.0 + 0.028M x $4.0 + 0.062M x $0.2 + 0.000M x $10.0 = $0.13 |
| The Challenger | opus | 13,110 | 41,051 | 49,483 | 462 | 0.51 | 0.013M x $5.0 + 0.041M x $10.0 + 0.049M x $0.5 + 0.000M x $25.0 = $0.51 |
| Grok pass 1 | grok-4.3 | ~2,829 (est) | n/a | n/a | ~2,822 (est) | 0.0106 | (11315/4)/1e6 x $1.25 + (11287/4)/1e6 x $2.5 = $0.0106 |
| Total | 24.64 | Claude 24.63 + Grok 0.0106 |
clean-audit-run-proves-nothing
| Agent | Model | Input | Cache write | Cache read | Output | USD equiv | Arithmetic |
|---|---|---|---|---|---|---|---|
| The Conductor | opus | 874 | 71,648 | 9,701,853 | 37,519 | 6.51 | 0.001M x $5.0 + 0.072M x $10.0 + 9.702M x $0.5 + 0.038M x $25.0 = $6.51 |
| Tally | sonnet | 6 | 56,367 | 116,868 | 383 | 0.25 | 0.000M x $2.0 + 0.056M x $4.0 + 0.117M x $0.2 + 0.000M x $10.0 = $0.25 |
| The Counselor | sonnet | 10 | 33,041 | 161,438 | 571 | 0.17 | 0.000M x $2.0 + 0.033M x $4.0 + 0.161M x $0.2 + 0.001M x $10.0 = $0.17 |
| The Scribe | sonnet | 7 | 29,811 | 129,168 | 365 | 0.15 | 0.000M x $2.0 + 0.030M x $4.0 + 0.129M x $0.2 + 0.000M x $10.0 = $0.15 |
| The Scribe | fable | 13,353 | 72,425 | 202,474 | 1,171 | 1.69 | 0.013M x $10.0 + 0.072M x $20.0 + 0.202M x $0.25 + 0.001M x $50.0 = $1.69 |
| The Scribe | opus | 13,371 | 57,781 | 655,368 | 1,899 | 1.02 | 0.013M x $5.0 + 0.058M x $10.0 + 0.655M x $0.5 + 0.002M x $25.0 = $1.02 |
| The Scribe | opus | 13,353 | 46,824 | 160,734 | 659 | 0.63 | 0.013M x $5.0 + 0.047M x $10.0 + 0.161M x $0.5 + 0.001M x $25.0 = $0.63 |
| The Scribe | opus | 13,357 | 48,296 | 268,958 | 888 | 0.71 | 0.013M x $5.0 + 0.048M x $10.0 + 0.269M x $0.5 + 0.001M x $25.0 = $0.71 |
| The Counselor | sonnet | 15 | 46,761 | 414,010 | 108 | 0.27 | 0.000M x $2.0 + 0.047M x $4.0 + 0.414M x $0.2 + 0.000M x $10.0 = $0.27 |
| The Counselor | sonnet | 9 | 31,777 | 162,471 | 655 | 0.17 | 0.000M x $2.0 + 0.032M x $4.0 + 0.162M x $0.2 + 0.001M x $10.0 = $0.17 |
| The Scribe | sonnet | 10 | 31,433 | 252,858 | 800 | 0.18 | 0.000M x $2.0 + 0.031M x $4.0 + 0.253M x $0.2 + 0.001M x $10.0 = $0.18 |
| The Challenger | opus | 13,349 | 39,427 | 49,785 | 962 | 0.51 | 0.013M x $5.0 + 0.039M x $10.0 + 0.050M x $0.5 + 0.001M x $25.0 = $0.51 |
| Grok pass 1 | grok-4.3 | ~2,958 (est) | n/a | n/a | ~2,958 (est) | 0.0111 | (11833/4)/1e6 x $1.25 + (11832/4)/1e6 x $2.5 = $0.0111 |
| Total | 12.27 | Claude 12.26 + Grok 0.0111 |
Within each example, the Conductor is the largest priced role cost, while the repeated Scribe legs form another visible share and the other recorded roles remain smaller. That is a reading of task allocation and cache traffic inside these runs, not a reusable rate card or evidence that one role normally costs more than another.
Fields and limits
The downloadable JSON uses the source fields below. No native billing field is added when the accounting does not contain one.
as_of: date through which the published dataset was refreshed.pricing_basis: fetched date, source URLs, rates, cache-write basis, model mappings, and the Grok byte-to-token estimate.runs[].run,date,workflow, andschema_version: the recorded run identifier and context.runs[].produced.kindandruns[].produced.slug: the published output description.runs[].coverage: the run-level coverage label.runs[].legs[].agent,model, andtokens: the recorded agent label, model label, and input, cache creation, cache read, and output token fields.runs[].legs[].confidence,recorded, andcaptured: the evidence state used to decide whether a leg enters totals.runs[].legs[].usd_equivandformula: the leg-level modeled API-equivalent amount and arithmetic, ornullwhen unavailable.runs[].grok_calls[].bytes_in,bytes_out,tokens_in_est,tokens_out_est,usd, andformula: the byte evidence, estimated tokens, modeled amount, and arithmetic for a successful recorded pass.runs[].totals: captured-token totals, coverage counts, and modeled-equivalent totals. Anullcost is unavailable, not zero. The legacyclaude_usd_equivname remains in this object even when measured GPT legs make a complete priced run total unavailable.rollup: a summary restricted to complete-coverage essay runs.notes: dataset-wide interpretation limits.
This sample cannot establish a typical cost, predict a future run, reconstruct an invoice, or compare providers on an equal billing basis. Pricing, aliases, plan terms, prompts, tools, workflow shape, cache behavior, and record completeness can change the result. Download the source dataset at devweb.org/data/run-costs.json.
Citation and update note
To cite the page, use: "devweb.org, 'Claude Code agent run costs: recorded tokens and modeled API-equivalent pricing,' https://devweb.org/data/run-costs, accessed [your access date]. Data as of 2026-09-07."
When citing a dollar figure, identify it as a modeled API-equivalent amount. For example: "The recorded clean-audit-run-proves-nothing example reports $12.27 in modeled API-equivalent cost as of 2026-09-07." Do not describe it as billed spend.
Update note, 2026-09-07: refreshed the recorded-run sample, coverage labels, source fields, pricing-source verification, and modeled-cost arithmetic. The original publication date remains 2026-09-06. This page changes only when its maintainers publish a new revision. It does not regenerate automatically or follow a schedule.
$ cat sources.txt
- Claude API pricing (Sonnet 5, Opus 5, Haiku 4.5, Fable 5.1) · read Sep 7, 2026
- OpenRouter (x-ai/grok-4.3) · read Sep 7, 2026