How to Calculate IRR by Hand — Trial, Error & Interpolation
IRR has no formula to apply — it is defined as the rate where NPV equals zero, and the only way to find it by hand is to hunt: guess rates, watch NPV's sign, and squeeze the root between two guesses. That hunt is exactly what your calculator automates. Done carefully, it lands within a tenth of a percent in three rounds.
Quick answer: Guess a rate, compute NPV by hand; the sign tells you which way to move. On −$1,000; $500, $600, $700: NPV at 30% is +$58.26, at 40% it's −$81.63 — so IRR sits between. Linear interpolation gives 30% + 58.26/(58.26+81.63)×10% ≈ 34.17%; the true IRR is 33.87%, because NPV curves rather than bends linearly. Two more trial rounds close the gap.
Step 1 — set up the NPV equation
Write the stream as an equation with the rate as the unknown: −1000 + 500/(1+r) + 600/(1+r)² + 700/(1+r)³ = 0. Solving this polynomial for r is what 'finding the IRR' means. Multiply through by (1+r)³ and you get a cubic — solvable in principle, miserable in practice, which is why everyone hunts numerically.
Step 2 — two guesses that bracket zero
- Try r = 30%: 500/1.30 = 384.62 · 600/1.69 = 355.03 · 700/2.197 = 318.62 → NPV = +$58.26
- Try r = 40%: 500/1.40 = 357.14 · 600/1.96 = 306.12 · 700/2.744 = 255.10 → NPV = −$81.63
- The sign flipped, so the IRR is between 30% and 40%
Step 3 — linear interpolation
Assume NPV falls in a straight line between the two guesses: IRR ≈ 30% + 58.26/(58.26+81.63) × 10% = 30% + 4.17% = 34.17%. The real IRR is 33.87% — the interpolation overshoots by 0.30 points because NPV is a convex curve, not a line, over that span. The wider the bracket, the worse the linear lie; a 30–35% bracket would land within about 0.05.
Step 4 — one refinement round
Test 34%: 500/1.34 = 373.13 · 600/1.7956 = 334.15 · 700/2.406 = 290.94 → NPV = −$1.78. Just barely negative, so the root sits a hair under 34%: interpolating between 30% (+58.26) and 34% (−1.78) gives 30 + 58.26/60.04 × 4 = 33.88% — within 0.01 of the true 33.87%. That's the whole game: bracket, interpolate, refine.
What your calculator does instead
The same hunt, automated: scan rates in small steps until NPV changes sign, then bisect the bracket forty times to full float precision. This site's IRR engine scans from −99.99% to 1000% and bisects; a BA II Plus runs its own variant. 'No solution' from either means the stream never crosses zero — usually all-positive or all-negative flows, or multiple sign changes with no net crossover.