# Intelligent forecast

Socratic's intelligent forecast uses machine learning—specifically, Monte Carlo simulation—to predict completion dates for any body of work.

Monte Carlo is a statistical technique used to model complex systems across a wide range of fields—traffic control, stock predictions, and nuclear reactors, to name a few. The idea is to use the law of large numbers to predict how a complex system might behave. Monte Carlo runs scenarios using our best empirical data and knowledge of the "rules of physics" for the system at hand. By collecting results from enough randomized scenarios, we can get an idea not only of what is most likely to occur, but also visualize the range of possible outcomes.

The basic steps and inputs are as follows:

1. Set up `N` issues with random (but representative) durations.

2. Set up a pool of `M` people to complete the issues.

3. Assign the `N` issues to the `M` people.

4. Determine the completion dates for each issue.

5. Construct a burndown chart from these dates.

6. Repeat steps 1-5 `Q` times.

In creating a body of work, you provide the number of issues (`N`) and the people that will work those issues (`M`); Socratic does the rest. This includes randomly-sampled issue durations based on your organization’s historical actuals, which is needed for the first step. In other words, the data is entirely personalized to your teams.

We’ve set the number of model runs (`Q`) to 1,000. The more you do, the more statistical significance you gain, but it also starts to absorb some serious compute cycles. In our own analysis, a thousand runs strikes a nice balance between system responsiveness and forecast reliability. Simply put, this model reveals all of the possible durations if the same body of work was delivered by the same people, a thousand times.

With Monte Carlo simulation, we’re able to absorb a number of complexities that impact delivery and that are otherwise invisible to the naked eye. These include nuances like:

• The rate at which issues fall idle;

• The number and relationship of blocked issues;

• The amount of rework involved before an issue is completed;

• The amount of inevitable scope creep in a project;

• The impact of holidays on people’s availability;

• The participation of people with specialized skills.

For active plans and epics, we produce a timeline graph that shows two things:

1. A completed issues line, rising to meet a scope line: that is, a burn-up;

2. A forecast for time to finish, based on your historical actuals. (Monte Carlo actually delivers a likely date range, with outliers on the short and long side of the forecast, and a midpoint date. The midpoint date is what we use for display.)

### FAQs

Does Socratic expect any inputs on issue size/complexity, e.g. story point values?

No. Our model is concerned only with historical actuals, not manual guesstimates like story points. The inevitable differences in issue size or complexity is solved through the law of large numbers. This also means that no special effort is required to make your issues approximately the "same size." You simply break down your work as best you can, and leave the rest to us!

How do you account for work that has not yet been assigned?

When a body of work has unassigned issues, we use an "average contributor" for the model—meaning, we look at your organization's historical average time to complete. As issues are assigned, our model then personalizes to the assignee(s).

Note that in cases where some issues are assigned and others are unassigned, our model assumes that the known assignees will also be the people to deliver the unassigned work. This means the model determines when the assigned issues will be completed by person, and assigns the unassigned issues based on when each person will have capacity.

As an example: say an epic has ten child issues. Only one of the ten issues is currently assigned. The model will build a forecast by assuming the known assignee must first complete their current assigned issue, and then pick up the remaining nine issues and work them sequentially. As issues are assigned out to additional people, the model adjusts automatically, using the number of known assignees as the available pool of people to deliver the remaining unassigned issues.

What assumptions do you make about available working time?

Our model removes the following from available working time when building forecasts:

• Weekends (Saturday and Sunday);

• U.S. Federal holidays;

• 18:00—08:00 U.S. PST. (i.e., working hours are 08:00—18:00 U.S. PST)

Last updated