Skip to main content
Back to Blog
Model CascadingLLM RoutingCost OptimizationInference CostProduction

"Model Cascading: How Production Teams Cut Inference Costs by 40-60%"

Stephen Keegan9 min read

# Model Cascading: How Production Teams Cut Inference Costs by 40-60%

Your monthly inference bill is the wrong number. What matters is cost per completed task.

Claude Fable 5 costs $50 per million output tokens. DeepSeek V4 Flash costs $0.28. The spread between a frontier model and a capable cheap one is now 178x. Running every request through the most expensive model is like paying for a courier to carry every letter when a postcard would do -- except the courier charges $50 and the postcard costs 28 cents.

The question is not whether you can afford a cheaper model. It is how to know when a cheaper model is good enough.

That is what model cascading solves. You try the cheap model first, check whether the answer is acceptable, and escalate only when it is not. Done right, it cuts blended inference costs by 40-60% at matched quality. Done wrong, you pay for the cheap attempt and the expensive redo on every request, which is strictly worse than using the flagship for everything.

This post covers the three established cascade patterns, the math that tells you whether cascading pays, and the monitoring traps that silently bleed your savings.

The economics of cascading: when it pays

Cascading is not routing. Routing makes one decision from the input and commits. Cascading tries the cheapest model first, runs a verifier on the result, and escalates only when the verifier rejects. The verifier is the whole trick.

The break-even calculation is straightforward. If your cascade escalates on a fraction e of requests, the blended cost per query is:

Cost(cascade) = Cost(small) + e * (Cost(verifier) + Cost(large))

Compare this to Cost(large) for every query. The cascade saves money when:

Cost(small) + e * (Cost(large) + Cost(verifier)) < Cost(large)

Rearranged, the break-even escalation rate is:

e < (Cost(large) - Cost(small)) / (Cost(large) + Cost(verifier))

For concrete numbers: if you are cascading Claude Sonnet 4.6 ($3/$15 per MTok) as the cheap tier and Claude Fable 5 ($10/$50 per MTok) as the expensive tier, on a typical 1,200-in / 350-out query, the small model costs ~$0.009 and the large costs ~$0.030. If your verifier costs roughly the same as a small-model call, the break-even escalation rate is around 50%. If your verifier is cheaper -- a schema parse or a structured check -- it climbs to 55-60%.

At a 30% escalation rate (meaning the cheap model handles 70% of traffic directly), the blended cost is roughly half of using the flagship on every query. That matches what production deployments report: the RouteNLP paper shows 40-85% cost reduction with 96-100% quality retention on structured tasks, and TrueFoundry's deployment data puts a healthy cascade at roughly half of frontier-everywhere at 30% escalation.

The 70% cheap-resolution threshold is a useful rule of thumb. Below it, cascading still saves money but the savings curve flattens. Above 80% cheap resolution, the savings are dramatic -- you are essentially getting frontier quality at near-cheap-model prices.

Pattern 1: static rule-based cascading

The simplest cascade pattern uses a deterministic rule as the escalation gate. If the cheap model's output fails a specific check, escalate. Otherwise, return it.

Common deterministic gates:

  • Schema validation. If your task expects JSON output, check whether the cheap model's response parses against the expected schema. If it does not, the answer is malformed regardless of content. This is the cheapest verifier available -- a regex or JSON parser costs nanoseconds, not tokens.
  • Keyword markers. Responses containing "I am not sure", "I do not have enough information", or suspicious emptiness are natural escalation signals. These catch the obvious failures with no model cost.
  • Minimal content check. A one-sentence answer to a question that should produce three paragraphs is a strong escalation signal. The cheap model probably bailed early.

The advantage of static rules is cost: the verifier is essentially free. The disadvantage is coverage. A well-formed JSON response can still be factually wrong. A confident-looking paragraph can be hallucinated. Static gates catch formatting failures and overt refusals, but they miss subtle quality problems.

Static cascading is the right starting point for structured-output paths where the schema is the acceptance criterion. Think: data extraction, classification, structured API responses. One production deployment I know runs a cascade with Haiku first and a JSON schema verifier, and sees 85% of requests resolved at the cheap tier with zero quality regression on their eval set.

Pattern 2: classifier-based cascading

When static rules do not provide enough confidence, the next step is a difficulty-aware router that decides which tier handles the request before generation. This is more routing than pure cascading, but the two patterns overlap in production.

A classifier is trained on query features (text embeddings, intent tags, user-tier metadata) to predict whether the cheap model will produce an acceptable answer. Easy queries go straight to the cheap model. Hard ones skip the cheap tier entirely and go to the expensive model.

FrugalGPT formalised this as a learned verifier that predicts answer quality without calling the expensive model. On news classification, reading comprehension, and scientific QA, it matched GPT-4 accuracy with up to 98% cost reduction. More recently, UCCI published a calibration-first router that maps token-level margin uncertainty to error probability using isotonic regression. On a production NER workload of 75,000 queries, it cut cost by 31% at the same F1 score as using the large model alone.

The trade-off: a classifier adds latency (10-50ms for an embedding lookup) and implementation complexity. But it avoids the structural cost problem of pure cascading -- the fact that every escalated request pays for the cheap model's generation before the expensive model runs. A good classifier routes hard queries directly to the expensive model, skipping the cheap attempt.

Pattern 3: fallback cascade with confidence scoring

The third pattern is the one most teams end up with. Start with the cheapest model, generate a response, and score the response with a confidence or self-consistency check. If confidence is below a threshold, escalate to the next tier. Repeat up to the frontier model.

Confidence scoring methods:

  • Token-level probability. The model's own output token probabilities are a useful signal, though they are miscalibrated. UCCI showed that calibrating these with isotonic regression reduces expected calibration error from 0.12 to 0.03, making them a near-optimal routing score.
  • Self-consistency. Generate multiple candidate responses (or sample multiple times from the cheap model) and measure agreement. High agreement means high confidence. Low agreement triggers escalation. This costs more tokens per query but provides a reliable signal without a separate verifier model.
  • Judge model cascade. Use a small, cheap model (Claude Haiku or similar) as a quality judge. The judge scores the cheap model's output. If the score is below threshold, escalate to the large model. This is what Cost's eval-gated downgrade does: it replays your real traffic, judges with Haiku, and only surfaces a model swap after the judge confirms quality.

RouteNLP adds a fourth dimension: closed-loop optimisation. When the cascade escalates a query, it logs the failure, clusters similar escalation cases, and creates targeted training data to improve the cheap model or the router on that query type. Over an 8-week deployment processing 5K queries per day, this loop doubled the cost improvement of untargeted distillation -- 21.7% vs 9.4% at equal data volume.

The monitoring gotchas

Cascade savings are easy to see on day one. The erosion that kills them is invisible and arrives slowly.

Silent escalation drift. A verifier that was tuned correctly six weeks ago can drift. The cheap model gets updated and its output distribution shifts slightly. A provider-side formatting change widens a response field. Suddenly the verifier rejects more responses, the escalation rate climbs from 30% to 60%, and the blended cost creeps up. Each step is small enough to miss. Over two months, your cascade silently costs more than flagship-only.

Monitor the escalation rate as an SLO. Alert when it moves more than 5 percentage points from your baseline. The rate should be a chart visible on your monitoring dashboard, not a number you discover on the invoice.

Verifier regressions. If you use a judge model as your verifier, the judge itself can regress. A model update that improves overall quality can change the judge's scoring distribution. The escalation rate changes even though the underlying cascade quality is the same. Validate your verifier on a fixed eval set periodically, not just on live traffic.

Structural cost creep. Every escalated query in a pure cascade pays for both the cheap model's output and the expensive model's output. If your escalation rate drifts past 55-60%, you are better off using the expensive model directly for everything. A/B test the cascade against always-flagship periodically. If cascade cost exceeds 60% of flagship cost, your verifier or cheap model selection needs attention.

Silent quality regressions. The opposite problem: your verifier becomes more lenient over time, the escalation rate drops, the blended cost looks great, but quality is quietly degrading. This is harder to catch because the cost metric looks better. You need a separate quality monitoring pass on a held-out set to detect it.

Where Cost fits

We built Cost to answer the question that cascading requires: can I swap this model without breaking quality? Cost wraps your Anthropic, OpenAI, and Gemini clients, attributes every euro to a route or feature, and when a cheaper model could do the job, it replays your real traffic against that model, judges the output with a small verifier, and only surfaces the swap after the verifier confirms it passes. The same verification-first approach applies to cascading: before you route a fraction of traffic through a cascade, Cost can tell you what fraction would have escalated and whether the responses at the cheap tier are good enough.

Cascading is the highest-leverage cost optimisation for production LLM deployments. The three patterns above cover the spectrum from a five-minute schema-validator setup to a closed-loop system that improves its own router. Start with deterministic gates, add confidence scoring when you need coverage, and only build a classifier router when the scale justifies the complexity. The numbers are clear enough that waiting is the expensive option.

If you are running Claude, Sonnet 4.6 handles 70% of structured production traffic at roughly half the cost per task of Opus 4.8, and a small fraction of Fable 5. The savings are sitting there. The only thing standing between you and them is knowing which traffic is the easy 70%. That is the question model cascading answers.

Share

Start saving today

Know exactly where your LLM money goes.

Cost wraps your Anthropic, OpenAI, and Gemini clients in one line. Free tier covers 100,000 events per month. No card needed.

Start tracking your spend