On this page
TLDR
Match the model tier to the task, not the other way round: Haiku for high-volume, straightforward work at the lowest cost/latency; Sonnet for the best speed/intelligence balance; Opus for complex, long-horizon agentic work; Fable as the highest-capability, slowest tier for work none of the other three can cover. Claude docs: choosing-a-model Tune the effort parameter before switching tiers, and never assume a newer release is a drop-in swap - migrations carry breaking changes.
What it is
Model selection is the API-level decision of which model ID to send to POST /v1/messages, balancing three axes: capability, latency, and cost per token. The production tiers are Opus (claude-opus-4-8) for complex agentic coding and enterprise work, Sonnet (claude-sonnet-5) for the best speed/intelligence balance, Haiku (claude-haiku-4-5) as the fastest, cheapest tier with near-frontier reasoning, and Fable 5 as the highest-capability, slower tier. Since Claude 4.6, model IDs are dateless but still pinned snapshots - not evergreen pointers, so a deployed app never silently changes model behavior underneath it.
Anthropic's recommended selection method is benchmark evals on your actual prompts and data, not intuition - start at the cheapest tier that plausibly covers the task, and upgrade only on a measured capability gap. Capabilities and token limits are also queryable programmatically via the Models API (max_input_tokens, max_tokens, capabilities), so a system can select or validate a model choice at run time rather than hard-coding assumptions.
How it works
Pricing and context. Per MTok (input/output): Opus 4.8 = $5/$25, Sonnet 5 = $3/$15 ($2/$10 introductory through 2026-08-31), Haiku 4.5 = $1/$5, Fable 5 = $10/$50. Context and output ceilings split the same way: Opus 4.8, Sonnet 5, and Fable 5 support a 1M-token context window with 128k max output; Haiku 4.5 is scoped to 200k context and 64k max output.
Latency ranks in the same order as capability, inverted: Haiku is fastest, then Sonnet, then Opus, then Fable slowest. This is the core tradeoff triangle the exam tests - you cannot maximize capability, latency, and cost simultaneously, so the architecture has to state which two matter more for the task at hand.
Adaptive thinking (thinking: {type: "adaptive"}) is supported on Opus 4.8, Sonnet 5, and Fable 5 (always-on on Fable); Haiku 4.5 does not support adaptive thinking, but supports extended thinking as an alternative. A task that genuinely needs adaptive thinking cannot be served by the cheapest tier - Sonnet 5 becomes the cheapest tier that qualifies.
The `effort` parameter (output_config.effort) trades intelligence for latency/cost within one model, and is often a better lever than switching tiers entirely. It defaults to high on Opus 4.8 and Sonnet 5; xhigh is recommended for most coding and agentic work. Tuning effort up or down inside a single model is cheaper to reason about and re-test than a full model migration.
Migrations are not drop-in swaps. Moving to Opus 4.7+, Sonnet 5, or Fable 5 removes manual extended thinking (thinking: {type: "enabled", budget_tokens: N} now returns a 400 - use adaptive thinking instead), rejects temperature/top_p/top_k sampling parameters, and 400s on assistant-turn prefills. Sonnet 5 also defaults adaptive thinking ON when thinking is omitted (Sonnet 4.6 ran thinking-off by default), and its newer tokenizer produces roughly 30% more tokens for identical text - shifting cost baselines even when the prompt hasn't changed. A separate research-preview fast mode gives up to 2.5x output speed at premium pricing on Opus 4.8/4.7 (Opus 4.7 fast mode is deprecated, removal 2026-07-24).

Where you'll see it
High-volume support classification
Haiku 4.5, often paired with the Batch API, for the lowest cost/latency on a straightforward, high-throughput task.
Long-horizon autonomous coding agent
Opus 4.8 at high or xhigh effort during development; downgraded toward Sonnet or a lower effort setting once the workflow is proven stable, to control ongoing cost.
Side-by-side
| Model | Best for | Price (in/out per MTok) | Context / max output | Adaptive thinking |
|---|---|---|---|---|
| Haiku 4.5 | High-volume, straightforward tasks - fastest, cheapest | $1 / $5 | 200k / 64k | No (extended thinking instead) |
| Sonnet 5 | Best speed/intelligence balance - default workhorse | $3 / $15 ($2/$10 intro thru 2026-08-31) | 1M / 128k | Yes (default ON) |
| Opus 4.8 | Complex, long-horizon agentic and coding work | $5 / $25 | 1M / 128k | Yes |
| Fable 5 | Highest-capability tier, slower | $10 / $50 | 1M / 128k | Yes (always-on) |
Decision tree
Is the task high-volume and straightforward (classification, extraction, simple chat)?
Is quality or latency underperforming inside the model already selected?
effort (e.g. raise to xhigh) before switching tiers - usually cheaper than a model upgrade.Is the task a multi-hour autonomous agentic or coding workload?
Does the task still underperform at Opus 4.8, high/xhigh effort, with adaptive thinking on?
Are you adopting a newer model release on an existing integration?
How each cert tests this
CCA-P
Practitioner (D2 · Models, Prompting & Context Engineering): tests selecting a model for a client's task against stated tradeoffs - justifying the choice in business terms (cost, SLA impact), not just raw capability.
CCA-A
Associate (D3 · Product & Model Selection): tests differentiating Haiku/Sonnet/Opus/Fable use cases in plain terms and aligning selection to task requirements (cost, speed, quality) without needing the API-level detail.
CCD-F
Developer (D5 · Model Selection & Optimization): tests the deepest technical layer - capabilities, adaptive thinking support, quality/latency/cost parameter tradeoffs, and breaking behavior changes across releases at the API-call level.
Question patterns

A high-volume classification endpoint currently on Opus is too expensive to run at scale. What's the recommended first move?
"add more prompt caching without ever testing a cheaper model" - caching reduces repeated-context cost but doesn't address the base per-call cost gap a smaller tier would close.After migrating from Sonnet 4.6 to Sonnet 5, a call using `thinking: {type: "enabled", budget_tokens: 4000}` now returns a 400 error. What changed?
thinking: {type: "adaptive"}). The distractor is "the budget_tokens value was set too low" - the parameter itself is rejected on the newer model, not the value inside it.An agent's output quality is inconsistent under time pressure, currently running Sonnet 5 at default settings. Before upgrading to Opus, what should be tried?
output_config.effort toward xhigh within the current model - it trades cost/latency for intelligence without a full tier change. The distractor is "immediately upgrade to Opus 4.8" - that's the more expensive lever and skips the cheaper, faster-to-test one.A task requires adaptive thinking, but the team wants the cheapest tier that supports it. Which model?
"enable adaptive thinking on Haiku 4.5 with a config flag" - no such flag exists; the capability is architecturally absent on that tier.After migrating to Sonnet 5, token costs rose roughly 30% for prompts that are textually identical to before. What's the likely cause?
"a prompt-caching regression, since caching prices didn't change" - caching pricing is unrelated; the token *count* itself grew, not the per-token cache rate.Frequently asked
Is a bigger, more capable model always the better choice?
effort parameter within a model before upgrading to a larger, pricier tier.Do model IDs update automatically to the newest version over time?
Work this with your AI
Work this concept hands-on with Claude Code, Codex, or claude.ai. Copy a prompt, paste it into your assistant, and practise in tandem. Each one keeps you active (explain it back, get drilled, or build) rather than just reading.
- Drill it like the exam (scenario MCQs)Practice in the exam's scenario-MCQ format with trap awareness.
- Explain it back (Feynman)Build durable, transferable understanding of a concept you can half-state.
- Test me, adapting the difficultyActive recall practice on a concept you think you know.
- Check my prerequisites firstBefore studying a concept that keeps not sticking.
- Find the high-leverage 20%When a domain feels too big and you are short on time.
