Streak Redemption

For a lot of people, including myself, streaks are a powerful motivator. One of the purest implementations of this concept is Simone Giertz's Everyday Calendar.

Simone looking at the Everyday Calendar, a huge wall-mounted board that has a button for every day of the year. She's pushing a button to make it light up.

By pushing a button for every day you manage to achieve your goal, you create a visual representation of your progress, which helps turning chores into habits.

Conversely, losing a streak can be so demoralizing that it can be difficult to start from scratch, and get going again. The Everyday Calendar is forgiving: even if you don't light up one of the days, you still see your earlier streak, and your progress. You could even come up with your own rules for when you're allowed to push yesterday's button.

Screenshot of streak representation in Duolingo

But software is unyielding. If you lose a streak in Duolingo, it's just gone, and you're at zero again. Duolingo recognizes this problem, and gives you a limited number of streak freezes, which allow you to continue a streak even if you miss a day or two.

Screenshot of Streak Freeze in Duolingo

The problem with Duolingo's approach is that you have to prepare for a streak loss ahead of time, but streak losses are not something you anticipate. You can't anticipate getting sick or having some kind of emergency that prevents you from continuing your streak.

A few days ago, I hosted a party. I ran around all day preparing things, and then guests arrived, and it was almost midnight when I remembered that I hadn't opened Duolingo all day. By then, it was too late to do anything about it.

Over at Stuff, Craig Grannell is offering a better solution to the problem: a way to recover from a streak loss after it has happened, based on an idea found in the videogame Defender, released all the way back in 1981.

Screenshot of Defender, a videogame where you control a ship 
moving horizontally across the screen, shooting aliens and rescuing humans

In this arcade game, your task is to rescue little humans before aliens steal them. But even if the aliens grab all of them, you still have a chance at redemption: if you manage to stay alive for a few levels longer, you get your humans back.

Thus Craig's suggestion: if your app has a streak feature, provide some way to recover from a streak loss after it has happened.

This could be a harder task that makes up for a lost day, or maybe a lost day is redeemed if the user manages to continue the streak for a certain amount of days, or perhaps it's something else.

Drop, for example, has something called the "2-Day Rule", which allows you to miss one day without losing your streak.

Drop notification alerting the user that they should practice today to recover a missed previous day

Another example is HabitBoard, which shows previous streaks even if you miss a day, and allows you to intentionally skip a day without missing the streak. Florian Heidenreich, HabitBoard's author, has written about his thinking behind its design here.

Regardless: if you do have streaks in your app, to avoid completely demoralizing your users after a streak loss, offer them a chance at streak redemption.

Read more at Stuff: I lost my Apple Watch streak – here’s why it should have more humanity.

If you require a short url to link to this article, please use

designed for use cover

But wait, there's more!

Want to read more like this? Buy my book's second edition! Designed for Use: Create Usable Interfaces for Applications and the Web is now available DRM-free directly from The Pragmatic Programmers. Or you can get it on Amazon, where it's also available in Chinese and Japanese.