Model Comparison
Opus vs Sonnet: When to Use Each (and Save 85%)
Opus costs 5x more than Sonnet for input and 5x more for output. That 85% savings is real and available to anyone willing to think about which tasks actually need it.
The actual price difference
| Model | Input / MTok | Output / MTok | Cost per 10k tokens |
|---|---|---|---|
| Claude Opus 4 | $15.00 | $75.00 | $0.45 |
| Claude Sonnet 4 | $3.00 | $15.00 | $0.09 |
| Claude Haiku 4 | $0.80 | $4.00 | $0.024 |
Switching from Opus to Sonnet saves 80% on input and 80% on output. Run the same task on Sonnet instead of Opus and you get your 80% back immediately. Switching from Opus to Haiku is a 95% cost reduction.
On a 30-message/day agent on 1 channel with 30-minute heartbeats, switching from Opus everywhere to Sonnet main + Haiku heartbeats goes from about $280/month to $28/month. That is the 90% reduction that becomes possible once you stop treating every task the same.
What Opus does better
Opus is genuinely better at certain things. The quality gap is real, not marketing. Here is where it shows up in practice:
Complex code review.
When you need the model to understand subtle bugs, identify architectural problems, or reason about concurrency and security implications, Opus catches things Sonnet misses. Not always. But often enough to matter. For a PR review on a system that will serve real users, Opus is worth the cost.
Multi-step reasoning with high stakes.
Decisions with real consequences: legal interpretation, financial analysis, technical architecture decisions. Opus maintains coherence across longer reasoning chains and is less prone to drifting from constraints you set. When the output will influence a real decision, Opus is the safer choice.
Understanding ambiguous instructions.
Sonnet occasionally misses nuance in complex instructions. Opus is better at catching the unstated implication of a request. If you notice your agent frequently missing the point on complex asks, that is often a model capability issue, not a prompt issue.
Long-context synthesis.
Tasks that require reading 50+ pages of content and synthesizing key insights go better on Opus. Sonnet can do it but the summary quality drops noticeably on very long contexts.
What Sonnet does just as well
This is the list that matters most because it is longer than most people expect.
Heartbeats.
Actually, Haiku does heartbeats just as well. But the point stands. A heartbeat checks a list, maybe sends a notification, maybe updates a file. Opus is massively overpowered for this. You are paying for intelligence you do not use.
Structured data extraction.
Parsing emails, extracting fields from documents, categorizing support tickets. Sonnet performs at Opus level on tasks with clear structure and well-defined output schemas.
Summarization.
For documents up to 20,000 tokens, Sonnet produces summaries of comparable quality. The gap only shows up at very long contexts or when nuanced interpretation matters.
Writing and content.
Blog posts, social media copy, email drafts, documentation. Sonnet matches Opus for most content tasks. If you have strong style guidelines in your system prompt, Sonnet follows them well. Using Opus for content generation is usually waste.
Sub-agent routing and coordination.
When a sub-agent is delegated a specific task with clear parameters, Sonnet executes it reliably. Most sub-agent tasks are structured enough that Opus adds no value.
API integrations and tool calls.
Reading a calendar, sending a message, calling a web search, running a script. These are mechanical tasks. Sonnet handles tool use correctly and consistently.
The hybrid approach
The right answer for most OpenClaw users is not "use Sonnet instead of Opus." It is "use each where they make sense."
A practical routing strategy:
- Main conversation model: Sonnet 4 — handles 90%+ of daily requests fine
- Heartbeat model: Haiku 4 — periodic checks do not need intelligence
- Sub-agent model: Sonnet 4 — structured tasks execute well
- Escalation model: Opus 4 — explicitly invoked for complex reasoning, code review, high-stakes decisions
In openclaw.json, this looks like:
{
"model": "anthropic/claude-sonnet-4-6",
"heartbeat": {
"model": "anthropic/claude-haiku-3-5"
},
"routing": {
"subagent": "anthropic/claude-sonnet-4-6"
}
}For tasks that need Opus, you can either create a specific cron job that uses Opus, or include instructions in SOUL.md to explicitly escalate to Opus for certain task types (code review PRs, complex decisions, etc.).
When Opus is a waste of money
This is where most users are burning cash:
- Heartbeat checks running on Opus. Every 30-minute "HEARTBEAT_OK" costs 19x more than it should.
- Simple email summaries. "Summarize these 5 emails" does not need Opus.
- Cron jobs for scheduled reports. "Generate a daily summary" is a Sonnet task.
- Sub-agents doing simple data processing. Read CSV, transform, write output. Haiku can do this.
- Weather checks, calendar lookups, inbox counts. Any tool call with structured output does not benefit from Opus.
When Opus is worth every cent
- Code review on a PR that touches auth, billing, or security-critical logic.
- Technical architecture discussions where you want the model to push back on bad ideas.
- Contract or document review where nuance and edge case identification matter.
- Debugging a complex production issue where the failure mode is non-obvious.
- Strategic analysis where you need the model to synthesize information across many sources and draw non-obvious conclusions.
The math on switching
Say you currently run everything on Opus. 50 messages/day, 30-minute heartbeats, 1 channel, 3 sub-agents/day.
- Current monthly cost: approximately $425
- After switching heartbeats to Haiku: approximately $275 (savings: $150)
- After also switching sub-agents to Sonnet: approximately $237 (savings: $38 more)
- After also switching main model to Sonnet: approximately $65 (savings: $172 more)
Total potential reduction: $425 to $65. That is 85%. And if your usage is mostly not complex-reasoning tasks, you will not notice a quality difference on the vast majority of interactions.
See what routing changes would save you
The calculator shows the savings from switching heartbeat and sub-agent models independently. Adjust your current config and see the numbers.