March 12, 2026

The $47/month you don't know you're spending

A breakdown of where average OpenClaw users actually spend their API budget. Heartbeats, sub-agents, channels, and the three changes that cut costs by 60-80%.

Most OpenClaw users who check their API bill for the first time are confused. The numbers do not match their mental model of how much they use the agent.

You had maybe 30 real conversations this month. You asked it to summarize some emails, write a few scripts, look up some things. Should have been maybe $5, $10 at most. But the bill is $47.

Here is where the rest went.

Heartbeats: the silent killer

OpenClaw heartbeats are periodic pings that let your agent stay proactive. Every 15, 30, or 60 minutes, the system wakes up, loads your full workspace context, runs a check, and optionally sends you a message.

The default is every 30 minutes. That is 48 heartbeats per day.

Each heartbeat loads approximately 6,000 tokens of context (workspace files, system prompt, session metadata) and produces a short output of maybe 200 tokens.

On Claude Opus 4 at $15/MTok input, $75/MTok output:

  • Input: 6,000 * 48 = 288,000 tokens/day = $4.32/day
  • Output: 200 * 48 = 9,600 tokens/day = $0.72/day
  • Total: $5.04/day, $151/month

That is for one channel. If you have two channels (say, Telegram and Discord), double it: $302/month in heartbeats alone.

Most users have no idea they are paying for this. It happens in the background. The agent is "just checking in."

Context loading: the invisible fixed cost

Every message, every heartbeat, every sub-agent spawn starts with a context load. SOUL.md, AGENTS.md, MEMORY.md, TOOLS.md, skill descriptions, runtime info. Approximately 9,600 tokens by default on a reasonably used install.

On Opus at 50 messages/day:

  • 9,600 tokens * 50 messages = 480,000 tokens/day
  • $7.20/day = $216/month

This is not the cost of your actual messages. This is just the overhead. The per-turn tax that gets charged before the model reads a word you wrote.

Sub-agents: multiplied context

Every sub-agent spawn is a new API call with its own context window. The sub-agent loads the task description, its own workspace context, and then generates a response. Typical spawn: 8,000 tokens input, 4,000 tokens output.

At 3 sub-agents per day on Opus:

  • Input: 8,000 * 3 = 24,000 tokens = $0.36/day
  • Output: 4,000 * 3 = 12,000 tokens = $0.90/day
  • Total: $1.26/day = $37.80/month

Sub-agents are high-value when they are doing real work. The problem is running them on Opus when Sonnet does the same job for 5x less.

Adding it up

A typical single-channel OpenClaw user on Opus, 30min heartbeats, 3 sub-agents/day, 50 messages/day:

  • Context loading: $216/month
  • Heartbeats: $151/month
  • Sub-agents: $38/month
  • Actual message responses: ~$20/month

Total: $425/month. And $20 of that is the thing you actually care about.

The headline number varies a lot by config. Users with 2 channels and aggressive heartbeats hit $600+. Users with trimmed workspace files and longer heartbeat intervals might be at $80. But the average user landing on this post? Probably around $47-150/month, with most of it being overhead they never think about.

Three changes, 60-80% reduction

1. Route heartbeats to Haiku.

Claude Haiku 3.5 costs $0.80/MTok input vs $15/MTok for Opus. That is 19x cheaper. Heartbeats are simple: check for tasks, send a notification if needed, maybe update a file. Haiku handles this perfectly.

Switching heartbeat model from Opus to Haiku:

  • Before: $151/month
  • After: ~$8/month
  • Savings: $143/month

2. Route sub-agents to Sonnet.

Sub-agents do real work: coding, research, writing, analysis. They need more than Haiku. But they do not need Opus. Sonnet 4 is 5x cheaper than Opus and handles 95% of sub-agent tasks without quality degradation.

Switching sub-agent model from Opus to Sonnet:

  • Before: $38/month
  • After: ~$7.50/month
  • Savings: $30/month

3. Trim your workspace files.

Context loading is a fixed per-turn cost. Every token you cut from your workspace files reduces every cost simultaneously: messages, heartbeats, sub-agents. If you cut 3,000 tokens (roughly 30%) from your workspace, you cut 30% of every context loading cost.

On Opus at 50 messages/day, cutting 3,000 tokens per message:

  • Before: $216/month context
  • After: ~$151/month
  • Savings: $65/month

The real punchline

Most users are running a $400+/month setup for $20/month of actual value delivered. The overhead is real. It is predictable. And it is almost entirely a configuration problem.

The three changes above (heartbeats to Haiku, sub-agents to Sonnet, trim workspace) typically reduce total spend by 60-80% without touching the main model or reducing capabilities in any meaningful way.

You still get Opus for the conversations that matter. You stop paying Opus prices for your agent to periodically wake up and say HEARTBEAT_OK.

Where to start

  1. Open your openclaw.json
  2. Find the heartbeat.model field. If it is Opus or Sonnet, switch to anthropic/claude-haiku-3-5
  3. Find the routing.subagent field. If it is Opus, switch to anthropic/claude-sonnet-4-6
  4. Open each workspace .md file and delete anything the agent does not actually need to make decisions

Or paste your config into the Clawback Config Analyzer and get specific recommendations with exact dollar amounts. Takes 30 seconds.

See your actual numbers

The calculator runs in your browser. No account needed.