The question
Which subscription groups have the highest churn rates, and how much can this practice dataset tell us about retention? The interactive story above uses totals recalculated directly from the repository CSV.
Goals
- Identify which user segments have the highest churn rates across subscription, device, age, and country
- Analyze behavioral patterns — listening time, skip rate, and offline usage — between churned and active users
- Validate data integrity by cross-checking ads per week against subscription type
- Practice building a full EDA workflow around a target variable rather than open-ended exploration
Process
- Explored churn rates across all categorical segments — subscription type, country, gender, device, and age group
- Analyzed behavioral features including listening time, skip rate, songs played, and offline listening against churn status
- Built a correlation heatmap to measure numeric feature relationships with the target variable
- Created 17 visualizations across bar charts, box plots, histograms, scatter plots, and a heatmap
Insights
- Family has the highest observed churn rate (525 of 1,908 users, 27.5%). Free has the lowest (503 of 2,018 users, 24.9%). This describes synthetic records; it does not establish a real-world subscription effect.
- Comparing percentages corrects an earlier impression from raw counts: offline users have a 26.2% churn rate, versus 24.9% for non-offline users in this dataset. A larger active-user count alone does not establish better retention.
- Offline access and subscription type are coupled in this dataset: all Free users are in the non-offline group, and all paid users are in the offline group. These groups cannot isolate an independent effect of offline listening.
- The correlation heatmap showed near-zero correlation between all numeric features and churn — a sign the dataset is synthetically randomized rather than reflecting real-world patterns
- Sometimes the most valuable insight is knowing what doesn't predict churn — not every dataset tells a clean story
This is a synthetic practice dataset. The project analysis found little separation in many numerical features between churned and active users. The key analytical skill demonstrated here is recognizing when data lacks predictive signal, rather than forcing conclusions that aren't supported. In a real-world scenario, this would prompt a data quality investigation before any modeling.
What I would investigate next
- Verify how records and churn labels were generated, including the observation window and definition of churn.
- Compare group sizes and uncertainty before treating a small rate difference as a dependable pattern.
- Validate any candidate relationship on independently collected data.
- Correct count-based interpretations by checking rates and the underlying denominators.