Financial analysis
Investment Risk Simulation
A Monte Carlo simulation of an investment appraisal. Give a range for each cash flow instead of a single figure, and see the spread of outcomes rather than one number — including the probability the project loses money. Answers the question that follows every appraisal: how confident should I be?
Cash flows
Period 0 is the investment and is normally negative in all three columns. Most likely must sit between worst and best.
| Period | Label | Worst | Most likely | Best | |
|---|---|---|---|---|---|
| 0 | |||||
| 1 | |||||
| 2 | |||||
| 3 |
Held fixed across every trial — a hurdle rate is a policy, not a forecast.
100 to 50,000. More trials steady the percentiles; they do not make the ranges more right.
The same seed and the same inputs always give the same report. Send someone the seed and they can reproduce it exactly.
The answer
Probability the net present value is below zero
6.0%
596 of 10,000 trials came out negative.
Base case — every input at most likely
227.65
Base case IRR 21.65%. This is the figure you can rebuild with a calculator; everything below it is that figure put under pressure.
Where the answer lands
| Net present value | IRR | |
|---|---|---|
| Worst trial | -203.57 | -1.01% |
| P10 — one in ten is worse | 30.30 | 11.58% |
| P50 — the middle | 173.07 | 18.86% |
| P90 — one in ten is better | 309.58 | 25.45% |
| Best trial | 510.09 | 34.80% |
| Mean | 170.98 | 18.66% |
The net present value column covers all 10,000 trials. The IRR column covers 10,000.
The spread of outcomes
Each bar is a band of net present value; height is how many trials landed in it. Bars left of zero are trials that lost money.
The same figures as a table
| From | To | Trials |
|---|---|---|
| -204 | -186 | 3 |
| -186 | -168 | 2 |
| -168 | -150 | 9 |
| -150 | -132 | 6 |
| -132 | -114 | 11 |
| -114 | -97 | 32 |
| -97 | -79 | 32 |
| -79 | -61 | 56 |
| -61 | -43 | 83 |
| -43 | -25 | 115 |
| -25 | -7 | 175 |
| -7 | 11 | 188 |
| 11 | 28 | 258 |
| 28 | 46 | 285 |
| 46 | 64 | 375 |
| 64 | 82 | 415 |
| 82 | 100 | 495 |
| 100 | 118 | 535 |
| 118 | 135 | 603 |
| 135 | 153 | 641 |
| 153 | 171 | 616 |
| 171 | 189 | 606 |
| 189 | 207 | 657 |
| 207 | 225 | 638 |
| 225 | 242 | 617 |
| 242 | 260 | 498 |
| 260 | 278 | 414 |
| 278 | 296 | 411 |
| 296 | 314 | 293 |
| 314 | 332 | 292 |
| 332 | 350 | 204 |
| 350 | 367 | 146 |
| 367 | 385 | 107 |
| 385 | 403 | 73 |
| 403 | 421 | 47 |
| 421 | 439 | 33 |
| 439 | 457 | 16 |
| 457 | 474 | 8 |
| 474 | 492 | 3 |
| 492 | 510 | 2 |
| Total | 10,000 | |
10,000 trials · seed 20260903 · Monte Carlo, triangular sampling · percentiles by PERCENTILE.INC
Reuse the analysis
Download every trial's net present value and check any NPV percentile yourself with PERCENTILE.INC.
Methodology — and where this tool’s trace is weaker than the others
What it does
This is a Monte Carlo simulation. Each trial draws one value per period from a triangular distribution defined by your worst, most likely and best, then discounts those cash flows exactly as the Investment Appraisal tool does. The distribution you see is those trials sorted.
The sampling
Triangular, by inverse transform. With worst a, most likely c, best b and a uniform draw u: below (c−a)/(b−a) the sample is a + √(u(b−a)(c−a)), and at or above it b − √((1−u)(b−a)(b−c)). Periods are drawn independently of each other.
Why the seed is on the page
The generator is mulberry32, seeded by the number in the Seed box. The same inputs and the same seed produce an identical report on any machine, permanently — so two people can disagree about a project rather than about the tool.
Percentiles
Linear interpolation between neighbouring ranks on the sorted trials — the method Excel implements as PERCENTILE.INC. That is deliberate: download the trials and =PERCENTILE.INC(B:B, 0.1) returns the P10 shown here. Column A is the trial number; column B is the net present value.
Where the trace is weaker, said plainly
Every other tool on this site shows figures you can rebuild by hand from this panel. Nobody rebuilds a P50 of ten thousand trials by hand. What stands in its place: the base case above is fully hand-checkable, the seed makes the run reproducible exactly, and the CSV export lets you recompute any percentile in a spreadsheet. You verify a percentile by re-running or in Excel — not by mental arithmetic.
What it will not tell you
Whether the project is a good idea. A distribution is only as good as the ranges you put in: a narrow range produces false confidence, and no amount of simulation fixes that. Periods are also drawn independently, so if a bad year one would really mean a bad year two, the true spread is wider than this shows. It samples the cash flows you enter; it does not simulate market or asset returns.
Your figures are processed locally in your browser and are not uploaded to Consilium.