LLenny's Podcast
← All episodes
Jackson Shuttleworth (Group PM, Retention Team)15 December 2024

Behind the product: Duolingo streaks

8Frameworks
15Insights

Frameworks in this episode

Insights & moments

The myth-busts, hot takes, explainers, and tools worth keeping.

Hot Take· 1

Hot Take1:14:30

A streak won't save an app people don't want to use

Jackson believes almost any app can benefit from a streak via loss aversion, but only if the core loop already gives value users want daily. Focusing on the streak before the app is enjoyable just wastes time. He also relays a board member's insight: users care about Duolingo's streak because Duolingo itself visibly cares - celebrating it after every session and referencing it everywhere.

  • Almost any app can be made more retentive with a streak (loss aversion)
  • A streak on top of a weak core loop wastes time and can cause more problems
  • Users care about the streak because Duolingo visibly cares about it
  • Give the streak the visibility you want it to have; adapt cadence (e.g. Peloton's weekly streak) to your usage pattern

if you start focusing on the streak but you haven't made that a enjoyable experiment experience you're just going to waste a lot of time

Jackson Shuttleworth · 1:15:30

the reason why users care about our streak so much because dualingo cares about the streak so much

Jackson Shuttleworth · 1:16:30
#strategy#retention#product-advice#duolingo

Explainer· 3

Explainer19:00

Why Duolingo obsesses over the first seven days

Retention curves show the biggest jumps happen between day one and day seven, after which loss aversion kicks in and retention flattens out. That's why a disproportionate number of experiments target getting users from a zero to a seven-day streak. A 30-day user isn't an order of magnitude more retained than a 7-day user.

  • Loss aversion locks in around day seven of a streak
  • The jump from a one-day to two-day streak is huge; two-to-three slightly less but still big
  • After day seven the retention curve flattens
  • The team runs more experiments than average on the zero-to-7-day window

once you get to seven days L of version kicks in and and and you retain

Jackson Shuttleworth · 19:30

going from a one to a two day streak huge jump in retention two to three day streak slightly less but still huge

Jackson Shuttleworth · 19:30
#retention#psychology#onboarding#duolingo
Explainer46:00

The flexibility paradox of streak freezes

Flexibility has been the biggest mechanic-level DAU driver. Going from one streak freeze to two was a big win, but three was no better than two - because too much time off trains users not to come back. Giving new users two free streak freezes when they start was a huge win, since early streaks are easy to abandon; long streaks need less flexibility.

  • One to two streak freezes was a big DAU win; three was no better than two
  • Too much flexibility trains users to take days off and not return
  • Giving new users free streak freezes at the start was a huge win
  • Give more flexibility early, less once users are on long, valued streaks

three streak freezes was actually no better than two streak freezes

Jackson Shuttleworth · 47:30

give more flexibility when a user is starting their streak

Jackson Shuttleworth · 48:30
#retention#psychology#mechanics#duolingo
Explainer55:00

Why the reminder fires 23.5 hours after you practiced

Duolingo sends the practice reminder 23.5 hours after your last session, on the theory that if you were free then, you'll likely be free the same time today. They tried letting users set their own time and building more complex logic, but revealed behavior (when you actually practiced) always wins. A second 'streak saver' notification at 10pm feels helpful, not spammy, because users care about their streak.

  • The practice reminder fires exactly 23.5 hours after the last session
  • User-set reminder times lost to revealed behavior; life gets in the way of stated intent
  • More complex timing logic never beat the 23.5-hour rule
  • A 10pm 'streak saver' feels positive because users attach positive emotion to their streak

we have tried a bunch of ways to have much more complex logic and what always wins is 23 and a half hours

Jackson Shuttleworth · 56:00

we'll send it what we call a streak saver and this is at 10 o'clock at night if you have not extended your streak

Jackson Shuttleworth · 56:00
#notifications#behavioral-data#retention#duolingo

Story· 7

Story11:00

Moving from an XP-based streak to one lesson a day

The original streak required hitting an XP goal each day, which meant serious users could do multiple lessons and still lose their streak by setting too hard a goal. One of the most impactful early experiments switched it to simply doing one lesson a day. It drove a huge amount of DAU without users caring less, because a lesson is Duolingo's true unit of use.

  • Original streak was XP-goal based, so a hard self-set goal could break your streak even after multiple lessons
  • Switching to one lesson a day was a huge DAU driver
  • The streak should map to your app's real unit of use
  • Simpler is also easier for more users to understand

was to Move It from a XP based streak to just do one lesson a day and you'd extend your streak

Jackson Shuttleworth · 11:30

the unit of use for dualingo is like doing a lesson

Jackson Shuttleworth · 12:00
#experimentation#product-design#retention#duolingo
Story15:00

The experiment that dumbed the streak down too far

Following the one-lesson win, the team tried making the streak extend after just a single exercise. The hypothesis looked sound from the funnel, but DAU didn't move at all. They had made the unit of measure unclear and were only capturing the least engaged users imaginable, so they shut it down quickly.

  • Extending the streak on a single exercise moved DAU 'not one bit'
  • A single question is not a unit of use anyone actually thinks about
  • It only captured the least-engaged users, who weren't going to be retained anyway
  • Lesson: decide what level of user commitment your streak is solving for

I just want to come you do one question on dualingo nobody thinks about that

Jackson Shuttleworth · 16:00

the users that we are capturing with our streak you know you come you do one or two questions on duelingo then you leave we're…

Jackson Shuttleworth · 16:00
#experimentation#retention#product-design#duolingo
Story22:30

The opt-out button that became a surprise win

Building the streak goal feature, the team started by telling users they were 7x more likely to finish the course with a 30-day streak, then let them opt out to an easier goal. Counterintuitively, adding the 'no, I don't think I can hit it' opt-out button was almost as big a win as the easier goal itself. The intentional yes/no choice drove the engagement, even though it had no effect past that screen.

  • Telling users they're 7x more likely to finish the course with a 30-day streak was a big win
  • Adding an opt-out button (which a PM would fear) was itself a huge win
  • The intentional act of choosing a goal drove the engagement, not the goal outcome
  • Pre-selecting a harder goal for users lost significantly - selecting it themselves was the point

it was almost just as big a win to add that opt out button

Jackson Shuttleworth · 23:00

adding an opt out button when you would think like as a PM oh I'm like you know now users might not engage with my…

Jackson Shuttleworth · 23:00
#psychology#experimentation#product-design#duolingo
Story26:30

'Continue' to 'Commit to my goal' - a massive copy win

Duolingo invests heavily in copy testing because changes are cheap to translate and ship. Changing the goal-screen CTA from the standard 'continue' to 'commit to my goal' was a massive win. Every change, including copy, goes through product review with Luis, whose default is often 'I don't think this will win, but test it.'

  • Changing the CTA from 'continue' to 'commit to my goal' was a massive win
  • Copy is cheap to test - come up with ideas, translate strings, ship
  • Companies with a large enough user base should copy test constantly
  • Every change is reviewed by founder Luis, who leans on testing over debate

we used to say continue our like standard CTA is continue um and we changed that to commit to my goal and it was like…

Jackson Shuttleworth · 27:00

just that little copy change that one time right there led to to huge wins and copy changes are so cheap

Jackson Shuttleworth · 27:30
#copywriting#experimentation#conversion#duolingo
Story34:00

Explaining the streak in eight words was a top-three win

Many users genuinely don't understand how a streak works. Jackson's first win at Duolingo was flavor copy at the bottom of the streak screen that explained in eight words what a streak was. It was one of the biggest wins Duolingo had had, on the order of 10,000 incremental DAU, because clarity made the feature more retentive.

  • Many users don't understand how streaks or streak freezes work
  • An eight-word explainer ('start a day to extend your streak but miss a day and it resets') was a massive win
  • The win was roughly 10,000 incremental DAU and a top-three CERR win at the time
  • Your audience is global and non-technical - make even simple features comprehensible

I ran some tests that just like tried to in eight words explain what a streak was that was it and it was a massive…

Jackson Shuttleworth · 34:30

start a day to extend your streak but miss a day and it resets

Jackson Shuttleworth · 35:30
#copywriting#clarity#retention#duolingo
Story38:30

A winning experiment they killed to protect the lesson

The team added live XP ticking up during a lesson - and it won. But Luis pushed back: the lesson is the most sacred, learning-focused screen in the app, and the addition risked distracting users with no clear long-term roadmap. They shut it down for simplicity, choosing to keep the lesson a learning sanctuary even at the cost of an easy engagement win.

  • Showing XP tick up during lessons won as an experiment
  • It was shut down because the lesson is the app's most important, learning-focused screen
  • The key question was 'where does this iteration go?' - and there was no good answer
  • Not every positive experiment should ship if it clutters a sacred surface

cool this is our most important screen in the app it is our lesson it is where users learn

Jackson Shuttleworth · 39:30

we had touched our most uh you know Sacred Space in the app to to do that

Jackson Shuttleworth · 40:00
#experimentation#product-design#simplicity#duolingo
Story41:00

The flame didn't resonate in India - so they led with the number

The streak flame is a metaphor for a retention mechanic, but in UXR in India the 'keep a flame lit' idea didn't resonate at all. The redesign shifted the screen's focus to the streak number ticking up via an odometer animation, rather than the flame. The lesson: form should follow function, and product design should be a clear distillation of what you're actually tracking.

  • The streak flame is a cultural metaphor that doesn't translate everywhere
  • UXR in India showed the 'keep a flame lit' idea didn't resonate
  • The redesign led with the streak number and an odometer animation
  • Global UXR surfaces insights you can't get from a single market

we did some uxr in India many years ago and this was something that just like did not resonate at all

Jackson Shuttleworth · 42:00

we're showing streak we really leading with the number not necessarily the the flame

Jackson Shuttleworth · 43:00
#design#uxr#global#duolingo

Takeaway· 4

Takeaway08:00

Why streaks are Duolingo's single biggest growth lever

Jackson frames the scale of the streak feature: over 9 million users have a year-plus streak, and by the numbers it is the most impactful feature for retention outside the core lessons themselves. Because Duolingo grows organically, keeping existing users from churning matters as much as acquiring new ones, and the streak is the best tool for that.

  • Over 9 million users have a year-plus streak (used the app almost every day for over a year)
  • The streak is the single most impactful feature after the core lessons
  • Notifications work largely because they reference the streak users already care about
  • Duolingo's growth model prioritizes not losing users, not just acquiring them

we have right now over 9 million users with a year plus streak

Jackson Shuttleworth · 08:00

if you look at the numbers I think pretty objectively has been our biggest growth lover for for driving use

Jackson Shuttleworth · 09:00
#retention#growth#engagement#duolingo
Takeaway17:00

600 experiments and a 'test it, don't debate it' culture

Duolingo has run over 600 experiments on the streak in four years, roughly one every other day, ranging from mechanic changes to single-string copy swaps. Roughly half of experiments lose, but the team still learns from them. In the early days of a streak, Jackson's advice is to test everything.

  • Over 600 streak experiments in four years, about one every other day
  • Experiments range from big mechanic changes to swapping one string
  • About half of experiments lose but still teach the team something
  • Early on, test broadly rather than debate ideas in a room

we've run in the last four years over 600 experiments on the street so every other day effectively we're running an experiment

Jackson Shuttleworth · 17:00

in the early days of the streak I'd say like test everything

Jackson Shuttleworth · 17:30
#experimentation#product-culture#duolingo
Takeaway52:00

Don't cheapen the streak - the 'earn back' win

Replacing paid 'streak repair' with a free 'earn back' (do a few lessons soon after losing your streak to restore it) was a big retention winner, because users feel they earned it rather than having the streak cheapened. Duolingo treats the sanctity of the streak as sacred - a designated colleague guards it, because pushing engagement wins by cheapening it too far could make 9 million users stop caring.

  • 'Earn back' (redo lessons) beat paid 'streak repair' because it feels earned
  • You can win engagement by cheapening the streak, but must hold the line somewhere
  • One colleague (Antonia) and Luis act as keepers of the streak's sanctity
  • Crossing that line would be an 'extinction level event' for retention

you can almost always get engagement wins up to a certain point by just cheapening the streak making it easier to extend letting users have…

Jackson Shuttleworth · 53:00

that'd be an extinction level event for us

Jackson Shuttleworth · 53:30
#retention#monetization#psychology#duolingo
Takeaway1:05:00

Structure teams around a metric, not a feature

Duolingo's teams are organized around metrics rather than features. Jackson's retention team owns CERR (current user retention rate), and works on the streak only because it drives that metric better than anything else - there's 'soft ownership,' and other teams can and do touch the streak. A clear metric goal each quarter makes prioritization far easier than a fuzzy goal of making a feature 'better.'

  • Teams are metric-based, not feature-based; the retention team owns CERR
  • 'Better' is fuzzy; a metric target makes prioritization clear
  • The streak has 'soft ownership' - other teams can work on it too
  • CERR is the DAU-driving metric Duolingo optimizes for retention

having a really strong degree of focus you know as as a team on you know what is the metric that I'm caring about and…

Jackson Shuttleworth · 1:05:30

we retention owns streak I guess but that's only because we've seen streak Drive Cur better than any feature

Jackson Shuttleworth · 1:06:00
#team-structure#metrics#product-management#duolingo