CCDVF-D5.1 · Domain 5 · Model Selection & Optimization · 16.8% of CCD-F

Claude Model Selection & Tradeoffs.

5 min read·9 sections·Tier A

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.

Official Claude docsCCD-F Domain 5CCA-P + CCA-A + CCD-F
Claude Model Selection & Tradeoffs, hero illustration featuring Loop mascot in a warm gallery scene.
Domain CCDVF-D5Model Selection & Optimization · 16.8%
On this page
01 · Summary

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.

4 (Haiku / Sonnet / Opus / Fable)
Production model tiers
$5 / $25
Opus 4.8 price (in/out per MTok)
$1 / $5
Haiku 4.5 price (in/out per MTok)
1M tokens
Context window (Opus/Sonnet/Fable)
Not supported
Adaptive thinking on Haiku 4.5
02 · Definition

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.

03 · Mechanics

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).

Claude Model Selection & Tradeoffs mechanics, painterly diagram featuring Loop mascot.
04 · In production

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.

05 · Compare

Side-by-side

ModelBest forPrice (in/out per MTok)Context / max outputAdaptive thinking
Haiku 4.5High-volume, straightforward tasks - fastest, cheapest$1 / $5200k / 64kNo (extended thinking instead)
Sonnet 5Best speed/intelligence balance - default workhorse$3 / $15 ($2/$10 intro thru 2026-08-31)1M / 128kYes (default ON)
Opus 4.8Complex, long-horizon agentic and coding work$5 / $251M / 128kYes
Fable 5Highest-capability tier, slower$10 / $501M / 128kYes (always-on)
06 · When to use

Decision tree

01

Is the task high-volume and straightforward (classification, extraction, simple chat)?

YesStart at Haiku 4.5 - lowest cost and latency; upgrade tier only on a measured capability gap.
NoCheck the axes below; they combine independently.
02

Is quality or latency underperforming inside the model already selected?

YesTune effort (e.g. raise to xhigh) before switching tiers - usually cheaper than a model upgrade.
NoEffort is already tuned appropriately for the task.
03

Is the task a multi-hour autonomous agentic or coding workload?

YesOpus 4.8 at high effort is a reasonable starting tier; downgrade once the workflow is proven stable.
NoSonnet 5 covers most everyday production traffic.
04

Does the task still underperform at Opus 4.8, high/xhigh effort, with adaptive thinking on?

YesFable 5 is the remaining, highest-capability tier - slower and pricier, reserved for work the other three tiers measurably can't cover.
NoStay on Opus 4.8 or below - Fable's cost/latency premium isn't earned without a demonstrated capability gap.
05

Are you adopting a newer model release on an existing integration?

YesTreat it as a migration, not a swap - check for removed manual extended-thinking params, rejected sampling params, prefill 400s, and tokenizer-driven token-count shifts before rollout.
NoNo migration risk to account for.
07 · Per certification

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.

08 · On the exam

Question patterns

Claude Model Selection & Tradeoffs exam trap, painterly cautionary scene featuring Loop mascot.
A high-volume classification endpoint currently on Opus is too expensive to run at scale. What's the recommended first move?
Benchmark the actual prompts/data against a cheaper tier (Haiku or Sonnet) before committing to a downgrade. The distractor is "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?
Manual extended thinking is removed on the newer model - it requires adaptive thinking instead (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?
Raise 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?
Sonnet 5 - Haiku 4.5 does not support adaptive thinking (it supports extended thinking instead), so Sonnet 5 is the cheapest qualifying tier. The distractor is "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?
The newer tokenizer produces more tokens for the same text, shifting the cost baseline independent of any prompt change. The distractor is "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.
09 · FAQ

Frequently asked

Is a bigger, more capable model always the better choice?
No. Benchmark on your actual data and start at the cheapest tier that plausibly covers the task; tune the effort parameter within a model before upgrading to a larger, pricier tier.
Do model IDs update automatically to the newest version over time?
No. Since Claude 4.6, model IDs are dateless but still pinned snapshots, not evergreen pointers - adopting a new release requires explicitly re-pinning the ID and re-testing for breaking changes, not a silent auto-upgrade.
10 · Practice with AI

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 difficulty
    Active recall practice on a concept you think you know.
  • Check my prerequisites first
    Before studying a concept that keeps not sticking.
  • Find the high-leverage 20%
    When a domain feels too big and you are short on time.
Self-check

Test yourself

Three diagnostic questions on this primitive. Reveal each answer when you have a guess. Want a full 60-question mock? Open the mock hub →

Q1A high-volume classification endpoint currently on Opus is too expensive to run at scale. What's the recommended first move?
Benchmark the actual prompts/data against a cheaper tier (Haiku or Sonnet) before committing to a downgrade. The distractor is "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.
Q2After migrating from Sonnet 4.6 to Sonnet 5, a call using `thinking: {type: "enabled", budget_tokens: 4000}` now returns a 400 error. What changed?
Manual extended thinking is removed on the newer model - it requires adaptive thinking instead (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.
Q3An agent's output quality is inconsistent under time pressure, currently running Sonnet 5 at default settings. Before upgrading to Opus, what should be tried?
Raise 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.
Last reviewed: 2026-05-04·Refresh cadence: monthly
CCDVF-D5.1 · CCDVF-D5 · Model Selection & Optimization

Claude Model Selection & Tradeoffs, complete.

You've covered the full ten-section breakdown for this primitive, definition, mechanics, code, false positives, comparison, decision tree, exam patterns, and FAQ. One technical primitive down on the path to CCA-F.

More platforms →