The Cohort-Based Growth Model, Explained
A cohort-based growth model splits your users into two pools. The stable base is your long-tenured users, who churn slowly. The new cohorts are each month’s arrivals, retained at your monthly rate and amplified by your virality. Next month’s MAU = the base that survives + the new cohort that survives + the viral users that cohort brings.
Your product grows for two reasons only: the users you have stick around, and new users show up faster than the old ones leave. Keep the two pools apart and you stop guessing whether a feature, a retention fix, or a referral loop moves the line.
Why a single growth number lies to you
Say your MAU was flat last month. Probably your stable base leaked a few percent and your new cohort refilled the hole. Flat MAU can hide a rotting base propped up by acquisition, or a healthy base whose top of funnel has dried up.
Net growth is the difference between two much larger flows. A 2% monthly change in MAU might be a 10% inflow against an 8% outflow. Separate the pools before you act.
The two pools of a cohort-based growth model
Stable base. These are your long-tenured users. They survived the first-month drop-off and turned the product into a habit. In the model that powers the scilla.studio benchmark tool, mature users churn roughly ten times less than a brand-new cohort.
Their monthly retention is 1 − (1 − M1) × 0.10. That 0.10 is a modeling simplification, not a measured constant. If new users retain at 55% in month one (M1), the mature base retains at about 95.5%.
New cohorts. These are each month’s new arrivals. They retain at your raw M1 rate, the share of a cohort still active a month later.
That rate is far lower than the mature rate, because month one is where most products lose the most users. The survivors of each new cohort graduate into the stable base the following month.
The model, in plain math
Two inputs describe the world last month:
- N0: new active users last month (people who activated for the first time).
- A0: MAU last month (everyone active). So your starting base is
A0 − N0.
Two levers describe how it evolves:
- M1: what fraction of each new cohort survives to the next month (monthly retention).
- K: the K-factor, or viral coefficient: how many new users each new user generates next month.
stableBase[0] = A0 − N0
stableBase[t] = stableBase[t−1] × matureRetention + newUsers[t−1] × M1
newUsers[0] = N0
newUsers[t] = N0 + K × newUsers[t−1]
matureRetention = 1 − (1 − M1) × 0.10
Each month the base is what is left of last month’s base after mature churn, plus the survivors of last month’s new cohort graduating in. The new-user line is your baseline acquisition N0 plus a viral kicker proportional to last month’s new users. Total MAU is the two pools added together.
Worked example. Start with A0 = 85,000 MAU and N0 = 5,000 new users last month, so the base is 80,000. With M1 = 55%, mature retention is 95.5%. Next month the base is 80,000 × 0.955 + 5,000 × 0.55 = 76,400 + 2,750 = 79,150, before you add the new cohort back on top. Notice the base alone dipped; whether your MAU grows depends entirely on what the new-user line does.
What the levers do
| M1 retention | K-factor | What happens to your base |
|---|---|---|
| 100% | 0 | Nobody leaves, every new user graduates in. Base grows by exactly N0 every month. |
| 55% | 0 | Roughly flat. New-cohort survivors just offset mature churn. |
| 55% | 0.6 | Steady growth. Viral new users feed the base faster than it decays. |
| 30% | 0 | Slow decline. Too few new users survive to replace what the base loses. |
| 80% | 1.0 | Strong growth. High retention plus a near-exponential new-user line. |
(Source: the growth-model engine behind benchmark.scilla.studio, N0 = 5,000, A0 = 85,000.)
- K = 0: new users stay flat at N0 every month. Growth comes entirely from retention graduating cohorts in.
- K < 1: new users converge to a ceiling of
N0 / (1 − K). At K = 0.6 and N0 = 5,000, that ceiling is 12,500 new users a month. - K ≥ 1: new users grow without limit, true viral growth.
- M1 = 0%: no new user survives, so the base decays at 10% a month and eventually hits zero.
Retention and acquisition are multiplied together. A great K-factor on top of a low M1 fills a base that cannot hold its users. Read retention before you celebrate any viral number in the ranges below.
Where the levers sit against benchmarks
These are directional ranges that tell you whether your inputs are plausible. They split between B2B SaaS and consumer, because the two grow by different mechanics.
Monthly / first-period retention (the M1 lever)
The model’s M1 is a monthly survival rate, closest to early-period retention. The tool’s published retention ranges follow, measured from first use.
| Metric | B2B SaaS (cohort retention) | Consumer apps (cohort retention) |
|---|---|---|
| Day-1 retention | 5 to 25% (estimate) | 20 to 30% |
| Day-7 retention | 4 to 20% (estimate) | 8 to 15% |
| Day-14 retention | 3 to 18% (estimate) | 4 to 8% |
| 90-day retention | 2.5 to 15.6% (Amplitude) | 1 to 4% |
Sources: Amplitude B2B Technology Product Benchmarks (B2B Day 90; the earlier B2B points are estimates); Adjust, AppsFlyer, Amplitude, Mixpanel, Statista (consumer). Pendo’s returning-user rates (50 to 70% Day 1, 40 to 60% Day 7, 25 to 35% at 90 days) measure something else and are not comparable.
Retention drops, then flattens into a plateau. That plateau is your stable base forming.
B2B curves tend to flatten into a base of accounts that use the product on workdays and stay for years. Consumer curves drop steeply and hold a thin tail, which is why consumer products lean harder on acquisition and virality. For the long tail, see 90-day retention and the fuller retention rate benchmarks.
K-factor (the viral lever)
| Metric | B2B SaaS | Consumer apps |
|---|---|---|
| K-factor (viral coefficient) | 0.1 to 0.3 | 0.3 to 0.7 (rarely >1) |
Sources: Reforge, Andrew Chen.
B2B virality is usually weak. Anything above 0.3 is unusually strong unless the product has real collaboration loops built in. A K above 1, self-sustaining viral growth, is extremely rare. Most products live well under 1, so virality accelerates growth but does not replace paid or organic acquisition (N0).
For what K-factor is and why it compounds with retention, see What Is K-Factor? The Growth Multiplier Explained. For measuring K across several loops, and why cycle time matters as much as the coefficient, see How to Improve K-Factor Without a Referral Program.
A lower K with a faster loop can outgrow a higher K with a slow one. This cohort model runs on a monthly cycle, so a product whose loop fires weekly will beat what these monthly numbers suggest.
How to read your own chart
Run your real N0 and A0 through the model, then ask three questions:
- Is the base growing or rotting? Plot the stable-base line on its own, with K set to 0. If it declines, your M1 is below the break-even point where new-cohort survivors offset mature churn. Fix retention first.
- What’s carrying the growth, retention or acquisition? Toggle K between 0 and your real value. If most of your growth disappears at K = 0, you are acquisition-led and exposed the day your channels dry up. If it barely moves, your durable base is doing the work, which is healthier but slower.
- Where’s the break-even M1? It depends on the ratio of N0 to your base size. A big base needs a higher M1 just to stand still, because mature churn applies to a much bigger number.
See where your numbers land
The free scilla.studio benchmark tool runs this cohort model live. Enter your MAU and last month’s new users. Drag the M1-retention and K-factor sliders. Your 12-month growth curve redraws against the B2B and consumer benchmark ranges, in six minutes, no signup. You see whether your growth is base-led or cohort-led, and whether your inputs are plausible.
Frequently asked questions
See where your numbers actually land
Plot your retention, CAC payback, LTV:CAC and K-factor against the B2B and Consumer bands, and find out whether a good-looking number is real or sitting on a leaky retention curve.
Run the growth diagnostic →