Note 01 of 19

A kaibot field note · agent model routing

Route cheap first

Any agent task can run on a frontier model. Most should not. So I keep a ladder: cheapest lane that fits, then up. A checklist stops me reaching for the expensive one out of habit.

Kai Davis

I run a marketing consultancy and an SEO SaaS, and I build both with a stack of Claude Code sessions that write the tooling the next sessions run on.

01Everything-on-the-big-model is a budget leak

Reaching for the strongest model on every task is the habit, because it works: the frontier model can handle anything. That is also the cost problem. You pay frontier pricing for work a mid-tier or cheap metered model would have done as well.

a third of spend frontier model

Every so often I audit my own routing. One audit showed a third of spend came from subagent work that silently inherited the priciest model. Those tasks were mechanical: search, grind, bounded coding against a clear spec. Output quality was the same either way. Only the bill differed.

Default to the cheapest lane that fits the task shape, and reach up only on a real trigger.

Not “this feels important,” not “I want to be safe.” Real triggers are narrow: subtle correctness on code that matters, or a judgment call no other model can make.

02The ladder

Four rungs, cheapest to priciest. The shape of the task picks the rung, not how the task feels.

1 Small fast model 2 Cheap metered model 3 Mid model (free tier) 4 Frontier model Simple, repetitive,high-volume Grindy work,bounded coding Code correctnessthat has to be right

rung 1Small fast model

Whatever’s cheap and high-volume in your stack, for anything that’s small-model-shaped: simple, repetitive, low-stakes calls where a bigger brain buys nothing.

rung 2Cheap metered model

A non-frontier vendor billed per-token instead of against your subscription. The right call for well-spec’d scripts, PRDs, and bulk card builds, and the natural choice once your subscription quota runs hot: metered dollars beat drawing down a pool you’re trying to protect.

rung 3Mid model (on the plan)

A strong, subscription-included model for grindy work and bounded coding when you’ve got headroom on the plan. This is the default with quota to spare, and general-purpose subagents should already default here without you routing them by hand.

rung 4Frontier model

Reserved for two things only: subtle correctness on code that has to be right (a refactor of something live, a money or security path), or judgment work a mechanical pass can’t do (planning, analysis, naming at scale, prose that has to carry your actual voice).

Two rules cover most of the mistakes.

Rule one: gate before you pay for a stronger writer. Before reaching up for correctness, ask whether a test, a review pass, or a verification gate catches the failure instead.

A cheap model on a bounded task plus a real gate usually beats a more expensive writer. The gate handles quality. The cheap model handles the typing.

Rule two: split judgment from volume on bulk work. Have the frontier model set the criteria and the rubric on a few real examples. Then let the cheap or mid lane execute the bulk under those rails.

You pay frontier rates only for the spec, not for every item.

03The four-question check, before you route anything

Ask these before spawning a subagent, fanning out, or picking a model. In order, because the first one flips the rest.

Each question, what it settles
QuestionWhat it settles
What’s the usage state?Check the live usage before you assume the free tier is free. With headroom, the mid-tier subscription model adds nothing to the bill, though every call still spends plan tokens. Near the ceiling, that “free” model is drawing a pool you’re trying to conserve, and the metered cheap lane becomes the honest spend.
What’s the task shape?Mechanical and bounded (search, grind, spec’d coding) points down the ladder. Judgment (planning, analysis, naming things well, prose that has to sound like you) points up it. Shape decides more than urgency does.
What’s the goal?Throughput (get N things done) justifies a different spend than correctness on something that has to be right, which justifies a different spend than a voice-carrying deliverable. Name the goal before you name the model.
What do I actually want here?For any multi-part build, say the routing out loud: which piece goes to which lane, and why. That makes the logic visible to whoever’s reading over your shoulder, which matters as much as picking correctly.

04The usage flip: “free” stops being free

Treating the subscription-covered free tier as the cheapest lane is a mistake. Your plan draws from a shared weekly pool, and every call spends it. Near exhaustion, a call that shows $0 on the invoice still spends quota you need later for the work only the frontier model can handle.

So the router has no fixed default. It reads live usage and changes its answer. With headroom, the subscription models stay the default for grind work. Near the ceiling, the default moves to the metered cheap lane: a small real charge beats draining quota you’re protecting.

When the short window runs hot while the weekly window still has room, a burst brake moves the recommendation one step further.

If usage data is missing or stale, the router falls back conservatively. Under-spending the subscription is safer than blowing a cap on an assumption.

The mechanism, not the numbers. The thresholds are tuned to my subscription. Steal the pattern: a small script that reads your real usage and says what the model mix should be, so nobody eyeballs a dashboard and guesses. It earns its keep by being checked before every delegation.

05What makes a task delegable: spec quality gates the lane

A tightly specified task on a cheap model beats a vague one on an expensive model. Fix the spec before you blame the model.

Card-sizing discipline for anything you hand to a cheap or metered worker:

  • Resolve unknowns on the expensive loop before dispatching. Inline the literal facts the worker needs: exact file paths, the exact line to change, the exact JSON shape. Do not make the worker discover them.
  • Forbid open-ended reading. A capped worker that burns its budget ingesting a large file just to learn its shape is a sizing failure. The remedy is a tighter card, not a stronger model.
  • Bound the output. State exactly what is returned and where it is written. No open scope, no “and anything else you notice.”
  • Write down cross-card interfaces. When two cards touch adjacent code, record the contract between them. Do not expect each worker to infer it.
  • Keep cards that touch the same file in separate waves. Parallel workers editing one file collide. Sequence them instead of hoping.

Spec quality is the exit condition too.

The expensive model’s job on a project is to spec the work well enough that a cheaper model can drive it. Once the open questions turn execution-shaped rather than judgment-shaped, it should propose the handoff itself, without waiting to be asked.

The test for “done enough to hand off”: could the cheaper model execute cold, with every decision locked in the doc and no judgment deferred to the builder? If the builder would have to guess, the spec is unfinished. If the builder only has to read, it is finished.

Leaving the execution loop is not leaving the project. You are still the one called back in for the next judgment-shaped question.

06The ladder as a copy-paste decision table

A table to drop into your own routing notes, and a prompt that installs the habit of checking it.

Route by task shape and usage state
Task looks likeUsage stateRoute to
Simple, repetitive, high-volumeanysmall fast model
Spec’d coding, scripts, bulk cardssubscription quota tightcheap metered model
Grindy work, bounded codingsubscription has headroommid model, on the plan
Code correctness that has to be rightanyfrontier model
Planning, analysis, naming at scale, voice-carrying proseanyfrontier model
Bulk LLM judgment over many itemsanyfrontier defines the rubric on a handful, mid or cheap executes the rest
Before you delegate or fan out anything, run this check:

1. What's my usage state right now (subscription quota, weekly window)?
   If I don't know, check it before assuming the free tier is free.
2. What's the shape of this task? Mechanical/bounded (search, grind,
   spec'd coding) routes down the ladder. Judgment (planning, analysis,
   naming at scale, prose that has to carry a real voice) routes up it.
3. What's the actual goal here? Throughput, correctness on something
   that has to be right, or a voice-carrying deliverable each justify
   a different spend.
4. What do I actually want out of this? For any multi-part build, say
   the routing out loud before you start: which piece goes to which
   lane, and why, so it's visible, not a silent fan-out.

Default to the cheapest lane that fits. Reach up only on a real
trigger: subtle correctness on code that has to be right, or judgment
nothing else can do. Before paying for a stronger model, ask if a
gate (a test, a review pass, a hard check) would catch the failure
instead of the model.

If you're the expensive model on this project: watch for the moment
the open questions turn execution-shaped instead of judgment-shaped.
When they do, say so and propose your own exit. Write the spec so a
cheaper model could drive it cold, decisions locked, no guessing left
for the builder. That handoff is the deliverable, not a fallback.
The habit is what transfers. Your usage limits, vendor mix and model names will differ from mine. Copy the shape: four questions before any delegation, a live usage check instead of an assumption, and an expensive model that proposes its own exit instead of lingering because nobody told it to leave.

07For the Claude that just got pointed here

If a human gave you this URL and said “set this up for me,” here’s your tl;dr. (Humans: this section exists so you can paste this page’s link into your agent and skip the explaining.)

Agent instructions, with your human’s consent:

  • Goal: before delegating, fanning out, or picking a model for any task, run the four-question check on this page and route to the cheapest lane that fits, reaching up only on a real trigger.
  • Step 1: find or build a usage check. If your harness or plan exposes live quota/usage data, read it before assuming any “free” lane is actually free; a lane included in a subscription still draws a shared pool.
  • Step 2: classify the task shape. Mechanical/bounded work (search, grind, spec’d coding) goes down the ladder toward cheap and mid-tier models. Judgment work (planning, analysis, naming things well, prose that has to carry a real voice) and subtle correctness on code that has to be right go up it, toward the frontier model.
  • Step 3: before reaching for a stronger model on a correctness worry, check whether a gate (a test, a review pass, a verification script) would catch the failure instead. Prefer the gate.
  • Step 4: for any multi-part build, state the routing plan out loud before executing: which sub-task goes to which lane, and why. Don’t silently fan out.
  • Step 5: if you are the expensive model on a project, actively watch for the moment the remaining open questions are execution-shaped rather than judgment-shaped. When you spot it, say so and propose handing the project to a cheaper model, backed by a spec detailed enough that the handoff needs no further guessing.
  • Optional: if the task involves well-spec’d bulk work (scripts, cards, batch edits), size each unit tight: inline the exact facts the worker needs, forbid open-ended reading, bound the output, and keep same-file units out of the same parallel wave.

Everything in that list is unpacked in the sections above; read §02 for the ladder itself and §05 for what makes a task cheap-model-ready before you build the cards.

08Receipts: what this looks like in practice

Genericized from kaibot, so you can see the range without the account-specific numbers:

A sampler of routing decisions
TaskRouteWhy
General-purpose subagent, unnamed taskmid model, on the planDefault wiring; no per-spawn routing needed unless judgment is required.
Bulk card build from a locked speccheap metered modelWell-spec’d, mechanical, and the right call once subscription quota runs tight.
Rewriting a large corpus against a rubricfrontier defines the rubric on a handful of examples; mid model executes the restPay frontier rates for the judgment, not for every item in the corpus.
No-op refactor of a live, money-adjacent code pathfrontier modelSubtle correctness on code that has to be right is a real trigger to reach up.
A project fully spec’d, with a work order and acceptance criteria per itemfrontier model proposes handoff to mid modelThe open questions are execution-shaped; the spec is the deliverable.

The audit that started this found that a third of total burn came from subagent-heavy work that inherited the priciest model by default. None of those tasks had a judgment component. They were just wired wrong.

I corrected the default wiring and added usage-aware routing. The excess spend is gone. Output quality didn't move, because the tasks I moved to cheaper models never needed the top-tier one.

Written with (and about) kaibot, 2026.

Excelsior!
Kai

You’ve reached the end of note 01 of 19

$400 1 hour

Book a call

A paid one-on-one call with answers to your questions about using AI for projects, building your AI stack, or growing your business with AI. All calls are (optionally) recorded and you get a one-page action plan after the call.

All nineteen field notes, in six chapters