Retention Analysis
Swipe to show menu
Retention analysis is one of the most important tools for understanding how well your product keeps users engaged over time. Imagine you run a fitness app and want to know if new signups actually stick around. N-Day retention and unbounded retention are two key ways to measure this.
N-Day retention tells you the percentage of users who come back on a specific day after their signup. For instance, Day 7 retention answers: out of all users who signed up on a given day, how many returned exactly 7 days later? You can think of it like a reunion - how many people show up to the party a week after joining?
Unbounded retention is broader. Instead of asking if users came back on a specific day, it asks if they returned on or after a certain day. So, Day 7 unbounded retention is the percentage of users who came back at any point on or after the 7th day. This is like asking: who ever came back to the party after a week, no matter when?
Both metrics help you spot trends in user loyalty and product health.
1234567891011121314151617181920212223242526import pandas as pd # Sample user activity data data = { "user_id": [1, 1, 2, 2, 3, 4, 5, 5, 5], "activity_day": [0, 7, 0, 1, 0, 1, 0, 7, 30] } df = pd.DataFrame(data) def n_day_retention(df, day): signups = df[df["activity_day"] == 0]["user_id"].unique() returning = df[df["activity_day"] == day]["user_id"].unique() retained = set(signups) & set(returning) return len(retained) / len(signups) * 100 def unbounded_retention(df, day): signups = df[df["activity_day"] == 0]["user_id"].unique() returning = df[df["activity_day"] >= day]["user_id"].unique() retained = set(signups) & set(returning) return len(retained) / len(signups) * 100 print(f"Day 1 N-Day Retention: {n_day_retention(df, 1):.1f}%") print(f"Day 7 N-Day Retention: {n_day_retention(df, 7):.1f}%") print(f"Day 7 Unbounded Retention: {unbounded_retention(df, 7):.1f}%") print(f"Day 30 N-Day Retention: {n_day_retention(df, 30):.1f}%")
N-Day retention measures the percentage of users who return on a specific day after signup.
When you calculate retention, you start by identifying your user cohort - usually, everyone who signed up on the same day. Then, you check how many of those users came back on a specific day (N-Day retention) or at any point after (unbounded retention). For example, if you see that Day 7 N-Day retention drops sharply but unbounded retention is higher, it means users are returning, but not always on a predictable schedule.
Interpreting these numbers helps you make product decisions:
- High Day 1 retention means your onboarding is strong;
- High Day 30 retention means users find long-term value;
- If retention is low, you might need to improve your onboarding, notifications, or core features;
- Tracking these metrics over time shows whether changes you make are helping users stick around.
Both N-Day and unbounded retention reveal how well your product keeps users engaged and where you can improve.
1. What does retention measure in product analytics?
2. Fill in the blank:
Thanks for your feedback!
Ask AI
Ask AI
Ask anything or try one of the suggested questions to begin our chat