New to this topic?
We recommend reading these guides first to get the most out of this one:
1,000+
Simulation Iterations
P80
80th Percentile Target
All
Paths Considered
Fix
PERT's Merge Bias

What Is Monte Carlo Simulation?

Monte Carlo simulation is a technique that models uncertainty by running thousands of random scenarios. For project scheduling, it works by assigning probability distributions to each task duration, then simulating the entire project thousands of times — each time randomly sampling a duration for each task from its distribution. The result is not one answer but a probability distribution of project completion dates.

Where PERT gives you a single expected duration with a standard deviation, Monte Carlo gives you a full picture: "There is a 50% chance of finishing by June 15, an 80% chance by July 2, and a 95% chance by July 18." This is far more useful for setting realistic commitments.

Why Not Just Use PERT?

PERT has two fundamental limitations that Monte Carlo solves. First, PERT only considers variance on the critical path — but in a real project with many parallel paths, near-critical paths can become critical in specific scenarios, adding risk that PERT ignores. Second, PERT underestimates duration at merge points where multiple paths converge. Monte Carlo naturally handles both by simulating every possible outcome across all paths.

How It Works

Build the project networkCreate the CPM network with all tasks and dependencies. This is the same DAG you would build for any scheduling method.
Assign probability distributionsFor each task, define a probability distribution for its duration. Most commonly: triangular (optimistic, most likely, pessimistic — same inputs as PERT), beta, or lognormal. Different tasks can use different distributions.
Run thousands of simulationsFor each iteration (typically 1,000-10,000): randomly sample a duration for every task from its distribution, then calculate the project duration using CPM logic. Record the result.
Analyze the resultsPlot the histogram of project durations. Calculate percentiles: P50 (50% chance), P80 (80% chance), P90 (90% chance). Identify which tasks appear on the critical path most frequently (criticality index).
Set commitments based on confidenceChoose a confidence level appropriate to the situation. Internal targets: P50-P60. Customer commitments: P80-P90. Contractual deadlines: P90-P95.

Key Outputs

OutputWhat It ShowsHow to Use It
Completion Date HistogramDistribution of possible finish datesVisualize the range of outcomes. Narrow = low risk. Wide = high risk.
S-Curve (Cumulative)Probability of finishing by any given dateRead off the confidence level for any proposed deadline.
P50, P80, P90 DatesDates at specific confidence levelsP50 for planning, P80 for customer commitments, P90 for contracts.
Criticality Index% of iterations where each task is on the critical pathTasks with high criticality index (even if not always critical) need management attention.
Sensitivity AnalysisWhich task uncertainties most affect the project outcomeFocus estimation improvement and risk mitigation on the most sensitive tasks.

Common Probability Distributions

DistributionInputsBest For
TriangularMin, Most Likely, MaxSimple, intuitive. Good for tasks where you can estimate three points. Most commonly used.
Beta (PERT)Min, Most Likely, MaxSame inputs as triangular but with smoother tails. More realistic for task durations.
LognormalMean, Std DevTasks that can take much longer than expected but not much shorter (right-skewed). Common in construction and software.
UniformMin, MaxWhen you have no idea about the most likely duration — equal probability across the range.

Worked Example

A 4-task project with two parallel paths merging at the end:

Path 1: Task A (5-8-14 days) → Task B (3-5-10 days)
Path 2: Task C (4-6-12 days) → Task D (2-4-8 days)
Both paths merge at: Task E (1-2-3 days)
PERT expected: Path 1 = 8.5 + 5.5 = 14 days. Path 2 = 6.7 + 4.3 = 11 days. PERT says: 14 + 2 = 16 days.
MethodResultNotes
PERT Expected16.0 daysOnly considers Path 1 (critical path) variance. Ignores Path 2.
Monte Carlo P5016.8 daysAccounts for scenarios where Path 2 becomes critical (merge bias).
Monte Carlo P8019.5 days80% confident: allows for things going somewhat wrong.
Monte Carlo P9523.1 days95% confident: covers most bad scenarios.

PERT Underestimates by ~5% at the Merge

In this simple 2-path example, PERT underestimates P50 by about 5%. In real projects with 5-10 parallel paths merging, the underestimation can be 10-20% or more. This is the "merge bias" problem, and it is why Monte Carlo is valuable for any project with significant parallelism.

Monte Carlo in Manufacturing Operations

ApplicationValue
Plant turnaround planningHundreds of parallel activities merging at startup. Monte Carlo gives a realistic go-live date distribution.
NPI launch datesSet customer launch commitments at P80 instead of the "expected" date that only has 50% chance.
Capital project approvalPresent the board with a range: "90% confident within $X and Y weeks" rather than a single point estimate.
Bid/proposal estimationPrice and schedule bids at a confidence level that balances competitiveness with risk.
Contingency sizingInstead of adding an arbitrary 10% contingency, calculate the difference between P50 and P80 as a data-driven reserve.

Implementation

✅ Best Practices
  • Run at least 1,000 iterations (5,000-10,000 for stable results)
  • Use three-point estimates from the team — do not invent numbers
  • Model correlations between related tasks when possible (bad weather delays all outdoor work)
  • Present results as a range with confidence levels, not a single number
  • Focus sensitivity analysis on the top 5-10 most influential tasks
❌ Common Pitfalls
  • Garbage in, garbage out — simulation cannot fix bad estimates or missing dependencies
  • Overcomplicating distributions when triangular works fine for most tasks
  • Using results without explaining confidence levels — "it will take 19 days" vs. "80% chance of 19 days"
  • Ignoring the criticality index — it tells you where to focus risk mitigation
  • Running simulation on an incomplete or incorrect network diagram

🎯 Key Takeaway

Monte Carlo simulation is the most honest way to answer "When will this project finish?" It replaces single-point estimates with probability distributions that account for uncertainty on every task and across every path in the network. Use it whenever the stakes are high (customer commitments, capital approvals, turnaround planning), present results as confidence levels not point estimates, and focus your risk mitigation on the tasks with the highest criticality index. It is not complicated — it is just running CPM thousands of times with randomized inputs. The insight it provides is worth orders of magnitude more than the effort.

Interactive Demo

Run hundreds of Monte Carlo iterations and watch the completion time histogram build in real time. See how P50, P80, and P95 estimates compare to single-point guesses.

⚑
Try It Yourself
Monte Carlo Schedule Simulator
β–Ό
Run hundreds of simulations to see the probability distribution of project completion time. Each iteration samples random durations for each task using PERT distributions.
TaskOptimisticMost LikelyPessimistic
Design3d5d10d
Build8d12d20d
Test2d4d8d
Deploy1d2d5d
500
1002000
Ready for the full knowledge check? Test your understanding with guided scenarios and data export.
PROTake the Pro Knowledge Check β†’
🏭
Free Process Modeler
Map your production flow, find bottlenecks & optimize staffing. No login required.
Try It Free →
Free forever · No credit card

Stop reading, start doing

Model your process flow, optimize staffing with Theory of Constraints, and track every shift — all in one platform. Set up in under 5 minutes.

Start Free → Try Process Modeler