Claude Code ⇄ Codex ⇄ DeepSeek via ccx · generated 2026-10-31 00:04 · last 30 days · amounts are API-equivalent USD (AE$), not your subscription bill
| day | Claude · lead | Claude · sub-agent | Codex · lead | Codex · sub-agent |
|---|---|---|---|---|
| 2026-10-31 | $0 | $0.0094 | $0 | $0.0073 |
Lead-side usage not read (run with transcripts available to include it).
| stream | fresh input | cache write | cache read | output | AE$ |
|---|---|---|---|---|---|
| Claude · sub-agent | 30 | 2,700 | 9,000 | 600 | $0.0094 |
| Codex · sub-agent | 1,600 | 0 | 3,200 | 600 | $0.0073 |
Cache reads bill at about 0.1× input; Claude's headless start-up is written to a 1-hour cache (2× input) on first use, so delegations close together are cheaper.
| who did the sub-task | tasks | mean AE$ | median AE$ |
|---|---|---|---|
| ccx → claude | 3 | $0.0031 | $0.0046 |
| ccx → codex | 5 | $0.0014 | $0.0024 |
Built-in sub-agents spend the lead's own quota; ccx sub-agents spend the other tool's quota. Compare like with like: similar tasks, same period.
evaluation runs left out (`ccx report --include-evals` to count them)
| agent | tier | kind | judged | wrong | rework | last wk judged | wrong | rework |
|---|---|---|---|---|---|---|---|---|
| claude | haiku:low | code | 1 | 100% | 100% | – | – | – |
| claude | sonnet:medium | code | 2 | 0% | 0% | – | – | – |
| codex | gpt-6-luna:low | code | 1 | 0% | 0% | – | – | – |
| codex | gpt-6.1-sol:high | code | 2 | 0% | 0% | – | – | – |
| codex | gpt-6.1-sol:medium | code | 1 | 0% | 0% | – | – | – |
Brier score (0 is perfect, 0.25 is a coin flip): this week: – (n=0) · last week: – (n=0). Right = judged right and done by the rung routing picked.
this week: 0/0 (–) · last week: 0/0 (–)
| day | task | who | model → escalation | result | tokens | AE$ | est. saving (model) |
|---|---|---|---|---|---|---|---|
| 2026-10-31 | 20261031-000416-7729 | claude → codex | gpt-6.1-sol:medium | error · quota | 0 | $0 | – |
| 2026-10-31 | 20261031-000416-322c | codex → claude | sonnet:medium | ✓ verified | 4,110 | $0.0046 | -$0.0175 |
| 2026-10-31 | 20261031-000415-5c1b | claude → codex | gpt-6.1-sol:high | ✓ verified | 1,350 | $0.0024 | -$0.0294 |
| 2026-10-31 | 20261031-000415-47c2 | codex → claude | haiku:low | ✗ rejected | 4,110 | $0.0002 | – |
| 2026-10-31 | 20261031-000414-f16f | claude → codex | gpt-6.1-sol:medium | ✓ verified | 1,350 | $0.0024 | -$0.0294 |
| 2026-10-31 | 20261031-000414-7baa | claude → codex | gpt-6.1-sol:medium → gpt-6.1-sol:high | ✓ verified | 1,350 | $0.0024 | -$0.0294 |
| 2026-10-31 | 20261031-000414-5c8b | codex → claude | sonnet:medium | ✓ verified | 4,110 | $0.0046 | -$0.0175 |
| 2026-10-31 | 20261031-000413-1f6c | claude → codex | gpt-6-luna:low | ✓ verified | 1,350 | $0.0001 | -$0.0271 |
Estimated saving (a model, not measured) = the task-sized tokens (fresh input + output, minus the sub-agent's start-up: ~20k fresh tokens for Codex) at the lead's model price − sub-agent cost − brief/review overhead. Negative means delegating cost more than doing it yourself would have. Measured totals so far were about even (docs/measured.md).