Home ยป How to Choose a Model Per Task Instead of Defaulting to One
How to Choose a Model Per Task Instead of Defaulting to One

How to Choose a Model Per Task Instead of Defaulting to One

Figures on this page were verified 31 August 2026 against the providers' own documentation. Pricing, context windows and rate limits change without notice, so confirm any number against the provider before you rely on it. Tell us if something here is out of date.

Most systems send every request to one model, and that single decision is usually the largest avoidable line on the bill. Classification, extraction and routing do not need a frontier model. Reserve the expensive one for work where a wrong answer is expensive, and route everything else down.

Route on consequence, not on difficulty

The useful question is not “is this task hard?” It is “what does a wrong answer cost?” A task can be trivial and still deserve the best model if the output goes straight to a customer. A task can be subtle and still suit a cheap model if a human reviews it or the pipeline validates it.

TaskCost of being wrongTier
Intent classification into fixed labelsLow, schema-constrainedCheapest
Field extraction from documentsLow, validated downstreamCheapest
Routing to the right handlerLow, recoverableCheapest
Summarising for internal reviewModerate, a human reads itMid
Drafting content a person editsModerateMid
Multi-step agentic work with toolsHigh, errors compoundTop
Anything shown to a customer unreviewedHighTop

Agentic work belongs at the top for a reason that is easy to miss: errors compound. A model that is right 95% of the time per step is right about 60% of the time across ten steps. Saving on the model and paying for ten retries is a false economy.

What the spread is worth

The gap between tiers is large enough to change architecture decisions.

ModelInput $/MOutput $/MBlended 3:1
Claude Opus 5$5$25$10.00
Claude Sonnet 5$2$10$4.00
Claude Haiku 4.5$1$5$2.00
GPT-5.6 Luna$0.20$1.20$0.45
Verified 31 August 2026 against Anthropic and OpenAI pricing. Full table in the model comparison.

That is a 22x spread between the top and bottom rows. If 80% of your traffic is classification currently going to a frontier model, moving it down is not a marginal saving, it is most of the bill.

Implement the router as configuration

ROUTES = {
    "classify":  "claude-haiku-4-5",
    "extract":   "claude-haiku-4-5",
    "summarise": "claude-sonnet-5",
    "agent":     "claude-opus-5",
}
DEFAULT = "claude-sonnet-5"

def model_for(task: str) -> str:
    return ROUTES.get(task, DEFAULT)

Keeping this in one table rather than scattered through call sites means you can re-tier the whole system in a single commit when prices or models change, which on current release cadence is every few months.

Test the downgrade before you ship it

Do not move a task down on intuition. Take a hundred real inputs, run both models, and compare against the outcome you care about, which for constrained tasks usually means exact match against a label or schema. If the cheap model matches on 98 of 100, the saving is real. If it matches on 85, you have moved cost from the API to your support queue.

Run that comparison through the batch API at half price, since nothing is waiting on it. And before choosing a tier at all, price your real volumes in the cost calculator rather than assuming which model dominates the bill, because it is often not the model.

Frequently asked questions

How do I decide which model a task needs?

Route on the cost of being wrong rather than on how hard the task looks. A trivial task going straight to a customer may deserve the best model; a subtle task that a human reviews or a schema validates usually does not.

Why do agents need the strongest model?

Because errors compound. A model that is right 95% of the time per step is right only about 60% of the time across ten steps, so saving on the model and paying for repeated retries is a false economy.

How much is there to save?

The spread between the top and bottom of the current lineup is about 22x on blended price. If most of your traffic is classification going to a frontier model, moving it down is not a marginal saving, it is most of the bill.

Chirag Darji

Chirag Darji is the founder of VGraple and the editor of It's About You. He writes about the LLM APIs and developer tooling he works with, and every figure published here is checked against the provider's own documentation before it goes live, with the date it was verified shown on the page.

More Reading

Post navigation