← All guides

A/B test patterns · 6 min read

Retention loops that stick

Make streaks achievable, motivation personal, and progress visible — Duolingo, Opal, Stash lessons.

Explained like for kids

A streak that’s impossible feels like a mean game. A streak you can keep with one small action feels like a fun challenge. Retention is about fair goals and seeing your progress.

Examples

Each example has a kid-friendly “why,” then a clear Don't and Do with a real UI mock so you can see the difference.

Achievable streaks

Like for kids: If keeping your sticker chart needs 20 chores, you’ll quit. One sticker a day keeps the chain alive.

Don’t

Streak requires full daily goal

Ambitious goals make streaks brittle. Duolingo users burned out.

Control — streak = full goal

Daily goal: 30 XP

Streak breaks at 29 XP

Do

One lesson keeps the streak; goals stay separate

Duolingo: +40% learners on a 7+ day streak after decoupling.

Winner — decoupled · Duolingo +40%

🔥 12-day streak

1 lesson keeps it alive · Goal still 30 XP

Motivation with a why

Like for kids: “Do your homework” is meh. “So you can beat the boss level” is a reason.

Don’t

Generic “Start your trial” with no personal why

Weak emotional pull. Trial starts stay flat.

Control — generic ask
Start your free trial

Do

Tie the trial to the user’s stated goal

Opal’s motivation-led design: +143% trial signup.

Winner — personal why · Opal +143%

You said you want fewer phone distractions at night.

Start trial to protect focus

Show the concrete number

Like for kids: “You’re saving” is fuzzy. “You put in $12 this week” is a real sticker on the chart.

Don’t

Abstract progress with no personal amount

Hard to feel ownership. Retention dips.

Control — abstract

You’re building wealth ✦

Do

Display individual contribution / investment amount

Stash: +12% user retention by showing individual amounts.

Winner — concrete · Stash +12%

You invested $12 this week

Keep the streak going

Live referral progress

Like for kids: Waiting weeks to know if your friend joined is boring. A live scoreboard is fun.

Don’t

Referral link with no status feedback

People stop sharing. Progress is invisible.

Control — dead link

Share your link: sofi.com/r/alex

No status yet…

Do

Real-time referral tracking UI

SoFi: 20× referrals with live tracking feedback.

Winner — live tracking · SoFi 20×

Your referrals

  • Jordan joined+$50
  • Sam clickedPending

Remember these

  • Separate “keep the streak” from “hit the ambitious goal.”
  • Motivation copy should feel personal, not generic.
  • Show concrete progress amounts people care about.
  • Referral tracking should feel live and rewarding.

Patterns from abtest.design (Duolingo +40% streaks, Opal +143% trial, Stash +12% retention, SoFi referrals). Rewritten in plain language for learning — not a reprint of the originals.