Skip to content
Log in

Theory

Relevant, sunk and opportunity costs

Which numbers belong in a decision and which only feel like they do.

~9 min read · 9 exercises · 250 points

Before you start

960,000 already spent

You're still on Klasna's product team, and the final module opens with an argument. Four months of work and 960,000 UAH have gone into an exam simulator for maths. Leo wants to finish it so the money isn't thrown away; Hanna wants to stop.

This module is about decisions where some numbers belong and others only feel like they do. In this lesson you'll learn to keep the wrong numbers out of the room and put the question in a way that can be answered.

Sunk costs: decide from today

A sunk cost is money already spent that no decision can bring back. Klasna has put 960,000 UAH into a maths exam simulator over four months. Whether it finishes the simulator or stops today, those 960,000 are gone.

That's why a sunk cost belongs in neither side of the argument:

  • "We can't throw away what we've invested" uses it to justify finishing. But finishing doesn't recover the money.
  • "It will never earn back what it cost" uses it to justify stopping. But stopping doesn't recover it either.

The useful question starts today: is finishing worth it from here? That means comparing only what each option will still cost and still bring: 150,000 UAH of new costs for about 380,000 of contribution, against whatever else the same people could do.

Sunk costs feel heavy because they are visible, recent and often someone's decision. Name them out loud, say they are the same under every option, and move them off the table.

  • Do
    "The 960,000 is spent either way. From here: 150,000 more for about 380,000 back."
  • Don't
    "We're too deep in to stop now."

    How deep you are is the sunk cost talking.

Relevant costs: future and different

To compare options, keep only the relevant costs and revenues: amounts that lie in the future and differ between the options. Run every number through two questions: has it already happened? Is it the same whichever option we choose? If either answer is yes, it stays out, however big it is.

Klasna's choice between finishing the exam simulator and stopping now:

  • 960,000 UAH already spent: in the past. Out.
  • An exam-content editor, 90,000, hired only if it continues: future and different. In.
  • The question-bank licence, 60,000: future and different. In.
  • About 380,000 of contribution expected in the first year: future and different. In.
  • The two developers' salaries, paid whatever Klasna decides: same in both. Out.
  • The office rent: same in both. Out.

The developers' time still matters, though not through their salaries: through what else they could build in those two months. That's the opportunity cost, the next step of the analysis.

  • Do
    "Finish: +380,000 − 90,000 − 60,000 = 230,000 relevant."
  • Don't
    "Finish: 380,000 − 150,000 − 960,000 − two months of salaries."

    The 960,000 is past, and the salaries are paid in both options.

Paid anyway doesn't mean free

Salaries that are paid whatever you decide aren't a relevant cost: they don't differ between the options. It's tempting to conclude that the people's time is therefore free. It isn't.

Time and people are scarce. Two developers can spend the next two months on one thing. If they finish the exam simulator, they don't build anything else. So their time costs what Klasna gives up by using it here: the result of the best alternative. That's the opportunity cost.

At Klasna the best alternative is automatic reminders to renew packages before they run out: about 260,000 UAH of contribution over the same year, with no outside costs. That is what the simulator really competes against.

Two wrong fixes are common. Subtracting the salaries from one option makes it look worse than it is, since they are paid in every option. Charging a share of the money already spent brings the sunk cost back in through the side door. Compare the uses of the same people instead.

  • Do
    "The developers' two months cost us the 260,000 the reminders would bring."
  • Don't
    "They're on salary anyway, so it's free to keep them on the simulator."

    Free in cash, not in what you give up.

Compare two uses of the same people

Once the sunk cost and the costs paid either way are out, the decision is a straight comparison of what the same scarce resource produces in each use.

Klasna's two developers, the next two months:

  • Finish the exam simulator: 380,000 UAH of contribution in the first year, minus 90,000 for the editor and 60,000 for the question-bank licence = 230,000 UAH.
  • Build renewal reminders: 260,000 UAH of contribution, no outside costs = 260,000 UAH.

The reminders win by 30,000 UAH. The simulator doesn't lose because of the 960,000 already spent; it loses because something better needs the same people. Seen the other way, 260,000 is the opportunity cost of the simulator, and finishing it would leave Klasna 30,000 worse off than its best option.

The comparison also tells you what would change the answer. If the reminder estimate fell below 230,000, or the simulator's expected contribution rose above 410,000, the simulator would win. The 960,000 can never move it.

  • Do
    260,000 − (380,000 − 90,000 − 60,000) = 30,000 UAH in favour of the reminders.
  • Don't
    380,000 − 260,000 = 120,000 UAH in favour of the simulator.

    The simulator's 150,000 of new costs are missing.

The size of a sunk cost changes nothing

A useful test for any argument: would the answer change if the sunk cost were twice as big, or half as big? If it would, the argument is using the past to decide the future.

Klasna's simulator: whether 960,000 UAH or 2,000,000 has already gone into it, the options from today are the same. Finishing still brings 380,000 of contribution for 150,000 of new costs, 230,000 in all. The developers' best alternative still brings 260,000. The reminders still win by 30,000.

The bigger sunk cost makes the decision feel harder. More money means more embarrassment in stopping, more pressure to "see it through", and more people whose earlier judgement looks wrong. That pressure is real, and it's exactly why sunk costs should be named and set aside.

What can change the answer is new information about the future: a higher contribution estimate for the simulator, cheaper finishing costs, a weaker alternative. Ask for that information instead of pointing at the money already spent.

  • Do
    "Spent 960,000 or 2 million, finishing still gives 230,000 against 260,000."
  • Don't
    "With 2 million already in, we have to finish."

    The past sum changes the feeling, not the comparison.

A busy slot costs what it displaces

The cost of capacity depends on whether it is free. A tutor's empty hour in July costs Klasna nothing extra to fill. The same hour in a fully booked May costs the contribution of the lesson it pushes out.

A company offers 200 English lessons at 520 UAH each, paid by bank transfer, so no card fee. Each lesson costs 390 for the tutor and 30 for video, so it leaves 520 − 390 − 30 = 100 UAH.

  • July, free slots: nothing is displaced. 200 × 100 = +20,000 UAH.
  • May, every slot booked: each corporate lesson takes a slot from a family lesson in the 16-pack that would have left 184.50. Per lesson: 100 − 184.50 = −84.50. For 200 lessons: −16,900 UAH.

Same deal, same price, opposite answers. The difference is the opportunity cost of the slot. So before accepting a below-list price, ask: is there spare capacity, or will this push out something that earns more?

  • Do
    May: (100 − 184.50) × 200 = −16,900 UAH.
  • Don't
    May: (520 − 390 − 30) × 200 = +20,000 UAH, so yes.

    That's July's answer; in May every lesson also costs the family lesson it displaces.

Charge the opportunity cost only where something is displaced

Most months sit between "all free" and "all full". Then the opportunity cost applies only to the part of the deal that actually pushes something out.

Split the deal into two parts:

  1. Every unit brings its own contribution: price minus its own variable costs. A corporate lesson at 520 UAH with 390 of payout and 30 of video leaves 100.
  2. Only the units in busy slots also cost the contribution of what they displace: 184.50 for each family lesson pushed out.

June at Klasna: 200 lessons × 100 = 20,000; 100 of them displace family lessons, 100 × 184.50 = 18,450. Net: +1,550 UAH. The deal still adds a little, but far less than July's 20,000.

This matters for how you answer a client. You can accept the volume that fits in free slots at a lower price, and price the rest to cover what it displaces. One blended answer for the whole month hides that choice.

  • Do
    200 × 100 − 100 × 184.50 = +1,550 UAH.
  • Don't
    200 × (100 − 184.50) = −16,900 UAH.

    Only the 100 lessons in busy slots displace anything.

The lowest acceptable price when capacity is full

When a client asks for a special price, the floor depends on what the deal costs you, including what it displaces:

Lowest price = variable costs of the unit + contribution of what it displaces

Klasna's corporate English lessons, paid by bank transfer, so no card fee:

  • In July, with free slots, nothing is displaced. The floor is the lesson's own costs: 390 payout + 30 video = 420 UAH. Anything above it adds contribution.
  • In May, every slot is booked, and each corporate lesson pushes out a family lesson that would leave 184.50. The floor is 390 + 30 + 184.50 = 604.50 UAH.

Note that the May floor isn't the family list price of 620. Family lessons are paid by card, and the 2.5% fee is part of why they leave 184.50. The corporate deal doesn't pay that fee, so it can match the family lesson's contribution at a lower price.

The floor is where the deal stops losing money, not the price to quote. Between the floor and the list price there is room to negotiate.

  • Do
    May floor: 390 + 30 + 184.50 = 604.50 UAH; July floor: 420 UAH.
  • Don't
    "Our floor is 420 UAH all year."

    In a full month the displaced family lesson is part of the cost.

Ready to practise?

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

Start the exercises