The problem
A frontier token only costs about 1.7 times a mid-tier one, so day to day the price gap never felt worth policing. The real problem was volume. When I pulled the telemetry for a two-week window, the frontier model had run 2.53 of 3.63 billion tokens, just under 70% of everything, and a lot of that was mechanical work the cheaper model handles perfectly well. Nothing about the setup felt wasteful while I was in it. The only thing that showed the leak was the measurement.
The policy
Work routes across three tiers, and each tier has a single admission rule.
| Tier | Who | Admission rule |
|---|---|---|
| Manager (frontier model) | Main thread, planners, phase gates | Produces an artifact the human acts on, or makes a load-bearing decision |
| Worker (mid-tier models) | Reviewers, researchers, executors, fan-out swarms | Supplies inputs to a Manager, or produces raw data |
| Free (no model) | Daemon sweeps, hooks, briefing scripts | Polling, monitoring, and file-watching need no reasoning |
The question that settles most calls is whether the human will act on the output directly. If they will, it is Manager work. If it feeds another step first, it is Worker work.
The escalation vote
A flat two-tier rule breaks on edge cases, so escalation runs as a weighted vote over the signals on the specific call, never over how important the project feels. High risk, a cross-project blast radius, a hard-to-reverse action, or a phase boundary all push a call up a tier. A well-scoped single-file change, parallelizable fan-out, and repeatable mechanical work all push it down. Past a threshold the call is promoted, and an explicit override written on the task beats the vote outright.
The policy calls out two mistakes by name, because I made both. One is escalating a mechanical call because the surrounding project feels high-stakes. The other is treating a batch-close synthesis as cheap work, when a phase boundary is exactly where the expensive model earns its cost.
The feedback loop
A rule without a measurement quietly turns into folklore. A scheduled rollup writes the frontier-tier share of tokens into a metrics file every day, so the number is sitting there whenever the routing rule comes up. The policy has a direction I want it to move (down) and an instrument that tells me whether the discipline is actually holding.
Keeping models out of the cheap loops
The biggest single saving was not shifting work from the expensive model to the cheap one. It was refusing to put any model at all into loops that need no reasoning: heartbeats, queue polling, state transitions, reaping stale resources. That is deterministic script work, and it costs effectively nothing per cycle. The rule I keep coming back to is blunt on purpose. Never spawn a language model to watch something.