Theory
Case: a quarter's budget and what really moved
Leads more than doubled this autumn. Split the credit between marketing and the baseline, channel by channel, and recommend where next quarter's 325,000 UAH should go.
~8 min read · 10 exercises · 250 points
Before you start
Leads doubled
Back at Klasna for Teams: it's the end of November, the first quarter with real campaigns is over, and next quarter's budget is due. Marta spent 325,000 UAH on events, outbound, a partner and paid content; leads went from 85 to 192, and Leo wants to double the budget.
In this case you'll find what really moved, channel by channel, and where next quarter's money should go.
Judge channels by opportunities
Leads are the easiest number to inflate: anyone who leaves a contact counts, including students, other schools and people collecting free pens. A channel that draws crowds can top the lead chart and bring no buyers.
So judge channels by opportunities: deals that passed qualification, where a real company with a real need is talking about buying. Then credit a channel only with opportunities above the baseline, what would have come anyway.
For Klasna's autumn the control is clear: the campaigns ran only in Kyiv and Lviv, and the other cities got none, only referrals and unpromoted articles. Whatever those cities did is the trend.
Leads aren't useless: they show reach, and a sudden drop is worth a look. But a budget decision based on "leads doubled" rewards whoever brings the biggest crowd, not whoever brings buyers.
- Do"Outbound: 18 leads, 6 qualified opportunities, all above the baseline."
- Don't"The conference brought 60 leads, so it's our best channel."
The control shows the trend
Before crediting any campaign, measure what happened where there was no campaign. That's the trend, and it applies to the campaign cities too.
In the autumn data, the other cities (the control) had no events, no outbound, no partner and no paid promotion. Their opportunities went from 5 in autumn 2025 to 6 in autumn 2026, a growth of (6 − 5) ÷ 5 = 20%. Their leads grew by the same 20% (25 → 30).
Dataset · 21 rows
Klasna for Teams: leads, opportunities and spend, autumn 2025 vs 2026
September–November, by month, region and channel, with the same months of 2025 side by side. Campaigns ran only in kyiv_lviv; other_cities had none and serve as the control. Events, outbound and the partner did not exist in 2025. Spend in UAH.
First 5 of 21 rows
Read it as: with nothing done, the market brought Klasna about a fifth more opportunities than a year ago. Any campaign has to beat that to earn credit.
Two habits help. Sum the same rows in both years (the same months and channels), so you compare like with like. And check that the control was really untouched: if a city got a breakfast invitation, it no longer shows the trend.
- DoOther cities: 5 → 6 opportunities, +20% with no campaign.
- Don'tSkip the control and compare Kyiv and Lviv only with last year.
Opportunities above the baseline
With the trend known, build the baseline for the campaign cities: last year × (1 + the control's growth).
Kyiv and Lviv had 15 opportunities in autumn 2025. Growing like the control, they'd have reached 15 × 1.2 = 18 without any campaign. They actually had 31, so the campaigns get credit for 31 − 18 = 13 opportunities.
Not 31 (all of them) and not 16 (31 − 15, last year alone). Comparing all of Klasna with last year (37 − 20 = 17) would also credit the campaigns with growth that happened where nothing ran.
The same method works per channel. Referrals in Kyiv and Lviv went from 10 to 12: baseline 10 × 1.2 = 12, so zero extra, and nothing was spent. Content went from 5 to 7: baseline 6, one extra. Channels that didn't exist in 2025 (events, outbound, partner) had a baseline of zero, so all their opportunities count as extra.
- DoBaseline 15 × 1.2 = 18; credit 31 − 18 = 13.
- Don't"Opportunities rose from 15 to 31: 16 thanks to marketing."
Ignores the 20% that came anyway.
Valuing an opportunity
To compare channels in money, give every opportunity the same yardstick: its expected contribution.
Value of an opportunity = win rate × lessons a won client takes × contribution per lesson.
Marta's planning assumption from Klasna's history: 1 in 5 opportunities is won, and a won client takes about 480 lessons in its first year. Contribution is 339 UAH a lesson (800 − 430 − 31). So one opportunity is worth 0.2 × 480 = 96 expected lessons × 339 = 32,544 UAH.
It's rough, and it should say so: label it an assumption, not a promise, and keep it visible in the memo so anyone can challenge it. If the win rate turns out to be 1 in 4, every channel's value rises by the same factor.
The point isn't precision. It's that events, outbound and the partner are judged with one ruler, so the budget follows the comparison rather than whoever argues loudest.
- Do"One opportunity ≈ 32,544 UAH (assumption: 1 in 5 won, 480 lessons, 339 UAH)."
- Don'tValue each opportunity at a full first-year revenue of 384,000 UAH.
That assumes every opportunity is won and counts revenue, not contribution.
The channel with the most leads can lose money
Events were Marta's favourite: the October conference and two HR breakfasts brought 60 leads, the most of any channel. Per lead they looked cheap: 180,000 ÷ 60 = 3,000 UAH, against 3,333 for outbound.
But they produced only 3 opportunities, a 5% conversion. Events didn't exist last year, so all 3 count as extra: 3 × 32,544 = 97,632 UAH of expected contribution against 180,000 UAH spent. After spend: −82,368 UAH. ROMI = −82,368 ÷ 180,000 = −45.76%.
Per extra opportunity, events cost 60,000 UAH; outbound cost 10,000.
A negative ROMI means the channel lost money on this quarter's evidence. It doesn't prove events can never work: a smaller, better-targeted breakfast might. But "the most leads" was the wrong reason to keep it, and doubling it would double a loss.
- DoEvents: (97,632 − 180,000) ÷ 180,000 = −45.76%.
- Don't"Events cost only 3,000 UAH a lead, our cheapest channel."
Cheap leads, expensive opportunities.
Small channels can carry the result
The channels with the fewest leads carried Klasna's autumn.
- Outbound: 18 leads, 6 opportunities, 60,000 UAH spent. 6 × 32,544 = 195,264; after spend 135,264 UAH; ROMI 225.44%.
- The referral partner (from October): 6 leads, 3 opportunities, 40,000 UAH. 3 × 32,544 = 97,632; after spend 57,632 UAH; ROMI = 57,632 ÷ 40,000 = 144.08%.
Both reach the right people: outbound because it starts from companies that fit the profile, the partner because it introduces clients who already trust it.
Still, read them with care. Six or three opportunities can swing on one deal, so treat the ranking as a direction, not a final verdict. And neither channel simply scales: outbound grows only as fast as you can find the right companies and people lawfully, and a partner sends what its own network holds.
- DoPartner: (97,632 − 40,000) ÷ 40,000 = 144.08%.
- Don't"The partner brought only 6 leads, so drop it."
Reading every channel, including content
Put the channels side by side, all with one opportunity worth 32,544 UAH:
- Outbound: 6 extra, 135,264 UAH after its 60,000 spend: the best result.
- Partner: 3 extra, 57,632 UAH after 40,000.
- Referrals: 10 → 12 against a baseline of 12: zero extra, nothing spent. That growth would have come anyway.
- Paid content promotion: 5 → 7, baseline 6: one extra opportunity (32,544) for 45,000 UAH, a ROMI of −27.68%.
- Events: 3 extra, −82,368 UAH.
Dataset: Klasna for Teams: leads, opportunities and spend, autumn 2025 vs 2026 · shown above
Careful with content. This table counts new opportunities, and paid promotion of general articles lost money, so cut that first. But the cost sheet and the data note do another job: they help deals that already exist to close. Measure those by use in live deals, not by this table.
- DoCut paid promotion of general articles; keep the cost sheet and data note.
- Don't"Referrals grew, so marketing gets credit for 2 more."
They grew exactly like the control.
Move money, don't just add it
Leads doubled, and the quarter as a whole earned something: 13 extra opportunities × 32,544 = 423,072 UAH against 325,000 spent, about 98,000 UAH after spend, a ROMI of 30.18%. So why not double the budget?
Because a total hides its parts. Most of the lead growth wasn't marketing's (the control grew 20%), and the money that worked sits in two small channels. Doubling every line would double the events loss too. And the winners can't simply double: outbound is limited by how fast you find the right companies lawfully, the partner by its own network.
The better move is to shift money step by step: less to events and paid promotion of general articles, more to outbound and the partner, and choose next quarter's control cities before it starts. Small numbers swing on one deal, so change in steps and check whether the shifts held.
How it fits together: opportunities, not leads; a control and a baseline; one yardstick in money; ROMI by channel; careful steps. Next module: the selling conversations themselves, starting with the discovery call.
- Do"Same 325,000 UAH, moved from events to outbound and the partner."
- Don't"Leads doubled, so double every line of the budget."
Ready to practise?
Answer the lesson's exercises and earn 250 points the first time you finish it.
Start the exercises