Use Case

Monte Carlo forecasting for Azure DevOps delivery planning

Agile Analytics is an Azure DevOps extension that adds Monte Carlo forecasting to Azure DevOps Services (cloud), so you can see when your backlog is likely to be done without leaving Azure DevOps. Delivery leaders searching for Azure DevOps Monte Carlo forecasting usually have one urgent question: when are we likely to finish? Agile Analytics runs a 10,000-trial bootstrap simulation against your own finished-sprint throughput, directly inside Azure DevOps, and returns a probability range instead of a single guess.

Monte Carlo Forecast view in Agile Analytics for the Payments Team: "How many?" mode with 6 of 9 historical sprints selected, 95, 85, 70 and 50 percent chance cards reading 16, 17, 18 and 19 or more items by 7 November 2026 from 10,000 trials, a what-if throughput scenario row, and the forecast distribution histogram

Why single-date delivery estimates stop being believed

  • Stakeholders want a delivery date, but a single-point estimate only survives until it is wrong once
  • Average velocity planning smooths away the sprint-to-sprint variation that actually decides whether a date slips
  • Forecasting usually means exporting throughput history into a spreadsheet or a separate BI tool before anyone can see a range

What Monte Carlo forecasting in Azure DevOps tells you

  • Run a 10,000-trial bootstrap simulation against your own finished-sprint throughput, right where the backlog already lives
  • Read P50, P70, P85, and P95 as an honest range instead of a single promised date
  • Ask either question the business actually asks: how many items by this date, or when will these N items be done

Get the sprint forecast tile free, without installing Agile Analytics

Monte Carlo Sprint Forecast is a separate, free extension from Baytek. It adds one tile to your Azure DevOps dashboard that shows how many items your team will finish next sprint, at 85% and 50% confidence, with the outcome distribution behind those numbers. It learns from your team’s own last completed sprints (up to 12) and runs 10,000 simulated sprints. There is no account, no trial and no licence key, and the tile comes in 2x2 and 2x4 sizes for both the light and dark themes. An item counts as finished when its state name contains Done, Closed, Completed, Resolved, Ready to release or Ready for release, and only backlog items are counted. There are no settings for either rule.

The Monte Carlo Sprint Forecast tile at two sizes on an Azure DevOps dashboard, light theme: for the Payments Team, 85% confidence at 7 or more items and 50% confidence at 8 or more items next sprint, from 9 sprints and 10,000 trials, with the outcome distribution as a bar chart

Add it to a dashboard

  1. Open a dashboard in your project, choose Edit, then Add widget, and search for Monte Carlo Sprint Forecast.
  2. Add the tile, open its Configure panel and pick the team.
  3. Save. The tile loads the forecast.

What it reads

Two read-only scopes: Project and team (vso.project) and Work items (vso.work). It does not change your work items, boards or settings. It runs in your browser inside Azure DevOps, nothing is sent to Baytek, and it collects no usage data.

Want a date for a whole backlog, or your own workflow states? Agile Analytics adds both. See Forecasting features

How the Monte Carlo simulation actually works

This is a bootstrap resample of your own history, not a statistical curve fit. For each of 10,000 trials, the simulation walks forward through the forecast window and, at every step, draws one of your team’s own finished sprints at random (with replacement), then adds that sprint’s completed-item count to the running total. Do that 10,000 times and the spread of outcomes becomes the forecast. It runs on the Azure DevOps history the extension already reads, without exporting your data to another platform first, without a personal access token to configure, and without a publisher-hosted analytics backend in between. The simulation is also deterministic: the random draws are seeded from your sprint history, the forecast window, and the trial count, so running it twice against the same inputs returns the same P50/P70/P85/P95 range both times. The range only moves when your underlying throughput changes. If the forecast window’s final stretch does not land on a clean sprint boundary, that trailing partial period is prorated rather than counted as a full sprint, so the model does not overcount near the edges.

Reading percentile forecasts, and why a range beats a single date

Every forecast comes back as four confidence levels read off the same 10,000 simulated runs, each meaning "this many items or more, at least this often":

  • P95, Very likely: the number you are 95% likely to reach or beat. Usually the smallest, safest commitment in the range.
  • P85, Likely: the level most teams use for a date they are willing to put in front of a stakeholder.
  • P70, Probable: a workable middle ground, right more often than not but not a safe promise.
  • P50, Coin flip: the number half the simulated runs reached and half did not. Useful as a stretch target, risky as a commitment.

How many by a date, versus when will N items be done

These are two different questions, and the simulation runs a separate mode for each. "How many?" takes a target date (30 days out by default) and returns how many backlog items you are likely to finish by then, at each confidence level; use it when the date is fixed and the open question is scope, for example a release date or a contractual milestone. "When will it finish?" takes a backlog size, such as the remaining items in an epic, and returns a date range instead; use it when the scope is fixed and the open question is the date. Because the direction of the question flips, so does the percentile: for "when will it finish?", P50 is the earliest, most optimistic date, and P95 is the latest, most conservative one. When a backlog is large enough that some of the 10,000 simulated runs do not reach the target count within the forecast horizon, the tool reports the percentage that did not finish instead of quietly assuming every run completed, so a wide date range is not papered over with a falsely confident number.

What the forecast needs before the numbers mean anything

A Monte Carlo forecast is only as trustworthy as the finished-sprint history it resamples from. When you open the forecast for a team, the sprint picker lists your ten most recent finished sprints and defaults to selecting the six most recent to run the first forecast; you can pick a different set by hand, which matters if one of those sprints was a genuine outlier, a holiday week or a reorg, that you want out of the resample. The sprint currently in progress is left out of that default selection automatically: resampling from a partial, still-open sprint would drag the whole forecast down with a throughput number that has not finished counting yet. If a sprint you selected fails to load, the view says so ("only X of Y requested sprints loaded") rather than silently forecasting off a smaller sample and calling it complete. A team with only one or two finished sprints will get a forecast, but the range will be wide until more history builds up; the simulation cannot manufacture certainty your team has not earned yet.

Monte Carlo forecasting questions

Who is Monte Carlo forecasting most useful for?

Engineering managers, PMO leaders, program managers, and delivery leads who need to communicate date confidence instead of a single optimistic forecast.

What makes it better than average velocity planning?

Average velocity hides variability behind one number. The simulation keeps the full spread of your finished-sprint throughput and reports "at least this many, this often" at four confidence levels, which leads to better stakeholder conversations and fewer brittle promises.

Does the forecast change every time I run it?

No. The simulation is seeded from your sprint history, the forecast window, and the trial count, so running it twice against the same inputs returns the same P50/P70/P85/P95 range both times. A forecast that changes on every click is hard to trust in front of a stakeholder; this one holds steady until your underlying sprint data changes.

How much sprint history does it need?

The simulation resamples from your team’s own finished sprints, so more completed sprints produce a tighter range. It automatically drops the sprint currently in progress from the default selection, since a partial sprint would drag the forecast down, and you can hand-pick which finished sprints to include if one was an outlier.

What happens if my backlog is too large to forecast confidently?

In the "when will it finish?" view, if some of the 10,000 simulated runs do not reach the target count within the forecast horizon, the tool reports what percentage did not finish instead of assuming every run completed. That tells you the later dates in the range are a floor, not a promise.

Is the Sprint Forecast dashboard widget free?

Yes. The Sprint Forecast dashboard widget is free for every organisation, with no licence needed.

Is Monte Carlo forecasting only on a higher plan?

No. Every feature is on every plan, including Monte Carlo forecasting. The plans differ only in the number of seats.

Does Agile Analytics work with Azure DevOps Server?

No. Agile Analytics supports Azure DevOps Services (cloud) only, not Azure DevOps Server.

Which Azure DevOps permissions does Agile Analytics request?

It requests four read-only scopes: vso.project, vso.work, vso.graph, and vso.build. Your work-item content stays in your own Azure DevOps tenant.

Is there a free trial, and how much does it cost?

There is a 30-day free trial with no credit card. After that, annual plans are per organisation: Team is $300/year for 2 seats; Business is $1,200/year for 6 seats; Premium is $2,000/year for unlimited seats.