Model Routing

The biggest model for the smallest job

Sending every request to your best model feels like the safe choice. It's the expensive one, and often not even the better answer. Why the model you pick for a task is a control, not a default.

There's a question I ask in most architecture reviews now, and it usually catches people off guard. Not "which model are you using," which everyone can answer in their sleep. The question is: for this specific request, the boring one that runs ten thousand times a day, which model answers it, and why that one? The answer is almost always the same. The best one. The biggest one on the price sheet. The model that got picked once, early, when the team was still proving the thing worked at all, and then quietly became the model that answers everything.

It's an understandable place to land. Nobody gets a hard question in a review for pointing every request at the most capable model available. It looks like diligence. It's one integration to maintain instead of three. And when the demo is on the line, reaching for the model least likely to embarrass you is the rational move. The trouble is that the demo ends and the traffic doesn't, and by month three you are paying frontier rates to do clerical work at industrial volume, with a latency budget you didn't need to spend and an answer that wasn't any better for the money.

One model for everything is a decision nobody made

The single-model default is rarely a decision. It's the absence of one. Somebody wired the first workflow to a capable model to get moving, the workflow worked, and the model name got copied into the next build, and the one after that. No one ever sat down and decided that a supplier-name extraction and a full claims adjudication should be served by the same engine. It just happened, the way most expensive habits happen, one reasonable shortcut at a time.

Look closely at what a real workflow actually asks a model to do, and it isn't one kind of work. A run on Lumen, our knowledge platform, might answer a plain lookup that has one correct answer sitting in a document. A run on Clairant has to weigh a claim against policy language and prior decisions, which is genuinely hard reasoning. Those two requests have almost nothing in common except that, in most stacks, they get routed to the same model at the same price. One of them needs that horsepower. The other is a forklift moving an envelope.

You're paying frontier rates to do clerical work

We wrote a while back about the bill nobody modeled, the sticker shock that lands six months in and turns out to be about the consumption pattern the architecture committed to, not the price per token. Single-model routing is one of the purest versions of that pattern. The frontier model is priced for its hardest capabilities, and you pay that price on every call, including the enormous share of calls that are classification, extraction, short summaries, formatting, routing text from one field to another. Clerical work. Work a much smaller model does just as accurately, faster, for a fraction of the cost.

The reason this hides so well is that no single call looks expensive. It's cents. The problem is that the cheap-looking call is the one running at volume, and volume is exactly where the wrong model choice compounds. The high-reasoning requests that actually justify a frontier model are usually the rare ones. The routine requests are the flood. Pricing the flood as if every drop needed your most expensive model is how a line item nobody flagged becomes the biggest number on the invoice.

Bigger is not automatically better

The reflex defending the single-model default is that the big model is safer, so overpaying is just buying insurance on quality. On a narrow, bounded task, that reflex is often wrong. Quality does not climb in a straight line with model size once the task is small enough. A right-sized model pointed at a job with clear edges can match a much larger one, and sometimes beat it, because it isn't being asked to hold the whole world in its head to pull one date off one form. It's faster, too, and in an interactive workflow the analyst waiting on the answer feels the latency long before finance feels the cost.

So the trade isn't quality versus cost, with routing as the compromise that sacrifices a little of the first to save the second. On the routine majority of requests, right-sizing the model gives you the cheaper answer and the faster answer and an answer that is just as good. You give up nothing you were actually using. What you give up is the comfort of never having to think about which model handles what, and that comfort was never free. You were paying for it on every call.

Route by difficulty, not by default

The pattern that replaces the default is not complicated to say, though it takes discipline to hold. Match each request to the smallest model that clears the bar for that kind of work. The frontier model stops being the front door and becomes the escalation. Most requests get served by a smaller, faster model sized to the task. The hard ones, and only the hard ones, go up to the heavyweight.

The part that makes this safe rather than reckless is the escalation path. A request starts on the smaller model. If the model's confidence is low, or a guardrail check fails, or the output doesn't clear the bar the task requires, the request climbs to a more capable model instead of shipping a weak answer. The cheap path handles the common case. The expensive path is there for the moment the common case turns out to be a hard one in disguise. You get the economics of the small model on the traffic that suits it and the safety of the large model on the traffic that needs it, and the request itself decides which it was, based on something you measured rather than something you assumed.

Routing is a platform decision, not an app one

Here is where most teams get the idea right and the placement wrong. They accept that different requests deserve different models, and then they hardcode that logic inside each application. One workflow has its model choices baked into its own code, the next workflow has slightly different ones baked into its, and within a year the question "what decides which model answers what, across the portfolio" has as many answers as you have solutions. That's the sprawl we've written about before, rebuilt one more time in one more place.

Routing belongs in the substrate, not the app. In our architecture it lives in Neura-Cortex, the shared layer underneath the solutions, next to the guardrails, the identity, the evals, and the audit log. It's provided once and inherited by everything built on top, so a team shipping on Clairant or MatryxAI or Throughline doesn't invent its own model-selection scheme under deadline. They get the routing policy the platform already enforces, and the request carries a record of which model answered it and why the router sent it there. Which model handled a decision is not a detail to lose. It's part of the story of how the decision got made, and it belongs in the log next to everything else.

You can only route on what you can measure

A routing policy is a set of claims about capability. This class of request can be served by the smaller model. That class needs the larger one. Those claims are only worth anything if you've measured them, which is the same discipline we described in writing about the half-life of a working model. Before a request class gets routed to a cheaper model, you prove on your own evals that the cheaper model is actually good enough for that work. Not that it clears a public benchmark. That it holds up on your data, for your task, at the quality your workflow requires.

And because models drift and get swapped and quietly change underneath you, that measurement isn't a one-time sign-off. The router is only as trustworthy as the evals standing behind its choices, and those evals have to keep running. A routing decision made against last quarter's measurements is a guess dressed up as a policy. The cheap path stays cheap only for as long as you can still show it's good enough, which means the thing that makes routing a control instead of a gamble is the evaluation that never stops.

The most expensive model isn't the safe choice. It's the choice you make when you haven't measured which cheaper one would have done the job.

How we decide what answers what

Before a request class gets a model assigned to it in one of our architectures, it has to get through a short set of questions. What kind of work is this request actually doing, reasoning or retrieval or reformatting? What is the smallest model that clears the bar for that work on our own evals, and when did we last check? If the small model gets it wrong, does the request escalate on its own, or does a weak answer just ship? When the answer goes out, does the log say which model produced it and why the router chose that one? And if we swapped the underlying model tomorrow, would we find out from our evals or from a customer?

A request that can't answer those doesn't get a cheaper model just to save money, because unmeasured savings are just risk with better margins for a while. But most requests, once you actually look at them, turn out to be doing far less than the model answering them was built for. That gap is the opportunity, and it's sitting in almost every stack running today.

A question worth sitting with

Take your single highest-volume AI workflow, the one that runs constantly in the background, and find out which model answers it. Then ask what would actually break if a smaller model took the routine share and only escalated the hard cases. If the honest answer is "probably nothing, but we've never tested it," you've found both a cost you're carrying for no reason and a control you haven't built yet.

The cheapest architecture I've worked on this year wasn't the one that negotiated the best rate or trimmed the most tokens off a prompt. It was the one that knew when not to spend. It sent the flood of routine requests to a model that could handle them for a fraction of the price, kept the frontier model on standby for the handful of requests that earned it, and could show you, request by request, which one answered and why. It never looked dramatic in a review. But at the end of the quarter its bill matched the work it actually did, and every model choice behind that bill was one someone could defend. That, and not a smaller number for its own sake, is what cost control looks like when it's built in instead of bolted on.


MTekLabs designs, deploys, and governs production-grade agentic AI platforms for government and commercial enterprises. Our solutions are built human-in-the-decision-loop where it matters and auditable by design. Explore them at mteklabs.com.

Do you know which model is answering your routine requests?

We would be glad to walk through where your workflows are paying frontier rates for routine work, and what it takes to route each request to the smallest model that can actually do the job without giving up the answer you need.

Talk to us →
← All articles MTekLabs · Operationalizing Cognitive Intelligence