Scenarios are like reading a newspaper through a straw.
Imagine reading a newspaper through a straw. You can see one word at a time. You cannot read the article. This is a critical reflection of what I see every week and with a quant background for 30 years observing ‘finance trained’ professionals it still astounds me.
Reading an IRR as a single number is the same. You see the centre of a distribution. You miss the shape, the spread, the tail. You miss the information that tells you whether the deal survives a stress.
A model says the project IRR is 14.34%. Two decimal places. Crisp but it’s also fiction.
An IRR is a guess at the centre of a distribution
Run the same model 30,000 times with its inputs randomised inside their actual uncertainty bands, and the picture changes. The mean IRR comes out at 14.31%. The 95% confidence interval runs from 11.84% to 16.78%. The minimum dips to 9.08%. The maximum touches 19.63%.
Same project. Same assumptions. Eight percentage points of spread on the answer - one extra hour of work (done by a macro / AI).
The 14.34% in the committee paper is not a property of the project. It is the modeller’s best guess at the centre of a curve nobody bothered to draw. Reporting that single number while suppressing the curve is not analysis. It’s a presentation choice.
Engineers report tolerances. Scientists report error bars. Project finance reports a number to three decimal places and hopes nobody asks where the rest of the distribution went.
Sensitivity analysis is asking the wrong question.
The standard (silent) approach is: “we already do scenarios and sensitivities.”
Sensitivities are not simulation. Scenarios are not simulation either - they are just a snapshot of certain pre-programmed views - back to the ‘newspaper through a straw’.
A sensitivity table moves one input at a time, holding everything else flat - like that ever happens. It tells you the slope of the answer with respect to one variable. It cannot show joint variation. It cannot show the shape of the output. It cannot show tail risk.
The “downside case” in a sensitivity tornado is not the 5th percentile of the joint distribution. It’s usually closer to the 25th-30th percentile of one variable’s marginal, with everything else parked at base case. That isn’t downside protection. It’s a sketch of one.
Scenarios are slightly better. They move several inputs together along a chosen path. But three scenarios are three paths. The joint distribution has thousands. Picking three and calling it a risk analysis is sampling that fails any honest statistical test.
Simulation is easier than the industry pretends
The objection then becomes: “we don’t have the budget for @Risk or Crystal Ball.” Well, you are paying $200k for an analyst who spends 80% of their time getting the framework in place - but only getting 50% of the analysis they can produce. If I was investing millions of dollars based almost entirely on the output of analysis, I’d invest an extra hour of work or $5k in a proper analytical platform. I can say this because when investing in a mine, I did - and the result stopped me.
The reality is that you don’t need the extra budget. Native Excel and a few lines of VBA will get you 80% of the way there - and the groundwork has been laid out for free online.
Replace key static inputs with NORMINV(RAND(), mean, stdev). Each calculation now produces a fresh random draw from a normal distribution around the input’s expected value. Wrap a switch around the inputs so the model can toggle between static and simulation mode. Write a VBA loop that copies the metric block (IRR, NPV, payback) into a results table N times. Five thousand simulations is enough to be useful. Thirty thousand is comprehensive. Build a frequency histogram off the results. Read off the mean and the 2.5th and 97.5th percentiles for the 95% band.
That’s it. The skill is in setting up the inputs honestly, not in licensing software. The full method, with the code, is at vectorhq.co. We are focussed on solving this with AI these days but it’s there for free.
Yes I hear you, real distributions are not all normal. Capex is right-skewed. Recovery factors have hard upper limits. Capex and schedule are correlated. None of these refinements are reasons to do nothing. They are reasons to do this properly once you’ve started doing it at all. Anything is better than the false comfort of a point estimate.
The number you should be presenting.
The committee conversation transforms the moment IRR is presented as a range rather than a number. “14.34%” is binary. It clears the hurdle or it doesn’t. There’s nothing to discuss except whether the hurdle is the right one.
“11.84% to 16.78% with 95% confidence, mean 14.31%” forces a different conversation. How wide is the spread relative to the cost of capital? Where is the 5th percentile? What is driving the tail? Which input is the simulation telling us is doing most of the work?
That is risk analysis. The other thing was just arithmetic - ouch.
There is a subtler shift too. Once decision-makers see distributions, they start asking which assumptions are doing the most damage. They start interrogating the inputs the modeller would rather they didn’t. The number stops being a magic trick and starts being something to work with.
So here is the question to take back to your next investment committee.
Given a model that said IRR = 14.34%, and a model that said IRR = 11.84% to 16.78% with 95% confidence and a mean of 14.31% - which one would you have more confidence in?
If you can answer that honestly, you already know what your committee papers should look like. Most successful collaborations happen when two skill-sets collide. Simulation is not hard, and can be taken to the extreme - also a risk - but wouldn’t you rather have a best guess of the uncertainty around what is at best - your best guess?
Learn more with this free basic resource.
First published on Nick Crawley’s Substack.