# Does routing coding agent subtasks to cheaper models pay off? A benchmark of 63 runs per arm

> Source: <https://dev.to/arthur031221/does-routing-coding-agent-subtasks-to-cheaper-models-pay-off-a-benchmark-of-63-runs-per-arm-4cdd>
> Published: 2026-10-22 12:07:02+00:00

I wanted a straight answer to one question: if a coding agent hands its cheap subtasks to a smaller model, how much does a session really cost less, and does the result get worse?

Token Beggar is a plugin that adds a routing card to the session. The chat model grades each task into one of 7 classes and delegates bulk work (large reads, repeated edits, test loops) to a worker with its own context, at a cheaper model and lower effort. Design and root-cause work stays with the chat model. The chat model and effort are a ceiling, so nothing is routed above what you chose.

| Class | Without | With | Cheaper | 
|---|---|---|---|
| Multi-file feature | $2.47 | $1.58 | 1.56x | 
| Mechanical edits | $1.11 | $0.80 | 1.4x | 
| Reading | $0.91 | $0.75 | 1.21x | 
| Design | $0.93 | $0.82 | 1.14x | 
| Routine code | $1.47 | $1.32 | 1.12x | 
| Bug root cause | $1.45 | $1.29 | 1.12x | 
| Review | $1.21 | $1.13 | 1.07x | 
| All 63 runs per arm | $9.56 | $7.69 | 1.24x | 

Quality was 0.96 in both arms.

Design, bug root cause and review never go to a worker, yet they came out 1.07x to 1.14x cheaper. That is run to run spread plus, I suspect, a shorter path the card gives the chat model. So I only quote multipliers of 1.15x or more in the plugin's footer. The routes were tuned on the same 21 tasks, so the table describes this setup and is not a forecast for yours.

One debugging task looked like a regression in 5 of 6 runs with the plugin. The diffs were identical to the passing runs. The cause was a stale .pyc: the fix changed `==` to `!=`, which keeps the file size, and the bytecode written by the pre-fix test run still passed Python's mtime check. The scorer now clears bytecode before checking, and both arms were rescored. If you score code produced by agents, clear **pycache** first.

A compaction guard that writes a handoff note before an automatic compaction and defers it up to 3 times when files were edited after the last test run. The weekly model list refresh is a GitHub Action.

Repo, raw runs and the scorer: [https://github.com/Arthur031221/Token-Beggar](https://github.com/Arthur031221/Token-Beggar) (MIT).
