grep?Most coding agents run on one model. The same model that reasons about your architecture also reads files, runs searches, and types edits — so you pay the brilliant-model rate for a turn whose entire job was "read lines 40–80 of this file." We wanted to know what a smarter shape would actually save, so instead of guessing we replayed 100,000+ real billed turns.
It's brilliant, and it's expensive. We had a hunch there was a better shape: keep the powerful
model as the arbiter — it plans, it decides, and crucially it verifies the
result — but hand the mechanical work to cheaper, faster sub-agents. The smart model stays
in charge of every decision; it just stops personally typing every grep.
The obvious question is how much would that actually save? So instead of guessing, we measured it against reality.
Every turn an agent has ever taken in FrankenCoder is stored with its real token bill — the exact input, output, and cache tokens the provider charged — alongside which tool that turn called. That's a complete, ground-truth ledger of real work.
So we built a replay simulator. It walks the actual transcripts and, turn by turn, asks: what kind of work was this?
Then it re-prices each turn at the sub-agent's rate, adds a realistic hand-off cost for every delegation, and totals it up. No synthetic tasks. No cherry-picked demo. Just the real history, re-priced. We ran it across 104,979 real turns in our largest project (566 conversations in our own codebase), then across all 18 projects we have.
Our largest codebase, priced with every turn on the premium model, came to $14,370. Here is where that money actually went:
| Work | Share | Dollars | |
|---|---|---|---|
| Searching and reading | 43.6% | $6,265 | |
| Writing and editing | 21.2% | $3,046 | |
| Build / test (shell) | 17.2% | $2,472 | |
| Orchestration | 12.7% | $1,825 | |
| Reasoning | 5.2% | $747 |
That first two-thirds — $9,311 of search and writing — is exactly the mechanical work you can hand off. The final third is the part you want your best model doing.
And it held up across the whole portfolio, not just one. Priced end to end, all 18 projects came to $20,233 on the premium model; the same history with cheap workers and the premium model still planning and verifying came to $11,590 — a 42.7% reduction, $8,643 saved, deliberately measured on the conservative side.
Once we could re-price any turn at any model, an obvious follow-up appeared: the worker tier and the planner tier are independent knobs, and they stack. Run against the same full-portfolio history (everything-on-premium = $20,233, today's baseline):
| Configuration | Cost | vs today |
|---|---|---|
| Premium model does everything (today) | $20,233 | — |
| Mid-tier model does everything | $12,140 | 40.0% |
| Premium planner + cheap worker | $11,590 | 42.7% |
| Mid-tier planner + cheap worker | $7,937 | 60.8% |
The two savings stack because they touch different turns — one cheapens the ~65% of work that's mechanical, the other cheapens the ~35% that's judgment (a further 31.5% on top of delegation alone). But they are not equally safe, and that distinction is the whole point of the design:
The planner reviews every result and re-runs the build. A bad search or a sloppy edit gets caught on verification.
Nothing verifies the planner. It is the verifier. Drop its tier and you've made the one component with no safety net weaker.
So the headline number we stand behind is the conservative ~43% — premium planner, cheap workers, verification untouched. The deeper ~61% is real and available, but it's a deliberate quality trade you opt into for low-stakes work, not a free lunch.
A few things we made a point of getting right, because cost claims are easy to inflate:
There's a ceiling, and it's a feature. You can't delegate the planner's own thinking, and you can't delegate its verification of the work. About a third of every session is the smart model deciding what to do and checking that it was done right. That part stays expensive on purpose — it's the part that's worth paying for.
Based on these numbers, we shipped per-agent model selection. There's no preset to choose and nothing is cheapened by default: a Delegate Agent Model Override panel lets you set the model for each delegated specialist — prepper, executor, reviewer, security, documentation, and the rest — independently. Leave an agent on "Use conversation default" and it runs on whatever the planner is using; point it at a cheaper model and every time the planner delegates that role, the work runs there. (Picking a specialist yourself from the agent picker still uses the top-of-chat model selector — the override only applies to delegated hand-offs.)
The models can come from any provider, mixed freely the workers. We validated it on a clean run with the planner on Claude Haiku, the prepper on OpenAI's GPT-5.5, and the executor on xAI's Grok: three providers in a single session, each turn billed to the right one. So "premium planner, cheap workers" isn't one vendor's tier ladder — it's whichever model is cheapest for the mechanical work, whoever makes it.
Keep your best model planning and verifying → about 43% cheaper, the conservative configuration we stand behind for anything that ships.
About 61% — the deeper trade you opt into for prototypes and low-stakes work, knowing you've cheapened the one component nothing verifies.
The tooling that produced these numbers ships with it — the savings aren't a marketing figure, they're something you can see on your own projects, from your own history.
Figures come from a replay simulator over real, billed FrankenCoder history — 104,979 turns across 566 conversations on our largest project, and 20,233 dollars of premium-priced work across all 18 projects. Each turn was re-priced at the relevant sub-agent's rate by tool class, with a full-rate hand-off round-trip charged on every delegation. Sub-agent turns were deliberately priced at the original session's full context size (a real sub-agent carries far less), so the totals are a conservative floor. This models cost, not output quality; aggressive planner-tier settings are validated before being defaulted on.