Your score combines three things, each weighted by how much it matters:
Missing a day after a long streak doesn't tank your score the way it would after just two days. The penalty shrinks the longer your streak has been — because a slip after months of commitment is not the same as a slip at the start.
This is called variable ratio reinforcement — a schedule where rewards arrive unpredictably after a behaviour. It's the same mechanism that makes games compelling.
Psychologist B.F. Skinner found it's the reinforcement schedule most resistant to extinction: behaviours rewarded this way are the hardest to give up, because every rep feels like it could be the one that triggers the reward.
The two conditions — completion over 50% and a random roll — mean the reward only activates for genuine effort, and even then stays rare enough to stay exciting.
Missing a day early in a habit costs more than missing a day after a long run. If you've just started and skip, there's no momentum to protect — the score drops more sharply. After 10 days in a row, a single miss barely registers, because the evidence of your identity is already strong.
This mirrors how real habit formation actually works: a lapse after two months is qualitatively different from a lapse on day two. The scoring reflects that.
Most habit failures aren't random — they cluster around specific days or contexts. Knowing which day you consistently underperform lets you prepare for it in advance: lower the bar on that day, set an extra reminder, or pair the habit with something you already do on that day.
This is called pre-commitment — deciding in advance how you'll handle a predictable obstacle, rather than relying on willpower in the moment.
| Date | Day | H1 | H2 | H3 | H4 | H5 | H6 | H7 | H8 | Total |
|---|
penalty = 1/(streak+1) × 0.05.AVERAGEIF logic over your full history, grouping completions by day name, then returns the day with the minimum average..json file. Store it in a safe place.