Growth Model
Build a quantitative equation that predicts how inputs (channels, conversion rates, retention) combine to produce weekly active user growth.
Why
A growth model turns 'we need more users' into 'we need activation rate from 25% to 32%, which at current traffic yields +1.4k WAU/week' — it makes growth legible and plannable. It exposes which lever has the highest marginal return right now, so you spend the next sprint on the highest-ROI experiment instead of the loudest request. When the model disagrees with reality, the gap tells you exactly which assumption was wrong, which is the most valuable debugging signal in growth. Without a model, growth decisions are gut calls dressed up in dashboard screenshots, and the team repeats experiments that never could have moved the number.
When
When you have 3+ months of funnel data and need to forecast or prioritize. Build the model once, recalibrate monthly.
How
1. Start from the NSM and decompose it: WAU = (new users this week) + (returning users) + (reactivated users) + (referred users) 2. Model each term: new users = sum over channels (traffic × conversion); returning = last_week_WAU × retention_rate 3. Plug in the last 12 weeks of actual data and solve for each rate 4. Validate: does the model reproduce the last 12 weeks of actual WAU within 5%? If not, a term is missing 5. Run sensitivity analysis: which input, moved 10%, moves WAU the most? That is your highest-leverage lever 6. Set weekly targets per input based on the sensitivity ranking 7. Recalibrate monthly as rates drift with product changes 8. Use the model to forecast the next quarter and size experiments to hit the gap
Example
# Simple weekly growth model WAU_week = new_users + returning + reactivated + referred new_users = 10000 * 0.25 = 2500 (traffic * signup_conv) returning = 8000 * 0.65 = 5200 (last_WAU * retention) reactivated = 8000 * 0.05 = 400 (last_WAU * reactivation) referred = 5200 * 0.10 * 0.30 = 156 (retained * k * accept) WAU_week = 2500 + 5200 + 400 + 156 = 8256 # Sensitivity (each input +10%, WAU delta): # retention +10% → WAU +6.3% ← highest leverage # signup_conv +10% → WAU +3.0% # k +10% → WAU +0.2% # Action: this sprint, 3 experiments on retention
Common Problems
- ⚠Building a model so complex no one can explain it, so the team ignores it and goes back to gut calls.
- ⚠Never validating the model against actuals — an unvalidated model is a fancy guess that misdirects the whole roadmap.
- ⚠Treating the model as a forecast oracle rather than a sensitivity tool — the forecast will be wrong; the sensitivity ranking is what's useful.
- ⚠Forgetting that rates drift as the product changes, so a model calibrated in January misdirects March.
Best Practices
- ✓Start with the simplest model that reproduces actuals within 5%; add complexity only when the gap demands it.
- ✓Validate against 12 weeks of actuals before trusting any sensitivity ranking — an unvalidated model's levers are fiction.
- ✓Use the model for sensitivity (which lever moves the number most) more than for forecasting (what will the number be).
- ✓Recalibrate monthly and whenever a major product change shifts a rate; a stale model is worse than no model.