# Forecasting active users

> New users × retention: build a monthly active users forecast from cohorts, with a separate curve for summer cohorts, and price a cut in paid acquisition in users.

- Course: [Product Analytics: From Data to Decisions](https://productovi.com/courses/product-analytics.md)
- Module: How will we grow?
- Lesson 29/32, ~34 min
- Source: https://productovi.com/courses/product-analytics/forecasting

## Is June the new normal?

**Alex Tutor:** The Halves board wants a forecast, and Maya asks you, the product team's data person, to build it.

**Maya:** The board wants a user forecast for the rest of 2026. MAU jumped from 25,704 in May to 34,365 in June. Is that our new level?

**Alex Tutor:** That depends on who joined in June. Last year's cohorts can tell us: here is how summer cohorts stayed compared with the rest.

**Dataset (CSV):** [Monthly retention curves from the 2025 cohorts](https://productovi.com/datasets/product-analytics/forecasting/halves-retention-curves.csv)

Share of a cohort that opens the app in each month of its life.

- `month_since_signup`: Age of a cohort in months; 0 is the sign-up month
- `active_share_regular`: Share of a cohort active at that age: cohorts from September to May
- `active_share_summer`: The same for June–August cohorts (many trip groups)

**Sofia:** At month 1 both curves are at 50%. By month 3 summer is at 31% against 36%, and by month 11 at 17% against 26%.

**Alex Tutor:** Trip groups settle the bill and leave. Two-thirds of June's 12,904 new users came through invites, many into trip groups, so part of June's MAU is on loan.

![A crowded summer beach thins out as autumn leaves fall, while a small group of flatmates stays at their table with a receipt.](https://productovi.com/courses/product-analytics/inline/forecasting-illustration-2.webp)

*Summer cohorts are big, but they leave faster than the rest.*

> **Exercise:** How many users of the **June 2026** cohort do you expect to be active in **September 2026**? Use the right curve and round to whole users.

## Cohort by cohort

**Alex Tutor:** So build the forecast the way users arrive and leave: each month's new users times the share of a cohort still active at its age, plus everyone who joined in 2025 as one line.

![Layers stacked like rock strata, each older layer thinner, with a fresh thick layer on top.](https://productovi.com/courses/product-analytics/inline/forecasting-illustration-3.webp)

*Active users are the sum of every cohort still around, each at its own age.*

$$
\text{MAU}_t = \text{active from 2025 cohorts}_t + \sum_{c \le t} N_c \times r_{\,t-c}
$$

*N: new users in cohort month c; r: share of a cohort active at age t − c.*

**Alex Tutor:** Before the numbers, put the method in order. Each step needs the one before it.

> **Exercise:** Put the steps of a cohort-based MAU forecast in order.

**Dataset (CSV):** [Halves new users and MAU, 2026: actual and plan](https://productovi.com/datasets/product-analytics/forecasting/halves-forecast-2026.csv)

January–June are actual; July–December are the growth plan and the "paid halved from September" scenario.

- `month`: Calendar month, 2026
- `status`: actual (January–June) or plan (July–December)
- `new_invite`: New users from invites
- `new_organic`: New users from store search, not paid
- `new_paid`: New users from paid social and store search ads
- `new_users`: All new users (the cohort size)
- `new_users_paid_halved`: New users if paid acquisition is halved from September (and, from October, minus the invites the missing paid users would have brought)
- `active_from_2025_cohorts`: Active users who signed up in 2025 (projected after June)
- `mau_actual`: Actual monthly active users (empty for plan months)

**Sofia:** In September, January will be 8 months old, June 3, and September itself 0.

**Alex Tutor:** Right. Month 0 is 1.0: everyone who signs up opens the app that month. Summer curve for June, July and August, the regular one for the rest.

> **Exercise:** Forecast Halves **MAU for September 2026** under the plan: the 2025 line plus every 2026 cohort from January to September at its age, with the summer curve for June–August.

## Down in September

**Halves MAU forecast, 2026: two curves vs one**

| month | Plan, two curves | One curve for all |
| --- | --- | --- |
| 2026-01 | 18644 | 18644 |
| 2026-02 | 20305 | 20305 |
| 2026-03 | 22027 | 22027 |
| 2026-04 | 23679 | 23679 |
| 2026-05 | 25702 | 25702 |
| 2026-06 | 34365 | 34365 |
| 2026-07 | 40702 | 40704 |
| 2026-08 | 46166 | 46592 |
| 2026-09 | 42829 | 43995 |
| 2026-10 | 43060 | 45193 |
| 2026-11 | 44236 | 47001 |
| 2026-12 | 46081 | 49260 |

*Forecast from cohorts with the summer curve for June–August (plan), and the same plan with the regular curve for every cohort.*

**Maya:** Wait. 46,166 in August and 42,829 in September? We lose users while still adding 7,295 new ones?

**Alex Tutor:** The summer cohorts are huge and fall off fast. In September, July's 14,104 users are down to 38% and August's 14,879 to 50%.

**Theo:** And if we'd used one curve for everyone?

**Alex Tutor:** Then September would read 43,995, 1,166 too high, and December 3,179 too high. The error grows as the summer cohorts age.

> **Exercise:** Halves forecasts September 2026 MAU from cohorts. The June–August 2026 cohorts are large and full of trip groups, which leave faster than other users. Which of these choices would make the September forecast **too high**? Select all that apply.

**Alex Tutor:** Maya will ask why she should trust any of this. Two answers; only one is a real check.

> **Exercise:** Halves forecasts MAU from monthly cohorts and retention curves measured on 2025 cohorts. Which check gives Maya, the product lead, a **real** reason to trust the method?

## Half the paid budget

**Theo:** Finance has seen the M7 numbers: paid-social CAC up to \$1.18 in June, and winter paid cohorts needing four or five months to pay back. They want to halve paid acquisition from September.

**Alex Tutor:** The forecast can price that in users; the cohort ROI says whether those users would have paid back. See `new_users_paid_halved`: half the paid users from September, and from October also the people the missing users would have invited, 0.31 each.

**Sofia:** September's cohort is 1,313 smaller. October's is 1,792 smaller: 1,385 fewer paid users plus 407 lost invites.

**Alex Tutor:** Now find what the cut costs in December. Only the cohorts from September on differ, so take each one's missing users at its December age.

> **Exercise:** By how many users is **December 2026 MAU** lower in the **paid halved** scenario than in the plan? Use `new_users` minus `new_users_paid_halved` for the September–December cohorts and the regular curve at each cohort's December age.

## Reading the gap

**Halves MAU forecast, 2026: plan vs paid halved**

| month | Plan | Paid halved |
| --- | --- | --- |
| 2026-01 | 18644 | 18644 |
| 2026-02 | 20305 | 20305 |
| 2026-03 | 22027 | 22027 |
| 2026-04 | 23679 | 23679 |
| 2026-05 | 25702 | 25702 |
| 2026-06 | 34365 | 34365 |
| 2026-07 | 40702 | 40702 |
| 2026-08 | 46166 | 46166 |
| 2026-09 | 42829 | 41516 |
| 2026-10 | 43060 | 40611 |
| 2026-11 | 44236 | 40903 |
| 2026-12 | 46081 | 41922 |

*Forecast from cohorts: the plan and the scenario with paid acquisition halved from September.*

**Alex Tutor:** September loses 1,313 users, December 4,159, 9% of the plan. The gap keeps widening after the cut: every smaller cohort stays smaller, and the lost invites add up.

**Maya:** So is halving the wrong call?

**Alex Tutor:** Not necessarily. It saves half the paid budget. Whether that's worth 4,159 users in December depends on what those users would earn against their CAC, and that's unit economics, not the forecast.

> **Exercise:** If Halves halves paid acquisition from September, the MAU gap against the plan is largest in September and shrinks after that.

**Alex Tutor:** So the forecast has done its part. What does the decision still need?

> **Exercise:** Halving paid acquisition from September costs 4,159 active users in December. What does Halves still need before deciding?

## The forecast note

**Alex Tutor:** A forecast is a set of assumptions with a number at the end. Write the assumptions down, so the board argues with the inputs, not with the result.

![A machine with several levers and dials on its front prints one long receipt out at the end.](https://productovi.com/courses/product-analytics/inline/forecasting-illustration-4.webp)

*A forecast is assumptions with a number at the end, so write them down.*

**Maya:** Short, please. December, both scenarios, and what could make it wrong.

**Theo:** And keep the halved scenario next to the plan. I'll need both for the budget talk in October.

> **Exercise:** Write Maya, the Halves product lead, 3–5 sentences for the board: the December 2026 MAU forecast under the plan and with paid acquisition halved from September, how it was built, and the two assumptions most likely to make it wrong.

**Alex Tutor:** The rule: forecast users the way they arrive and leave, cohort by cohort, with the right curve for each kind of cohort. A trend line only extends the past.

- Previous lesson: [Price testing case: price or paywall?](https://productovi.com/courses/product-analytics/price-or-paywall.md)
- Next lesson: [Invites and viral growth](https://productovi.com/courses/product-analytics/virality.md)

---
Productovi Learning. Free, no sign-up needed to read.
