Skip to content
Log in

Theory

Price vs volume: how many customers can a discount lose?

The price vs volume trade-off: how much volume a price cut must win, or a price rise may lose, before contribution moves.

~9 min read · 9 exercises · 250 points

Before you start

A September discount

Autumn planning at Klasna. You're still on the product team, and Leo has a pricing idea: 10% off every English 16-lesson package in September. A test last autumn sold 30% more packages, and that sounds like a win.

This module is about growth decisions: prices, customers and marketing, judged in money. In this first lesson you'll work out how much extra volume a discount has to win, or a price rise may lose, before what Klasna earns actually changes.

Only price-linked costs fall with a discount

To see what a price change does, sort the costs of one lesson by what they depend on.

  • A share of the price. The payment provider takes 2.5% of what the family pays. Cut the price and this cost shrinks too: 15.50 → 13.95 UAH on an English lesson.
  • Per lesson, fixed in hryvnias. The tutor gets 390 UAH and video and AI cost 30, whatever the lesson was sold for. They are variable costs (they grow with the number of lessons) but don't react to the price.
  • Fixed costs. Salaries, office and the like don't change per lesson at all. They are not part of contribution.

So after 10% off, of the 62-hryvnia price cut only 1.55 is saved on the fee; the other 60.45 UAH comes out of contribution margin.

The slip goes both ways: shrinking every cost by 10% along with the price, or counting salaries as a cost that falls when you sell cheaper. Neither is true, which is why discounts are so much more expensive than they look.

  • Do
    "Only the 2.5% fee falls; payout and video stay at 390 and 30."
  • Don't
    "10% off the price, so every cost per lesson is 10% lower too."

A discount comes out of contribution

Leo wants 10% off every English 16-pack in September. Before counting buyers, see what one lesson keeps.

An English lesson costs 620 UAH. The tutor gets 390, video and AI cost 30, and the payment fee is 2.5% of the price (15.50). Contribution margin per lesson: 620 − 390 − 15.50 − 30 = 184.50 UAH.

After 10% off the price is 558 and the fee 13.95; the payout and video stay the same:

558 − 390 − 13.95 − 30 = 124.05 UAH.

The price fell by 62 UAH, and 60.45 of that came straight out of contribution. A 10% cut in price is a 33% cut in what each lesson earns, because the margin is less than a third of the price.

Maths works the same way: 670 UAH, tutor 420, video 30. After 10% off: 603 − 420 − 15.075 − 30 = 137.93, down from 203.25.

The slip is to cut every cost by 10% along with the price. Only costs set as a share of the price move; tutors are paid per lesson whatever the family paid.

  • Do
    603 − 420 − 2.5% × 603 − 30 = 137.93 UAH
  • Don't
    203.25 × 0.9 = 182.93 UAH

    The payout and video don't fall with the price.

More sales, less contribution

Leo's evidence for the discount was a month-long test: 520 packages sold instead of the usual 400, 30% more. Sales rose too, from 3,968,000 to 4,642,560 UAH, 17% up. Both numbers are true, and neither answers whether Klasna earned more.

Compare contribution instead:

  • usual month: 400 × 16 lessons × 184.50 = 1,180,800 UAH;
  • test month: 520 × 16 × 124.05 = 1,032,096 UAH;
  • change: −148,704 UAH, or −12.59%.

Sales grew because families paid more in total, but the tutors were also paid 390 for every extra lesson, so most of the extra sales went straight back out. To match a usual month the test needed 400 × 184.50 ÷ 124.05 ≈ 595 packages, not 520.

The rule: judge a price change by total contribution, never by units sold or by sales. Units and sales can both rise while the business earns less. The slip is to compare packages (520 vs 400) and call the test a success.

  • Do
    520 × 16 × 124.05 − 400 × 16 × 184.50 = −148,704
  • Don't
    "Sales grew 17%, so the discount paid off."

    Sales include the tutors' share of every extra lesson.

How much volume a price cut needs to stand still

Total contribution = lessons × contribution per lesson. To earn the same total after a price change, lessons must change by the ratio of the two margins:

Q₁ ÷ Q₀ = CM₀ ÷ CM₁, so extra volume needed = (CM₀ ÷ CM₁ − 1) × 100%.

For 10% off the English 16-pack: 184.50 ÷ 124.05 = 1.487, so 48.73% more lessons just to stand still. Last autumn's month-long test brought 30% more packages (520 instead of 400); it needed about 400 × 1.487 ≈ 595.

For 15% off: price 527, fee 13.175, CM = 527 − 390 − 13.175 − 30 = 93.825. Ratio 184.50 ÷ 93.825 = 1.966: lessons must grow by 96.64%, almost double.

The climb is steep because each point of discount eats into a margin that is already smaller: 5% off needs about 20% more lessons, 20% off needs 190% more.

Extra lessons needed to keep the same contribution, English 16-packEach discount comes almost entirely out of the 184.50 UAH a lesson leaves; the extra volume needed is CM₀ / CM₁ − 1.

Chart data

DiscountExtra lessons needed, %
5%19.59
10%48.73
15%96.64
20%190.09

The slip is to think a 15% discount needs 15% more customers. That would be true only if no cost were tied to the lesson.

  • Do
    184.50 ÷ 93.825 − 1 = 96.64% more lessons
  • Don't
    "15% off, so we need 15% more customers."

The share of the price decides, not the hryvnias

Which product does a 10% discount hurt most? Not the one with the fewest hryvnias of margin, but the one whose margin is the smallest share of its price: the lowest contribution margin ratio.

Contribution margin ratio = contribution per lesson ÷ price.

Klasna's 16-lesson and 8-lesson packages:

  • English 8-pack: 213.75 ÷ 650 = 32.9% → needs 42.14% more lessons after 10% off;
  • English 16-pack: 184.50 ÷ 620 = 29.8% → 48.73%;
  • maths 16-pack: 203.25 ÷ 670 = 30.3% → 47.36%;
  • programming 16-pack: 206 ÷ 720 = 28.6% → 51.69%.

Programming leaves more hryvnias per lesson than English 16, yet a discount hurts it most. A 10% discount takes 10% of the price, and that bite is largest relative to a thin margin.

So before discounting, look at the ratio. A product with a ratio of 60% can afford promotions; one at 25% can barely afford them. The slip is to rank products by contribution in hryvnias and give the discount to the one that "can afford it" most.

  • Do
    "Programming keeps 28.6% of its price, the lowest: it needs the most volume."
  • Don't
    "Programming earns 206 a lesson, the most, so it can take the discount."

A price rise: how many customers can you lose?

The same formula works for a price rise, in the other direction. Now the margin per lesson grows, so fewer lessons earn the same total.

Q1Q0=CM0CM1ΔQ%=(CM0CM1−1)×100\frac{Q_1}{Q_0} = \frac{CM_0}{CM_1} \qquad \Delta Q\% = \left(\frac{CM_0}{CM_1} - 1\right) \times 100
Q₀, Q₁: lessons before and after the price change; CM₀, CM₁: contribution margin per lesson before and after.

+5% on the English 16-pack: price 651, fee 16.28, contribution 651 − 390 − 16.28 − 30 = 214.73. Ratio 184.50 ÷ 214.73 = 0.859, so Klasna could lose up to 14.08% of lessons and still earn the same.

+10%: price 682, fee 17.05, contribution 682 − 390 − 17.05 − 30 = 244.95. Ratio 184.50 ÷ 244.95 = 0.7532, so up to 24.68% of lessons can go.

The asymmetry is the point: a 10% discount needs 48.73% more lessons, while a 10% rise can afford to lose almost a quarter.

How strongly families react to price is price elasticity, and you rarely know it in advance. So don't start from a guess about demand: compute the volume the change needs, then ask whether that number is believable. And check who would leave: if it's the families who buy the most, the safe share shrinks fast.

  • Do
    1 − 184.50 ÷ 244.95 = 24.68% of lessons can go
  • Don't
    "+10% price, so we can lose 10% of customers."

    The margin grows by a third, not by 10%.

Who got the discount

When a discount loses money overall, split the buyers into two groups.

New buyers, who came because of the discount. In last autumn's test 120 extra packages each left 16 × 124.05 = 1,984.80 UAH, so 238,176 UAH in all. Real money: the discount was well above variable costs.

Usual buyers, who would have bought anyway. 400 families a month got 60.45 UAH off each of 16 lessons: 400 × 16 × 60.45 = 386,880 UAH they would have paid at full price.

Net: 238,176 − 386,880 = −148,704 UAH, exactly the drop in contribution.

So the discount worked on new families and was a gift to the loyal ones. That points to the fix: if the discount reaches only new families (a first package, a new segment), the gift disappears and the 238,176 stays.

The slip is to blame the price for being "below cost". It wasn't. A broad discount mostly loses money on people who didn't need it.

  • Do
    "+238,176 from new families, −386,880 given to usual buyers: net −148,704."
  • Don't
    "The discounted price is below cost, so each extra sale lost money."

Aim the discount at the people it should move

A discount pays off only through the buyers it changes: people who wouldn't have bought at full price. Everyone else just pays less. So the design question is: who sees the discount?

  • Discount for everyone. Easy to run, but every usual buyer gets it. In Klasna's test that cost 386,880 UAH a month, more than the 238,176 the new families brought.
  • Smaller discount for everyone. Halves the gift but also weakens the pull, and still needs volume: 5% off needs about 20% more lessons to stand still.
  • Targeted discount. First package only, a new segment, or a lapsed family coming back. The usual buyers keep paying full price, so the gain from new families stays.

Targeting has its own risks: usual buyers may try to look "new", and a first-package price can set expectations for the second. Write the rule clearly and keep it honest. And measure it as before: total contribution with the offer against a month without it. September is a bad month for broad discounts at Klasna, because many families come back after the summer and would buy at full price anyway.

  • Do
    "10% off your first 16-pack" for families new to Klasna
  • Don't
    "Back-to-school: 10% off everything in September"

    Most September buyers return after the summer and would pay full price.

Ready to practise?

Answer the lesson's exercises and earn 250 points the first time you finish it.

Start the exercises