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

6 V2 questions wired to this concept. Tap an answer to check it instantly - you'll see whether it's right and why - then expand the full breakdown for the mental model and all four rationales.
Tap your answer to check it.
Tap your answer to check it.
claude-sonnet-5. Six months later they want to know whether Anthropic silently improved that model's behavior underneath them. What is true about model IDs from Claude 4.6 onward?Tap your answer to check it.
messages.create() and gets flatter, less-structured output. Why?Tap your answer to check it.
Tap your answer to check it.
temperature: 0 on every call in a compliance-sensitive pipeline, expecting fully reproducible, identical output for identical input across repeated calls. Is this a safe assumption?Tap your answer to check it.
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.
