andrew-codes / forecast-work-oss

Forecast work timelines with confidence levels using historical data.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Forecast when N work items can be completed based on historical data

andrew-codes opened this issue · comments

As a user, I can forecast a date range of when N items can be completed, so that I can use this information to determine how long a feature or set of work will take.

Acceptance Tests

  • Given historical throughput AND the number of work items (positive whole number), when I create a forecast, then I see a confidence score of 85% and the expected date of completion for the 85% confidence level.
  • Given I have made a forecast AND I change the confidence level, then the forecasted expected date of completion changes to the matching value for the provided confidence level.
  • When I make a forecast, then I see the accompanying distribution (graph) from the Monte Carlo simulations.
  • When I make a forecast, then I see the provided throughput plotted by week.
  • When I make a forecast, then I see a graph of expected dates (x-axis) and confidence level (y-axis, 0%- 100%).
  • The same number of Monte Carlo simulations used for the existing forecasting scenarios is used for this scenario.

Considerations

The goal is to use a Monte Carlo simulation to forecast a projected timeline to complete some number of items of work. Although the scenarios are computed from the provided throughput differently, the overall process is the same as the (existing) inverse forecast; how many items of work can be completed by a specific date. The number of simulations should be the same between the two forecasting scenarios.

My general thoughts are for each scenario, take a random sampling of throughput. The sample should be taken from a throughput computed on a daily basis (versus a week). Continue taking a sample until all taken samples' sum is greater than or equal to the specified forecast number of items. The number of samples is the number of days. Perform this scenario X times (based on the number used for other forecasting simulations). The distribution of how often a scenario occurred from the X run scenarios can be plotted. This distribution can be used to compute (in the same way as the other, existing forecasting) a graph showing the percentage likelihood of each of the scenarios is to occur. This likelihood is considered the confidence level.

Finally, given the range of confidence levels, from 0-100, we can provide a form to allow the user to set their desired confidence level and see the expected date of completion.

@andrew-codes Could I know more about this issue?

I just added some additional details. Thanks!