Cumulative flow diagram
A chart showing the number of items in each workflow stage over time, used to visualize bottlenecks, WIP, and flow stability.
What it means
A cumulative flow diagram (CFD) stacks bands representing each workflow stage over time. A widening band signals a bottleneck: work is entering that stage faster than it is leaving.
The CFD is not part of Scrum but is a standard Kanban and lean metric, useful for spotting flow problems that a simple burndown chart would not reveal, since it separates each stage rather than showing only total remaining work.
Common mistakes
Consistent, parallel bands over time indicate stable, predictable flow, while erratic bands often point to inconsistent WIP limits or unpredictable upstream demand.
Example
A widening 'In Review' band on the CFD prompts the team to add a second reviewer to that stage.
How to read a CFD in four steps
- Read the top line first. Its slope is arrival rate, meaning how fast new work enters the workflow.
- Read the bottom line next. Its slope is delivery rate, meaning how fast work leaves as Done.
- Read the vertical distance between two bands at any date. That is the work in progress sitting in that stage.
- Read the horizontal distance between the top and bottom lines. That is approximate cycle time for work flowing through at that moment.
Finding the bottleneck
A bottleneck shows up as one band widening while the bands below it stay flat. Work is arriving into that stage faster than it is leaving, so queue length grows and cycle time grows with it. The widening band names the constraint without anyone needing to argue about whose fault it is.
The usual fixes are unglamorous. Cap work in progress before the widening stage, move capacity toward it for a while, or remove the handoff that created the queue in the first place. Adding more work upstream never helps.
Using a CFD with Scrum
A CFD is not part of Scrum. It is a flow metric a Scrum Team can choose to use, and it works well at the Sprint Retrospective because it answers a question a burndown cannot: where in the workflow the Sprint actually lost time.
