LLenny's Podcast
← All frameworks
StrategyJackson Shuttleworth (Group PM, Retention Team)

The Zero-to-Seven-Day Retention Sprint

Concentrate experiments and flexibility on the first 7 days, where loss aversion actually locks in.

Difficulty
Moderate
Time to result
~weeks to results
Steps
3
Confidence
90%

Duolingo's retention curves show the biggest per-day jumps in retention happen between day 1 and day 7; after day 7 loss aversion has 'kicked in' and the curve flattens. So the retention team runs a disproportionate share of experiments on the 0-to-7-day window and front-loads flexibility there, because that's where a saved streak converts a fragile user into a committed one.

Origin

Derived by Jackson Shuttleworth's retention team from analysis of Duolingo's retention curves by streak length.

Core principles

  • 01Retention gains are not evenly distributed across a user's life — early days dominate
  • 02Loss aversion needs a threshold before it grips; get users past it
  • 03A one-to-two-day streak jump matters far more than a thirty-to-thirty-one jump
  • 04Give the most flexibility exactly when the streak is youngest and easiest to abandon

How to run it

  1. 1

    Map retention by streak length

    Plot how retention changes day-over-day as streaks lengthen. Look for where the marginal retention gain per additional day collapses.

    Pro tip Duolingo found 1→2 and 2→3 day jumps are huge; by day 7 it 'flattens out'.

  2. 2

    Over-index experiments on the pre-threshold window

    Allocate more experiments than average to moving users from a 0-day to a 7-day streak, since that's where behavior is most malleable.

    Watch out A 30-day-streak user is more retentive than a 7-day one, but not by an order of magnitude — don't over-invest downstream.

  3. 3

    Front-load flexibility for new streakers

    Grant flexibility (e.g. free streak freezes) at streak start so short streaks are hard to lose, then taper it as streaks mature.

    Pro tip Duolingo gives two free streak freezes when you start a new streak — a huge win because 1-3 day streaks are trivially easy to let die.

    Watch out Reduce flexibility on long streaks; committed users rarely need it and over-flexibility trains days off.

In the wild

Two free streak freezes at streak start

Historically streak freezes had to be bought with in-app gems. The team tested simply granting two freezes when a user starts a new streak, so early streaks are protected.

'Holy smokes to that win' — one of their biggest streak-freeze wins, because short streaks are otherwise easy to abandon and restart.

Common mistakes

Spreading experiments evenly across the streak lifecycle

Retention gains concentrate in days 1-7; treating a 30-day user's experience as equally leveraged wastes experiment cycles where behavior barely moves.

Giving new and veteran users the same flexibility

New streaks need protection to survive to day 7; long streaks need less, because generous flexibility late just conditions committed users to skip days.

Is it for you?

Best for

Retention PMs with enough users to segment retention curves by streak/tenure and target the highest-leverage window.

Not ideal for

Very early products without enough data to see a reliable retention-curve inflection.

From the transcript

once you get to seven days L of version kicks in and and and you retain so going from a one to a two day…

19:30

give more flexibility when a user is starting their streak

48:30

if you have a one or a two or a three- day streak it's really easy just to let it die and restart you know…

49:30

From the episode

Behind the product: Duolingo streaks

Jackson Shuttleworth (Group PM, Retention Team)