Skip to content
Log in

Theory

NPV, IRR and payback for a product bet

How to calculate NPV and IRR for a product bet, what payback adds, and where each one misleads.

~10 min read · 9 exercises · 250 points

Before you start

Two projects, one team

On Klasna's product team it's time to choose between projects. Leo has two ideas for next year, and the team can build only one: a progress app for parents or a mock-exam mode for maths. He's sure the cheaper app wins because it pays back quickly.

In this lesson you'll lay out each project's cash year by year and compare them with three measures, learning what each one tells you and where each one misleads.

Payback period: how long the money is out

Leo has two bets for next year and a team that can build one: a parent progress app (600,000 UAH to build) and a maths mock-exam mode (1,200,000). He likes the app because it pays back fast.

The payback period is how long until the cumulative cash is back to zero. It answers one useful question: how long is the money at risk?

Assume cash comes in evenly within a year.

  • App: −600,000, then 400,000 and 300,000. After year 1: −200,000. Year 2 needs 200,000 of its 300,000: 1 + 200 ÷ 300 = 1.67 years.
  • Mock exams: −1,200,000, then 300,000, 600,000, 800,000, 800,000. After year 1: −900,000; after year 2: −300,000. Year 3 needs 300,000 of 800,000: 2 + 0.375 = 2.38 years.

The app wins on payback. But payback stops counting at the payback point: it never sees the mock exams' later 1,600,000, nor that the app's cash ends after year 2. It also treats a hryvnia in year 3 like one today. The slip is to choose a bet by payback alone.

  • Do
    Mock exams: 2 + 300,000 ÷ 800,000 = 2.38 years
  • Don't
    "The app pays back in 1.67 years, so it's the better bet."

    Payback ignores everything after the payback point.

Discount cash flows, never profit

Before computing anything, Hanna lays out each bet's cash flows: year by year, extra contribution minus extra running costs, plus the build when it is paid. Not profit.

The difference matters most for the investment. The mock-exam mode costs 1,200,000 UAH, paid now. In the accounts that cost might be spread over four years, 300,000 a year. If you discounted profit, the biggest outflow would be treated as arriving in years 1–4, when it actually leaves in year 0, and the bet would look better than it is.

The rule for an NPV table:

  • year 0: the build, negative, undiscounted;
  • each later year: the extra cash the bet brings in minus the extra cash it costs to run, at year end;
  • only extra cash: costs that happen either way, like existing salaries, stay out.

Hanna's table for the three bets (UAH):

Bet
Year 0
Year 1
Year 2
Year 3
Year 4
Parent progress app
−600,000
400,000
300,000
0
0
Maths mock-exam mode
−1,200,000
300,000
600,000
800,000
800,000
Lesson reminders
−200,000
180,000
120,000

The same table then feeds payback, IRR and NPV. Get the cash flows wrong and all three are wrong together. The slip is to copy yearly profit from a forecast and discount it.

  • Do
    Year 0: −1,200,000; years 1–4: 300,000, 600,000, 800,000, 800,000
  • Don't
    Years 1–4: contribution minus 300,000 of the build each year

    The build is paid now, so it belongs in year 0.

NPV: all the cash, in today's money

NPV (net present value) sees what payback misses: every cash flow, each discounted to today, added up with the investment.

NPV = CF₀ + CF₁ ÷ 1.25 + CF₂ ÷ 1.25² + …

At Klasna's 25% the discount factors are 0.8, 0.64, 0.512, 0.4096.

  • Mock exams: −1,200,000 + 300,000 × 0.8 + 600,000 × 0.64 + 800,000 × 0.512 + 800,000 × 0.4096 = −1,200,000 + 240,000 + 384,000 + 409,600 + 327,680 = +161,280 UAH.
  • Parent app: −600,000 + 400,000 × 0.8 + 300,000 × 0.64 = −600,000 + 320,000 + 192,000 = −88,000 UAH.

Positive NPV means the bet earns more than 25% and adds that much value on top, in today's money. Negative means it earns less than the 25% the money could make elsewhere.

The app gets back 700,000 for 600,000, but not soon enough to earn 25%: its quick payback hides a negative NPV. The slips: leaving the investment out, discounting year 0, or adding the undiscounted cash (+100,000 for the app).

  • Do
    −600,000 + 400,000 × 0.8 + 300,000 × 0.64 = −88,000
  • Don't
    −600,000 + 400,000 + 300,000 = +100,000

    Undiscounted: treats year-2 money like money today.

NPV falls as the rate rises; IRR is where it hits zero

NPV depends on the rate you discount at. The higher the rate, the less later cash is worth, so the lower the NPV.

The parent app, same cash flows (−600,000; 400,000; 300,000), three rates:

  • at 10%: 400,000 ÷ 1.1 + 300,000 ÷ 1.21 − 600,000 = 363,636.36 + 247,933.88 − 600,000 = +11,570.25 UAH;
  • at 11.51%: zero;
  • at 25%: 320,000 + 192,000 − 600,000 = −88,000.

The middle rate is the IRR: the discount rate at which NPV is exactly zero. Below it the bet adds value, above it the bet destroys value. So the question "is the app a good bet?" has no answer until you say what Klasna's money costs. If it cost 10%, the app would pass; at Klasna's 25% it fails, because 11.51% is far below the bar.

This is also why NPV and IRR agree on a single bet against the bar: NPV at the bar is positive exactly when the IRR is above it. The slips: discounting year 2 by 1.2 instead of 1.1² = 1.21, or discounting the year-0 investment.

  • Do
    Year 2 at 10%: 300,000 ÷ 1.1² = 300,000 ÷ 1.21
  • Don't
    Year 2 at 10%: 300,000 ÷ 1.2

    Discounting compounds: divide by 1.1 once per year.

IRR alone can't rank bets of different size

IRR (internal rate of return) is the discount rate at which a bet's NPV is exactly zero. You find it by trying rates, or with a spreadsheet's IRR function. It reads like a return: compare it with Klasna's 25% bar.

  • mock exams: 31.26%, above 25%;
  • parent app: 11.51%, below 25%;
  • lesson reminders (−200,000, then 180,000 and 120,000): 34.58%, the highest.

Leo's reaction: the reminders win. They don't, if the team can build only one. Mutually exclusive bets are ranked by NPV, because NPV is an amount of value:

  • reminders: −200,000 + 144,000 + 76,800 = +20,800;
  • mock exams: +161,280.

A high rate on a small sum is still a small sum. IRR favors small, quick bets and says nothing about how much value each one adds. It can also mislead when bets have different timing.

So IRR is a good summary ("does this clear our bar?"), not a ranking tool. The slip is to sort a list of projects by IRR and fund from the top.

  • Do
    "Both clear 25%; mock exams add 161,280, reminders 20,800: build mock exams."
  • Don't
    "Reminders have the highest IRR, so they go first."

Discounted payback: payback in today's money

Discounted payback fixes one blind spot of plain payback: it adds up discounted cash flows instead of raw ones, so the wait counts.

Mock exams at 25%, running total: −1,200,000; −960,000 after year 1; −576,000 after year 2; −166,400 after year 3; +161,280 after year 4. Year 4 brings 327,680 in today's money, of which 166,400 is needed: 3 + 166,400 ÷ 327,680 ≈ 3.51 years, instead of 2.38 undiscounted.

Parent app: −600,000; −280,000 after year 1; −88,000 after year 2; then nothing. It never pays back in today's money, even though its plain payback is the shortest, 1.67 years.

Notice that the final value of the discounted running total is the NPV. A bet with a negative NPV can't have a discounted payback; a bet with a positive NPV always has one.

Discounted payback is more honest about waiting, but it still ignores whatever comes after the payback point. Use it as a check on how long the cash is out, not as the decision rule.

  • Do
    App: −600,000 + 320,000 + 192,000 = −88,000: no discounted payback
  • Don't
    "The app pays back in 1.67 years, so in today's money it pays back a bit later."

    Discounted, it never gets back to zero.

One bet, four numbers

For a full picture, show each bet with all its measures and know what each one says.

Maths mock-exam mode at Klasna's 25% rate:

  • NPV +161,280 UAH: positive, so it earns more than 25% and adds value. This is the decision number.
  • IRR 31.26%: above the 25% bar, consistent with the positive NPV.
  • Payback 2.38 years: the cash is back within three years, undiscounted.
  • Discounted payback about 3.51 years: counted in today's money the build is recovered only in year 4.

And against the alternatives:

  • it adds far more value than the reminders (161,280 vs 20,800);
  • yet the reminders' IRR is higher (34.58%), and the app's payback is shorter (1.67 years).

The measures don't contradict each other; they answer different questions. NPV: how much value? IRR: what rate does it earn? Payback: how long is the cash out? Read them together, and decide with NPV. The slip is to expect every measure to crown the same winner.

  • Do
    "NPV +161,280 at 25%; IRR 31.26%; payback 2.38 years, 3.51 discounted."
  • Don't
    "Its IRR isn't the highest, so it can't be the best bet."

Each measure has a blind spot

Use each measure for what it's good at, and name its blind spot when you present it.

  • Payback period: how long the money is out. Blind to all cash after payback and to the time value of money. The app's 1.67 years never sees that its cash stops after year 2.
  • Discounted payback: counts the wait in today's money (mock exams 3.51 years instead of 2.38). Still blind to everything after the payback point.
  • IRR: a rate, easy to compare with the bar. Blind to the size of the bet: it ranked the 200,000 reminders above the 1,200,000 mock exams.
  • NPV: the value a bet adds, in today's money. Its weak point is the input: it depends on the discount rate you choose, and on the cash flows you assume.

Cash flows of three product bets · shown above

On a slide: NPV first, with the rate used; IRR and payback beside it so people see the return and the wait. Then the assumptions: where do 800,000 a year from mock exams come from, more maths families or families staying longer before the exams? All three measures are only as good as those cash flows.

  • Do
    "NPV +161,280 at 25% (depends on the rate and on 800,000 a year in years 3–4)."
  • Don't
    "NPV has no weaknesses, so the assumptions don't matter."

Ready to practise?

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

Start the exercises