Skip to content

Streak freeze versus partial credit

By Ayush Mishra

A freeze protects a pretty integer by pretending the day still counted. Partial credit tells the truth: you did less, and the log should say so clearly.

Streak freeze versus partial credit
On this page5
  1. The freeze as a permission slip
  2. Partial credit as a truth-teller
  3. Why lying to the calendar backfires
  4. Rest marks are a third tool
  5. Read next

Product teams invented streak freezes because users hated watching a big integer die. The freeze is a permission slip: skip today, keep the run, come back tomorrow as if the calendar were still consecutive. Partial credit is a different invention. It says the session happened in a reduced form, and the log should show that. One tool protects a display. The other describes a behaviour. Confusing them is how people end up with a 200-day streak and a thin life.

There is no famous journal article titled "streak freezes in consumer apps." There is a large literature on self-monitoring, on how habits attach to context (Wood and Neal), and on what happens when a broken rule is treated as a total failure (Marlatt's abstinence violation effect). Those three together are enough to judge the feature.

The freeze as a permission slip

A freeze can be humane. Illness, grief, a night shift that ate the cue: the behaviour was never going to happen, and punishing the integer only trains people to hide. A rare, named freeze is a planned skip with extra chrome. The trouble starts when freezes are farmed. Then the streak no longer measures consecutive practice. It measures consecutive access to a shield. At that point you have a cosmetic chain. Cosmetic chains still trigger shame when the shields run out, which means you paid for delay rather than for learning.

Lally's 2010 models did not need a freeze to keep automaticity from falling off a cliff after one miss. The learning was already more robust than the UI. Freezes exist to protect users from the UI. That is a confession about the metric, not a finding about the nervous system.

If you use a freeze, write the reason in one line. "Flu." "Red-eye." "Funeral." If the line would be "I did not feel like it," you are not freezing. You are laundering a skip. Laundered skips are how rates rot while streaks sparkle.

Partial credit as a truth-teller

Partial credit assumes the behaviour has a dose. Ten minutes of a thirty-minute walk is not zero and it is not thirty. Recording 0.3 or a "bronze" session keeps self-monitoring honest, which is the whole point of tracking. Fogg's tiny habits logic lives here: the small version is still the habit on a hard day. Gollwitzer's if-then can pre-commit the small version: "If I get home after 9, then I still walk to the end of the street."

The ethical test is simple. Would you defend the log to a patient coach? "I froze because I was on a plane" is defensible. "I froze because I wanted the screenshot" is not. "I logged a short session because I did a short session" is almost always defensible.

Duhigg popularised reward as the third beat of a loop. An honest partial log can be a reward: you told the truth and the cue still got an answer. A freeze reward is "the number did not go down." That reward teaches you to care about the number.

Why lying to the calendar backfires

Shame, in plain language from the guilt-versus-shame tradition, is "I am bad." Guilt is "that action was off." Fake logs produce shame when you remember they are fake, because the self now includes a liar. Then you avoid the app, which is the opposite of self-monitoring. Avoidance is how trackers die by day four for a lot of people, even if nobody ran a perfect experiment on your lock screen.

Wood and Neal would also remind you that the cue-response link updates when you perform the response, not when you press a shield. A freeze does not train the walk. A short walk does.

Habit AI is an example of leaning toward partial credit and toward tiers (bronze through diamond) that can mark quality or length without pretending a skip was a full win. Use that as a picture of the design choice, then set your own rule: reduced days are logged as reduced, skipped days are skipped, shields are rare.

Situation Freeze Partial credit
You were too ill to move Reasonable, if rare Not applicable
You did a shorter version Dishonest if it hides the shortfall The right tool
You want a public integer intact That is the temptation Will not save the integer
You want automaticity Does not add a repetition Adds a smaller repetition

Pick truth over cosmetics. A smaller mark on a hard day is adult tracking. An immortal streak is a costume. Costumes come off, usually on a Monday, usually after a trip.

Rest marks are a third tool

Some days are neither a freeze nor a half session. They are rest you chose, or rest a coach would have chosen. A rest mark on the calendar is data: no cue was supposed to fire. Athletes already know this. Consumer streaks pretend rest is a bug. If you cannot tell rest from a skip, you will either train through illness or you will call every skip "recovery" after the fact.

Name rest yesterday, in one line, the same way you would name a planned skip. Then do not perform a tiny fake session to feed a meter. A fake bronze is still a lie. Lally counted real repetitions. Wood and Neal counted real context-response pairings. Your log should too. Self-monitoring only helps when the monitor is not an accomplice.

Rates survive holes that runs cannot: streaks versus consistency percentage. Purity thinking is the parent bug: all-or-nothing thinking in habit apps. Design context: Habit AI.

Share

Related reading

Try the on-device habit coach

Habit AI is free to download, works offline, and needs no account to get started.