Blog · Essay
The third color in my spreadsheet was gray, and I’ve never been able to drop it
Done and not done can’t tell a rest day from a day I couldn’t be bothered, and by March I couldn’t remember which one a blank Wednesday in February had been.
Bohdan Stefaniuk · · 3 min read

My old Numbers file had three fills. Green for done, red for missed, gray for a day I’d decided to skip. The gray one took about four seconds to set up, and I’ve not used a tracker since that felt finished without it.
Most apps give you two states. Done, and the absence of done.
The absence is where the information goes to die. An empty cell might be a planned rest day. It might be food poisoning, or a week away with no gym, or a Tuesday when I sat on the sofa and made a decision I wasn’t proud of. Looking back in March at a blank Wednesday in February, I can’t tell you which of those it was. Neither can the app that’s busy informing me my streak ended there.
A blank cell can mean I rested, I was ill, I was travelling, or I couldn’t be bothered. A tracker that can’t tell those apart is asking me to remember.
What a skip actually does
A skip marks the day as deliberately not done, and the streak pauses rather than resetting. The cell shows a diagonal half-fill, so the history stays honest: I can see that I didn’t do it and that I meant not to, both at a glance, months later. A blank day still breaks the run, which it should.
- 🏕️Camping — 2 days— skip, streak holds
- 🤒Down with a cold— skip, streak holds
- ✈️Travelling— skip, streak holds
- 😴Rest day— skip, streak holds
There’s a separate tool for the scheduled version of this problem. If a habit only runs on weekdays, you exclude Saturday and Sunday on that habit, and those days count neither as a miss nor as a win. Pilates on a weekday schedule shouldn’t ding me on a Saturday. Excluded days aren’t skips, because there’s nothing to skip; I was never meant to do it.
The obvious objection
If you can mark anything a skip, your streak stops meaning anything. That’s true and I don’t have a clean rule for it.
My working version is that a skip has to be a decision I made before the day started, rather than a verdict I hand down at eleven at night while looking for a way out. I break that rule. Not often, but I do. The grid still shows a half-filled cell instead of a green one, so at least the record of the negotiation survives.
The one challenge where I leave it alone
75 Hard is the exception. The rules are explicit: miss any task on any day and you restart at day one, with no substitutions and no rest days. So when I tracked it, I ignored the skip entirely and let a blank cell mean what the program says it means — here’s how I set that one up. A tracker that softens a challenge on your behalf has stopped tracking the challenge.
Why two states is the default everywhere else
My guess is that a third state makes the headline number look worse. Streaks are the thing that gets screenshotted, and “43 days, six of them paused” reads weaker than “43 days” even when it’s the more accurate sentence. I’d take the accurate one. I’m aware that’s an easy position to hold when nobody is screenshotting mine.