Theory
Driver-based forecasting
Driver-based forecasting: revenue and profit from learners, lessons, price and payout instead of last year plus ten percent.
~9 min read · 9 exercises · 250 points
Before you start
Planning season
Planning time at Klasna. You're still on the product team, and the board wants next year's numbers by Friday. Leo's shortcut is last year plus ten percent. Hanna calls that a wish, not a forecast: ten percent of what?
This module is about plans: forecasts, scenarios and budgets that people can trust. In this first lesson you'll build next year from the operational numbers that produce the money, instead of stretching last year's totals.
A forecast grows the causes, not last year's totals
The quickest plan is "last year plus ten percent". Klasna sold 44.3 million UAH of lessons last year and made 744,174.72 UAH of operating profit; plus 10% gives about 48.8 million and 818,592.19. It looks like a forecast, but it's a wish: ten percent of what? More learners, more lessons per learner and a higher price each move costs differently.
A driver-based forecast starts from the operational numbers that produce the money: active learners, lessons per learner, price, tutor payout, the dollar bill for video and AI, the exchange rate. Sales, contribution and profit are the output of the sheet, never its input.
The payoff isn't a nicer number. Klasna's driver sheet gives 2,251,968 UAH of operating profit, about three times last year, and it shows why: the price goes from about 620 to 650 while the payout only goes from about 400 to 415. A number built this way can be argued with line by line.
Dataset · 12 rows
Klasna's forecast drivers, Sep 2026 – Aug 2027 (base case)
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.
First 5 of 12 rows
- Do"October: 1,010 learners × 6.5 lessons × 650 UAH = 4,267,250 UAH of sales."
- Don't"Next year: last year's sales and profit plus ten percent."
Nobody can say what has to happen for it to come true.
Contribution margin per lesson, built from drivers
A driver-based forecast builds the money from the operational numbers that cause it. Its smallest piece is one lesson: what it leaves after every cost that comes with it.
Contribution per lesson = price − payment fee − tutor payout − video + AI × exchange rate
Each piece has its own base. The payment fee is a share of the price: 2.5% × 650 = 16.25 UAH. The tutor payout is a fixed amount per delivered lesson: 415 UAH. Video minutes and AI practice are billed in dollars, so convert them at the assumed rate: 0.75 × 42.00 = 31.50 UAH.
Klasna's base case for September 2026 – August 2027: 650 − 16.25 − 415 − 31.50 = 187.25 UAH per lesson. Multiply it by a month's lessons and you have that month's contribution margin; fixed costs come off afterwards.
Keep the dollar line separate in the sheet. If the hryvnia weakens, this cost per lesson rises although nothing changed in the product, and the forecast should show where the change came from.
- Do0.975 × 650 − 415 − 0.75 × 42.00 = 187.25 UAH per lesson.
The fee is taken on the price, and the dollar cost is converted first.
- Don't650 − 415 − 0.75 = 234.25 UAH per lesson.
This forgets the fee and subtracts dollars from hryvnias.
Fixed costs come from drivers too
"Fixed" doesn't mean "copied from last year". In a driver-based forecast each fixed line has its own driver or decision:
- Team salaries (600,000 UAH a month) follow the hiring plan.
- Office and tools (88,000 UAH) follow the contracts.
- Support coordinators follow active learners in steps: one coordinator at 38,000 UAH per started 400 learners. 1,010 learners are 2.5 groups of 400, which means three coordinators, 114,000 UAH.
- Marketing is the budget chosen for that month (260,000 UAH in October).
October then adds up: 6,565 lessons × 187.25 = 1,229,296.25 UAH of contribution, minus 1,062,000 UAH of fixed costs, leaves 167,296.25 UAH of operating profit.
Dataset: Klasna's forecast drivers, Sep 2026 – Aug 2027 (base case) · shown above
Because the coordinator line follows learners, a marketing promise of 1,250 learners in March brings a fourth coordinator back automatically. That's the point of the sheet: change a driver and every line that depends on it moves with it.
- Do1,010 learners → 3 coordinators → fixed costs 1,062,000 UAH.
- Don'tOctober: 1,229,296.25 − 802,000 = 427,296.25 UAH.
The month's marketing, 260,000 UAH, is missing from the fixed costs.
One month's operating profit, and why summer loses money
Every month in a driver-based forecast follows the same recipe with that month's drivers:
- Lessons = active learners × lessons per learner.
- Contribution = lessons × contribution per lesson (187.25 UAH in Klasna's base case).
- Fixed costs = team 600,000 + office and tools 88,000 + coordinators + the month's marketing. Coordinators are a step cost: one at 38,000 UAH per started 400 active learners.
- Operating profit = contribution − fixed costs.
July 2027 has 580 learners at 5.0 lessons each: 2,900 lessons and 543,025 UAH of contribution. 580 learners need 2 coordinators (76,000), and July's marketing is 160,000, so fixed costs are 924,000 and the month loses 380,975 UAH.
A growing year can still contain losing months. Families take a summer break while the team and the office stay, and a percentage on last year's total would spread the year evenly and hide that hole. The sheet shows it, so you can plan cash for it.
Dataset: Klasna's forecast drivers, Sep 2026 – Aug 2027 (base case) · shown above
- DoJuly: 2,900 × 187.25 − (600,000 + 88,000 + 2 × 38,000 + 160,000) = −380,975 UAH.
- Don't580 ÷ 400 = 1.45, so July needs one coordinator.
Every started 400 needs a coordinator, so 580 learners need two.
Every driver needs a source and an owner
A driver-based forecast is only as good as the numbers you feed it. Each driver should come from the person or document that knows it best, so that somebody can explain and defend it:
- Active learners come from marketing's plan and from how many learners stay from month to month.
- Lessons per learner come from last year's pattern by month.
- Price per lesson comes from the pricing decision and the expected mix of package sizes.
- Tutor payout comes from the rates agreed with tutors for the new year.
- Video + AI comes from the vendor's dollar price plus an assumed exchange rate.
Write the source next to every driver in the sheet. When the board asks "why 1,250 learners in March?", the answer is a name and a plan, not "it felt right". And when a month misses, you know whom to ask and which assumption to revisit. A driver without an owner is just a guess with a decimal point.
- DoPayout 415 UAH: the rates agreed with tutors in August.
- Don'tPrice 650 UAH: the number that makes the profit look right.
A driver chosen to hit a result is a target, not a forecast.
A rolling forecast keeps looking twelve months ahead
A forecast made once a year starts going stale in its first month. A rolling forecast is updated every month in three moves:
- Replace the month that has just ended with actual drivers: real learners, real lessons per learner, the real average price, the real exchange rate.
- Ask each driver's owner whether the coming months still hold. If marketing now expects fewer learners in spring, change those months.
- Add one month at the end, so the sheet always covers the next twelve.
When a number misses, a driver sheet tells you which driver missed. Learners? Price? The dollar? That turns a shrug into a conversation with the person who owns the number, and it tells you which future months the miss affects. A miss in the exchange rate changes every month's video cost; a miss in March learners may change only spring.
What a rolling forecast doesn't do is apply one blanket percentage to every month. That brings back the very mistake drivers were meant to remove.
- Do"October came in at 980 learners; marketing confirms the spring plan; September 2027 added."
- Don't"October was 3% short, so we cut the rest of the year by 3%."
Find the driver that missed instead.
Step costs break straight-line scaling
More learners mean more lessons, and contribution grows in proportion: 10% more learners in every month give 10% more contribution. It's tempting to stop there and add that 10% to profit.
But some fixed costs aren't flat. A step cost stays the same over a range of volume and then jumps. Klasna's support coordinators are one: one coordinator at 38,000 UAH a month per started 400 active learners. Below the threshold nothing changes; one learner over it, and a whole salary appears.
With 10% more learners, February goes from 1,130 to 1,243 and May from 1,460 to 1,606. Both cross a threshold (1,200 and 1,600) and need one more coordinator each, so the year's profit gain is about 76,000 UAH smaller than 10% of contribution. In other months the extra learners stay inside the current step.
A driver sheet catches such jumps because the coordinator line is calculated from learners. A percentage on the total can't see them.
Dataset: Klasna's forecast drivers, Sep 2026 – Aug 2027 (base case) · shown above
- DoFebruary: 1,243 learners → 4 coordinators instead of 3, +38,000 UAH.
- Don't"10% more learners, so profit grows by 10% of contribution."
It ignores the coordinators that come with the extra learners.
The forecast chain, from causes to money
A one-month forecast is a chain of five links, and each link uses the result of the one before it:
- Take active learners and lessons per learner from their owners.
- Multiply them: lessons for the month.
- Multiply lessons by the price: sales.
- Subtract what each lesson costs (payment fee, tutor payout, video + AI in dollars at the assumed rate): contribution margin.
- Subtract fixed costs, with coordinators set by the number of learners: operating profit.
The order matters because every money line depends on a driver line above it. If you start from sales and work backwards, you lose the reason behind the number; if you skip step 5's link to learners, you miss the step costs.
The same chain also makes the forecast easy to check. When the board asks how a number was built, you can walk them down the links and show which driver each one depends on.
- DoLearners → lessons → sales → contribution → operating profit.
- Don'tStart from the profit Leo wants and work out the learners it needs.
That's a target, useful later, but it isn't a forecast.
Ready to practise?
Answer the lesson's exercises and earn 250 points the first time you finish it.
Start the exercises