HorizonLux · Model choice

Routing that holds up on quality, not just price

Cost is rarely the reason not to route. Undetected failure is. We build the validators and escalation that make a cheap model safe.

Get a cost review
Guides

Small Language Models vs LLMs: When the Cheap One Wins

Small language models vs LLMs, decided on cost per completed task. A small model breaks even at roughly 1 divided by how many times cheaper it is per call.

A break-even curve showing routed cost falling below frontier-only cost at a low small-model success rate

TL;DR

Small language models vs LLMs, or SLM vs LLM if you have met the acronym, is usually framed as a capability question. Treated as a cost question it has a precise answer, and the answer surprises people.

A small model needs to succeed roughly 1 divided by N of the time, where N is how many times cheaper it is per call. A small model that is 20x cheaper breaks even at about a 5% success rate. At 10x cheaper it needs 10%. At 4x cheaper it needs 25%.

That means the familiar warning, a weak model that fails and retries costs more than one strong call, is only true when the two tiers are close in price. Below roughly a 3x gap it holds. At a real small-versus-frontier gap it essentially never does.

So cost is almost never the reason not to route. The reasons are latency, added complexity, and undetected failure, which is the one that actually hurts.

Deciding which model handles what? We build routing with the validators and escalation logic that make it safe, not just cheap. See how we approach AI development.

Pick Two

Any two, never all three.

Flip any two.

Then try flipping the third.

Cheap

The invoice stays small

Fast

Answers while the user watches

Smart

Frontier-model quality

Key Takeaways

  • Break-even success rate is approximately 1/N, where N is the price ratio between the tiers.
  • At a 20x price gap, a small model only needs to be right about 5% of the time to be cheaper per completed task.
  • The "retries cost more than one strong call" warning is sound below a 3x gap and misleading above it.
  • Escalation only works on failures you can detect. A confidently wrong answer costs a user, not a retry.
  • Measure success on your own evaluation set; benchmarks measure general capability, not accuracy on one narrow task.
  • Two attempts then escalate is a reasonable default, since success is roughly independent across attempts.

SLM vs LLM: what actually separates them

A small language model carries roughly a few million to 15 billion parameters and is tuned for a narrow domain. A large language model carries tens of billions to over a trillion and carries broad general knowledge. Mistral 7B and Phi-class models sit on one side; GPT-4-class models, reported at around 1.76 trillion parameters, sit on the other.

Everything else follows from that gap:

Small language model Large language model
Parameters millions to ~15B tens of billions to 1T+
Runs on a single GPU, sometimes a phone a cluster, usually someone else's
Response time typically sub-second typically low seconds
Knowledge deep in one domain, thin outside it broad, shallower per domain
Price per call often 10x to 30x cheaper the reference price

There is no shortage of good explanations of this. Splunk covers parameters, training and bias; Red Hat covers data sets, resources and deployment. The line between the two is also fuzzy and moving: a 15B model is small this year and was large three years ago.

All true, and none of it tells you what to do on Monday.

So when to use a small language model is not really a capability question at all. The decision an engineer actually faces is narrower: I have one specific task. The small model is much cheaper and somewhat worse at it. Is that trade worth taking? That question has a number attached, and almost nobody computes it.

The arithmetic nobody runs

Small model vs large model cost has to be compared on cost per completed task, never cost per call. Cost per call is exactly the comparison that misleads, because it ignores what happens when the cheap model gets it wrong.

The realistic routed path is: try the small model, and if the output fails validation, try once more, and if it fails again, escalate to the frontier model. So:

expected cost = (small cost x expected attempts) + (escalation rate x frontier cost)

Run that across price gaps and a clean pattern falls out.

Small tier is Break-even success rate Roughly
20x cheaper 5% 1/20
10x cheaper 10% 1/10
4x cheaper 25% 1/4
2x cheaper 49% 1/2
1.5x cheaper 65% 1/1.5
Break-even success rate falling as the price gap between tiers widensFive bars showing the small-model success rate required to break even against a frontier model, plotted against how many times cheaper the small tier is. At a one and a half times price gap the small model must succeed about sixty five percent of the time. At two times it needs about half. At four times, a quarter. At ten times, a tenth. At twenty times, only about five percent. The required success rate falls as roughly one divided by the price ratio, so the wider the gap between tiers the less accurate the cheap model needs to be. A shaded band marks the region below a three times gap, where the common warning that retries cost more than one strong call is genuinely true.Success rate a small model needs to break eventhe warning is true in here65%1.5x49%2x25%4x10%10x5%20xhow many times cheaper the small tier is per callBreak-even is roughly 1/N. Widen the gap and accuracy matters less, not more.
The shaded region is where the usual advice applies. Most real small-versus-frontier decisions sit far to the right of it.

The break-even success rate is about 1/N. That is the whole decision in one line, and it is far below where intuition puts it. Ask an engineer how good a small model has to be before routing is worth it and most say 80% or 90%. At a 20x gap the real answer is 5%.

The reason is simple once you see it: a failed cheap attempt costs almost nothing next to the frontier call it was trying to avoid. Five failed attempts on a model that is 20x cheaper still cost a quarter of one frontier call.

Put your own prices and measured accuracy in and the calculator returns the threshold for your task.

Share of attempts that produce an acceptable answer, measured on your own evaluation set rather than guessed.

Then hand the task to the frontier model.

Refine the inputs

Rarely 100%. Its own retries are priced in too.

Break-even success rate
5%

Above 5% the routed path is cheaper per completed task. The small tier is 22x cheaper per call, and the break-even lands near 1 divided by that.

Cost per completed task
frontier only$0.0124
small, then escalate$9.0e-4
1.15 small attempts per task, and 2.3% of tasks escalate anyway.
Saves $5,736 a month.
Open the full calculator

Cost per completed task, as the small model gets better

The dashed line is frontier-only. Everywhere the bars sit below it, routing is cheaper. Note how early that happens.

5% successfrontier-only cost, dashed100%

So the common warning is wrong?

Not wrong. Scoped more narrowly than it is usually stated, including by us.

The warning holds when the tiers are close together. Routing between a frontier model and a mid-tier model at a 2x or 3x gap is genuinely marginal, and a small accuracy drop wipes out the saving. If you are choosing between two premium models, retry cost is a real objection.

It stops holding when the gap is large. Between a frontier model and a genuinely small model, NVIDIA's research on small language models in agentic systems puts the cost difference at 10x to 30x on narrow tasks. In that range the arithmetic simply does not support the objection.

Cost per completed task, frontier only against a routed path split into attempts and escalationTwo bars comparing cost per completed task. The left bar is a frontier-only path, drawn full height. The right bar is the routed path at a thirty percent small-model success rate and is roughly half as tall. It is split into two parts: a very thin band for the small-model attempts themselves, and a larger band for the tasks that failed twice and escalated to the frontier model anyway. The point is that even when the small model fails most of the time and half the work escalates, the total still comes in well below frontier-only, because the failed cheap attempts contribute almost nothing to the bill.Cost per completed task, small model succeeding only 30% of the timefrontier only1.00xescalated taskssmall attempts0.56xHalf the work escalated, and it still cost 44% less. The green sliver is why.
The thin green band is every failed attempt combined. That is the cost people overestimate.

The honest version: cost is rarely the reason not to route. Three other things are.

The three real objections

Undetected failure

Escalation only rescues you from failures you can see. A schema violation, a tool call that will not parse, a low confidence score, a failed assertion: all detectable, all cheap, all recoverable.

A confidently wrong answer that passes validation is none of those things. It reaches the user. The cost of that is not a retry, it is a support ticket, a bad decision, or a lost customer, and no calculator prices it.

Tasks arranged by how visibly they fail, deciding which can be routed to a small modelA horizontal spectrum running from loud failure on the left to silent failure on the right. Tasks are placed along it. Extraction into a fixed schema, classification with a fixed label set, and tool selection all sit at the loud end, because a wrong answer trips a validator, a parser or a label check and escalates itself automatically. Summarising a known document type sits in the middle, detectable only if assertions on length and format are added. Open-ended reasoning and customer-facing advice sit at the silent end, where a confidently wrong answer passes validation and reaches the user. The decision rule is that tasks on the left can safely route to a cheap model because failure is caught, while tasks on the right stay on the frontier model no matter what the cost arithmetic says.Route by failure visibility, not by task difficultyFAILS LOUDLYa validator catches it, so escalation firesFAILS SILENTLYit passes validation and reaches the userschema extractionclassificationtool selectionsummarisingopen-ended adviceroute to the small modelkeep the frontier modelEscalation can only rescue you from failures you can see.
Nothing here is about how hard the task is. It is about whether you would notice being wrong.

This is the objection that should actually govern the decision. Route the tasks where failure is loud. Keep the frontier model on the tasks where failure is silent. Classification with a fixed label set fails loudly. Extraction into a strict schema fails loudly. Open-ended advice fails silently, which is why it stays on the expensive model regardless of arithmetic.

Latency and complexity

This is the objection worth taking most seriously, and it is the one the cost arithmetic cannot help you with.

Notice what the break-even rule above actually implies: at a real small-versus-frontier price gap, cost almost always favours routing. A number that says yes to nearly every case is not a decision tool. Latency is different, because it genuinely varies by use case, which makes it the better discriminator.

The raw numbers favour the small model. A small model typically answers in a fraction of a second where a frontier model takes low single-digit seconds, and on-device inference removes the network round trip entirely. But routing does not buy you the small model's latency. It buys you the small model's latency plus, on failures, a second attempt and an escalation.

Routing is the fastest path in the common case and the slowest path in the worst caseFour horizontal bars showing elapsed time for one completed task. A small model used alone answers in about three tenths of a second. A frontier model used alone takes about two and a half seconds. A routed request that succeeds on the first attempt matches the small model at three tenths of a second, which is the common case. A routed request that fails twice and escalates is drawn as three segments end to end, two short small-model attempts followed by a full frontier call, totalling more than three seconds, which is visibly longer than simply calling the frontier model in the first place. The comparison shows that routing improves the average and worsens the tail, so latency-sensitive interfaces should be judged on the worst case rather than the mean.Time to one completed tasksmall model only~0.3sfrontier model only~2.5srouted, succeeds first try~0.3s ← the common caserouted, worst caseattempt 1 · attempt 2 · escalation~3.1sThe worst routed case is slower than never routing at all.Routing improves the average and ruins the tail. Judge it on the tail.
Cost says route almost every time. Latency is the axis that actually discriminates.

Two attempts plus an escalation is three round trips in the worst case. On a background job that is free. On a keystroke-latency interface it is not, and the honest answer there is often to run the small model alone with no escalation, or the frontier model alone, rather than a router that is fast on average and terrible at the 95th percentile.

And routing is a system with more moving parts: a validator, a threshold, a fallback path, and two sets of prompts to keep in step. That is real engineering time, and on a small workload the saving will not repay it.

The evaluation you have not built

You cannot compute any of this without knowing your small model's actual success rate on your actual task, and almost nobody has that number.

Benchmarks will not give it to you. They measure broad capability; you need accuracy on one narrow job, which is usually far higher than the benchmark implies, because a specialist on its home turf beats a generalist. A model that looks mediocre on a leaderboard can be excellent at extracting three fields from your invoices.

Take two or three hundred real inputs, run them, and have a validator or a human mark each output acceptable or not. That afternoon of work is what turns this from an opinion into a decision.

Which tasks route well

Task Route to small? Why
Classification, tagging, intent detection Yes Fixed label set, so failure is detectable and the task is narrow
Extraction into a fixed schema Yes Schema validation catches failure for free
Tool selection and argument construction Yes A malformed call will not parse, so it escalates itself
Short templated rewrites Yes Bounded output, quality gap negligible on most surfaces
Summarising a known document type Usually Detectable if you assert on length and format
Open-ended reasoning or planning No Failure is silent and the task is what frontier pricing is for
Customer-facing advice No A confidently wrong answer costs more than the model saved
Anything with no automatic validator No Without detection, escalation cannot fire

The pattern in that table is not task difficulty. It is failure visibility.

Quantization and distillation

Two related routes to a cheaper model, often confused.

Quantization reduces the numerical precision of an existing model's weights, cutting memory and speeding inference with a modest accuracy cost. It changes nothing about which model you run, only how efficiently it runs, and it matters mainly if you self-host. On an API you are buying whatever precision the provider serves.

Distillation trains a smaller model to imitate a larger one on a specific task. This is the one that produces genuinely surprising results, because a distilled specialist can beat a general-purpose frontier model on its narrow task while costing a fraction. It also requires training data, an evaluation set, and ongoing maintenance, which is a real project rather than a config change.

Where quantization actually shows up on a bill is self-hosting. A quantized model needs materially less GPU memory, which is what decides how many concurrent requests one card serves and therefore what your utilisation looks like. That is the term the self-hosting break-even is most sensitive to, so quantization moves the crossover volume rather than the per-token price.

The sequencing that works: measure whether an off-the-shelf small model already clears your break-even. It very often does. Distil only when it does not and the volume justifies the project, and quantize only when you are running the hardware yourself.

How we decide this at HorizonLux

HorizonLux is a software development company specialising in AI, and this decision comes up on essentially every build, so we run it the same way each time.

  • Failure visibility first, price second. We ask what happens when this step is wrong and whether we would know. If the answer is no, the task does not route regardless of the saving.
  • The evaluation set is built before the routing is. Two or three hundred real inputs with acceptable-or-not labels. Without it we are guessing, and the whole argument above collapses.
  • Break-even is computed, not assumed. One divided by the price ratio, checked against measured accuracy.
  • Escalation is a first-class path, with its own logging, so we can see how often it fires and whether the small model is drifting.
  • Cost per completed task is the metric, at the 95th percentile as well as the mean.

What to do this week

  • Pick one narrow, high-volume task in your system. Classification or extraction is the safest first candidate.
  • Compute the price ratio between your current model and a small one, then take 1/N. That is your target.
  • Read it against the tier you would actually replace, since the gap decides everything: see self-hosting vs API if the alternative is running the model yourself.
  • Label two hundred real inputs and measure the small model against them. Compare to the target.
  • Check failure visibility. If a wrong answer would pass silently, stop here and keep the frontier model.
  • Ship it behind an escalation path and log how often escalation fires.

The framing that survives all of this: the question is not whether a small model is as good as a frontier model. It is not. The question is whether it is good enough on one narrow task where you can detect its mistakes, and the bar for that is far lower than it feels. The wider sequence this fits into is our guide to LLM cost optimization, and if agents are where your spend concentrates, AI agent costs covers why routing compounds there.

Want routing that holds up on quality, not just on price? We build the validators, thresholds and escalation logic that make a cheap model safe to use. See how we approach AI development, or tell us what your invoice looks like.

Frequently asked questions

What is the difference between a small language model and an LLM?

Size and scope. An LLM carries hundreds of billions of parameters and broad general knowledge; a small language model carries roughly a few million to 15 billion and narrower domain knowledge. The practical consequences are that the small one runs faster, costs 10x to 30x less per call on narrow tasks, can run on modest hardware, and is worse at anything requiring broad reasoning.

When should I use a small language model instead of an LLM?

When the task is narrow, high-volume, and fails visibly. Classification, extraction into a fixed schema, tool selection and short rewrites all qualify, because a wrong answer trips a validator and escalates itself. Keep a frontier model for open-ended reasoning and anything customer-facing where a confidently wrong answer would pass unnoticed.

How much cheaper are small language models?

Typically 10x to 30x per call on the narrow tasks they suit, according to NVIDIA's research on small models in agentic systems. The saving on cost per completed task is smaller than the per-call figure, because some share of tasks escalates to the frontier model anyway, but at a 20x gap even a fairly inaccurate small model comes out ahead.

Does a cheap model that retries end up costing more?

Only when the two tiers are close in price. Below roughly a 3x gap the retries can genuinely outweigh the discount. Above it they do not: break-even success rate is about 1 divided by the price ratio, so at 20x cheaper the small model needs to succeed only about 5% of the time. Cost is rarely the real objection to routing.

What is model distillation?

Training a smaller model to imitate a larger one on a specific task, so the small model inherits capability it could not learn from general training alone. A distilled specialist frequently beats a general-purpose frontier model on its narrow task at a fraction of the cost. It needs training data, an evaluation set and maintenance, so try an off-the-shelf small model first: it often already clears the break-even.

Does quantization reduce API costs?

Not directly. Quantization lowers the numerical precision of model weights to cut memory and speed up inference, which matters when you run the model yourself. On a hosted API you pay the provider's published rate regardless of the precision they serve internally. Quantization is a self-hosting lever, not an API one.

Are small language models better for AI agents?

Often yes, and it is why this term is growing. An agent multiplies every per-call decision by its step count, so a 10x cheaper model on a twelve-step loop compounds into a different bill entirely. NVIDIA has argued small models are the practical path to scalable agentic systems for exactly this reason. The caveat is unchanged: route only the steps whose failures you can detect.

How do I measure whether a small model is good enough?

On your own data, not a benchmark. Take two or three hundred real inputs from the specific task, run them through the small model, and have a validator or a human mark each output acceptable or not. That percentage is what you compare against your break-even. Benchmarks measure general capability and routinely understate performance on one narrow job.

Sources

Related articles

More on guides from the HorizonLux team.

Routing that holds up on quality

Cost is rarely the reason not to route. Undetected failure is. We build the validators and escalation that make a cheap model safe.

Prefer email? [email protected]