Start Building
Technical

LLM Routing: Send Easy Queries to Cheap Models Automatically

Sending every query to the same model wastes money. Here is how LLM routing works, and the honest tradeoffs of using it.

Author photo
packet.ai Team
September 4, 2026

Sending every request to the same model is the LLM equivalent of hiring a specialist for every routine task. LLM routing, also called model routing, fixes this by directing each query to the cheapest model that can reliably handle it, not simply the cheapest model available. This guide covers how model routing actually works, the different approaches in use, and the honest tradeoffs, including where routing can quietly cost you more than it saves.

Key takeaways

  • An llm router sits between your application and a pool of models, deciding per request which model actually needs to handle it, rather than sending everything to the same one by default
  • Classifier-based and semantic routing decide before generation which model to use; cascade routing takes a different approach, sending the cheap model an attempt first and escalating only if that attempt isn't good enough
  • Published routing research shows substantial cost reductions, but the reported figures vary widely by method and workload; one widely cited benchmark reports over 85 percent cost reduction while retaining roughly 95 percent of top-tier response quality, while other approaches report more modest but still meaningful savings around 40 percent
  • Routing itself adds a small amount of latency, since the router has to inspect a request before it can route it; the exact overhead is implementation-dependent, from well under a millisecond for simple in-process rules to tens of milliseconds for heavier classifiers
  • A router that misjudges difficulty and sends hard requests to a small model doesn't save money, it creates escalations and repeated requests; a cascade that silently escalates most of its traffic can end up costing more than no routing at all

What LLM Routing Actually Is

LLM routing, sometimes called prompt routing since the routing decision is typically made from the prompt itself, is the practice of automatically directing each query to the model best suited to it, based on the request's complexity, task type, or cost requirements, rather than sending every request to the same model regardless of how simple or complex it is. A router sits between your application and a pool of available models, inspecting each incoming request and deciding which model in that pool should actually handle it.

The economic case for this comes from a real, persistent gap in LLM API pricing: capable frontier models typically cost meaningfully more per token than smaller, cheaper models, and that gap has generally widened rather than narrowed as the model landscape has expanded. The goal isn't to send every request to the cheapest model available. It's to send each request to the cheapest model that can reliably do the job, which is a meaningfully different and more durable target than chasing the lowest price point regardless of whether the result holds up.

Three Common Approaches to Model Routing

A model router generally falls into one of three broad approaches, and it's worth being precise that these aren't three equivalent ways of doing the same thing. A classifier and a semantic router both make their decision before generation happens, predicting up front which model should handle a request. Cascade routing works differently: it sends the cheap model a first attempt, evaluates the result, and escalates only if that attempt doesn't meet a quality bar, which makes it more of a sequential escalation strategy than a pre-generation prediction.

Approach How it decides Best suited to
Classifier-based routing Predicts task difficulty before the request runs, routing accordingly Mixed-difficulty traffic where complexity is the main cost driver
Semantic routing Matches a query to a route using semantic similarity, which can represent task type, domain, or which model tends to perform best on that kind of query Workloads that genuinely benefit from specialized models, not just difficulty tiers
Cascade routing Sends the cheapest model a first attempt, escalates to a costlier one only if that attempt fails a confidence or quality check Traffic where most requests are genuinely simple and only a minority need escalation

Task-type or domain matching, code versus legal versus customer support, is one common use of semantic routing, but the underlying mechanism, matching via embeddings or similarity, is more general than any single use case.

How Much LLM Routing Actually Saves

Published research shows that routing and model cascading can substantially reduce inference cost, but the reported savings vary widely by workload, routing method, and how quality is measured, so a single headline percentage doesn't represent "LLM routing" as a category. RouteLLM, a widely cited academic routing benchmark, reports over 85 percent cost reduction on one standard benchmark while retaining roughly 95 percent of the strongest model's response quality, by learning to predict which queries a weaker model can handle adequately. On a harder benchmark, the same research found that holding quality at a similar 95 percent threshold required routing a much larger share of queries to the stronger model, reducing the achievable savings considerably. A separate line of research, sometimes called hybrid or quality-aware routing, reports up to 40 percent fewer calls to the larger model with no measured drop in response quality, using a router that predicts query difficulty and lets the quality bar be tuned at request time.

These are results from specific published benchmarks and workloads, not a guarantee that any given production traffic mix will see the same percentage. Output-heavy workloads tend to save more in absolute dollar terms than input-token-only comparisons suggest, since output tokens are typically the more expensive side of the bill to begin with. The realistic range for a given deployment depends heavily on how much of that deployment's actual traffic is genuinely simple versus how much needs the more capable model regardless of routing.

⚡ Routing itself adds latency, honestly small but real

A router has to inspect a request before it can decide where to send it, and that inspection takes time. The exact overhead is implementation-dependent rather than a fixed number: simple in-process rule routing can add well under a millisecond, while embedding or classifier-based routing can add several to tens of milliseconds depending on the implementation, network hops involved, and context length being evaluated. Set against typical LLM response times, which commonly run from several hundred milliseconds to a few seconds, even the more expensive routing approaches represent a small percentage of total request time, not a meaningful latency cost on their own.

Where Model Routing Can Quietly Cost You More Than It Saves

Routing's savings depend entirely on the router making good decisions, and a router that misjudges difficulty doesn't just produce a worse answer, it can actively erase the cost benefit routing was supposed to provide. If a cheap model gets a genuinely hard request, the system may need to retry it or escalate to a more capable model automatically. If the system doesn't catch the problem itself, the user may simply ask again or rephrase the request, which creates another request and another cost of its own, separate from any automated escalation.

This is most visible in cascade routing specifically: the escalation rate is the variable that actually determines whether a cascade saves money at all. A cascade that silently escalates the majority of its traffic to the expensive tier isn't really saving anything, it's just adding the cheap model's cost and latency on top of the expensive model's cost that would have been paid anyway. Monitoring the actual escalation rate in production, not just assuming the cascade is working because it's configured, is the practical safeguard against this failure mode.

LLM Routing vs. an LLM Gateway

Routing is often one feature inside a broader llm gateway product, rather than a standalone thing you build in isolation, and it's worth being precise about the distinction. A router answers one question: which model should handle this request? A gateway answers a broader one: how should this request reach and interact with the model providers behind it, covering authentication, rate limiting, usage observability, and failover across providers. Routing logic tends to be more durable when enforced at that gateway layer, applied consistently across every request, rather than hardcoded separately inside each individual application that calls an LLM.

Where This Fits Operationally

Routing decisions and the infrastructure they run on are closely related but separate concerns: routing decides which model handles a request, while the underlying serving layer determines what that request actually costs once it gets there. packet.ai's Token Factory is being built as the kind of per-token-billed serving layer that routing systems can send simpler traffic toward, without requiring separate infrastructure for the cheaper tier. It's currently in private preview, with the specific model catalog and pricing still being finalized.

Join the waitlist for early access once it opens.

Sources and Further Reading

Frequently asked questions

LLM routing is the practice of automatically directing each query to the model best suited to it, based on complexity, task type, or cost, rather than sending every request to the same model. An llm router sits between your application and a pool of available models, deciding per request which one should handle it. The goal is sending each request to the cheapest model that can reliably do the job, not simply the cheapest model available.
Semantic routing is one specific approach within model routing generally, matching a query to a route using semantic similarity, which can represent task type, domain, or model capability. Classifier-based routing predicts task difficulty directly rather than matching by similarity. Both decide before generation, unlike cascade routing, which decides by trying a cheap model first.
Cascade routing sends a request to the cheapest model first, evaluates the response against a confidence or quality check, and escalates to a more capable model only if that first attempt doesn't pass. It's a sequential escalation strategy, distinct from classifier or semantic routing, which both decide which model to use before generation happens.
It adds a small amount of latency to inspect and route each request, and the exact overhead is implementation-dependent: well under a millisecond for simple in-process rules, several to tens of milliseconds for embedding or classifier-based routing. Against typical LLM response times of several hundred milliseconds to a few seconds, this is a small fraction of total request time in most implementations.
It can, if the router misjudges a request's difficulty and sends it to a model that can't handle it well. Well-tuned routers are typically evaluated against a specific quality threshold they're built to hold, but that threshold is a design choice, not a guarantee; a router built for aggressive cost savings will accept more quality risk than one tuned conservatively.
Yes, if the router makes poor decisions. A cascade that escalates most of its traffic to the expensive model pays for both the cheap model's failed attempt and the expensive model's correction, which can cost more than skipping the cheap tier entirely. Monitoring the actual escalation rate in production, rather than assuming the setup is working, is the practical way to catch this.

Last reviewed: September 8, 2026. For the broader cost mechanics routing is designed to reduce, see the packet.ai LLM inference cost guide.

Waste less compute.

Same models. Same API. Fraction of the cost. Start free — no credit card required.

Start Building →

More from the blog