Building in Public 12: Moving Our Day 1 Retention 5x

8 min readJan 16


At Steppen a business metric we had always struggled with was retention. Our growth was awesome — we have garnered hundreds of thousands of downloads but our bucket was way too leaky.

In retrospect our growth numbers were really a vanity metric — barely any of the users we obtained were sticking around.

As we matured as a company it became pretty clear if we did not fix our retention we weren’t going to survive.

In late September as we pivoted away from our creator focus and to focusing on habit formation our retention was looking particularly shit. At its worst, only 4% of users were returning on Day 1 — the fitness industry average is 20.2%

We had previously tried to focus on retention — yet whenever we did we always got distracted by other unimportant things. It was time to turn our retention around and turn it around we did — within 2 months our Day 1 retention peaked at 50% (OVER 2 TIMES THE INDUSTRY AVERAGE!!) 🤯🤯

Let’s jump into how we moved our Day 1 retention! I want to preface whilst we have smashed our Day 1 retention goal — we are still plugging away at Day 7 — then Day 14 and finally Day 30.

How N-Day Retention Is Actually Calculated

When apps talk about retention they usually mean N-day retention. This is the % of users who come back onto the app N days after sign up. So day 1 retention is the % of users who signed-up and came back not that day (day 0) but the next day (day 1).

You can calculate the the time period of the day either as a 24 hour windows since last active or calendar days. Often calendar day N-day retention is higher than 24 hour windows as it opens the timeframe up a bit more.

Let’s walk through an example to highlight the difference between the two. In a fitness context a user is more likely to come back and workout at a similar time each day.

Let’s say I sign up at 9:00am on Monday then come back to do a workout at either 8:30am on Tuesday or 9:30am on Tuesday:

  • Using 24 hour windows to calculate retention 8:30am on Tuesday still counts as day 0 because it’s less than 24 hours since signup, while 9:30am on Tuesday counts as day 1 because it’s more than 24 hours since signup.
  • On the other hand, using calendar days 8:30am on Tuesday and 9:30am on Tuesday both count as day 1 because day 0 was the Monday.

Which of those seems more accurate and realistic for the purposes of a fitness app?

Goal Setting

So what is good retention ? Well we bench marked against industry average retention and rationalised we wanted to be at least 1.5 times the industry average. The days we particularly cared about were

  • Day 1
  • Day 7
  • Day 14
  • Day 30

Day 1, 7 and 30 had lots of data on industry averages while day 14 did not. We decided to include day 14 as we think it might become important when we eventually monetise the platform.

We then scaffolded our goals — first aiming to get our retention on par with industry average and then 1.5 x industry average. Tbh it was quite optimistic of us that we thought our retention which was currently ~0.20 times the industry average could be brought up to 1.5 times the industry average… but it’s now looking very possible.*RAYdIfzTaJwU-6Lqw9-z8Q.png
Day 1, 7, 14 and 30 retention goals

Game Plan

We started by focusing on day 1 retention. The logic is a retention curve often decays at the similar rate — so the best way to move your entire retention is to shift the curve up. The best and easiest place to shift your curve up is in onboarding — you highlight why your product is useful to the user and set them up to return the next day.

Andrew Chen nicely summarises this logic in a classic blog post on retention, I would highly recommend reading.

As I have discussed, at Steppen we are building a fitness app which helps Gen Z build a habit around working out. We use the latest behavioural science to power our app. So naturally it was time to read up on habit formation. Research pointed to the habit loop as the key to retaining users. So we built this into our product and completely redesigned our onboarding process along with app navigation.

Key’s to building a habit forming app

Applying The Research To Onboarding

We updated our onboarding to move the user through the habit loop and get users to Steppen’s value ASAP.

First we prime the user to see Steppen as the environment to achieve their goals — we use inclusive copy and articulate to the user’s that it’s okay if they have failed to achieve their goal before, this time will be different.

Initial OB pages

We then ask some basic user information (helpful for demographic information).

Demographic information

Then we get them to the value of the app WITHIN onboarding. Particularly we get them moving straight away by selecting and completing an easy activity of their choice.

Setting and completing your initial activity

Once they have completed their activity we reward them and get them to schedule in tomorrow’s activity right away! This is also the perfect time to prompt the user to enable notifications (previously we had less than 40% of people turning on notifications, now we have 60%+).

Reward and schedule in next session

You can check out the full onboarding process here.

When the next day rolls around the user gets a notification to complete the activity they set (cue):

  • The user wants to a maintain their workout streak (craving).
  • They open Steppen and the activity they have scheduled is there — it is extremely easy for them to complete it with a single tap.
  • User completes the action (response).
  • User is rewarded for completing the action by an extension of their streak and a satisfying animation (reward).
  • The user confirms the time of their next activity — prompting them to cycle through the habit loop again the next day!

Results and Key Learnings

Initially the process was not perfect — we only got our retention to 15% Day 1 with our first iteration. It took us quite a few iterations to get it to peak at 50% day 1 retention. Here are some of our key learnings and mess ups:

  • Getting the user to do activity in onboarding is vital — we had a bit of drop off on the complete activity now page so we thought we’d combat that by giving the user the option to complete it now or later… this actually decreased retention 💀 Getting the user to the value of your app ASAP provides the aha moment and conveys why your app is worth using again.
  • Notifications are important when used well — we moved our server to the USA last week and broke notifications for a couple of days — suddenly our day 1 retention dropped from 45% to 30% (you can see the sudden drop circled in pink) — we quickly realised our notifications were not working and day 1 retention jumped back up! Notifications can provide that external cue users need to come back to your app.
  • Clear UX and tool tips can help — our UX was kinda complex (and tbh still is…) so we used tool tips in the first session to help users understand what they were meant to do. This boosted our day 1 retention again!
  • Breaker pages don’t impact conversion much: we have at least 14 pages in onboarding yet our conversion is still really strong at above 70%. We found adding breaker and explainer pages did not impact our conversion much but rather helped provide more context & storytelling to how Steppen works. The main drop off was where expected at — email (5.74%) & actually completing the activity (9.22%).
  • Polish and design matters: our designs were all over the place before we fixed onboarding — our designer Zoey did an awesome job adding some fun and vibrancy to our onboarding. We also later added loading skeletons throughout the app and saw another boost in retention… turns out making the app seem professional gives users another reason to stick around
Drop in retention when our push notifications stopped working

Next Steps and Current Problems

Despite our strong day 1 retention our day 7 retention is still sitting at just around the industry average (7–14% depending on day). We believe this is as there is not enough continuity in the app — therefore we are tweaking onboarding and building out a 7 day journey.

  • User segmentation: we spent some time looking through our user data and streams to understand our different user segments (special shoutout to Jake!). Segmenting our users provided us a with a clear understanding of who we should (and should not care about) and therefore build a more curated onboarding process.
  • Moving users towards a long term goal: currently our app experience is too day by day — there is no overall progress towards a goal. So our next iteration of onboarding and main app page will move users through a continued 7 day experience working towards the goal of completing a journey.

We are really excited to see the next iteration of our app come alive in the next few weeks. It’s been an awesome experience working with the entire Steppen team to move retention. It was 100% a group effort and as a team rewarding seeing us move the metrics that matter.

Once we release our next iteration of onboarding and main app page I’ll come back with another update on key learnings. Hopefully you find this article helpful, any questions feel free to reach out to me on LinkedIn!






Co Founder @Steppen. Working to democratise workouts. Lover of avo and halloumi.