TLDR
Every production Claude deployment sits on a capability/speed/cost triangle, and the exam trap is treating it as one dial ('use the biggest model') instead of independent levers - model tier, effort, thinking budget, prompt caching, and batching - that trade one axis for another *within* a single model choice, not just across the model family. Anthropic model-selection guide
What it is
Every production Claude deployment sits on a triangle of capability, speed, and cost, and an architect's job is to pick a defensible point on that triangle per use case rather than defaulting to "use the biggest model everywhere." Anthropic frames model selection explicitly around these three axes, then layers additional knobs - effort, thinking budget, caching, batching - on top.
Those knobs let an architect trade one axis for another within a single model choice, not just across the model family. Justifying a configuration decision means naming which axis was binding (latency SLA, cost budget, or accuracy floor) for that specific pipeline - not restating a generic "use the best model" default.
How it works
Model tier is the first, coarsest lever. Anthropic's own guidance frames Opus as the default for complex agentic/enterprise work, with lighter models reserved for latency- or cost-sensitive paths; the three evaluation criteria to establish up front are capabilities, speed, and cost.
`effort` is a second, finer-grained lever within a model. Recent Opus and Sonnet models expose an effort parameter that trades intelligence for latency/cost *without switching models* - useful for tuning a single deployed model rather than re-architecting per task.
Extended/adaptive thinking trades latency and token cost for reasoning quality. Adaptive thinking lets Claude dynamically decide how much reasoning budget a request needs based on complexity, while manual budget_tokens extended thinking lets an architect set a stated reasoning-token target for a request. `budget_tokens` is a target, not a strict limit - actual thinking-token usage can still run under or over it, especially on complex tasks - so it narrows variance versus adaptive thinking but is not a guaranteed hard ceiling on its own; a real latency SLA still needs a request-level timeout or max_tokens cap as the enforced backstop.
Fast mode is a direct, priced latency-for-cost knob. Fast mode (research preview, Opus 4.7/4.8) delivers up to 2.5x higher output speed at premium pricing - trading dollars directly for latency on a specific request path.
Prompt caching and Batch API optimize token usage and cost-performance directly. Prompt caching typically cuts cost and latency together on repeated context (system prompts, tool defs, long documents) via cache_control breakpoints with 5-minute or 1-hour TTLs - one of the few levers that improves both axes at once rather than trading them, though a cache hit is a faster-and-cheaper *typical* outcome, not a guaranteed one (a cache write still costs more than a plain call, and a miss falls back to full-price processing). The Batch API instead trades latency for cost: async Message Batches processing gets a roughly 50% cost discount versus the realtime Messages API, appropriate only for non-time-sensitive workloads.

Where you'll see it
Overnight compliance classification
Haiku-tier + Batch API + prompt caching on the shared system prompt across 50,000 documents - cost is binding, latency is irrelevant.
Live support chat
Sonnet/Opus with adaptive thinking, no batching - latency and accuracy dominate; effort tunes the single deployed model rather than forcing a tier switch.
Side-by-side
| Lever | Trades | Effect | Best for |
|---|---|---|---|
| Model tier (Haiku/Sonnet/Opus) | Capability vs speed vs cost | Coarsest lever - sets the whole cost/quality baseline | Setting the default per use case |
| `effort` parameter | Intelligence vs latency/cost | Fine-tunes ONE model without switching tiers | Tuning a single deployed model per task |
| Adaptive / extended thinking | Reasoning quality vs latency/tokens | Adaptive = dynamic, no target; manual budget_tokens = stated target (not a strict limit) | Tighter variance than adaptive; pair with a timeout/max_tokens cap for a true hard ceiling |
| Fast mode (Opus 4.7/4.8, preview) | Speed vs price | Up to 2.5x output speed at premium pricing | Latency-critical paths willing to pay more |
| Prompt caching | Cost AND latency together | Rare double-win on repeated context | Shared system prompts / tool defs / long docs |
| Batch API | Latency vs cost | ~50% discount, async-only | Non-time-sensitive bulk workloads |
Question patterns

A compliance pipeline classifies 50,000 documents overnight with no user waiting on the result. Which configuration fits, and why?
"Opus with adaptive thinking for maximum accuracy" over-pays for capability the task doesn't need and ignores that an overnight batch has no latency constraint to protect.A live customer-support chat agent needs to feel responsive and still route hard cases correctly. Which levers apply, and which do not?
"Batch API for the 50% discount" is wrong here: Batch is async-only and unsuitable for a live chat SLA.An architect needs a tighter, more predictable reasoning-token target for one endpoint than a best-effort budget. Which thinking control fits, and what must still back it up?
budget_tokens target - it narrows variance versus adaptive thinking, which varies its budget by complexity with no target set at all. The distractor "budget_tokens is a hard ceiling, so no other control is needed" is false - Anthropic's docs state budget_tokens is a target, not a strict limit, and actual usage can still exceed it on a complex request; a genuine hard latency SLA still needs a request timeout or max_tokens cap as the enforced backstop, not budget_tokens alone.Two requests share the same long system prompt and tool definitions; only prompt caching is enabled, nothing else changes. What should the architect expect?
"latency improves but cost does not change" is wrong - cache reads are billed at a reduced rate versus a fresh pass over that context, so cost drops too. Caveat: the first call still pays a cache-write premium, and this improvement is the typical case on a hit, not a guarantee independent of hit rate.An architect defends a Sonnet + `effort`-tuned configuration to a stakeholder who insists Opus must be used 'for accuracy.' What's the strongest counter grounded in this objective?
effort parameter is a finer-grained lever within a model - the specific binding constraint (SLA, cost budget) should justify a coarser model-tier jump, not a default to "biggest model always wins." The distractor "Opus always outperforms Sonnet regardless of task complexity" restates the generic-default trap this objective explicitly tests against.Frequently asked
Does prompt caching ever hurt latency?
Is Batch API ever appropriate for a customer-facing agent?
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.
