TL;DR: Once you can read Throughput, you can use it for probabilistic forecasting. Monte Carlo Simulation turns historical completed work into ranges, percentiles, and a better conversation about delivery risk.

This is a follow-up to the Throughput article. If you need the foundation first, start with Throughput: the flow metric behind team predictability. Here I will not re-explain the metric. Here we turn historical completed work into a forecast.

Now let’s get to the practical question management loves to ask: “When will this project of X items be done?”

What Monte Carlo Forecasting Answers

Teams usually need three forecasts.

  1. When will we finish X items? For example, an epic with 10 work items.
  2. How many items can we finish by a date? For example, what is realistic by the end of the quarter.
  3. How much work should we pull into the next sprint, week, or month? Capacity becomes a probability conversation, not a negotiation around estimates.

All three use the same idea: take the history of completed work, sample from it many times, and see which futures appear most often.

Before You Simulate

Check the system before trusting the graph.

  • Definition of Done is clear. Closed means done, not moved to a different waiting room.
  • The workflow is stable enough. The team, process, and work type have not changed radically in the last few weeks.
  • The historical window is fresh. Three to six months is usually enough. Older data often describes another system.
  • Zero-throughput days are preserved. Weekends, holidays, sick days, and no-release days are part of reality.
  • WIP is limited at least by an upper bound. Without a cap on unfinished work, the forecast becomes a nice chart on top of chaos.
  • Items are not closed in artificial batches. Backdated batch closing creates fake throughput spikes.

Monte Carlo will always draw a distribution. The question is whether that distribution describes delivery risk or just the mess in the data.

Foundations of Probability-Based Forecasting

Any forecast always involves 3 essential bits:

  • Probability

  • Spread

  • Assumption that future work resembles historical patterns

Saying “This epic (10 tasks) will take exactly 6 weeks” is misleading. A more accurate forecast: 10 tasks in 5–7 weeks, where:

  • 5 weeks = 50th percentile (half of runs finish by then)

  • 7 weeks = 85th percentile (85% of runs finish by then)

How Monte Carlo Simulation Works

Disclaimer: Here and further on I’ll be using charts built with Predictable.team (my vibe-coded react app that visualises and forecasts team performance based on Jira / Youtrack CSVs).

Let’s imagine that we need to understand when will the next 10 items be ready.

1. Collect historical throughput data

  • Imagine you have information about how many items your team finishes every day for a consistent period of time. Always count all days, including the ones with 0 deliveries.

  • Let’s say our dataset is 90 days. A random number should be generated in the range from 1 to 90, because each of those randomly generated numbers represents a day from that dataset.

2. Run 1,000–10,000 simulated scenarios. For each simulation (code sample below):

  • Generate random number.
  • This random number will represent a day from our stats (one of those 90).
    • Record how many items have been delivered during that day
  • Let's say we got 20, and on 20th day from our dataset we've delivered 1.
    • That means that so far we have 1 item delivered.

    • Continue generating random numbers until you get 10 (since we wanted to know when we’ll deliver next 10 items).

    • Voila, your first scenario is ready. Thousands more to go!

3. Display a probability distribution of completion times

  • Take a look at 50th pp (50% of simulations had 10 items be finished at this number of days or less).
  • You can plan at 50th pp as long as you have WIP limits and control aging within your system.
    • Take a look at 85th pp (85% of simulations show that 10 items would be delivered by that day)
  • 85th pp is a conservative estimate, which strikes great balance between risk and speed.
    • You can also forecast saying 50pp-85pp as a range, since all forecasts have range, probability and assumption that our work would be similar in the future.

Example for 10 tasks:

  • 50% probability: 39 days

  • 85% probability: 50 days

  • 95% probability: 58 days

Present to stakeholders: “Forecast: it will take 39-50 days.” Using the 85th percentile offers a safer buffer, though planning at the 50th percentile is common practice.

Factors Affecting Forecast Quality

  • Task breakdown: End-to-end slices yield better forecasts than component-only slices.

  • Historical window: Avoid using data older than six months.

  • Zero-throughput days: Include them to reflect weekends, holidays, sick days.

  • Calendar vs. work days: Always use calendar days to account for non-working periods.

  • Also: Garbage-in, Garbage-out. If your data is bad, not full

WIP is essential for reliable forecasting

Monte Carlo forecasts require enforced WIP limits. As Daniel Vacanti warns:

“No WIP limit = no flow, which means no predictability.”

Forecasting should always be updated

Run fresh simulations every 1–2 weeks to adapt to changing conditions. Just like during weather forecasts on forest fires, earthquakes, traffic forecasts and other systems, we can’t and never will account for all parameters in the equation, hence we need to update our forecasts using our latest data.

Are there better models than just random MCS sampling?

Prateek Singh of ActionableAgile made a research proved that explained here “random” method actually produces the best forecasting results compared to more sophisticated day-matching algorithms.

You can read the research at the link above or watch recent their episode of Drunk Agile (kudos for the guys on that name):

https://www.youtube.com/watch?v=gO3Uw7CG04I

Why Throughput Works

By the law of large numbers, sufficient throughput history smooths out random variation in work size and type, converging on a stable average performance metric.

That’s applicable not only in relying on Throughput and forecasting via MCS (Monte-Carlo Simulation), but thinking about outcomes of you DnD fights :)

Nifty things

Monte-Carlo Forecasting tools

  • Predictable Team - safe stateless web app. Ingests CSV / XLSX from jira and youtrack. Visualizes Throughput from the file + performs Monte-Carlo Simulation based on your data (When will be project finished, how many items to take in a sprint, when will the epic be done).

  • TWIG from Actionable Agile. Super-awesome app that is de-facto industry standard together with getNave. Visualizes metrics + does MCS.

Some reading references