SigmaField

Practice Banking and corporate finance

Screen capital projects by NPV and IRR

Easy+10 pointsAbout 25 minutesBanking and corporate finance

The brief

A manufacturer's capital committee has five projects on its list, and money costs the firm 9% a year. The finance team ranks the projects two ways, by net present value (NPV) and by internal rate of return (IRR). The two lists disagree.

The committee wants both rankings, and the cost of capital at which two projects swap places. One project's cash flows change sign twice, so its IRR needs care.

Your task

  1. Write npv(rate, cashflows): the net present value at the yearly rate rate. cashflows[0] happens today and cashflows[t] at the end of year t. An empty list has NPV 0.
  2. Write irr(cashflows): the internal rate of return, when there is exactly one between −0.99-0.99 and 10. Return None when there is none, or more than one: such a project cannot be ranked by IRR.
  3. Write rank_projects(projects, rate): a pair of lists of names, (by_npv, by_irr), best first. Leave the projects that have no single IRR out of by_irr.
  4. Write crossover_rate(cf_a, cf_b): the rate at which two projects have the same NPV, or None when there is no single such rate. The two lists may differ in length.

The data

PROJECTS in the code lists the five projects. Each has a name and its yearly cashflows in thousands of dollars, year 0 first, with money paid out negative. COST_OF_CAPITAL is the firm's 9% a year.

Hint: Where to start

The NPV is the sum of case study 0.2.4.

To find every IRR, case study 1.3.5 scans a grid of rates from −0.99-0.99 to 10 in steps of 0.01. It hands each sign change to brentq. Then count what you found.

Hint: When the rankings disagree

IRR ignores size. A high return on a small outlay can add less value than a lower return on a large one.

Two projects swap places in the NPV ranking where their NPVs are equal. An NPV is a sum, so the gap between two NPVs is the NPV of the difference of their cash flows (lesson 0.2.2). The rate that makes it zero is an IRR (case study 1.3.5).

A large project, or one paid late, gains most when money is cheap.

Hint: Two sign changes

Cash flows that change sign twice can have two IRRs, or none (case study 1.3.5). Then the IRR rule says nothing, and the NPV at the cost of capital still decides.