For engineers picking a model
Claude Opus vs Sonnet vs Haiku: how to choose
Sonnet is the sensible default. It carries the best cost/capability balance for the bulk of real work, so start there. Route down to Haiku for cheap, high-volume, latency-sensitive tasks, and reach up to Opus only for the hardest reasoning and complex multi-step planning where answer quality clearly dominates cost.
Model choice is a cost-control lever, not a one-time setting. The skill is matching each task to the cheapest model that still gets it right, then routing between them inside one system.
The Claude model family, at a glance
Before the head-to-head, here is the full current roster. Claude ships as a tiered family — you pick a tier by how hard the task is and how much speed and unit cost matter. Each model has a canonical API id (the string you pass to the API or to AWS Bedrock), a place on the strength-versus-speed spectrum, and a price per million tokens.
| Model | API id | Positioning | Input $/1M | Output $/1M |
|---|---|---|---|---|
| Haiku 4.5 | claude-haiku-4-5-20251001 |
Fastest and cheapest; built for high-volume sub-tasks | $1 | $5 |
| Sonnet 5 | claude-sonnet-5 |
Balanced everyday workhorse; most agentic Sonnet yet | $3* | $15* |
| Opus 5 | claude-opus-5 |
Strongest reasoning and planning (current default Opus tier) | $5 | $25 |
| Opus 4.8 | claude-opus-4-8 |
Previous-generation Opus; still served at the same rate | $5 | $25 |
| Fable 5 | claude-fable-5 |
Anthropic's top-priced tier, built for long-horizon agentic work — slower, and 2× Opus 5's rate | $10 | $50 |
* Sonnet 5's $3 / $15 is the standard rate, which takes effect 1 September 2026. Introductory pricing of $2 / $10 per million input/output tokens is in effect through 31 August 2026, so that is what you are billed today — budget against the standard rate, reconcile against the introductory one. Token rates are identical on the Anthropic API and on AWS Bedrock's global endpoints; from Sonnet 4.5, Haiku 4.5 and Opus 4.5 onward, Bedrock's regional endpoints and its geo inference profiles (US, EU, JP, AU) add a 10% premium, and the first-party API applies the same 1.1x when you pin inference_geo: "us" on Claude 4.6 and later — data residency costs 10% on either platform, so it is not a reason to prefer one. The five canonical ids above are what to pass and to cite. A sixth model, Mythos 5 (claude-mythos-5), shares Fable 5's capabilities, specs and $10 / $50 price — but not its API surface. Fable 5 carries safety classifiers that can decline a request (as does Opus 5), returning stop_reason: "refusal" as a successful HTTP 200, with a fallbacks parameter and fallback credit for retrying on another model; Mythos 5 does not include those classifiers, so none of that applies to it. It is not generally available: access is invitation-only, limited to approved customers in Anthropic's Project Glasswing, so it is not a model you would route to in a normal build.
Two pricing wrinkles apply across the family — a newer tokenizer that emits more tokens per input, and Opus's premium "Fast mode" (available on Opus 5 and Opus 4.8, priced separately) — covered with the full rate card at what a Claude agent actually costs.
Choose it when
Mapped to the call you actually have to make: reach for Haiku on high-volume, latency-sensitive work (classification, extraction, cheap tool calls); default to Sonnet for most coding, drafting, and routine agentic tasks; reserve Opus for the hardest reasoning and multi-step planning, where the quality of the answer dominates the cost of producing it. The per-model rate table lives on the cost page — this page is about which one to reach for.
How to choose
Don't start from "which model is best" — start from the task. Most decisions fall out of three questions:
1. How hard is the reasoning?
If the task is pattern-shaped — classify this, extract these fields, call this tool with these arguments — a small model handles it well, and you should not pay more for headroom you don't use. Haiku is built for exactly this. As the task needs more chained reasoning, sustained context, or judgment, move up to Sonnet. Reserve Opus for problems where a wrong answer is expensive and the path to a right one is genuinely hard.
2. How sensitive is it to latency and volume?
High-throughput, user-facing, or per-request work magnifies both speed and unit cost. There, the cheaper, faster model is often the better engineering choice even if a larger model is marginally more capable. Batch and background work tolerate a slower, stronger model.
3. Does a stronger model change the outcome?
This is the deciding question for Opus. If Sonnet already reaches the correct outcome reliably, Opus buys you nothing but a larger bill. Spend the extra only where it measurably moves quality on the tasks that matter — and confirm that with evals, not vibes.
Routing and cost
The strongest single lever is a routing pattern: use Opus only where it changes the outcome, and route sub-tasks down to Sonnet and Haiku. A planner step might run on Opus to decompose a hard problem, while the many smaller execution and extraction steps it spawns run on Sonnet or Haiku. You get the quality where it counts without paying Opus rates for the whole pipeline.
The cost spread makes this worth doing. On input, the ratio across the three models is 5:3:1 — Opus to Sonnet to Haiku. Put plainly, Haiku's input is about five times cheaper than Opus and three times cheaper than Sonnet; the output spread runs the same way ($25 / $15 / $5). In a multi-turn agent that re-sends a growing context every iteration, those input multiples compound fast, so pushing routine sub-tasks down a tier is one of the largest savings available to you.
As-built: the coach implements this exact decision tree
This is the decision our own coach makes on every call. modelFor() in src/lib/llm.ts is a plain switch over a Role type, and each role is one of the three questions above answered in advance: hint (cheap, high-volume, pattern-shaped) routes to Haiku 4.5; tutor and grader (the everyday reasoning and rubric-judging work) route to Sonnet 5; eval (offline eval/judge work, where a wrong score is expensive) routes to Opus 5. Nothing routes to Opus by default "to be safe" — that's the exact mistake this page warns against, and we priced our way out of it by keeping the switch narrow.
The per-model rates above are the live figures in src/lib/cost.ts, and wireModel() maps each canonical id to its OpenRouter slug on the wire — the one place provider-naming drift is absorbed, so a slug change never touches routing logic. We picked a static switch over a trained router deliberately: our request classes are fixed by which part of the coach loop is calling, so a classifier would add latency without adding information. See LLM routing for when that trade-off flips.
- Anthropic — models and pricing documentation (platform.claude.com/docs): per-million-token input/output rates for Claude Haiku 4.5 ($1 / $5), Sonnet 5 ($3 / $15 standard, with an introductory $2 / $10 through 31 Aug 2026), Opus 5 ($5 / $25), Opus 4.8 ($5 / $25, still served), and Fable 5 ($10 / $50). Canonical API ids and rates verified 2026-07-01; Opus 5 added 2026-07-25. This page supports the rates only — capability, availability and API-surface claims are cited separately below.
- Anthropic — models overview (platform.claude.com/docs/en/about-claude/models/overview): Fable 5's positioning for long-horizon agentic work, its speed relative to Opus 5, and Mythos 5's invitation-only availability under Project Glasswing. Verified 2026-07-26.
- Anthropic — introducing Claude Fable 5 and Claude Mythos 5 (platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5): the safety classifiers Fable 5 carries and Mythos 5 does not,
stop_reason: "refusal"returned as a successful HTTP 200, thefallbacksparameter and fallback credit, and Mythos 5's limited availability. Verified 2026-07-26. - Anthropic — guidance on model selection and routing (matching task difficulty to model tier; routing down for sub-tasks).
- Anthropic — Claude API pricing on the geography premium, verified 2026-08-10: "Regional and multi-region endpoints include a 10% premium over global endpoints. The Claude API (first-party) is global by default," scoped to "Claude Sonnet 4.5, Haiku 4.5, Opus 4.5, and all future models. Earlier models (Claude Opus 4.1 and prior releases) retain their existing pricing," plus "For Claude 4.6 and later models, using
inference_geo: "us"applies a 1.1x pricing multiplier." "Multi-region endpoint" there is a Google Cloud type; Bedrock has two, per Claude in Amazon Bedrock — "Global: … No pricing premium" and "Regional: … Regional endpoints carry a 10% pricing premium over global endpoints. To route across multiple regions within a geography, use an inference profile (US, EU, JP, or AU)."
Prices were verified mid-2026 against Anthropic's pricing page; model pricing changes — verify the current rates before relying on them. Corrections: hello@aiarch.dev.
Learn to model cost and route models like an architect.
aiArch teaches model selection, routing, prompt caching, and cost-modeling as first-class skills — the levers that actually move the bill in production Claude systems.
See how aiArch helps senior engineers become AI-native, or compare Professional Membership pricing.
Free sample — no signup · every claim cited · full curriculum is waitlist-only
Subscribe to the Brief — free. This is the newsletter, not the membership waitlist — request an invite here →