FORECASTING · MONTE CARLO · SCHEDULE AND COST RISK

Your Plan Shows One Date.
Reality Has a Range.

Run the programme two thousand ways and you get the odds instead of a promise — on the finish date, on the final account, and on what each logged risk is actually costing you.

Every programme ends in a single date. One bar, one finish, printed and circulated and written into a contract. And everybody involved knows, quietly, that the date is a best case dressed up as a commitment.

Not because anyone is lying. It is the arithmetic. A critical path takes one duration for each activity and adds them up. But no activity has one duration. Every one of them has a range, and when you chain hundreds of ranges together, the result is not a date — it is a distribution.

Two thousand versions of the same job

So instead of asking "when does the plan say we finish", the tool asks "how might this actually finish". Every activity varies within its likely range, the schedule is rebuilt and re-decoded, and that happens two thousand times.

Two thousand simulated finishes, P10, P50 and P90, against the plan's own date
The spread of finish dates: best case, most likely, worst case — with the plan's own date marked. The gap between the marker and the likely finish is risk the single-point programme does not show.

That gap is the whole point. On a healthy programme it is small and you can argue about a fortnight. On a stretched one, the plan's date sits out on the left-hand tail where almost none of the two thousand runs land, and no amount of confidence in the meeting changes that.

It is worth being clear about why simulated finishes usually land later than the plan. Delays compound and the latest path always wins: an activity that runs short only helps if everything feeding into the same point also runs short, while a single overrun anywhere on the critical chain pushes the finish. That asymmetry is real, and a forecast that hides it is flattering you.

Risks that are actually priced

Most risk registers grade things High, Medium or Low and get filed after the tender. That tells you nothing you can act on. The two questions anyone actually asks are: how many days, and how much money.

Logging a risk against the schedule: likelihood, delay, cost, linked to the activities it hits
A likely groundworks obstruction: 15 days, £250k, linked to the activities it would hit. It carries a probability, a delay and a cost.

Then it goes into the same simulation. On the runs where the risk fires, it bites; on the runs where it does not, nothing happens. Which is exactly how risk behaves on site, and nothing like the flat contingency percentage most programmes carry.

The forecast after the risk is added: the distribution moves later and widens
With the risk in play the likely finish moves later and the spread widens. The tool shows the forecast with and without risks, so you can see what each logged risk costs you in days and pounds.

That comparison is the useful bit. "This risk is worth eight days and £723,490 to us" is a sentence you can take to a client, an insurer or a board. "Ground conditions: amber" is not.

Turn a target into a probability

Clients do not ask for distributions. They ask whether you will be finished by the date in the contract. The honest answer is a percentage, and the tool works it both ways round: type a confidence and get the date, or type a date and get the odds. The same works on cost — to be 80% sure, stay under this figure.

Cost uncertainty: the spread of final costs across the same simulated runs
The same runs, priced. Each finish carries the standing hire, prelims and overhead its own dates incur, so a later finish genuinely costs more.

Pricing the runs rather than the plan is what makes the cost side honest. A programme that finishes eleven weeks late does not just cost late-completion damages; it costs eleven more weeks of being on site. Those two numbers come from the same simulation, so the time story and the money story cannot disagree.

Not everything is uncertain

A forecast that treats every activity as a guess is its own kind of dishonesty. Some things are fixed: a contracted milestone, a committed delivery, a possession date you have already booked.

Every activity with its best, likely and worst range, ready to be locked
Every activity varies by default, with its own best, likely and worst range — and each one can be locked when you genuinely know it.
With three activities locked, the spread of outcomes narrows
Three activities locked: the spread narrows, because there is less left to vary. Certainty is worth something, and this shows how much.

I like this part because it turns the forecast into a conversation rather than a verdict. Lock what you know, watch the odds sharpen, and you can see exactly which unknowns are costing you the most breadth. Usually it is two or three activities, and they are rarely the ones people worry about.

What it is not

Monte Carlo does not predict the future. It tells you what your own assumptions imply, which is a different and more useful thing. Feed it optimistic ranges and you will get an optimistic distribution, prettier and just as wrong.

It also cannot see a risk you have not logged. The simulation is honest about the register it was given: it reports how many risks fired, how many were excluded because they were closed, and how many are active but linked to no activity, so nobody mistakes a thin register for a safe job.

Run it on your own programme

GeneraGantt reads MS Project, Primavera P6 and Asta Powerproject, and the risk and forecast reports download as CSV and PDF, each stating the day they were measured at. Nothing is saved: your schedule leaves with you.

It is free while it is in testing, with a sample programme loaded, so you can run the simulation without uploading anything of your own.

Figures in this article come from the sample programmes in GeneraGantt.