The Cumulative Flow Diagram (CFD) is a stacked area chart that shows how many stories are in each workflow stage over time. Unlike the burndown — which focuses on a single sprint — the CFD reveals the health of your entire delivery process across weeks or months.
The CFD's power is in the width and slope of each band. A band growing wider means work is piling up in that stage. A steep slope on the Done band means high throughput. Flat bands across the whole chart mean nothing is moving.
The X-axis is time (days or weeks, configurable). The Y-axis is the count of stories. Each horizontal band represents one workflow stage — typically Backlog, To Do, In Progress, In Review, and Done, though the exact stages reflect your project's workflow configuration.
The most valuable use of the CFD is bottleneck detection. A bottleneck shows as a band that is getting wider over time — work is entering the stage faster than it is leaving.
Common bottlenecks and their CFD signatures:
| What you see | What it means | What to do |
|---|---|---|
| A band is getting wider over time | Work is accumulating in that stage. More stories are entering than leaving. | That stage is a bottleneck. Investigate why work is not progressing through it — too few people, unclear handoff criteria, external wait, or a quality gate that's taking too long. |
| A band disappears or becomes very thin | Stories are moving through that stage almost instantly — or the stage is being skipped. | If intentional (e.g. a fast review stage), no action needed. If unexpected, check whether stories are moving past the stage without proper review. |
| The top band (Backlog/To Do) is growing | New work is being added faster than the team can start it. | Review backlog grooming. If scope is being added to active sprints, protect the sprint commitment. |
| All bands are growing at the same rate | Work is flowing through the system at a consistent rate. Total WIP is increasing proportionally. | Healthy if throughput matches commitment. If total WIP is too high, consider WIP limits per stage. |
| The bottom band (Done) is growing steeply | High throughput — the team is completing work at a fast rate. | Good signal. Check that quality isn't being compromised to achieve the completion rate. |
| Flat bands across the board (no movement) | No work is flowing through the system — the whole team is stalled. | Check for a major blocker: a system outage, a critical dependency, or an external freeze. Escalate immediately. |
The CFD makes your total work in progress (WIP) visible. High WIP is one of the most common causes of slow delivery — too many parallel threads means context-switching, longer review queues, and stories that sit partially done for days.
A healthy CFD shows a narrow In Progress band relative to the Done band's slope. If In Progress is consistently wider than Done's daily growth rate, the team is starting work faster than finishing it.
The CFD only shows two or three bands but I have more workflow stages
The CFD reflects your project's workflow stages as configured in Project Settings → Workflow. If some stages aren't showing, verify they are active and that stories have passed through them during the selected time range.
The chart shows the same date range regardless of the filter I choose
The CFD date range filter applies to the dates stories entered each stage, not the story creation date. If no stories transitioned through stages in your selected window, the chart will appear empty or unchanged. Widen the date range.
I want to show the CFD during a standup but it looks confusing to the team
Focus attention on just one or two things: the width of the In Progress or Review band (is it growing?), and the slope of the Done band (is it steep enough?). You don't need to explain every band — pick the signal most relevant to the team's current focus.
The CFD shows a large spike then a drop
This typically means a batch of stories was created and immediately moved through several stages in one day (e.g. after a planning session or a bulk import). It's not a real flow signal — it reflects a data entry event, not actual work progress.