The nudge we did not send: notification timing as a defect
Law 2 treats a notification fired into a moment you cannot move as a defect. We count silence as a successful outcome, and the held rate is a headline metric.
Blog Research
A habit streak is the most effective retention mechanic in consumer software, and it works by threatening you with the loss of something you built. We kept the mechanic and removed the threat, which turned out to be better arithmetic as well as kinder.
We looked at what actually interrupts a habit streak. It is almost never apathy. It is illness, a caring responsibility, a shift pattern change, a bereavement, or a flare-up of a condition the person did not choose.
Punishing all of those identically, with a counter reset to zero and a notification about breaking the chain, is a design that works well against the people it should be protecting.
Grace Tokens accrue with consistency and are spent automatically on a missed day, without being asked for. Flare Mode is user-declared and drops the target rather than pausing the chain. The Bereavement Hold suspends everything, including the coach, for a period the person sets, and nothing is lost.
None of them can be purchased. Paid streak restoration is banned in the Charter, because the moment a company sells relief from a feeling it manufactured, it has an incentive to manufacture more of it.
Guilt-framed habit streak recovery produced a small bump in next-day return and a larger drop in week-six retention. Forgiveness framing was flat on next-day and materially better at six weeks.
That is not a moral argument, it is an arithmetic one, and it is the version of this argument that survives contact with a board meeting.
No "you lost your streak" message. No bottom-of-leaderboard exposure. No countdown timer on a recovery window. These are in the Charter test, which means they are not in the roadmap either — a feature that fails the build is not a feature.
Tokens accrue at a rate tied to consistency rather than volume — roughly one per two weeks of regular activity, capped so they cannot be hoarded into indefinite immunity. They are spent automatically on the first missed day, without a prompt and without a decision.
The automatic part is deliberate. A dialogue asking "use a Grace Token to save your streak?" reintroduces exactly the loss framing the mechanic exists to remove, and turns a kindness into a small negotiation with a person having a bad week.
The notification afterwards says the chain held and does not mention what it cost. If somebody wants the detail it is in their history.
Flare Mode is declared by the person, not detected. It drops the daily target to something achievable from a chair or a bed and keeps the chain intact. There is no evidence requirement and no time limit, because building a proof-of-illness flow into a wellbeing product is a way of telling people you do not believe them.
The Bereavement Hold is heavier. It suspends the chain, the targets, the coach and every notification except account security for a period the person sets, and nothing accrues or expires while it is on. Coming back does not require catching up on anything.
Both were added after user research rather than being designed in from the start, which is a polite way of saying we did not think of them and were told.
Paid streak restoration. Loss-framed copy of any kind. Bottom-of-leaderboard exposure. Countdown timers on a recovery window. Any message containing the phrase "you lost".
These are assertions in `charter.test.ts`, which means they are not on the roadmap either — a feature that fails the build is not a feature, it is a proposal that has already been rejected.
The commercial case for at least two of them is genuinely strong. That is the point of writing the rule down before the quarter in which somebody makes it.
A Grace Token is spent automatically on the first missed day, without a prompt and without a decision. The notification afterwards says the chain held and does not mention what it cost. If you want the detail, it is in your history.
No. Paid streak restoration is banned in the Charter, because the moment a company sells relief from a feeling it manufactured, it has an incentive to manufacture more of it.
No. Flare Mode is declared by you rather than detected, and it drops the daily target instead of pausing the chain. There is no evidence requirement and no time limit, because a proof-of-illness flow is a way of telling people you do not believe them.
This article sits in the micro-movement cluster and links up to /micro-movement. Clusters are how the editorial agent decides what to write next — the thinnest one wins.
Reading this page records the time it was visible and how far it was scrolled. No cookie, no identifier, and the connecting address is hashed with a salt that regenerates daily. How that works.
Other pages here that point at this one. Internal links are the part of “backlinks” a site actually controls — nothing on this platform buys or exchanges the other kind.
Read next
Law 2 treats a notification fired into a moment you cannot move as a defect. We count silence as a successful outcome, and the held rate is a headline metric.
Charter rule C6 banned body composition framing at every age. Then we specified a product built on exactly those numbers. Here is the whole argument.
We moved the platform invariants into database constraints. Postgres rejected four writes the same afternoon that the services had been allowing.
Everything described here is running. An account is free, takes about two minutes, and the writing stays free whether or not you make one.
Free to create. 150 AI credits a month for 2 months, then AI features need a plan — everything that is not AI carries on either way. Premium is £5.99 a month and cancels in one click. Under 18 a guardian confirms before the account opens.