I will try to explain:
Every day TeamPulse generates history records for all changed work items. Those records are used to build the so called historical reports: Burndown and Status History. Each record is a snapshot of all properties of the changed work item.
The Burndown report determines what is the latest snapshot of all existing work items, for each day of the report, filters the results using the chosen criteria and then aggregates some of the properties, depending on the Burndown Mode. Work Items in the status group Excluded (Status=Deleted for example) are not counted.
- Estimate sums the Estimate property of all Work Item types, except Task
- Task Count counts Tasks (and ignores all other Work Item types)
- Task Estimate sums the calculated PERT
of the Tasks (and ignores all other Work Item types), using their EstimateOptimistic/Probable/Pessimistic properties
- Task Work Remaining sums the WorkRemaining property of the Tasks (and ignores all other Work Item types).
For Today, we add one more point, calculated from the current state of the Work Items.
To build the chart we perform two calculations - one for all work items (depending on the Burndown Mode) regardless of their Status (e.g. Totals) and one for work items that are in the Not Started and In Progress status groups (e.g. Not Done). The Not Done data is used to draw the Work Remaining line and the Done bars (green). The Totals is used to draw the Added/Removed (orange) bars.
Now when you pointed it, I think that the green/orange bars should not be displayed when Burndown Mode = Task Work Remaining because the calculations are based on the Status and are not correct.
The Forecast is calculated using only the chosen iteration (past iterations are ignored). It calculates the Velocity from the iteration start until Today:
V = (Not Done Work in the beginning - Not Done Work today) / Days from the Beginning
then estimates what will be the work remaining for each day until the end of the iteration, based on the Velocity.
We slightly changed the way the charts work in order to fix a few bugs, and not all charts in TeamPulse are using the new API, hence there could be differences in the UI. We will be updating them in the future as we remove the old code.