Internal Rate of Return (IRR)

Internal Rate of Return (IRR) is the annualized rate that makes all the cash flows of an investment — money in, money out, whenever each occurs — net to exactly zero in present-value terms. One number, extracted from an irregular stream, that plays the role a quoted interest rate plays for a bond.

IRR is called internal because it depends only on the cash flows of the investment being analyzed and excludes external factors, such as returns available elsewhere, the risk-free rate, inflation, the cost of capital, or financial risk. The IRR of an investment is the interest rate that gives it a net present value of 0, or where the sum of discounted cash flow is equal to the investment.

IRR is calculated by trial and error as a solution of this equation:

NPV = n=0N Cn (1 + IRR)n = 0

where: N = total number of periods, n = time period, Cn = cash flow at period n.

Let’s take the same example: invest $10,000 in a project that gives you $2,000 in year 1, $3,000 in year 2, and $8,000 in year 3. IRR for this project is 11.397637%. In Table 2.3, that IRR drives the sum of discounted PVs to zero. Solutions to equations like this are better to do in spreadsheets, and both Excel and Google Sheets provide IRR function for simplicity. For this example that would be =IRR({-10000,2000,3000,8000}).

Table 2.3: Example of IRR calculation
Year Discounted Value Nominal Cash Flow
0 ($10,000) ($10,000)
1 $2,000 ÷ (1 + IRR) = 1795.37 $2,000
2 $3,000 ÷ (1 + IRR)2 = 2417.52 $3,000
3 $8,000 ÷ (1 + IRR)3 = 5787.11 $8,000
Total 0 (NPV) $3,000

IRR collapses an irregular stream of cash flows into one comparable number, which is genuinely useful. It also has four failure modes, and people who sell investments for a living know all of them.

It ignores scale.

A $1,000 project returning 50% and a $1 million project returning 20% have IRRs that rank them backwards. NPV is stated in dollars and does not have this problem. When the two metrics disagree, follow NPV.

It ignores risk.

Nothing in the calculation knows whether the cash flows are contractual or speculative. A higher IRR on a riskier project may be worse compensation per unit of risk.

It assumes reinvestment at the IRR itself.

The math implicitly credits every interim distribution with earning the IRR until the end. A fund reporting 25% is assuming you redeployed each distribution at 25%, which you almost certainly did not. The fix is the modified internal rate of return, which discounts outflows at your financing rate rf and compounds inflows at the rate you can actually reinvest at, ri:

MIRR = ( FV of inflows at ri |PV of outflows at rf|)1n 1

For the inputs, use your actual portfolio’s expected return for ri and your borrowing rate for rf — if you don’t know, 7% and your mortgage rate are sensible baselines. Both Excel and Sheets provide MIRR(values, finance_rate, reinvest_rate). MIRR is almost always lower than IRR, and almost always closer to the truth.

It may not be unique –- or exist.

The IRR equation is an n-degree polynomial. By Descartes’ rule of signs it can have as many real roots as the cash flow stream has sign changes. A project that costs money, earns money, then requires a large closing cost — a mine with remediation liability, a fund with a clawback — can have two mathematically valid IRRs, or none at all. Spreadsheets return whichever one they converge to first, without warning you. Whenever the signs flip more than once, use NPV.

And the failure mode that matters most to you personally. IRR is a money-weighted return: it depends on when capital went in and out, and whoever controls that timing controls the number. That is precisely why private fund managers report IRR instead of a multiple, and why an IRR can never be compared against a published index return, which is time-weighted. section “Measuring Returns: The Numbers and What They Hide” works through how that gap gets exploited and what to ask for instead.