← All articles

Monte Carlo Simulation in Project Scheduling: A Beginner's Guide

By XNM Technologies · August 20, 2022 · 4 min read
Monte Carlo Simulation in Project Scheduling: A Beginner's Guide

Most project schedules are built the same way: each task gets a single duration estimate, the estimates are linked in a network, and the software calculates a finish date. That finish date then takes on a life of its own — it goes into the project charter, onto the dashboard, into the contract milestone schedule — and everyone involved starts to treat it as a fact. It is not a fact. It is the result of adding together a series of single-point guesses, each of which carries uncertainty, in a network where those uncertainties compound. The date tells you when the project finishes if every estimate is exactly right. That almost never happens.

Three-point estimating: the foundation

Before you can run a Monte Carlo simulation, you need to replace single-point estimates with ranges. The standard approach is three-point estimating: for each task, the estimator provides an optimistic duration (if everything goes right), a most likely duration (the realistic mode, given normal conditions and minor problems), and a pessimistic duration (if significant problems occur — not the absolute worst case, but a plausible bad outcome). In practice, teams are often reluctant to give ranges because it feels like admitting they do not know. The reframe that helps is to point out that a single estimate also does not represent certainty — it just hides the uncertainty instead of quantifying it. A range is more honest, and more useful.

For a project with significant interdependencies — common in capital infrastructure, government programs, and technology implementations — the three-point estimates on individual tasks are not what matter most. What matters is what happens to the schedule when several tasks are late simultaneously, which is far more likely than it sounds: tasks share resources, delays cascade through dependencies, and the optimistic path for the whole project requires a string of optimistic outcomes on every task along the critical path.

How Monte Carlo simulation works

Monte Carlo simulation addresses this by modelling the whole schedule many times over — typically thousands of iterations — with task durations sampled randomly within their ranges on each run. In one iteration, Task A might land at 12 days, Task B at 8, Task C at 21. In the next iteration, Task A might be 9 days, Task B 15, Task C 14. Each run produces a schedule completion date. After thousands of runs, those dates form a distribution: some dates appear rarely (the very optimistic and very pessimistic outcomes), most cluster around the middle. The distribution lets you read off probability statements directly.

The output is typically expressed as percentiles. P50 is the date by which the simulation says there is a 50% probability of completion — half the simulated runs finished on or before this date. P80 is the date with an 80% probability of completion, and P90 offers a 90% confidence level. Which percentile to commit to is a risk management decision, not a technical one. A contract milestone should be set at a higher percentile than an internal target date; a board-approved baseline might be set at P80 for a major infrastructure project where cost overruns have political consequences.

Practical tools and when to use them

  1. Microsoft Project with @Risk or Oracle Primavera Risk Analysis. Both integrate directly with project schedules and run thousands of iterations automatically. @Risk (Palisade/Lumivero) works inside Excel as well as Project and is widely available in government environments. Primavera Risk Analysis integrates with the P6 schedule format used on major capital projects.

  2. Use Monte Carlo when interdependencies are high. A short project with few dependencies and experienced estimators may not need full simulation — a simple three-point estimate on the total duration is often sufficient. Monte Carlo earns its keep on projects with long chains of dependent tasks, shared resources across multiple workstreams, or a history of schedule slippage.

  3. Understand what the model does not capture. Monte Carlo assumes the schedule logic is correct and that risks are captured in the task duration ranges. It does not automatically account for scope changes, external events not reflected in the task network, or correlated risks — situations where if one task slips, adjacent tasks are likely to slip too. A well-built risk register should feed into the assumptions, not be treated as separate from the schedule model.

The most common objection to Monte Carlo simulation is that it is complicated and the outputs confuse stakeholders. Both concerns are real, but both are manageable. The model itself is built by the scheduler; stakeholders only need to understand the output, which is straightforward once you explain that "P80: November 3rd" means "we have an 80% chance of finishing by November 3rd." That framing is easier to act on than a single date that silently assumes every estimate was perfect.

If your organisation is struggling with schedule reliability on complex programs, XNM's program and project delivery advisory can help you apply schedule risk analysis and build baselines that reflect real uncertainty rather than false precision.