Phlogiston/Forecasting Model


 * 1) Calculate velocity per category
 * 2) Count number of resolved tasks each week, and compare week to week
 * 3) Today = base day, so last week = today - 7 days
 * 4) Make three forecasts of velocity
 * 5) Optimistic is the highest 3 weeks in the last 3 months
 * 6) Nominal is the average per week over the last 3 months
 * 7) Pessimistic is the worst 3
 * 8) For teams that resolve tasks every 2 weeks, and thus have a bunch of 0 weeks, this will produce a falsely low forecast
 * 9) If any forecast velocity is below 1 (point or count per week), increase to 1
 * 10) Make three forecasts of backlog growth (total, not remaining) (As of 17 Mar 2016, work in progress not yet implemented in production).
 * 11) Optimistic is flat, 0 growth.
 * 12) Alternate idea: lowest three weeks of last 3 months (not less than 0).
 * 13) Nominal is the average of the last three weeks (bounded by optimistic and pessimistic).
 * 14) Pessimistic is the greater of the average of the last three weeks and the average over the last three months.
 * 15) Combine Velocity and backlog growth forecasts
 * 16) Optimistic is not changed
 * 17) Updated nominal velocity = nominal velocity - nominal backlog growth (not less than 0).
 * 18) Updated pessimistic velocity = pessimistic velocity - pessimistic backlog growth (not less than 0).
 * 19) Divide the total points remaining (per category) by each of the three velocities to determine # of weeks remaining