Theory
The allocation trap: should we drop programming?
A subject that looks loss-making only because of the shared costs it carries.
~9 min read · 9 exercises · 250 points
Before you start
Close programming?
Back at Klasna, Hanna's report by subject for last year is out, and it looks brutal: programming lost money, maths lost some too, and only English made a profit. Leo is thinking of closing programming. Hanna asks him to be careful: much of that loss is a line she added herself.
In this lesson you'll take the subject report apart and work out whether dropping a subject would actually leave Klasna better off.
An allocated loss is not a saving
Many companies spread their shared costs (team salaries, office and tools, support, brand marketing) over products, so that every product report adds up to the company's profit. This is cost allocation. Klasna's report spreads 10,088,000 UAH of shared costs by the number of tutors: 77,600 per tutor. Programming has 34 tutors, mostly students teaching a few hours a week, so it carries 2,638,400 and shows −1,859,775.
Dataset · 3 rows
Klasna by subject, Sep 2025 – Aug 2026
Last year split by subject; the rows add up to the company's 744,174.72 UAH of operating profit. Variable costs are tutor payouts, payment fees and video + AI. Shared costs (10,088,000 UAH: team salaries, office and tools, support coordinators, brand marketing) are allocated by the number of tutors.
The trap is reading that last column as "what we'd save by closing". It isn't. The shared costs exist whether programming exists or not. If programming closes, they don't disappear; they move onto English and maths.
An allocated result answers a reporting question: how does each subject look if it carries a share of everything? A decision needs a different question: what changes if this subject goes? Start from what the subject leaves on its own, its contribution margin, and from the costs that would really leave with it.
- Do"−1.86 million after allocation. Before allocation programming leaves 1,118,625."
- Don't"Programming loses 1.86 million, so closing it saves 1.86 million."
The allocated 2,638,400 stays with the company.
Look at contribution before any allocation
The first number to check for any product is its contribution margin: sales minus the variable costs that come with those sales. At Klasna the variable costs are tutor payouts, payment fees and video + AI.
Programming last year: 4,047,000 UAH of lesson sales − 2,928,375 of variable costs = 1,118,625 UAH. Over 5,700 lessons that is 196.25 per lesson, more than English leaves (about 167.57) and a little more than maths (193.50). You can check it from the price list: 710 × 0.975 − 460 payout − 36 video = 196.25.
After programming's own ads, 340,000, it still leaves 778,625 UAH towards the company's shared costs and profit.
That's the honest starting point: before any allocation, programming pays its own way comfortably. Whatever the allocated report says, closing it would first of all throw away this contribution. Only the costs that would leave with it can be set against that loss.
- Do4,047,000 − 2,928,375 = 1,118,625 UAH, 196.25 per lesson.
- Don'tProgramming's result: 4,047,000 − 2,928,375 − 340,000 − 2,638,400 = −1,859,775.
That's the allocated result, not what the subject leaves on its own.
Ask the drop question: which costs actually go away?
When you consider closing a product, sort every line of its report into two groups: what leaves with it, and what stays with the company.
Dataset: Klasna by subject, Sep 2025 – Aug 2026 · shown above
Leaves with programming:
- its lesson sales, 4,047,000 UAH (a loss, not a saving);
- the variable costs of those lessons: tutor payouts, payment fees, video + AI;
- its own ads, 340,000 UAH;
- three coordinator-months, 114,000 UAH: programming learners are about 8% of active learners, so three months would have needed one coordinator fewer.
Stays with Klasna:
- the rest of the 2,638,400 UAH of allocated shared costs: team salaries, office and tools, brand marketing and the other coordinators;
- the office rent and anything else the company pays regardless.
Sales and variable costs leaving together is exactly the contribution margin being lost. The costs that stay don't disappear: they move onto the subjects that remain. A good test for each line: "If programming were gone tomorrow, would this bill be smaller next month?"
- Do"Goes: its ads (340,000) and three coordinator-months (114,000). Stays: office, team, brand."
- Don't"Closing removes its 2,638,400 share of shared costs."
The share moves; the bills stay the same.
What closing a product really does to profit
The effect of dropping a product on company profit is:
Change in profit = − contribution lost + costs that go away
Programming at Klasna, last year:
- contribution lost: −1,118,625 UAH;
- costs that go away: its own ads, 340,000, and three coordinator-months, 114,000, together +454,000.
Change: −1,118,625 + 454,000 = −664,625 UAH. Klasna's operating profit would have fallen from 744,174.72 to 79,549.72. The report promised that closing would remove a loss of 1,859,775; in fact it would have wiped out almost 90% of the company's profit.
The "loss-making" subject was paying for most of the profit. That's the pattern to remember: whenever a product's contribution is larger than the costs that would leave with it, closing it makes the company poorer, whatever the allocated report shows.
The calculation needs only two lists: what the product leaves, and what would really go away. No allocation key appears in it.
- Do−1,118,625 + 340,000 + 114,000 = −664,625 UAH.
- Don'tClosing removes a −1,859,775 result, so profit rises by 1,859,775 UAH.
That assumes the allocated shared costs vanish; they don't.
An allocation key is a convention, not a fact
Shared costs have to be spread by some key: tutors, lessons, sales, floor space, hours. Each key is defensible, and each gives a different picture.
Klasna's 10,088,000 UAH of shared costs:
- By tutors (130, of whom 34 teach programming): programming carries 2,638,400 and shows −1,859,775. Programming has many part-time student tutors, so a headcount key hits it hard.
- By lessons (71,563, of which 5,700 programming): programming carries 10,088,000 × 5,700 ÷ 71,563 = 803,510.19 and shows −24,885.19.
Same subject, same year, same bills. A loss of 1.86 million or a loss of 25 thousand, depending on a choice made in a spreadsheet.
Neither key is "true", and that's the point. Allocation is useful for pricing and for making reports add up, but the result it gives a product is a convention, not a fact about that product. A decision that flips when you change the key was never supported by the data. Decisions should rest on numbers that don't depend on a key: contribution and the costs that really leave.
- Do"By tutors −1,859,775, by lessons −24,885.19: the allocated result depends on the key, so we decide on contribution."
- Don't"Allocate by lessons instead; then programming is almost break-even and we can keep it."
Swapping keys to get the answer you like is the same mistake in reverse.
The allocation spiral
Closing a product because of its allocated loss has a second effect: the shared costs it carried don't leave, so the next report spreads them over fewer products.
Klasna without programming: shared costs fall only by the 114,000 of coordinators, to 9,974,000 UAH. Spread by tutors over 96 instead of 130, that is about 103,896 per tutor. Maths, with 26 tutors, now carries 2,701,291.67 instead of 2,017,600. Its result drops from −580,402 to −1,264,093.67, though maths sells the same lessons at the same prices with the same tutors.
The next meeting then proposes closing maths. After that, English carries everything, and in a weaker year it "loses money" too. Each cut leaves the same shared costs on fewer shoulders, and the company shrinks itself while trying to fix a report.
The way out is to stop letting allocated results drive keep-or-drop decisions. Show each product's contribution minus its own costs, and the shared costs once, for the company as a whole.
- Do"Maths' share rises from 2,017,600 to 2,701,291.67 only because programming is gone."
- Don't"Maths now loses 1.26 million; it's next to close."
The loss grew because of the report, not because of maths.
A decision report and a pricing report are different reports
The same numbers can be arranged for two different jobs.
For pricing and full-cost reporting, it is reasonable to ask whether each subject's prices cover a fair share of everything, so an allocated report has its place. Each subject carries some of the team, the office and the brand.
For keep-or-drop decisions, the report must show what would change. A good layout:
- Each subject's contribution margin: sales minus its variable costs.
- Minus the costs it causes and would take with it: its own ads, the coordinators its learners need.
- The result is what the subject brings to the company.
- Shared costs once, at the bottom, for the company as a whole, then operating profit.
In this layout programming shows a positive line (1,118,625 of contribution, 778,625 after its own ads), maths too, and nobody is tempted to close a subject that pays for the shared costs. No allocation key appears, so the picture doesn't change when someone picks a different one.
- DoProgramming: contribution 1,118,625 − own ads 340,000 = +778,625; shared costs once for the company.
- Don'tOne report for everything: each subject after its share of all costs, used for prices and closures alike.
Allocated results answer a pricing question, not a decision question.
Build the decision line for a product
A decision report gives every product one line that answers: what does this product bring to the company?
Product line = sales − variable costs − costs the product causes on its own
Costs the product causes are those that would go if it went: its own ads, the staff that serve only it. Shared costs (team, office, brand) stay out of the line and appear once, at the bottom.
Maths at Klasna last year:
- contribution: 6,539,280 − 4,622,082 = 1,917,198 UAH (193.50 per lesson over 9,908 lessons);
- minus its own ads, 480,000: 1,437,198 UAH.
The allocated report showed maths at −580,402 after 2,017,600 of shared costs. Same subject, same year: one layout says it loses money, the other says it brings almost 1.44 million towards the shared costs. Only the second tells you what would happen if maths were gone.
Sum the lines of all subjects, subtract the shared costs once, and you get the same company profit as before. Nothing is hidden, only placed where it belongs.
- DoMaths: 6,539,280 − 4,622,082 − 480,000 = 1,437,198 UAH.
- Don'tMaths: 6,539,280 − 4,622,082 − 480,000 − 2,017,600 = −580,402 UAH, so it loses money.
The 2,017,600 is a share of costs that stay whatever maths does.
Ready to practise?
Answer the lesson's exercises and earn 250 points the first time you finish it.
Start the exercises