A cumulative flow diagram shows, for each pipeline stage, a running count of how many tickets have ever entered it. Once a ticket enters Development, it stays in that count regardless of where it goes next — every line can only ever rise.
The vertical gap between any two adjacent lines is the WIP in that stage right now; the slope of a line is its throughput. When lines rise at the same slope, the pipeline is balanced. A widening gap means one stage is collecting work faster than it clears; a flattening slope means throughput has dropped.
The simulator below runs a two-stage pipeline: Development then Review. Pick a preset and watch the board; the CFD below it records what the board is doing in real time.
- Switch from Balanced to Dev bottleneck without resettingDev band widens
The top band starts growing while Review and Shipped stay flat. Note where the slope of Shipped begins to drop — that lag is the time it takes for the upstream queue to affect downstream throughput.
- With Dev bottleneck running, switch back to Balancedslopes converge
The Dev band stops growing and the three slopes gradually equalise — the chart shows the system rebalancing before the throughput readout catches up.
Stable flow
When every stage processes work at the same rate it receives it, the three lines rise at the same slope and the bands between them hold a constant width.
Impact of the constraint
When one stage slows down relative to arrival, items collect in front of it. The band above the constrained stage widens (Development in this example) while the downstream bands stay thin. The slope of Shipped flattens: throughput falls to match the slowest stage. The widening appears in the chart before any count-based report flags it.
Charting Little’s Law
At any given moment, the vertical distance from the Dev line down to Shipped is the total WIP in the pipeline. The horizontal distance between the same cumulative count on any two lines is the average time items took to travel between those two stage boundaries — their cycle time for that portion of the pipeline.
The two charts below show the same geometry at two different WIP levels. The pipeline and throughput are identical; only the amount of work loaded in has changed. Both the orange WIP span and the blue cycle time span grow in the same proportion — because cycle time = WIP ÷ throughput.
The 2.6× difference in those charts is what Little’s Law guarantees. Identical work takes proportionally longer when WIP is higher. Every estimate a developer makes is implicitly scoped to the current WIP level — and WIP levels change.
When a developer estimates a ticket at two days, that is true for the pipeline as it stands. If WIP has grown by the time the ticket starts, the same work runs through a longer queue. The estimate was accurate when made; the conditions no longer match it.
Relative sizing has the same vulnerability. “Same size as item A” is only true if WIP was comparable when A ran. It seldom is.
Takeaways
- — Process dynamics at a glance. Each band is the WIP in one stage right now; a narrowing or widening band is the process changing.
- — A widening band names the constraint. When one band grows while others stay flat, that stage is collecting work faster than it clears.
- — The CFD is a leading indicator. WIP rises faster than cycle time responds. A band widening now means cycle time is about to deteriorate — the CFD shows the cause while the throughput chart still looks fine.
- — WIP level sets delivery time. An item in the high-WIP pipeline above takes 2.6× longer to ship, even though the work is unchanged. Add WIP; delivery slows.
- — Throughput forecasts require a stable WIP level. When WIP is rising or falling, past completion rates no longer apply — the process is not in the state they measured.
- — Estimates made at one WIP level may not hold at another. A two-day estimate is accurate at the WIP level when it was made. If WIP doubles before the ticket is started, delivery time doubles too. Relative estimates carry the same risk: “same size as item A” only holds if WIP was comparable when A ran.