The most difficult thing in life is to know oneself.
— Thales of Miletus
Every habit app has the same button. It's called "Streak Freeze," or "Streak Repair," or "Restore." You forgot to check in yesterday, you open the app, and there it is: a friendly little offer to pretend it didn't happen. Some apps give you one a week. Some sell them. Duolingo will sell you a freeze in advance, hand you three at day 100, and, if you subscribe, repair the streak for you when you miss. Their retention team has said plainly that freezes lift retention. That's a streak trick doing its job as a retention device. Meanwhile, for you the user, it comes at a sneaky steep cost: you quietly lose any possibility for your record to tell you the truth about where you really stand.
Klatos doesn't have that button. We contemplated it — and honestly, it was tempting. But after careful consideration we decided against it, and embraced a more resilient, more realistic idea instead: Habit Strength. We feel strongly it was the right call. This is the argument for why.
A streak is only worth what you believe about it
Here's the thing nobody says out loud: a streak has no intrinsic value. It's just a number. What gives it power is its credibility — this is true. I actually showed up every one of these days. This integrity then fuels the belief in the progress the number represents. And that belief is the entire product. It's what makes the true meaning of this number a thing worth protecting, and it's what makes protecting it change your behavior at 10pm when you don't feel like it.
The moment you can retroactively fix a broken streak, you know — deep inside you — that the number is negotiable. And a negotiable streak is just a score. It stops being a record of who you are and becomes a thing you manage. You've traded the whole asset — lessons from your real record (or real insights your data earns you) — for one comfortable evening.
We have a name for retroactively keeping a streak that actually broke: record-laundering. You're rewriting history to launder a miss into a hit. A system that does it for you once will do it forever, and you'll always know it. The freeze token doesn't protect your streak. It quietly voids the only thing that made the streak matter: its credibility.
The rule: you can only tell the truth about today
The mechanic that enforces this is almost aggressively simple. You can check in for today. That's it. No back-filling yesterday, no "oh I definitely did this on Tuesday, let me just tick it." The check-in for a day is editable only while that day is still today, in your own timezone. When your local midnight passes, the day is sealed. Forever.
Don't repair, come back
Habit people know this instinct by a different name — Never Miss Twice. Missed a day? Fine, you're human; just don't miss the next one. The failure mode that actually kills habits isn't the single miss, it's the spiral after it. The rule protects you from the spiral by refusing to let you relitigate the past at all. There's nothing back there to fix, so you look forward, which is the only direction that was ever going to help.
It also means every number in the app is real. Your year heatmap is a photograph, not a painting. When you show someone your streak, you're not showing them a figure you curated: you're showing them something that happened. That's worth more. You'll feel the difference, and so will everyone else.
"But life happens." Yes. We designed for that too.
The honest objection to all of this is: life happens. You travel. You get sick. Real weeks are messy, and a system that breaks your streak for going on holiday is just brittle.
Agreed. So here's the distinction we drew, and it's the whole game:
There's a difference between the exception you plan and the excuse you reach for. We built beautifully for the first and slammed the door on the second — on purpose.
Planned rest lets you mark a day off in advance. Going to be traveling next Saturday? Declare it now, while it's an abstract future day and you're thinking clearly. The streak shows as rested — it reads honestly, "12 (1 rest)" — never silently kept unbroken. You told the truth ahead of time, so the record tells that truth back to you. Plain simple.
The catch — and it's the important part — is when you're allowed to do this. You can declare a rest day only before its week even begins. Not the night before. Because "it's 11pm and I've decided tomorrow is suddenly a rest day" is not planning. That's the excuse wearing a costume. It's the exact hot-state, I-don't- feel-like-it-right-now decision the freeze token exists to enable, just shifted back twelve hours. A planned rest decision belongs to the calm, thoughtful moment where you're planning for the person you want to be: the Sunday-evening "what does next week actually look like" moment.
And sudden illness? A surprise that hits mid-week? That one breaks your streak, honestly. You can add a note later, up to seven days back, to shed light on these missing days. But the records themselves can't be back-filled. We know how that sounds. Here's why it has to: the moment illness is excusable, everything becomes illness. There is no rule that admits "genuine emergencies only," because every hot-state excuse feels like a genuine emergency from the inside. We made this choice to account for the vicissitudes of real life.
Rest is scarce on purpose — because rest isn't the goal, showing up is
Planned rest comes with a budget: three days within any calendar month, and never more than two in one week. This isn't us being stingy. It's the single most important thing we believe, made mechanical instead of printed on a poster. We are giving your practice some breathing room while maintaining its integrity.
The message is: downscale if you need to — but do it anyway. Traveling isn't a reason to go dark for a week. It's a reason to shrink the habit to fit: meditate five minutes in the hotel room, read one page, do the two-minute version. The habit survives the trip in miniature. A rest day is for the genuine exception where even the two-minute version is impossible — and those are rare, so the budget is small.
We were tempted, briefly, to sell a bigger budget as a premium upgrade. We killed that idea fast. Selling more rest days says the exception is for sale. Some things can't be line items. The scarcity of rest is a value, not a commodity. And values aren't purchasable.
We'll own the trade-off plainly: a two-week vacation cannot be excused. Long trips will break streaks, even for people doing everything right. That's going to be the loudest complaint the design ever generates, and our answer isn't a bigger number — it's that two weeks off for every habit isn't rest, it's a pause, and that's okay. Which brings us to the last piece.
What catches you when you fall
If we won't launder the break, and we won't sell you out of it, what happens when you genuinely, honestly break a streak? You reset to zero, and that feels terrible, and a wall of zero is how a lot of people quit.
That's why the streak isn't the only number we show you. Every habit also has a Strength score: a resilient read of a recent window you choose. Miss a day and your streak resets to zero, yes. But in real life nothing resets to zero after one missed day, and Strength is built to tell that truth too. It eases back instead of erasing, because every day you showed up still happened and Strength can see all of them. It's the number that remembers you are building something at the very moment the streak forgot.
This is a deliberate division of labor. The streak is strict and honest and occasionally brutal. We kept it uncheatable on purpose, so it can never tell you a comfortable lie. Strength is the number that survives an honest miss: you're still standing, one bad day didn't erase the month. We didn't soften the streak to make it kind. We built a second, truer number next to it, so the first one never has to lie.
The whole thing, in one line
Everyone else is racing to add more ways to let you keep your streak unbroken. We think they've got it backwards: every freeze token, every repair button, every purchasable exception makes the number a little less true, and a number that isn't true isn't worth keeping in the first place.
Consistency compounds — but only real consistency does. A laundered streak compounds into nothing, because you know it lacks credibility. We'd rather hand you a smaller number you can completely trust than a bigger one you can't.
So: no freeze tokens. No streak repair. No back-filling yesterday. You can tell the truth about today, plan your rest in advance, and downscale instead of disappearing. The number that comes out the other side is yours, entirely, with nothing laundered into it.
That's the whole pitch. Still want a streak? Come build one that's actually true.