Skip to main content

Understanding the Cumulative Flow Diagram

How to get the most value out of a Cumulative Flow Diagram (CFD)

A board tells you where work is right now. A Cumulative Flow Diagram (CFD) tells you how work has been moving: whether it flows steadily toward Done or quietly piles up somewhere along the way. It's one chart that surfaces the three numbers that decide how predictable your delivery is:

  1. Work In Progress (WIP) (how much work is in flight)

  2. Throughput (how fast work is being done)

  3. Flow & Cycle Time (how long it takes work to get through)

This guide explains how to read the chart, the patterns worth watching for, and how to turn those patterns into action.

Finding your way around.

Three controls at the top shape the chart:

  • Timeframe: a single iteration, or the Whole PI.

  • Metric: Work Item Count or Story Points, whichever your team plans in

  • Group by: Status class for the simple three-stage overview, or Status for your own board columns (only available at the team-level).

Hover any point to see the exact numbers for that day.

What the chart shows

A CFD plots the amount of work in each stage (vertical axis) over time (horizontal axis), measured in story points or item count. Each coloured band is one stage your work passes through, stacked in workflow order:

  • "To Do" sits at the top: work that has entered the scope but hasn't been started.

  • "In Progress" sits in the middle: work actively being worked on.

  • "Done" sits at the bottom and grows upward as items complete.

A band's thickness at any point is the amount of work in that state that day, and thickness shifts constantly. As work moves forward, the "To Do" band should thin out while the "Done" band fills in; that's the chart working as intended.

The top edge of the whole chart is your total scope for the timeframe; the top of the "Done" band is the work completed so far.

You may see a fourth band above "To Do" for work that sits outside the three standard stages, such as a Draft step. If your team doesn't use one and it appears anyway, it usually means a status hasn't been mapped to a stage.

Reading the three flow metrics

The power of the CFD is that all three core flow metrics are visible in a single glance.

Work in Progress (WIP) is the vertical thickness of the blue "In Progress" band(s). A thin, steady band means a focused, manageable amount of active work; a band that keeps thickening means work is accumulating faster than it's finishing.

Throughput is the slope of the "Done" line. The steeper it climbs, the more work your team is completing per day or week. A flattening Done line means delivery has stalled.

Flow time is (approximately) the horizontal distance between the top "To Do" line and the "Done" line at the same height. It shows how long an average piece of work takes to travel all the way through, from entering the scope to completion. Treat it as a ballpark rather than an exact per-item figure.

Cycle time is the active part of that journey: how long work takes once someone actually starts it, setting aside the time it waited in "To Do". Read it as the horizontal distance between the top and bottom of the "In Progress" band.

Patterns to watch for

Healthy flow: steady climb, then convergence

Healthy flow looks like two things at two points in the timeframe:

  • Mid-flight, the bands climb roughly in parallel. Work enters and leaves each stage at a similar rate, so WIP stays stable and the "Done" line climbs steadily. No band is ballooning or starving.

  • By the end, the bands converge. As the team stops pulling new work and finishes what's started, the "To Do" and "In Progress" bands shrink and the "Done" band rises to meet the top line. That convergence is your "did we finish what we committed?" signal for a sprint or PI.

Bottleneck: a band widens over time

If one band keeps getting thicker, more work is arriving into that stage than is leaving it: the classic bottleneck. Work queues up because the next step can't keep pace. In the status-class view this shows as a ballooning "In Progress" band. Switch to the status view to see which stage is the culprit, for example a review or testing column swelling while everything upstream stalls behind it. Its mirror image often sits right below: a band that narrows toward zero is a stage sitting idle, starved while it waits for the bottleneck above to release work.

Stall: a line goes flat

When a boundary line flattens, nothing is entering or leaving that stage. The cause might be a blocker, an external dependency, or simply no one pulling work. A flat "Done" line is the one to act on fastest: it means nothing is completing, regardless of how busy the team is.

Scope change: the top line jumps

A sudden step up in the top line means work was added to the timeframe mid-flight. A step down means work was removed, whether an item was deleted or pulled into another iteration. A little movement is normal, but a large jump late in the timeframe is worth a conversation about commitment and planning, since it directly threatens the original delivery forecast.

Status class vs. status

The status-class view (To Do / In Progress / Done) is the quick health check: is work flowing toward "Done: overall? The status view breaks "In Progress" into your team's own board columns, so when the status-class view flags a problem, you can drill in and see exactly which step is holding things up. Start at the status-class level, then zoom into status to diagnose.

The status view is available per team. The ART (all-teams) view shows status classes only, since each team might have a different set of statuses.

A note on the ART (all-teams) view. The same chart exists for the whole train, summing every team together. Use it for the overall trend only. A healthy-looking aggregate can hide a single team in trouble, because one team's pile-up averages out against another's slack, and band thickness can be affected by how each team sizes work. When the train-level chart looks off, drop into the individual team CFDs to find out where.

Reading a real chart

Here's the whole routine on one real iteration:

What it tells you, in order:

  1. "Done" climbing steadily → throughput is healthy; the team is finishing work at a consistent rate.

  2. "In Progress" steady and moderate → WIP is under control; no bottleneck building.

  3. Top line jumped 46 → 66 → scope grew by more than half during the iteration, the standout signal on this chart.

  4. Bands haven't converged → a thick To Do band remains at the end, so a large chunk of that added scope won't finish in this timeframe.

The read: the team is flowing well, but far more work was added than it could absorb. The conversation isn't "why are we slow," it's "what got added mid-iteration, and what do we drop or move?"

A quick reading routine

When you open a CFD, scan it in this order:

  1. Is the "Done" line climbing steadily? That's your throughput and your fastest read on delivery.

  2. Is any band widening? That's your bottleneck; switch to status view to identify it.

  3. Is the top line stable? A jump means scope changed.

  4. Is the gap to the "Done" line closing as you near the end? Converging bands mean you'll finish the committed scope; a wide gap late means you won't.

A CFD won't tell you why something is happening; that's the conversation it should start. Its job is to point everyone at the same spot on the board and ask the right question.

Did this answer your question?