Claude comes in three tiers, and the price gap between them is wide enough that model choice is a budgeting decision, not just a technical one. Many teams start every project on the most capable model, which is a sensible way to prove a use case works. The mistake is staying there. Once a workload is understood, most of its requests turn out to be routine, and routine requests do not need the top tier.
The three tiers and what they cost
Here are the current models and their list prices per million tokens. These are list prices; cloud marketplace prices match Anthropic's, and any committed-use discount you negotiate applies on top.
| Model | Input (per 1M tokens) | Output (per 1M tokens) | Notes |
|---|---|---|---|
| Claude Opus 4.8 | $5.00 | $25.00 | Most capable general model; default recommendation |
| Claude Sonnet 5 | $3.00 ($2.00 intro through Aug 31, 2026) | $15.00 ($10.00 intro) | Balanced workhorse |
| Claude Haiku 4.5 | $1.00 | $5.00 | Fast and cheap; 200K context (others 1M) |
Opus 4.8 input costs five times Haiku 4.5 input, and output shows the same five-to-one ratio. That spread is the opportunity: if even half of your traffic can move down a tier, the savings are material.
A worked example
Assume a support assistant handling 10,000 requests per day, each averaging 1,000 input tokens and 300 output tokens, running 30 days a month.
All-Opus: each request costs (1,000 × $5.00 + 300 × $25.00) ÷ 1,000,000 = $0.0125. That is $125 per day, about $3,750 per month.
Tiered, assuming 80% of requests are routine enough for Haiku: 8,000 Haiku requests at (1,000 × $1.00 + 300 × $5.00) ÷ 1,000,000 = $0.0025 each is $20 per day, plus 2,000 Opus requests at $0.0125 each is $25 per day. Total $45 per day, about $1,350 per month. Same traffic, roughly a third of the cost. Your ratios will differ; the point is that the arithmetic is easy to run on your own numbers before you commit to anything.
How to route without guessing
Tiering only works if the routing rule is cheap and reliable. Three patterns cover most cases. First, route by task type: classification, extraction, triage, and short summarization go to Haiku 4.5 by default; open-ended analysis, drafting for external audiences, and multi-step reasoning go to Sonnet 5 or Opus 4.8. Second, escalate on failure: try the cheap tier, validate the output with code (does the JSON parse, are required fields present, is the confidence flag high), and re-run on a stronger model only when validation fails. Third, let a human trigger escalation, for example a "get a more detailed answer" button.
from anthropic import AnthropicBedrockMantle
client = AnthropicBedrockMantle(aws_region="us-east-1")
def answer(question: str, hard: bool = False):
model = ("anthropic.claude-opus-4-8" if hard
else "anthropic.claude-haiku-4-5-20251001-v1:0")
return client.messages.create(
model=model,
max_tokens=1024,
messages=[{"role": "user", "content": question}],
)
Note the model IDs: Bedrock prefixes them with anthropic., while Vertex AI, Foundry, and Claude Platform on AWS use the bare IDs like claude-haiku-4-5. Keep the routing rule in code, not in a prompt; deterministic routing is auditable and free.
What to watch after you tier
Track quality per tier, not just overall. If escalation rates creep up, your routing rule has drifted or the workload has changed. Also remember that Haiku 4.5 has a 200K-token context window while the other tiers offer 1M, so very long documents may force a higher tier regardless of difficulty. Finally, tiering compounds with prompt caching: a cached prefix on a cheap model is the lowest-cost configuration available, so apply both levers together.
Where to go next
Read Prompt Caching: The Single Biggest Cost Lever for the companion technique, and Opus, Sonnet, Haiku: Which Model Does Your Business Need? for a deeper look at matching tiers to workloads. The models section of the main guide has the summary view.