DEV Community

Cover image for I Found 39 Days Where I 'Worked' But Didn't. Here's What That Data Looks Like.
Yurukusa
Yurukusa

Posted on

I Found 39 Days Where I 'Worked' But Didn't. Here's What That Data Looks Like.

There's a type of day that doesn't show up in your commit history.

You opened Claude Code. Maybe you ran a command or two. Maybe you read some output. But nothing shipped. Nothing moved. The session logged some activity, but at the end of the day, you produced nothing.

I call these Ghost Days.

I have 39 of them. Out of 60 days.


What a Ghost Day actually is

A Ghost Day is a day where Claude Code activity is below a meaningful threshold — where you clearly had the tool open and running, but the session produced no real output.

The definition I use:

  • Fewer than 10 tool calls in the day's sessions (noise level)
  • AND fewer than 3 file modifications
  • OR total active session time under 5 minutes

The second condition is the key one. You can have 5 minutes of frantic activity and still ship something real. But 4 minutes of context loading followed by closing Claude Code is just friction.


The data from my 60 days

Total days in range: 60
Ghost Days: 39 (65%)
Active Days: 21 (35%)

Wait. I had Ghost Days on 65% of days?

That didn't match my mental model at all. I thought I'd been working consistently. The numbers said otherwise.

Let me break it down further.

Ghost Days by day of week:

  • Monday: 7/8 days (88% ghost rate)
  • Saturday: 6/8 days (75%)
  • Tuesday: 5/8 days (63%)
  • Wednesday: 4/8 days (50%)
  • Thursday: 4/8 days (50%)
  • Friday: 4/8 days (50%)
  • Sunday: 9/12 days (75%)

Monday had a 88% ghost rate. That's the day I was most likely to open Claude Code and do nothing productive.


Why this matters

I'm paying $200/month for Claude Code. That's $6.67/day.

On Ghost Days, I paid $6.67 for approximately zero output.

Over 39 Ghost Days, that's $260 spent on sessions where nothing happened.

That's 65% of my subscription cost going to days where I either couldn't get started, got interrupted, or just... didn't engage meaningfully.

The non-Ghost Days had to justify the full $400 with 21 days of actual work. Some did. Most produced something. But the distribution was brutal.


What causes Ghost Days

Looking at the pattern, I can identify three main causes:

1. Context-loading sessions
I'd open Claude Code to check something — "where did I leave off?" — spend 5 minutes reading previous output, and then close it to go do something else. This logs as activity but produces nothing.

2. Blocked days
Days where I hit a problem early (npm rate limit, CDP auth failure, etc.) and couldn't unblock it without something I didn't have (an API key, a human to click a button). The whole day became a Ghost Day because the first session failed.

3. Cognitive overhead
Some days I'd start sessions, read the output, feel uncertain about what to do next, and close without committing to anything. Analysis paralysis, but logged as Claude Code activity.

4. Legitimate rest
Some Ghost Days were intentional non-work days. They look identical to the other Ghost Days in the data. The tool can't tell the difference.


What I changed

Knowing the Ghost Day pattern changed two things:

First, I started front-loading. If my Monday has an 88% ghost rate, I needed to put the most important work earlier in the week — Wednesday through Friday, when I'm most likely to actually execute.

Second, I built a blockers file. Instead of closing Claude Code when blocked, I now write the blocker to ~/ops/pending_for_human.md and immediately pivot to something else. This converts a potential Ghost Day into a partial ghost day.

What I didn't change: my subscription. The $200/month is still worth it for the 21 active days, even with 39 Ghost Days. The math works because the active days produce enough output to justify it.


The tool

cc-ghost-log tracks Ghost Days from your ~/.claude folder.

npx cc-ghost-log
Enter fullscreen mode Exit fullscreen mode

Or browser version (no install): yurukusa.github.io/cc-ghost-log

It shows:

  • Total Ghost Days and Ghost Day rate
  • Ghost Days by day of week (so you can see your patterns)
  • Which specific days were ghost days
  • Session activity on ghost days (to show why they were ghost)

The data has been uncomfortable. But uncomfortable data is more useful than no data.


Is your Claude Code setup actually safe? Run npx cc-health-check — a free 20-point diagnostic. Score below 80? The Claude Code Ops Kit fixes everything in one command.

Part of cc-toolkit — 30 free tools for understanding your Claude Code usage.

Top comments (0)