DEV Community

Deibyg
Deibyg

Posted on

I spent $514 on Claude Code in 30 days. Here's what I learned.

I spent $514 on Claude Code in 30 days. Here's what I learned.

Real data from 50 sessions. The good, the bad, and the expensive.


The setup

For the past month, I've been tracking every Claude Code and OpenCode session with claudestat — an open-source tool I built to monitor token usage, costs, and patterns across both CLIs.

This isn't a hypothetical study. These are my real numbers from real work on real projects.


The numbers

30-day period: April 12, 2026 → May 12, 2026

Metric Value
Total spent $514.86
Sessions 50
Total tokens 3,803,319
Loops detected 375
Avg efficiency 69/100

That's about $18/day on average. For context: I'm on Max 5, so this isn't cheap.


The most expensive session

April 26, 2026 — I let Claude run on a refactoring project for hours without checking:

  • Cost: $32.94
  • Loops detected: 31
  • Efficiency score: 35/100
  • What happened: Claude went in circles editing files, each edit triggering more edits. I wasn't watching.

That's $33 in one session. More than my daily coffee budget for a month.

Key lesson: Loops are expensive. 31 loops × average tool call cost = $33 down the drain.

Now claudestat sends a notification when a session closes — cost, tokens, loops detected, context % — so I always know what just happened.


The project breakdown

Who consumed the most?

Project Spent
claudetrace (side project) $326.44
wodrival $61.32
claudestat $60.35
conductor $39.40
Other $27.85

63% of my spending went to one side project. It's not my main job — it's my hobby project that's burning my quota.

This is the kind of insight you only get from tracking.


The loop problem

375 loops detected across 50 sessions.

That's ~7.5 loops per session on average. But it's skewed:

  • 12 sessions had more than 10 loops
  • 9 sessions had efficiency below 50%

Most loops look like:

Read → Edit → Edit → Edit → Read → Edit → Edit → Edit
Enter fullscreen mode Exit fullscreen mode

Claude tries something, it doesn't work, tries slightly different, repeats. This is where most of my waste came from.


Context limits hit me harder than quota

The $33 session wasn't killed by quota — it was killed by context. At 95% context window, Claude starts degrading. I had no warning.

Now claudestat sends alerts at 50%, 75%, 90%, and 100% context — and the same thresholds apply to your 5h quota cycle. You get warned before hitting the wall, not after.

claudestat status

Quota 5h   3.2h / 5h (64%)  |  reset in 1h 48m
Context    91,200 / 200,000 (45%)
Burn rate  1,240 tok/min  →  ~73min remaining
Plan       MAX5
Enter fullscreen mode Exit fullscreen mode

What I learned

1. Loops are the silent killer

I wasn't aware of loops until I saw the data. Now I watch for:

  • Same tool called 3+ times in a row
  • Context creeping up while output stays flat
  • "Let me try..." messages from Claude

2. One project dominates

63% on claudetrace — I would have guessed 40/60 at best. Tracking revealed the truth.

3. Efficiency varies wildly

  • Best session: 100/100 (perfect)
  • Worst session: 35/100 (that $32.94 day)

Understanding this helps me spot when I'm about to have a bad session.

4. Edit is my most expensive tool (not Bash)

Running claudestat top showed Edit at 21% of total cost, Bash at 20%. They're almost equal — but Edit surprised me. Large file rewrites are expensive.

5. Claude can now ask itself how it's doing

Since I added the MCP server, Claude can query its own stats mid-session:

"What's my current quota status?"
 64% used, 1h 48m until reset, burn rate 1,240 tok/min

"What are my top 5 tools by cost this week?"
 Edit $146 · Bash $140 · Read $126 · Grep $39 · ToolSearch $21
Enter fullscreen mode Exit fullscreen mode

This changed how I work. Claude now knows when to compact, when to stop, when to wrap up.


The weekly view

claudestat weekly

📊 Week of May 8 – May 13
💰  $198.38  ·  40 sessions  ·  114 loops
📈  Efficiency  91/100
💾  Cache hit   100%
⚡  Tip: 114 loops — consider /compact earlier
Enter fullscreen mode Exit fullscreen mode

One number per week. Am I improving or not?


How to track your own data

npm install -g @statforge/claudestat
claudestat install
claudestat start
# use Claude Code or OpenCode normally
claudestat weekly       # weekly summary
claudestat top          # most expensive tools
claudestat status       # quota + context right now
Enter fullscreen mode Exit fullscreen mode

What's next

Now that I have this data:

  1. Alerts at 50/75/90/100% — context and quota, no more surprises
  2. Session-close summary — always know what just happened
  3. Check top tools weekly — spot expensive habits
  4. Watch for loops — stop them early
  5. Claude knows its own stats — MCP server installed, it manages itself better

The black box is open. You have the data.


Try it

npm install -g @statforge/claudestat
Enter fullscreen mode Exit fullscreen mode

Works with Claude Code and OpenCode. No cloud, no accounts — everything stays local.

Questions? Drop them in the comments.


Data from my actual sessions. Not estimated. Not hypothetical.

Top comments (0)