# Case: should Klasna launch group lessons?

> A group-lesson pilot sold well. Judge it by contribution margin: fill per session, cannibalization of the 1:1 lessons it replaced and the break-even of a new coordinator.

- Course: [Finance for Product People: From Unit Economics to Business Cases](https://productovi.com/courses/finance-for-product.md)
- Module: What does one lesson earn us?
- Lesson 4/32, ~42 min
- Source: https://productovi.com/courses/finance-for-product/group-lessons-case

## Leo's pitch

**Alex Tutor:** Still on Klasna's product team, you're in the room as Leo pitches an idea from the March pilot.

**Leo:** The March pilot was a hit: 48 English group sessions in four weeks, 38,640 UAH in sales. Families pay 280 a lesson instead of 620, and one tutor teaches four kids. I want groups across the school, with a coordinator to run them.

**Hanna:** Sales show how busy the pilot was, not what it earned. Each session pays the tutor 520 UAH plus 40 for video and AI, and the payment provider keeps 2.5% of what families pay. Before we hire anyone: what does one session leave us?

**Sofia:** So the unit here is the session, not the learner? The price is per learner, but most costs are per session.

**Alex Tutor:** Exactly. The payout and the video room cost the same whether one learner comes or four. Only the fee moves with each learner: 2.5% of 280 is 7 UAH. So each learner brings 273, and each session starts 560 in the red.

$$
\text{CM}_{\text{session}} = (280 - 7) \cdot n - (520 + 40) = 273n - 560
$$

*Contribution margin of one group session with n learners, UAH*

**Alex Tutor:** A full group: 4 × 273 − 560 = 532 UAH of contribution margin. That's the picture Leo has in mind, every seat taken. Now take a group with one empty seat.

> **Exercise:** A group session costs Klasna 520 UAH for the tutor and 40 UAH for video + AI, whatever the fill. Each learner pays 280 UAH, and the payment provider keeps 2.5% of it. What contribution margin does one group session with **3** learners leave? In UAH.

## When a session loses money

**Sofia:** Three learners leave 259. With two it's 546 − 560 = −14. A session with two learners loses money?

**Alex Tutor:** It does, and one learner loses 287. Here's the pilot session by session, with how many learners each one had.

**Dataset (CSV):** [Klasna group pilot: English group sessions, March 2026](https://productovi.com/datasets/finance-for-product/group-lessons-case/klasna-group-pilot.csv)

48 sessions over four weeks. Price 280 UAH per learner per session; tutor payout 520 UAH and video + AI 40 UAH per session; payment fee 2.5% of what families pay.

- `session_id`: Session id
- `date`: Date of the session
- `subject`: Subject (all English in the pilot)
- `seats`: Seats in the group
- `learners`: Learners who took part and paid
- `switched_from_1to1`: Of those learners, how many dropped a 1:1 English lesson to join this session

**Alex Tutor:** 14 sessions were full, 18 had three learners, 12 had two and 4 had one: 138 learners in 48 sessions, 2.875 of 4 seats on average. The average looks fine. The spread doesn't.

**Contribution margin per session by number of learners**

| Learners in the session | Contribution margin |
| --- | --- |
| 1 | -287 |
| 2 | -14 |
| 3 | 259 |
| 4 | 532 |

*Sessions in the pilot: 4 with one learner, 12 with two, 18 with three, 14 with four.*

**Hanna:** So 16 of 48 sessions ran at a loss. We booked a tutor for every slot before we knew who'd show up.

**Alex Tutor:** That's the fill problem: each learner covers 273 of the session's 560. A minimum group size, or merging two thin groups into one, fixes most of it.

**Alex Tutor:** Leo's slide shows the average fill. Which way of reading the pilot would you trust?

> **Exercise:** In the pilot, each learner brought 273 UAH after the fee and each session cost 560 UAH. 48 sessions had 138 learners, 2.875 of 4 seats on average. Which reading tells you whether the sessions paid?

> **Exercise:** In the pilot each learner brought 273 UAH after the fee, and each session cost 560 UAH (tutor and video + AI) however many came. Which rule would have made **every** session leave a positive contribution margin?

## What the pilot earned

**Sofia:** Then what did the whole pilot leave us, all 48 sessions together?

**Alex Tutor:** Work in totals. Sales: 138 × 280 = 38,640 UAH. Fees: 2.5% of that, 966. Tutor payouts: 48 × 520 = 24,960. Video and AI: 48 × 40 = 1,920.

**Leo:** Still, 38,640 in a month from a product we didn't have in February. That's the number I showed the board.

**Hanna:** And nearly two-thirds of it went straight to the tutors. Sales say how busy we were. Contribution says what's left for everything else.

> **Exercise:** Use the pilot data. A group session costs Klasna 520 UAH for the tutor and 40 UAH for video + AI, whatever the fill. Each learner pays 280 UAH, and the payment provider keeps 2.5% of it. What contribution margin did the whole pilot (48 sessions) leave, before thinking about the 1:1 lessons it replaced? In UAH.

## Cannibalization: lessons that only moved

**Hanna:** One more column. At sign-up we asked whether a learner had dropped a 1:1 English lesson for the group. `switched_from_1to1` has the answer: 30 learner-lessons came from exactly that.

**Sofia:** But those families still pay Klasna, just less. Isn't that still a gain?

**Alex Tutor:** Only if we forget what they paid before. A 1:1 lesson from the English 16-pack leaves 184.50 UAH. Each switch removes that: 30 × 184.50 = 5,535 UAH we no longer earn.

**Alex Tutor:** So the new money is 10,794 − 5,535 = 5,259 UAH, about 109.56 per session. Over half of the pilot's contribution was lessons moving from one shelf to another.

**Alex Tutor:** That's **[cannibalization](/glossary/fin-cannibalization)**: a new product's sales taken from an existing product instead of new demand. Measure it in contribution: the **cannibalization rate** is 5,535 ÷ 10,794 ≈ 51% of what the pilot left. In lessons it's only 30 of 138, about 22%; in money, half.

**Alex Tutor:** Put Hanna's point into one percentage you could show the board.

> **Exercise:** The group pilot left 10,794 UAH of contribution margin. 30 of its learner-lessons replaced 1:1 English lessons that each left 184.50 UAH. What is the pilot's **cannibalization rate** measured in contribution, in percent to two decimals?

**Leo:** So a new product counts for what it adds, not what it takes from the old one. What else is my slide missing?

> **Exercise:** Leo's slide shows 38,640 UAH of group sales. Which of these does that number leave out, though they matter for the rollout decision? Select all that apply.

## Can groups carry a coordinator?

**Leo:** The coordinator: 38,000 UAH a month to fill groups and run the schedule. With that person the numbers only get better, right?

**Alex Tutor:** Maybe. First treat the salary as a new fixed cost with its own break-even point: 38,000 ÷ 109.56 ≈ 346.8. At the pilot's rate, groups need 347 sessions a month just to pay for the coordinator.

**Sofia:** The pilot ran 48 in four weeks. That's more than seven times the volume.

**Alex Tutor:** Check the coordinator's break-even yourself before Hanna's idea.

> **Exercise:** After the lost 1:1 lessons, the pilot's 48 sessions left 5,259 UAH of new contribution margin. A group coordinator would cost 38,000 UAH a month. At the pilot's rate, how many group sessions a month are needed just to cover the coordinator? Round up to a whole session.

**Hanna:** Or each session has to leave more. Merge the thin groups: the 28 learners from the 16 loss-making sessions would fill 7 full groups.

**Alex Tutor:** Then the pilot is 39 sessions leaving 10,299 UAH after the lost 1:1 lessons, about 264 each. The break-even drops to 144 sessions a month. Better, still far above the pilot.

**Alex Tutor:** Before the memo, one quick check on Hanna's merge idea.

> **Exercise:** **True or false:** if Klasna merges thin groups so that every session has at least 3 learners, the pilot's 39 sessions leave about 264 UAH each after the lost 1:1 lessons. That is enough for the 38,000 UAH coordinator to pay off at the pilot's volume.

> **Exercise:** Klasna's schedulers need a rule they can apply the day before each group session. Write it in 2–4 sentences: when a session runs as planned, what happens to thinner groups, and why, using the contribution margin per session at different fills.

## The memo for Leo

**Leo:** I have a board call on Friday and need one answer: do we roll group lessons out to the whole school, with a coordinator?

**Hanna:** Answer from the data, not the slide: contribution, the lost 1:1 lessons, how full the groups are and what the coordinator needs.

**Alex Tutor:** And end with a verdict Leo can act on: yes, no, or yes if. For "yes if", name the conditions.

**Sofia:** A short memo, then. Numbers first, verdict at the end.

> **Exercise:** Write the memo for Leo: roll group lessons out to the whole school with a coordinator?

> **Key ideas**
>
> - Judge a new product by contribution margin, not sales: the pilot sold 38,640 UAH and left 10,794.
> - Find the real unit. Here costs come per session and money per learner: 273n − 560, so fill decides the result (532 / 259 / −14 / −287 UAH at 4 / 3 / 2 / 1 learners).
> - An average fill of 2.875 hid 16 loss-making sessions. Set a minimum group size and merge thin groups.
> - Subtract cannibalization, what the new product takes from the old one: 30 switched 1:1 lessons cost 5,535 UAH, leaving 5,259 net.
> - A new fixed cost needs its own break-even: 38,000 ÷ 109.56 ≈ 347 sessions a month, against 48 in the pilot.

**Alex Tutor:** That's the whole module in one case: price minus the costs each unit brings, fixed costs over contribution, and an honest look at where the customers came from.

- Previous lesson: [Break-even point in units and margin of safety](https://productovi.com/courses/finance-for-product/break-even.md)
- Next lesson: [How to read a P&L, top to bottom](https://productovi.com/courses/finance-for-product/reading-a-pnl.md)

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