Why I stopped counting streaks and started measuring automaticity
Tech Article

Why I stopped counting streaks and started measuring automaticity

July 4, 2026
9 min read

This is part 1 of a two-part series on building Habit Arc, a local-first Android habit tracker. This part is about why I built it and the science it's built on. Part 2 is about the architecture. I've

ProductivityhabitsbuildinpublicproductAndroid

This is part 1 of a two-part series on building Habit Arc, a local-first Android habit tracker. This part is about why I built it and the science it's built on. Part 2 is about the architecture.


I've never trusted streaks.

Open almost any habit app and you meet the same machine: a counter ticking upward, a badge, a fistful of confetti for showing up. It's a slot machine dressed up as self-improvement — the same trick games use to keep you pulling the lever. And like any slot machine, it pays out right up until the day it doesn't. You miss once, the number drops to zero, and the whole spell breaks.

I wanted to build the opposite. Not an app that dangles a shiny number in front of you, but one built on what researchers actually know about how a habit takes hold. That's where Habit Arc started.

There was a second reason, and I'll own it: I wanted to learn to build a real Android app. Not another to-do list copied out of a tutorial, but something I'd open every morning and have to live with every bug of. A habit tracker was the right size for that — small enough to finish alone, deep enough to teach me Kotlin and Jetpack Compose end to end.

So this is the "why." Why the streak is the wrong thing to count, and what the science says to count instead.

The problem with streaks

A streak feels like motivation. It's really just a fragile reward stapled onto a real habit.

The picture most of us carry — from Duhigg, from Atomic Habits — is the habit loop: a cue sets off a routine, the routine pays a reward, and after enough turns the loop runs by itself. The streak counter volunteers to be that reward. Watch the number climb, feel the little glow, come back tomorrow.

Trouble is, a streak is a reward you can only lose. It creeps up one point at a time, quiet as dust — and then it goes off like a firecracker the first day you fall short. That's no accident. A tall number crashing to zero is built to sting, on the theory that the sting will keep you honest.

But life is not a tidy row of perfect days. You get sick. You travel. You have the kind of week that would make a saint miss a workout. And when one ordinary human interruption can wipe out months of effort, a single miss stops being a stumble and turns into a verdict: I already blew it. That verdict is what kills the habit — not the day you missed, but the tailspin that follows it.

Most habit apps punish you for being human. I wanted one that expected it.

The 21-day myth (and what the research actually says)

Somewhere along the way I kept tripping over the old chestnut that it takes 21 days to form a habit. It's everywhere. It's also a fairy tale — a number lifted out of context from a 1960s book by a plastic surgeon who noticed his patients took about three weeks to get used to a new face. Somehow a surgeon's offhand remark became gospel for building habits.

The study people should be quoting is Lally et al. (2010), out of University College London, cheerfully titled "How are habits formed?" They followed ordinary people building ordinary habits and clocked the point where the thing finally felt automatic. The average came in at 66 days — three times the folklore. And the average hides the real news: people ranged from about 18 days to more than 250, depending on the person and how hard the habit was. Later work (Singh et al., 2024) says the same thing louder — formation times scatter so widely that any single number is close to useless.

Let that sit a moment. If forming a habit can take anywhere from three weeks to the better part of a year, and leans heavily on who you are and what you're attempting, then a universal streak counter isn't just harsh — it's measuring the wrong thing. A 30-day streak on "drink a glass of water" and a 30-day streak on "write for an hour" are not the same feat, and a counter that treats them as equals tells you exactly nothing about whether either has taken root.

The better question: not "how many days," but "how automatic?"

So I quit asking how many days in a row, and started asking a better question: how automatic does this feel?

That question has a real answer in the literature, and a name only an academic could love: the SRBAI, the Self-Report Behavioural Automaticity Index (Gardner et al., 2012). In its short form it's almost embarrassingly plain. Once a week, Habit Arc asks you one thing:

This habit felt automatic. (1 — Not at all … 5 — Completely automatic)

One number, and it does what a streak never can. It measures the thing you actually came for — not "did you comply today," but "is this becoming who you are." And because you're the one answering, it bends to your timeline instead of some spreadsheet's. Your automaticity, your pace.

Habit Arc uses that answer to walk a habit through three phases — Formation → Building → Established — instead of just tallying days. A habit doesn't graduate because the calendar says 30; it graduates when you report it's starting to run on its own. And if two weeks running say it's slipping, it slips back a phase — quietly, without a lecture. The day count is an input. Automaticity is the verdict.

There's real machinery under this — a growth curve that rises fast and then levels off, harder habits climbing slower than easy ones — but I'll save the engine room for Part 2. The point here is the swap. A streak measures your obedience. Habit Arc tries to measure your automaticity, which is the only part that outlives your motivation.

What that changes about the app

Once you decide the target is automaticity — and that recovery counts for more than perfection — a lot of the design stops being a matter of taste and starts deciding itself.

Never miss twice. One miss is nothing; everybody misses. What wrecks a habit is the second miss, and the little voice that says you've already blown it, so why bother. So when you slip, Habit Arc doesn't scold you — it points at the very next rep. Land that one, and you earn back part of what the miss cost. The whole thing is tuned so a single bad day can't undo your progress as long as you come back the next. The screen never flashes "streak lost." It says: a miss is feedback, not failure. Get back to the next rep.

A miss is yours to declare — the app never declares it for you. This matters more than it sounds. Habit Arc has no automatic decay and no auto-generated "Missed." Skip a day and touch nothing, and the day stays blank — not a failure, just a day that went by. The app won't creep in overnight and stamp a red mark on your record while you sleep. A miss only exists if you say so. An app that assumes the worst of your silence is an app that's teaching you to dread it.

Growth you can watch, not a number that detonates. In place of a streak, each habit grows through stages you can picture — 🌱 Seedling, Sprouting, Growing, 🌲 Established, 🌳 Deep Rooted — under a 0–100 Growth Score that folds together repetition, consistency, recovery, and automaticity. Miss a day and the growth slows. It doesn't torch the garden.

Building a habit and breaking one are different jobs, so the app treats them differently. Starting to floss and quitting the midnight scroll are not the same problem. Before a Reduce habit will even show up on your Today screen, setup asks for two things: the early warning sign ("when do I feel the pull?") and the replacement ("what do I do instead?"). "Just stop" has never been a plan. The research is blunt about it — you swap a routine out, you don't grit your teeth until it leaves.

It helps you set the trigger, not just the goal. When you make a habit, the app walks you through an implementation intention — the plain "When I ___, I will ___" format that Gollwitzer's research found sharply raises the odds you follow through. "When I pour my morning coffee, I will read exactly one page." A goal is a wish. An implementation intention is a wish with a doorbell.

It knows some days are heavier than others. A quick daily check-in asks how you're holding up — stress, energy, sleep. On the days you mark rough, the app doesn't ask for more. It asks for less: make the next rep smaller, slower, easier to finish. Showing up small on a bad day is the whole trick to getting the habit through the bad day alive.

And every bit of it stays on your phone. No account, no cloud, no analytics. Your habits, your journal notes, your check-ins — they live on your device and nowhere else. I believe in that line enough that I made it impossible to break at the architecture level, which is a story for Part 2.

Where it is now

Habit Arc is a native Android app, in a closed beta on Google Play right now. It's free, it's local-first, and I'm after people who genuinely want to build (or break) a habit and are willing to live with the app for a couple of weeks.

If "consistency should survive a missed day" sounds like the habit tracker you've been waiting for, join the beta.


In Part 2, I open the hood: how I turned all of this behavioral science into a plain Kotlin engine that unit-tests in milliseconds, why the app couldn't phone home if it tried, and the things I got wrong before I got them right.

Building Habit Arc — Part 1 of 2.