Net Present Value & the Internal Rate of Return
NPV adds up a whole cash-flow stream in today's dollars at a rate you pick; the IRR is the one rate that makes that sum exactly zero — and it isn't always unique.
By the end you'll be able to compute the IRR of a cash-flow stream, apply the NPV accept/reject rule at a required rate, and recognize when a stream might have more than one IRR.
Predict: as you raise the discount rate, does NPV rise or fall — and where does the project stop being worthwhile? Drag i and watch the zero-crossing.
Pick a cash-flow stream below, then drag i to move the current-rate marker along the NPV(i) curve. The IRR marker(s) sit exactly where the curve crosses zero — try the alternating-signs stream to see two of them at once.
NPV at i = 10.00%: $41.32 — accept
IRR: 13.07%
NPV translates an entire stream of payments and receipts into one number in today's dollars; the IRR is just the special rate at which that number lands on exactly zero.
Line up every payment and receipt on a timeline, shrink each one back to today using your chosen rate, and add them all up — that total is the NPV. Raise the rate and every future dollar shrinks harder, so for a normal "pay now, collect later" project the total falls as the rate rises. Slide the rate up until the total lands exactly on zero, and you've found the IRR: the break-even rate at which the project neither gains nor loses value.
For a cash-flow stream \(C_0, C_1, \ldots, C_n\) at times \(0, 1, \ldots, n\), \(\mathrm{NPV}(i) = \sum_t C_t \cdot v^t\), where \(v = 1/(1+i)\). The IRR, \(i^*\), is the rate solving \(\mathrm{NPV}(i^*) = 0\). The yield equation \(\sum_t C_t x^t = 0\) (with \(x = 1+i\)) is a degree-\(n\) polynomial, so by Descartes' rule of signs the number of positive roots is at most the number of sign changes in the ordered cash flows. A conventional stream (one sign change) has a unique positive IRR; a stream that alternates sign more than once can have several IRRs, or none.
A business compares the NPV at its required rate (cost of capital) against zero: NPV > 0 means the project clears the hurdle, so accept it. For a conventional stream this is the same test as "IRR > required rate." But when comparing several projects against each other, lean on NPV at the required rate rather than ranking by IRR — IRR ignores project scale and implicitly assumes any cash it frees up gets reinvested at the IRR itself, which is rarely realistic.
Pay 1000 today; receive 600 at the end of year 1 and 600 at the end of year 2. The yield equation is \(-1000 + 600v + 600v^2 = 0\). Dividing by 200: \(3v^2+3v-5=0\), so \(v = (-3+\sqrt{69})/6 \approx 0.88444\) and \(1+i^* = 1/v \approx 1.13064\), giving IRR ≈ 13.07%. At a required rate of 10%, \(\mathrm{NPV}(0.10) = -1000 + 600(0.90909) + 600(0.82645) \approx\) +41.32 — positive, so the project clears a 10% hurdle, matching IRR ≈ 13.07% > 10%. Set the demo's rate slider to 10% and check the same number.
Same idea, different numbers: pay 1000 today, receive 650 at the end of each of the next two years. Yield equation: \(-1000 + 650v + 650v^2 = 0\). Dividing by 50: \(13v^2+13v-20=0\), so \(v = (-13+\sqrt{1209})/26 \approx 0.83734\). Now finish it: \(1+i^* = 1/0.83734 \approx\) ____, so \(i^* \approx\) ____
Reveal the answer
\(1+i^* = 1/0.83734 \approx 1.19430\), so IRR ≈ 19.43%. Notice this is a different stream from the worked example above (650 vs. 600 each year), so it lands on a different IRR — there's no shortcut that reuses the earlier answer.
More info — why the curve can rise, not just fall
As you saw when balancing an equation of value, a higher rate always shrinks a single future amount more the longer you wait for it. For a conventional stream (all the outflow up front, all the inflows later), that shrinkage is one-directional — every inflow gets discounted harder as i rises, so NPV falls monotonically and crosses zero exactly once. But when signs alternate — say an outflow, then an inflow, then another outflow — raising i also shrinks that later outflow, which can pull NPV back up before it falls again. That tug-of-war between differently-timed positive and negative terms is exactly what produces the hump — and the second zero-crossing — in the alternating-signs preset above. See the Internal rate of return link in Dive deeper for the general argument.
Check your understanding
You pay 800 today and receive 500 at the end of each of the next two years. Find the yield rate (IRR).
A cash-flow stream is −100 at time 0, +500 at time 1, and −600 at time 2 — two sign changes. What does this tell you about its IRR?
The internal rate of return is really a special case of which general tool from time value of money?
Buying a bond for its price, then collecting coupons and the redemption value, is itself a cash-flow stream. What is the bond's yield rate, in NPV/IRR terms?
Recap
- \(\mathrm{NPV}(i) = \sum_t C_t \cdot v^t\); the IRR (yield rate) is the rate \(i^*\) that makes \(\mathrm{NPV}(i^*) = 0\).
- Accept a project when NPV > 0 at the required rate — for a conventional stream, that's the same as requiring IRR to beat the required rate.
- A conventional stream (one sign change) has a unique IRR; a stream whose signs alternate more than once can have several IRRs, or none — Descartes' rule of signs caps the count.
- When ranking multiple projects, use NPV at the required rate rather than comparing IRRs directly.
Dive deeper
- Net present value — Wikipedia Define NPV as summed discounted cash flows and state the accept-if-positive rule.
- Internal rate of return — Wikipedia Characterize IRR as the rate setting NPV to zero and explain the multiple-IRR case.
- 18.S096 Topics in Mathematics with Applications in Finance — MIT OpenCourseWare Review discounting and present-value foundations at a rigorous level.
Sources
- Net Present Value and the Internal Rate of Return