Business

Small Model First, Larger on Retry: Routing by Tier

Antonio Evans9 min read

A two lane conveyor drawn in flat isometric style on a light gray background.
Key points

Key points

  1. 1Blended cost per resolved ticket equals the small model's cost per ticket plus the failure rate times the retry cost, so the failure rate drives the outcome more than the price gap.
  2. 2A 40 percent failure rate with a retry that costs 10 times a first pass still lands roughly five times above a clean first pass, and a 30 percent failure rate with a 20 times retry lands near seven.
  3. 3The first measurement you need is the resolved rate per failure type, because a small model that fails on easy tickets poisons the whole economics.
  4. 4Set the escalation gate on a scored signal plus a corroborating check, not on the model's own verbalized confidence, and cap retries at one before routing to a person.

The decision in one line, and why the arithmetic surprises people

Route the first pass to the cheapest model that clears your quality bar on easy tickets, and send only the failures to the larger one. That is the whole design. The surprise is how little cost control you get from the price list alone.

Let c1 be the small model's cost for one first-pass attempt on one ticket, p the share of tickets the first pass fails to resolve, and c2 the cost of one retry on the larger model. Then:

cost per resolved ticket = (c1 + p * c2) / (1 - p * r) where r is the share of retries that also fail and fall back to a human. If every retry resolves (r = 0), the denominator vanishes and the formula collapses to the short answer: c1 + p * c2.

That distinction matters. Many teams build the model with r = 0 and then wonder why production costs run above the spreadsheet. A retry is not a resolution; it is a second attempt. Your ticket resolution rate, meaning the share of tickets actually closed, is the number that governs the bill, and teams typically see overall resolution rates in the 70 to 80 percent band, with SaaS and telecom running lower at 60 to 70 percent per MetricHQ's benchmark notes. Set your assumed r from your own transcripts, not from hope.

Worked example: 3,150 input and 400 output tokens per ticket

The token profile comes first, because the retry carries more of it. A first pass typically reads the ticket and the retrieved knowledge article and writes a short reply. A retry reads all of that plus the failed attempt and its critique, so it is materially larger on the input side.

Take a profile in line with the support-ticket workload used in Silicon Data's token cost guide, which frames a typical request at roughly 3,150 input tokens and 400 output tokens:

Line itemInput tokensOutput tokens
First pass (small model)3,200400
Retry (larger model)4,600550

The retry is 44 percent larger on input because it carries the first attempt, the critique and the retrieved passages again. That is the single most under-modelled line in most cascade budgets: teams price the retry at the same token volume as the first pass and understate the bill by a third or more.

Now apply a price ratio. Suppose the small model is priced at 1 unit of input cost and the larger one at 20 units for the same input, with a similar output multiple. Scale by whatever absolute rate you actually pay: BenchLM's pricing table shows the frontier tier sitting one to two orders of magnitude above the cheap tier across vendors, which is exactly the range that makes this architecture tempting. Treat the numbers below as ratios, not as a quote.

Scenarioc1 (units)Retry ratiopCost per resolved ticket (units)Multiple of clean first pass
All-small, 40% fail, no retry1.0n/a0.401.01.0 (but 40% unresolved)
Small first, large retry1.020x0.103.03.0x
Small first, large retry1.020x0.307.07.0x
Small first, large retry1.020x0.5011.011.0x
Small first, mid retry1.05x0.302.52.5x

Read the third row against the second. The price ratio did not change. The failure rate went from 10 to 30 percent and the bill went from 3 to 7 units. This is the insight the price list hides: the break-even moves with the failure rate, not with the price gap. A 30 percent failure rate on a retry that costs 20 times a first pass still multiplies your bill by roughly seven relative to a clean first pass.

The same arithmetic says something less comfortable. If your all-large baseline costs, say, 12 units per ticket for one pass, then the small-first design at 30 percent failure (7 units) is worth doing but saves under half. At 50 percent failure (11 units) it saves almost nothing while adding a second round trip and a second chance to say something wrong. Run that comparison before you build the router.

The failure rate is not uniform, which changes where you send the retry

A single blended failure rate is a planning number. It is a terrible routing number. Split it by failure type and the design changes.

The useful split is between failures the first pass could not have avoided (hard tickets: multi-turn reasoning, conflicting policy, account-specific exceptions) and failures it should have avoided (easy tickets the small model fumbled). The first category justifies the larger model. The second is a prompt, retrieval or tool-calling defect, and paying a frontier price to paper over it is how cascades get expensive without getting better.

Concentrate's writeup on confidence-threshold escalation makes the structural point well: cascading beats upfront routing because nobody has to predict how hard a query is before seeing an answer. But it also flags the tradeoff that matters here, that cascade performance is limited by paying the cheap model before escalation. If the cheap model is failing on tickets it should handle, you are paying twice for the same mistake.

So instrument the failure reasons before you tune the gate. Tag every failed first pass with one of a short list: retrieval miss, policy gap, tool error, misunderstood intent, out-of-scope request. VocalOps frames these as the failure modes worth testing, and the list transfers directly to text support: misunderstanding, insufficient knowledge, impossible action, higher-risk request. If retrieval misses dominate, fix retrieval. If out-of-scope requests dominate, those tickets should never have gone to the small model at all.

That last point is where a decision rule earns its keep. Route by type first, then by score:

  • Never first-pass: refunds, billing disputes, security or account-access issues, legal or compliance language, safety concerns. These escalate on topic alone, before any model runs. Conduit's escalation framework treats these as hard-coded rules that no confidence score can override, and SearchUnify's escalation guide lists severity as the first trigger for the same reason.
  • Small first, escalate on score: the long tail of routine how-to, status and configuration questions.
  • Large first: anything the small model has failed on before, clustered by intent, once you have the data to see the cluster.

This type-first split lowers the effective failure rate you are paying for. Moving 8 percent of tickets out of the first-pass pool and straight to the larger model costs more on those tickets and less overall, because the retry attempt is skipped entirely.

Setting the gate: the signal matters more than the threshold

The threshold is one number and it is easy to obsess over. The signal feeding it is where the money is.

Verbalized confidence, where the model says it is 80 percent sure, is the weakest option available. The userflow escalation guide cites work testing model-stated confidence and reports an average AUROC of 62.7 percent for separating right from wrong answers, which is better than chance and nowhere near good enough to run a budget on. The same guide recommends pairing the score with a signal the model cannot inflate: no passage clearing your retrieval threshold, contradictory top passages, an intent mapping to no configured topic, or the user restating the question.

Here is a gate that encodes that, written as plain policy rather than framework code:

escalate_to_large(ticket, first_pass):
  if topic in HARD_ESCALATE:            return "large, skip first pass"
  if first_pass.tool_error:             return "large, with error attached"
  if first_pass.retrieved == 0:         return "large, retrieval was empty"
  if first_pass.top_score < T:          return "large"
  if first_pass.score_gap < G:          return "large"
  if user_restated_question:            return "large"
  if sentiment_negative_for(2 turns):   return "large, flagged for human"
  return "accept"

# on the retry, one attempt only
if retry_failed: route to human queue with full transcript

Two details carry real money. First, the score gap G: a high top score with a close second candidate is a weak answer, and comparing the top two intents catches cases a single number misses, an approach explained in this walkthrough of confidence scoring and escalation logic. Second, the retry cap. One retry, then a human. Retries beyond the first almost never converge and each one costs full freight.

There is also a structural argument for stopping at two tiers. Bouchard's analysis of cascade depth optimized sequences from a pool of eight models and found that allowing more than two models did not improve mean accuracy in 118 of 135 comparisons across scorers and datasets, adding at most 0.43 percentage points. The workshop version of the same work goes further, finding that a lightweight router that chooses before generation beats the best cascade policy on four of five datasets. If you are about to build a three-tier waterfall to chase the last few points, measure a pre-generation router against it first.

A cost ledger you can read in one screen

The formula is only useful if the numbers going into it are observed. Build the ledger before the router.

MetricDefinitionWhy it changes the routing decision
Tokens in, first passMean and p90 per ticket, per tagp90 drives your worst tickets; the mean hides them
Tokens in, retryIncludes first attempt and critiqueUsually 30 to 60 percent above first pass
Resolved rate, first passShare of small-model answers accepted without editThe 1 - p in the formula
Resolved rate, retryShare of escalations closedThe r that sets the denominator
Failure reason mixShare per tag: retrieval, policy, tool, intent, scopeDecides fix versus escalate
Escalation rateShare of tickets that reach the retryWatch it weekly; drift is silent
Cost per resolved ticketThe formula, computed from the rows aboveThe only number worth reporting upward

Two failure modes hide in this table. A rising escalation rate with flat resolution means the gate is firing more often without buying quality, the classic over-escalation signature. A falling escalation rate with falling resolution means the gate got looser and someone stopped reading the transcripts. Both look like normal operation in a dashboard, which is why Userflow's guidance recommends reviewing contained and escalated conversations together: tuning one signal alone fixes one problem and creates another.

Worth adding: HubSpot's documentation of its customer agent handoff is a useful reference for what a handoff record should carry, because the retry and the human escalation should both inherit the first pass's context rather than starting cold. A retry that re-reads the ticket from scratch wastes input tokens and produces a second independent guess.

Where the saving actually lands, and when to skip the small model

The saving is real but bounded, and it concentrates in one place: the tickets the small model resolves correctly on the first attempt. Everything else is overhead.

Four rules follow from the arithmetic.

Rule one: measure before you route. If your first-pass resolved rate is below 60 percent on the routine bucket, the cascade is not yet a cost story, it is a defect story. Fix retrieval and prompts first. The formula's denominator punishes a mid-range failure rate hard.

Rule two: choose the retry model for a different job, not a bigger one. The retry sees a failed attempt plus a critique. That is a different task from answering cold, and it rewards a model that is good at critique-and-revise, not simply the most expensive option available. A mid tier at five times the first-pass cost with a 30 percent failure rate lands at 2.5 units per resolved ticket, against 7 for the 20-times tier at the same failure rate. Test both on your own failed transcripts before assuming the frontier tier earns its price.

Rule three: skip the small model where the topic is hard. The pre-generation router result above points the same way: paying the cheap model on tickets you know will fail is pure waste.

Rule four: cap retries at one and price the human fallback. The human queue is not free, and a cascade that pushes 15 percent of volume into it has traded a token bill for a labor bill. Model both.

Where this gets practical is the plumbing. Routing between two models means two providers, two sets of credentials, two billing relationships and two rate limits, and the retry lands on the model you call least often, so it is also the one whose key is most likely to have rotated. If you are standing up this pipeline, Quanta Inference exposes text, image, video, audio and embedding models through one OpenAI-compatible key with prepaid pricing in US dollars, which collapses the two-provider problem into one bill you can reconcile against the ledger above. Nothing about the routing logic changes; you just stop maintaining two integrations to run a two-tier cascade.

FAQ

FAQ

What is the formula for cost per resolved ticket in a two-tier cascade?

Multiply the failure rate by the retry cost and add the first-pass cost, then divide by one minus the share of retries that also fail and fall back to a human. The division is what separates a plan from a forecast. If you assume every retry succeeds, you will understate the bill whenever retries also miss.

How large should the price gap be between the small and large model?

Large enough to pay for the retry with change, and that is usually easy: the frontier tier commonly sits one to two orders of magnitude above the cheap one, as BenchLM's pricing table shows. The binding constraint is the failure rate, not the gap. At a 30 percent failure rate and a 20-times retry, you still land near seven times a clean first pass.

Which failures should the small model never attempt?

Refunds and billing disputes, security and account-access issues, legal or compliance language, safety concerns, and formal complaints. These escalate on topic before any model runs, because a wrong answer costs far more than the tokens saved. Conduit's escalation framework treats this as the non-negotiable layer that no confidence score can override.

Is a three-tier cascade worth building?

Usually not. Bouchard's analysis found that going beyond two models did not improve mean accuracy in 118 of 135 comparisons, adding at most 0.43 percentage points. Spend the effort on the gate and on pre-generation routing instead, which the workshop version found beat the best cascade policy on four of five datasets.

How do I know the gate is set correctly?

Compare a sample of escalated and contained conversations against known correct answers, and look for the point where your signal best predicts the small model's own mistakes. The userflow guide notes that stated confidence alone separates right from wrong answers weakly, so pair it with retrieval and behavior signals. Then watch the escalation rate and the resolution rate together weekly, because either one moving alone is a warning.

Sources

Sources

  1. Ticket Resolution Rate
  2. Understanding LLM Cost Per Token: A 2026 Practical Guide
  3. LLM API Pricing Comparison & Calculator (October 2026)
  4. Using Confidence Thresholds to Escalate Requests to a ...
  5. AI Receptionist Limitations and Safe Handoff | VocalOps
  6. When Should AI Hand Off to a Human?
  7. AI-Powered Escalation Management: Enhancing Customer ...
  8. AI Agent Human Escalation Criteria
  9. AI Agent Confidence Thresholds and Escalation Logic
  10. Is Escalation Worth It? On the Depth of LLM Cascades
  11. Is Escalation Worth It? A Decision-Theoretic ...
  12. Set up and customize customer agent's handoff process
About the author

About the author

Antonio Evans
Antonio Evans

Antonio Evans is the founder of Quanta Intelligence and a fractional CTO who builds HIPAA-ready AI systems for health and life-science companies. Before that he was technical co-founder of FriendsEAT for twenty years, CEO of Socialdraft, and a data engineer at IBM. Antonio lives with his dog Santino in Lisbon, Portugal.

All articles