# Driver-based forecasting

> Driver-based forecasting: revenue and profit from learners, lessons, price and payout instead of last year plus ten percent.

- Course: [Finance for Product People: From Unit Economics to Business Cases](https://productovi.com/courses/finance-for-product.md)
- Module: What will next year look like?
- Lesson 25/32, ~28 min
- Source: https://productovi.com/courses/finance-for-product/driver-based-forecast

## Last year plus ten percent

**Alex Tutor:** Planning time at Klasna. You're still on the product team, and the board has asked for next year's numbers.

**Leo:** The board wants next year's numbers by Friday. Easy: last year we sold 44.3 million UAH of lessons and made 744 thousand of operating profit. Add ten percent: 48.8 million and about 819 thousand. Done?

**Hanna:** That's a wish, not a forecast. Ten percent of what? More learners, more lessons each, higher prices? Each of those moves costs in a different way.

**Sofia:** So instead of growing the totals, we grow the things that produce them?

**Alex Tutor:** Exactly. A **driver-based forecast** starts from the operational numbers that cause the money: active learners, lessons per learner, price, tutor payout, the video bill. Money is the output of the sheet, not its input.

**Alex Tutor:** Quick check before the numbers: which of two lines for the board is driver-based?

> **Exercise:** Leo needs a sales line for next year's board pack. Which line is **driver-based**?

**Alex Tutor:** One month works like a chain. Learners × lessons per learner = lessons. Lessons × price = sales. Every lesson then costs the payout, the 2.5% fee and video + AI, which is billed in dollars.

$$
L = N \times n \qquad CM = L \times (0.975\,P - T - V \times FX) \qquad OP = CM - F
$$

*N: active learners; n: lessons per learner; L: lessons; P: price per lesson; T: tutor payout; V: video + AI in USD per lesson; FX: UAH per USD; CM: contribution margin; F: fixed costs; OP: operating profit.*

**Dataset (CSV):** [Klasna's forecast drivers, Sep 2026 – Aug 2027 (base case)](https://productovi.com/datasets/finance-for-product/driver-based-forecast/klasna-forecast-drivers.csv)

One row per month. Fixed costs outside the table: team salaries 600,000 UAH a month, office and tools 88,000 UAH a month, one support coordinator (38,000 UAH) per started 400 active learners. Payment fee: 2.5% of sales.

- `month`: Month of the forecast
- `active_learners`: Learners with at least one lesson that month (from the marketing plan)
- `lessons_per_learner`: Average lessons per active learner (last year's pattern)
- `price_per_lesson_uah`: Average price families pay per lesson, after the September price rise
- `payout_per_lesson_uah`: Average tutor payout per delivered lesson, after the raise
- `video_ai_usd_per_lesson`: Video minutes and AI practice per lesson, billed in USD
- `usd_uah`: Assumed exchange rate, UAH per USD
- `marketing_uah`: Marketing budget chosen for the month

**Hanna:** This is the sheet I agreed with the teams. Learners come from marketing's plan, lessons per learner from last year, then the 650 average price after the September rise, the 415 payout after the tutors' raise, and video at 0.75 dollars at 42 hryvnias.

**Alex Tutor:** Start with the smallest piece: what one lesson leaves in this forecast.

> **Exercise:** Use the drivers: price 650 UAH, payout 415 UAH, payment fee 2.5%, video + AI 0.75 USD at 42.00 UAH per USD. What **contribution margin per lesson** does the base case assume?

## How to forecast revenue from drivers: one month

**Alex Tutor:** Before anyone reads out the answer, try October yourself, fixed costs included.

> **Exercise:** October 2026 in the forecast: 1,010 active learners, 6.5 lessons each, 187.25 UAH of contribution per lesson. Fixed costs: the team's 600,000 UAH, office and tools 88,000 UAH, one support coordinator (38,000 UAH) per started 400 active learners, and 260,000 UAH of marketing. What **operating profit** does October give?

**Sofia:** October: 1,010 learners × 6.5 = 6,565 lessons, or 4,267,250 UAH of sales at 650. At 187.25 each, that's 1,229,296.25 UAH of contribution.

**Alex Tutor:** Now the fixed side, also from drivers. 1,010 learners need three coordinators: 114,000. Add the team's 600,000, office and tools 88,000 and October's marketing, 260,000.

**Hanna:** 1,062,000 of fixed costs, so October leaves 167,296.25 UAH of operating profit.

**Leo:** And then the same for every month?

**Alex Tutor:** Same recipe, different drivers. When marketing promises 1,250 learners in March, the sheet shows what follows: the fourth coordinator comes back. And July, with 580 learners, shows what summer does.

> **Exercise:** Use the drivers for **July 2027**: each lesson leaves 187.25 UAH of contribution; fixed costs are the team's 600,000 UAH, office and tools 88,000 UAH, one support coordinator (38,000 UAH) per started 400 active learners, and the month's marketing. What operating profit does the forecast give for July? Enter a loss as a negative number.

## The year, and what ten percent hid

**Sofia:** All twelve months together: 80,128 lessons, 52,083,200 UAH of sales, 15,003,968 of contribution, 12,752,000 of fixed costs. Operating profit: 2,251,968.

**Leo:** Three times last year! Much better than my ten percent.

**Hanna:** Don't celebrate yet. It's three times because of two drivers we chose: the price goes from about 620 to 650, the payout from about 400 to 415. If families don't accept the new price, most of that profit is gone.

**Alex Tutor:** That's what drivers give you: not a nicer number, but a number you can argue with. Every line has an owner and a reason. With "plus ten percent" nobody can say what has to be true for it to happen.

> **Exercise:** Match each driver with where its number should come from.

## Rolling forecast: a forecast that keeps moving

**Sofia:** And when October comes in different from the sheet?

**Alex Tutor:** It will. Each month, replace the month that ended with actual drivers, ask the owners whether the next months still hold, and add one month at the end. That's a **rolling forecast**: always twelve months ahead, never a year-old guess.

**Hanna:** And when a number misses, you'll know which driver missed. Learners? Price? The dollar? That's a conversation, not a shrug.

**Alex Tutor:** October has just closed. What happens to the sheet now?

> **Exercise:** October 2026 has just closed, and Klasna keeps a **rolling forecast** of the next twelve months. What does the team do with the sheet?

**Leo:** So if marketing brings 10% more learners every month, profit just goes up by 10% of the contribution?

> **Exercise:** **True or false:** in Klasna's driver forecast (one support coordinator per started 400 active learners, other fixed costs flat), 10% more learners in every month raises the year's operating profit by exactly 10% of the year's contribution margin.

**Sofia:** Let me check I can rebuild a month without looking at the sheet.

**Hanna:** Good idea. The board will ask how a number was built, not only what it is.

**Alex Tutor:** Before the board meeting, put the whole recipe in order once more.

> **Exercise:** Put the steps for forecasting one month in order.

## Your turn: answer Leo

**Leo:** Fine, no ten percent. But I need two or three sentences for the board on why this forecast is better than mine.

**Alex Tutor:** Give him both numbers, say what makes the difference, and name the assumption the board should watch.

**Sofia:** So: both numbers, the reason for the gap, and the one risk.

> **Exercise:** Write Leo 2–4 sentences for the board: why the driver-based forecast replaces "last year + 10%". The facts: last year's operating profit of 744,174.72 UAH plus 10% gives about 819 thousand; the driver sheet gives 2,251,968 UAH (80,128 lessons, 187.25 UAH of contribution each); the average price rises from about 620 to 650 UAH while the tutor payout rises from about 400 to 415; July still loses about 381 thousand. Give both profit numbers, say what makes the difference, and name the assumption to watch.

> **Key ideas**
>
> - A **driver-based forecast** grows the causes (learners, lessons per learner, price, payout, the dollar rate), not last year's totals.
> - One month: learners × lessons per learner = lessons; contribution = lessons × (0.975 × price − payout − video × rate); operating profit = contribution − fixed costs.
> - Fixed costs come from drivers too: coordinators follow learners in steps of 400.
> - Klasna's base case: 187.25 UAH per lesson, 80,128 lessons, 2,251,968 UAH of operating profit, against 818,592.19 from "last year + 10%". The gap comes from price and payout, so those are the assumptions to watch.
> - A **rolling forecast** replaces each finished month with actuals and keeps looking twelve months ahead.

**Alex Tutor:** Next time we shake this sheet: which driver, if it's wrong, hurts the most?

- Previous lesson: [Case: build our own video classroom or keep paying per minute?](https://productovi.com/courses/finance-for-product/build-or-buy-case.md)
- Next lesson: [Scenarios and sensitivity](https://productovi.com/courses/finance-for-product/scenarios-and-sensitivity.md)

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