routing-savings benchmark · measured

The cost of a model you didn't need.

deadeye routes each subagent task to the cheapest model tier that can still do it. We measured what that's worth — in real billed dollars, graded by a test the model never saw.

3–9×
what opus billed over haiku for identical, correct output (median ~6×)
5 / 6
well-scoped tasks passed on the cheapest tier — downshift nearly free
~63%
model-cost cut vs all-opus (oracle routing) on this set
100%
measured, hidden-test graded — no estimated numbers

18 runs · 6 tasks × 3 tiers (haiku · sonnet · opus) · real total_cost_usd

The proof — over-provisioning has a price

Same task, done correctly: how many × more opus billed than haiku

counter
9.1×
wordwrap
7.1×
clamp
6.1×
semver
4.8×
csv
3.4×

Bar = opus ÷ haiku billed cost, for output both tiers got correct. Per-task and mix-independent — the robust claim. (sonnet ran ~4–5.5× haiku.)

And the cheaper tier actually did the work

TaskBandhaikusonnetopusCheapest that passed
clampmech$0.026PASS$0.110PASS$0.160PASShaiku
wordwrapstd$0.046PASS$0.230PASS$0.331PASShaiku
csvstd$0.060PASS$0.329PASS$0.204PASShaiku
semverhard$0.055PASS$0.279PASS$0.265PASShaiku
expr-evalhard$0.050FAIL$0.294FAIL$0.407FAIL*opus
counterhard$0.034PASS$0.186PASS$0.311PASShaiku

5 of 6 well-scoped tasks passed on haiku — including SemVer precedence and a concurrent counter under -race. The one that didn't (expr-eval) is the case routing sends up — more on that below.

How we measured it

One run — repeated 18 times

A "saving" is fake if the cheap model fails — you re-run on opus and pay twice. So every run measures both cost and quality, and a saving counts only when the cheaper tier actually cleared the task.

01 · ISOLATE

Clean tree

git archive HEAD into a fresh temp dir — runs can't contaminate each other.

02 · RUN

Real session

claude -p --model <tier> writes the actual code. DEADEYE=off — raw model cost.

03 · GRADE

Blind test

A hidden go test the model never saw runs against its output. Pass or fail.

04 · MEASURE

Real dollars

Billed total_cost_usd + tokens from the run's JSON. Nothing estimated.

The hidden test is the trick: grade against a spec the model couldn't see, and a pass means it understood the task, not that it gamed the test. Each hidden test was first validated against a known-correct reference impl — so a failure is the model's, not the test's.

The task set — three difficulty bands, on purpose

mechanical
  • clamp(v, lo, hi)
Trivial. Should pass on every tier — so opus here is pure waste.
standard
  • word-wrap (runes)
  • CSV parser
Edge cases — unicode width, empty fields, escaped quotes — where a weak tier might slip.
hard
  • SemVer compare
  • expression eval
  • concurrent counter
Reasoning-heavy. Where opus should actually be needed — the route-up case.

If cheap tiers passed everything, the honest verdict would be "just use haiku" — an anti-routing result. We needed one task where the cheap tier fails and opus is needed. That's the expression evaluator.

The frontier — why one task earns opus

expr-eval sits at the model's capability edge

The recursive expression evaluator (operator precedence, unary minus, error handling) failed on haiku and sonnet, and opus was borderline — it failed one trial and passed on re-run (the *). This is exactly the task routing must send up. The roll-up keeps it on opus and claims no saving for it.

The whole thesis in one row: route the easy common case down, keep the hard frontier case up.

The honest caveats — written into the benchmark

  • The ~63% roll-up is illustrative, not the headline. Oracle routing (cheapest tier that passed) cut cost ~63% vs all-opus on this set — but it depends on the task mix. Lead with the 3–9× ratio, which doesn't.
  • Single trial per (task, tier) is noisy near the frontier — see expr-eval. Multi-trial pass-rates are the next rigor step.
  • Small self-contained tasks under-count the tier gap. Large, context-heavy real work is where cheaper tiers slip more — so this is a floor on the value of routing up, not a ceiling.
  • Cache-heavy system-prompt cost is in every run and similar across tiers, so it dilutes the headline %. The model-priced delta is the real lever.

Correct output costs about 6× more on opus. deadeye routes it down.

← back to deadeye