日本語

Monte Carlo Simulation in Project Management Explained

Monte Carlo simulation probability distribution curve for project completion

Monte Carlo simulation is the closest thing project management has to a crystal ball that actually works. Instead of asking "when will this project finish?" and accepting a single date, it asks "what's the probability of finishing by each possible date?" and runs thousands of randomized scenarios to find out.

The result isn't a promise. It's a probability distribution: a realistic picture of all the ways your project could play out, weighted by how likely each outcome is. That shift, from a confident-sounding single date to an honest range with odds attached, changes how teams plan, buffer, and commit to stakeholders.

What Is Monte Carlo Simulation?

Monte Carlo simulation is a computational technique that runs many randomized trials to model uncertainty. Each trial is one plausible version of your project. The simulation generates thousands of these versions, varying task durations or costs within defined ranges, and then tallies the results into a probability distribution.

In project management, it answers two core questions:

  • What is the probability of completing the project by a given date?
  • What is the realistic range of total cost given uncertainty in task estimates?

The output is an S-curve (a cumulative probability chart) that lets you read off statements like: "There is a 70% probability of finishing by October 15th" or "There is an 80% probability the project costs less than $420,000."

Unlike a Gantt chart, which shows one timeline, Monte Carlo shows all possible timelines and how often each one occurs.

Key Facts

The method is named after the Monte Carlo Casino in Monaco, a reference to the role of chance and probability in both gambling and complex system modeling. The technique was formalized by mathematician Stanislaw Ulam and physicist John von Neumann at Los Alamos National Laboratory in the late 1940s during research on nuclear weapons, where they needed to model neutron diffusion through random sampling. In project scheduling, simulations typically run 1,000 to 10,000 or more iterations to produce statistically stable results; fewer than 1,000 iterations can produce noisy outputs that shift significantly between runs.

How Monte Carlo Simulation Works

The engine behind every Monte Carlo run is random sampling from probability distributions. Here's the sequence:

Step 1: Assign distributions to task durations (or costs). Rather than a single estimate, each task gets a range, most commonly defined by three values: optimistic (O), most likely (M), and pessimistic (P). These feed into a triangular or beta distribution. (This is the same three-point input used in PERT-style three-point estimation.)

Step 2: The simulation picks a random value. For each iteration, the software randomly samples a duration from each task's distribution. A task with O=3 days, M=5 days, and P=12 days will occasionally draw a 3, often draw near 5, and sometimes draw an 11.

Step 3: It calculates the project end date (or cost) for that trial. The sampled values run through your project network, respecting task dependencies, and produce one possible completion date.

Step 4: Repeat thousands of times. Each repetition is an independent trial. After 5,000 or 10,000 runs, you have a frequency distribution of outcomes.

Step 5: Read the S-curve. The cumulative frequency curve shows what percentage of trials finished by each date, giving you direct probability statements.

Sample Three-Point Inputs

Task Optimistic Most Likely Pessimistic
Requirements gathering 5 days 8 days 18 days
Design phase 10 days 14 days 22 days
Development sprint 1 12 days 16 days 30 days
QA testing 4 days 7 days 15 days
Deployment 1 day 2 days 5 days

Each row is an independent distribution. The simulation samples all five simultaneously in each iteration, sums the network path, and records a completion duration. After thousands of runs, the distribution of those recorded durations becomes your forecast.

Monte Carlo vs Single-Point Estimating

Dimension Single-point estimate Monte Carlo simulation
Output One date or cost Probability distribution of dates or costs
Uncertainty Hidden (baked into a "buffer") Explicit (shown as a range with odds)
Risk visibility Low High
Stakeholder conversation "We'll finish by Oct 15" "70% chance by Oct 15, 90% chance by Nov 1"
Effort to set up Minimal Moderate (requires software + calibrated inputs)
Accuracy for complex projects Often optimistic Substantially better

Single-point estimates feel precise but tend to be optimistic. Psychologically, teams anchor on best-case scenarios. Monte Carlo doesn't eliminate uncertainty. It makes it visible so you can manage it rather than pretend it doesn't exist.

How to Run a Monte Carlo Simulation

Step 1: Map the project network

Start with a complete network diagram of tasks and dependencies. Monte Carlo runs along the same logical path as your critical path method analysis. If your network diagram is wrong or incomplete, the simulation will give you false confidence. Review float and slack in the schedule first. Near-critical paths with low float are prime contributors to schedule risk.

Step 2: Assign three-point estimates to every task

For each task (or at minimum, each uncertain task), collect optimistic, most likely, and pessimistic durations. Pull these from historical data where it exists. Where it doesn't, use subject-matter expert judgment, but push for genuinely wide pessimistic values. Most teams underestimate the pessimistic case by a factor of two.

Log your estimates in a risk register alongside each task. This gives you a single place to track which tasks carry the most schedule risk and why.

Step 3: Run the simulation

Import your network and distributions into a tool that supports Monte Carlo (Primavera Risk Analysis, @Risk for Excel, Oracle Crystal Ball, Microsoft Project with add-ins, or purpose-built tools like Safran Risk). Set the iteration count: 5,000 is usually sufficient for a clear distribution; 10,000 gives sharper tails.

Run the simulation. It will take seconds to minutes depending on the tool and project size.

Step 4: Read the S-curve and identify P50 and P80

The output is a cumulative probability curve. Two points matter most:

  • P50: The date by which 50% of simulation trials completed. This is the statistically unbiased median finish date.
  • P80: The date by which 80% of trials completed. This is the date you can commit to with 80% confidence.

Most teams use P50 as their internal planning target and P80 as the date they commit to external stakeholders. Some high-stakes or contractual projects use P85 or P90.

Step 5: Act on the results

If the P80 date is earlier than your contractual deadline, you have schedule margin. If P50 already blows the deadline, you have a structural problem: reduce scope, add resources, or reset expectations now. Don't negotiate using the P50 date if the contract penalizes late delivery. Negotiate using P80.

Use the simulation outputs to identify which tasks have the highest contribution to schedule variance. These are the tasks that deserve risk mitigation attention in your project risk management plan and should be visible on your risk matrix.

Benefits of Monte Carlo Simulation

Realistic forecasting. The simulation accounts for the full range of possible outcomes rather than the manager's optimistic point estimate. Projects with many interdependent tasks are especially prone to the merge bias effect, where parallel paths converge and the longest one dominates. Single-point estimates routinely miss this.

Better stakeholder conversations. Presenting a P80 date and an S-curve is more honest and more defensible than a single date. Stakeholders who understand probability can make informed decisions about acceptable risk.

Quantified risk exposure. The spread of the distribution tells you how much uncertainty exists. A narrow distribution means the project is well-understood. A wide distribution is a signal to investigate further.

Priority-driven risk management. The simulation identifies which tasks contribute most to variance, so your risk register and mitigation budget target the right places.

Supports contract negotiation. Many large infrastructure and defense programs now require probabilistic schedule analysis. Monte Carlo is the standard method.

Common Mistakes

Garbage-in estimates. Monte Carlo is only as good as the distributions you feed it. Teams that compress pessimistic values to avoid uncomfortable conversations (P = M + 20%) produce outputs that look precise but are statistically wrong. The pessimistic estimate should reflect a plausible worst case, not a slightly bad case.

Ignoring correlation between tasks. If one task slips because the same resource is a bottleneck across three tasks, all three will slip together. Most basic Monte Carlo setups treat tasks as independent. Failing to model positive correlation (where one delay tends to cause others) systematically understates schedule risk.

Treating P50 as a safe commitment. P50 means you have a 50% chance of being late. That's a coin flip. Committing to a P50 date to stakeholders who expect on-time delivery is a recipe for regular disappointment. Use P80 or higher for commitments.

Running only one simulation. Inputs change as the project progresses. Re-run the simulation at key milestones or when a major risk materializes. A static simulation done at kick-off and never revisited provides false assurance.

Misreading the S-curve. The P80 date is not "the worst case." It's the point where 80% of trials finished. There is still a 20% chance of finishing later, sometimes significantly later if the distribution has a long tail.

Monte Carlo Example: Software Release Project

A software team is planning a product release with four major phases. Their three-point estimates are:

Phase Optimistic Most Likely Pessimistic
Architecture and design 8 days 12 days 25 days
Backend development 20 days 30 days 55 days
Frontend and integration 15 days 22 days 40 days
QA and release prep 6 days 10 days 20 days

A simple single-point estimate using most-likely values gives 74 days total. The team targets a deadline 80 days from project start and feels comfortable.

After running a 10,000-iteration Monte Carlo simulation, the results look very different:

Confidence level Completion duration
P50 83 days
P70 91 days
P80 97 days
P90 108 days

The P50 is already past the 80-day target. There is roughly a 30% chance of finishing inside 80 days, well below any acceptable confidence threshold for an external release commitment. The team now has clear evidence to either compress scope, add resources to the backend phase (the highest-variance task), or renegotiate the release date. Running the simulation exposed a problem that the single-point estimate completely obscured.

Frequently Asked Questions

How many iterations should a Monte Carlo simulation run?

For most project schedules, 1,000 iterations produce a usable distribution. 5,000 gives stable results for typical reporting. 10,000 is the standard for high-stakes or contractual analysis where tail probabilities matter. Running more iterations costs nothing in modern software, so defaulting to 5,000 to 10,000 is a safe habit.

What is a P80 date?

A P80 date is the project completion date at which 80% of simulation trials finished. It means that, given your task estimates and their uncertainty ranges, there is an 80% probability the project will complete on or before that date. Many project management standards recommend reporting P80 as the "confidence date" for external commitments, reserving P50 for internal team targets.

What tools run Monte Carlo simulation for project schedules?

Common tools include Oracle Primavera Risk Analysis (formerly Pertmaster), Palisade @Risk for Excel, Oracle Crystal Ball, Safran Risk, and Deltek Acumen Risk. For lighter use, some teams use Python libraries (NumPy, SciPy) to build custom simulations. Microsoft Project does not include native Monte Carlo, but several add-ins connect to it.

What is the difference between Monte Carlo simulation and PERT?

Both use three-point estimates (optimistic, most likely, pessimistic). PERT calculates a single expected duration and standard deviation using a formula, producing one answer. Monte Carlo runs thousands of iterations and produces a full probability distribution, capturing non-linear interactions between tasks, including merge bias, that the PERT formula cannot. For complex projects with many parallel paths, Monte Carlo is substantially more accurate.

Does Monte Carlo simulation work for cost forecasting?

Yes. The same technique applies to cost. Instead of task durations, you assign cost distributions (optimistic, most likely, pessimistic) to line items or work packages. The simulation produces a cost probability distribution with P50, P80, and P90 values, letting you set contingency reserves based on explicit confidence levels rather than arbitrary percentages.


The gap between a single deadline and a probability distribution is the gap between false confidence and informed commitment. Monte Carlo simulation doesn't make your project less uncertain. It makes the uncertainty legible, so you can buffer the right tasks, negotiate honest deadlines, and build mitigation plans that address the actual sources of risk rather than just adding a generic 10% buffer and hoping for the best.

Start with your highest-variance tasks, calibrate the pessimistic estimates honestly, and run at least 5,000 iterations. The S-curve you get back will tell you more about your project's real schedule risk than any Gantt chart ever could.