FitLoop, a subscription-based fitness app with 2.4M monthly active users, wants to predict which new users will still be active on day 30. The growth team will use the model to trigger onboarding nudges and retention campaigns for users at risk of dropping off.
You are given a user-level training table built from each user’s first 7 days after signup.
| Feature Group | Count | Examples |
|---|---|---|
| Acquisition | 6 | acquisition_channel, campaign_id, country, device_os |
| Early engagement | 14 | sessions_first_7d, workouts_started, workouts_completed, avg_session_minutes |
| Monetization | 5 | trial_started, payment_method_added, viewed_pricing_page |
| Notifications & CRM | 4 | push_opt_in, emails_opened_7d, push_clicks_7d |
| Account metadata | 7 | signup_day_of_week, app_version, referral_code_used, language |
retained_day30 = 1 if the user is active on day 30 after signup, else 0A solution is considered good enough if it achieves ROC-AUC >= 0.82, PR-AUC >= 0.58, and recall >= 0.70 at precision >= 0.50 on a held-out test set. The output should also support campaign targeting by ranking users by retention probability.