The Underlying Technique
Monte Carlo simulation is a statistical technique invented during the Manhattan Project. The idea: when a question is too complex to solve analytically, simulate it many times with random sampling and aggregate the results.1 Applied to software forecasting:
- The team has historical throughput (e.g., items per week for the last 12 weeks).
- The team has a backlog of N remaining items.
- Run a simulation: for each future week, randomly sample a throughput value from history. Subtract from remaining items. Count the weeks until the backlog hits zero.
- Repeat 10,000 times. Plot the distribution of completion weeks.
The result is not "the team will finish in 8 weeks." It's "50% likely by week 7, 85% likely by week 10, 95% likely by week 12." The probabilistic answer is more honest than the deterministic one.2
Why This Is Better
Traditional forecasting uses averages: "average velocity is 5 stories/week, 50 stories remaining, therefore 10 weeks." This systematically under-estimates uncertainty because:
- Real throughput varies considerably from week to week.
- The average hides the bad weeks.
- A linear projection assumes future variance is zero.
Monte Carlo handles all three honestly. The simulation uses the actual historical distribution, including bad weeks. The output is a distribution of completion dates, not a single point.
What You Need
- Throughput history: 8–12 weeks minimum. More is better.
- Remaining backlog count: the number of items still to deliver.
- A simulator: ActionableAgile, Throughput Analyzer, FocusedObjective, or a few hours of Python/R/Excel.
The math isn't complex. A serviceable simulator can be built in Excel with a few INDEX(RANDBETWEEN()) formulas. Modern tools make it easier still.
How to Read the Output
The simulator produces a histogram of completion weeks. From it, percentiles can be read:
- P50 (median): 50% likely to finish by this date. Use for internal team conversations.
- P85: 85% likely to finish by this date. Use for stakeholder commitments.
- P95: 95% likely. Use only for hard external commitments.
The gap between P50 and P95 reveals how predictable the team is. A narrow gap means stable, predictable delivery; a wide gap means high variability. Both are honest; both are useful information.
The Two Question Types
"When will it be done?"
Fix the scope; simulate the date. Output: probability distribution of completion dates.
"How much can we deliver by date X?"
Fix the date; simulate the scope. Output: probability distribution of how many items will be done by X.
Both questions use the same throughput data; only the variable being asked about changes.
The Common Failures
- Reporting only the median. "We'll finish by date X" hides the uncertainty Monte Carlo is meant to reveal. Always report a range.
- Ignoring scope risk. Monte Carlo handles throughput variability but not scope changes. Pair with a burn-up chart that shows scope.
- Using too-recent data. Two weeks of throughput history isn't enough. Aim for at least 8 weeks; 12 is better.
- Stale data. A simulation from data 6 months old may not reflect current team capability. Refresh periodically.
- Treating P85 as gospel. The simulation captures throughput variability. It doesn't capture the team being reorganized, scope being changed, or external dependencies emerging.
The Cultural Adoption
Monte Carlo forecasts feel uncomfortable to stakeholders used to single-date commitments. "85% confidence by April 14" sounds like hedging compared to "we'll ship April 14." The first is honest; the second is fiction.
Coaching the transition matters. Frame Monte Carlo as a more reliable input for stakeholders' own decisions: "given this range, would you fund this initiative?" beats "give us a date and we'll hit it." The latter produces sandbagging; the former produces real conversations about risk and value.
Coaching Tips
Start with a free simulator.
ActionableAgile, Throughput Analyzer, or a Python notebook. Don't wait for tooling; the math is trivial.
Always report ranges.
P50/P85/P95. The range communicates the uncertainty Monte Carlo is meant to reveal.
Educate stakeholders.
The first time you report "85% confidence by X," explain what it means. Without the framing, stakeholders treat the number like a single date.
Refresh forecasts weekly.
New throughput data tightens the forecast. Re-run the simulation weekly to keep it current.
Pair with burn-up for scope.
Monte Carlo handles throughput. Burn-up handles scope. Together they give the full picture.
Watch the P50/P85 gap.
A wide gap reveals predictability problems. Narrow it through smaller stories and WIP discipline.
Summary
Monte Carlo forecasting is the most honest delivery-prediction technique available to modern agile teams. By using the team's actual throughput history and producing probability distributions, it replaces the deterministic fictions of velocity-based projections with empirically-grounded ranges. The technique is computationally trivial; the cultural adoption is the hard part. Teams that establish the practice — and stakeholders willing to receive ranges instead of dates — gain a forecasting capability dramatically more reliable than any traditional alternative.
- Metropolis, Nicholas and Stanislaw Ulam. "The Monte Carlo Method." Journal of the American Statistical Association, 1949.
- Vacanti, Daniel. When Will It Be Done? ActionableAgile Press, 2020.
- Vacanti, Daniel. Actionable Agile Metrics for Predictability. ActionableAgile Press, 2015.