What is a cumulative flow diagram template?
A cumulative flow diagram template is a small daily data table, plus the plotting rules that turn it into a stacked area chart. The table has one row per working day and one column per workflow state, and each cell holds the count of items that have reached that state or a later one. Because the counts only ever grow, the lines stack cleanly and the chart becomes readable at a glance.
The chart is a byproduct. If the table is right, almost any tool will draw the diagram: a spreadsheet, a BI panel, or the report view inside your project tool. If the table is wrong, no amount of styling saves it, and the failure is usually invisible because a pretty chart looks authoritative.
Three plotting rules keep the arithmetic honest. First, plot cumulative arrivals, not current counts; a current-count chart is a line chart with extra steps. Second, keep the y-axis at zero and the x-axis at one tick per working day, or the slopes lie. Third, never delete a state from the middle of the workflow without restarting the series, because the bands below it lose their meaning.
What belongs in the template before you plot anything?
You need five things before the first row: a start date, a stable list of workflow states in order, a definition of what “entered” means for each state, a daily snapshot time, and one owner. Everything else is optional, including the chart tool.
| Field | What it holds | Why it matters |
|---|---|---|
| Date | Working day, one row per day | Missing days bend every slope on the chart |
| State | Ready, In Progress, Review, Done (in order) | Order defines which band sits on top of which |
| Arrived count | Items that have reached this state or beyond | Cumulative, never decreases |
| WIP (derived) | Arrived(previous) minus Arrived(next) | The band thickness you actually read |
| Throughput (derived) | Done today minus Done yesterday | The slope, averaged over 5 days |
| Cycle time (derived) | WIP divided by average throughput | Turns the picture into a date |
Two design choices decide whether the template survives contact with a real team. Keep the number of states between four and six; a nine-state workflow produces a chart nobody can read and a status meeting that becomes a data-entry session. And define “entered” precisely: does a card count as In Progress when a person opens it, or when they post the first update? Pick one, write it in the template header, and apply it for a full quarter.
The daily snapshot itself should take under three minutes. If it takes longer, the team will skip it on the busiest days, which are exactly the days worth recording.
Join Doitify Today
Move projects forward without the chaos: all your tasks, progress, and team reports in one unified workspace. Built for companies, startups, and remote teams — with a quick setup and a free trial.
How do you read the four things a CFD actually shows?
There are four readings, and they answer four different questions. Thickness answers “where is work stuck”. Vertical total answers “how much is in flight”. Slope answers “how fast are we finishing”. Horizontal width answers “how long does one item take”.
| Reading | Where to look | Question it answers | Warning sign |
|---|---|---|---|
| Band thickness | Height of one colour on one date | Where is work accumulating? | A band that widens for five or more days |
| Total WIP | Full height minus Done band | How much is in flight right now? | WIP rising while the Done slope is flat |
| Throughput | Slope of the top boundary | How many items per week? | Slope flattening for two weeks |
| Cycle time | Horizontal distance across a band | How long does an item take? | Distance growing on the right side |
The order matters. Most teams read thickness first because it is visually loud, then jump to a conclusion about the bottleneck. Thickness alone cannot tell you whether the constraint is capacity, review policy, or a dependency outside the team. You need the slope next to it: a wide Review band with a healthy Done slope is a queue that is draining, while the same band with a flattening slope is a queue that is filling.
The fourth reading, horizontal width, is the one that turns the chart into a commitment. Take any item and follow its path: the horizontal distance between the point it enters Ready and the point it crosses into Done is its cycle time in working days. Because you cannot track one card on a stacked chart, read the average instead: the horizontal gap between the top of one band and the top of the next equals average days spent in that state.
How do you read WIP from band thickness? (worked example)
Band thickness is a subtraction, and doing it by hand once teaches the reading permanently. The table below is twelve working days of snapshots from a six-person team with four states, cumulative counts only.
| Day | Done | Reached Review | Reached In Progress | Reached Ready |
|---|---|---|---|---|
| 1 | 0 | 0 | 3 | 15 |
| 3 | 4 | 7 | 12 | 20 |
| 6 | 12 | 17 | 23 | 28 |
| 9 | 21 | 28 | 36 | 41 |
| 12 | 30 | 36 | 43 | 47 |
Now subtract adjacent columns to get the band thickness on each date:
| Day | In Review | In Progress | In Ready | Total WIP |
|---|---|---|---|---|
| 1 | 0 | 3 | 12 | 15 |
| 3 | 3 | 5 | 8 | 16 |
| 6 | 5 | 6 | 5 | 16 |
| 9 | 7 | 8 | 5 | 20 |
| 12 | 6 | 7 | 4 | 17 |
Two findings fall out immediately. Ready shrank from 12 to 4 between day 1 and day 12, which means the team stopped starting work it could not finish, and total WIP peaked at 20 on day 9 before settling at 17. The peak is the interesting part: it happened while Done was climbing at its fastest, which is the classic signature of a team pulling work in faster than review could clear it. Nothing was on fire. The chart simply recorded a habit four days before it became a deadline conversation.
Total WIP of 17 across six people is roughly 2.8 items in flight per person. That is high for knowledge work with a review step, and the day-9 peak of 20 explains why the Review band widened at the same time. If you set a WIP limit, the number to defend is the review capacity, not the total.
How do you read cycle time from the slope? (worked example)
Cycle time comes from two numbers you already have, using Little’s Law: average cycle time equals average WIP divided by average throughput. On this chart, throughput is the slope of the Done line, and the arithmetic is short enough to do in a standup.
Between day 1 and day 12, Done grew from 0 to 30. Thirty items over twelve working days is 2.5 items per day, or 12.5 per week. At day 9, WIP stood at 20, so expected cycle time was 20 divided by 2.5, which is 8 working days. By day 12, WIP had fallen to 17, so the expectation dropped to 17 divided by 2.5, or 6.8 working days.
That is the calculation behind a delivery promise. If a stakeholder asks when an item entering the flow today will be finished, the honest answer is “about seven working days, if WIP stays near 17 and throughput stays near 2.5 a day”. Change either input and the date moves. If throughput drops to 2.0 items per day at the same WIP, cycle time becomes 8.5 days, and a 30-item backlog takes 15 working days instead of 12.
The horizontal reading confirms the vertical one. On day 9 the vertical gap between Done (21) and Reached Ready (41) was 20 items, identical to the WIP total, and dividing by the same slope gives the same 8 days. When those two methods disagree, one of your columns is wrong, usually because items were split or a state was skipped.
How do you spot a bottleneck before it becomes a crisis?
A bottleneck shows up as a band that widens while the band above it stays thin and the top slope flattens. In the example, Review went from 3 to 7 items between day 3 and day 9 while In Progress moved only from 5 to 8. Review was accumulating 0.67 items per day over that stretch, which cannot continue.
Take the arithmetic forward. Suppose review capacity is 2 items per day and the inflow from In Progress is 2.7. The queue grows by 0.7 items per day. After ten working days it is seven items longer, and each item spends an extra 3.5 days waiting, which pushes cycle time from 7 days to 10.5 without anyone working slower. That is the cost of an unbalanced handoff, and it is invisible on a task board.
Three interventions are worth testing, in this order. Limit review WIP so In Progress cannot hand off into a full queue. Split review into “ready for review” and “in review” so the wait is visible separately from the work. Or remove the review step for small items below a defined size, which is the highest-leverage change and the one teams resist most.
The wrong intervention is adding a person to In Progress. It increases inflow to the constrained step, lengthens the queue, and makes the chart look busier while delivery slows.
What separates a healthy CFD from a failing one?
Two charts can have identical area and tell opposite stories. What distinguishes them is whether the bands stay roughly parallel and whether the top boundary keeps its slope.
| Pattern | What it means | What to do |
|---|---|---|
| Parallel bands, steady top slope | Flow is stable and predictable | Forecast from the slope; do not add process |
| One band widening, top slope flat | A step is under-resourced or over-policied | Limit WIP upstream of the wide band |
| All bands widening together | Work arrives faster than the team can finish | Stop starting; negotiate scope |
| Done line flat while WIP climbs | Nothing is completing; look for an external block | Escalate the dependency, not the effort |
| Total area shrinking, steady slope | Scope is closing, not being delivered | Verify items were not silently dropped |
| Sawtooth in a middle band | Batch handoffs, usually a weekly meeting | Move to daily pull, or widen forecasts |
The sawtooth deserves a note. A band that swells before a Friday review and drains on Monday is not a mystery: it is a batch. Batching is sometimes correct, for example when a regulator requires a formal sign-off window. It is a problem only when it is accidental, because then you are paying queue time for a meeting that could happen daily.
Who should own the template, and how often should it change?
The template needs one owner and a fixed review rhythm. The owner is usually the delivery lead or scrum master, and the job is three minutes a day plus ten minutes a week. The weekly ten minutes is where the readings become decisions: adjust a WIP limit, escalate a blocker, or change nothing because the chart is healthy.
Change the workflow definition at most once a quarter, and restart the series when you do. A team that adds a QA state in week three and keeps plotting the old series will see a fake widening band that no one can explain, then stop trusting the chart, then stop filling it. That sequence is the most common way a perfectly good template dies.
Reset the baseline whenever scope changes materially. If 40 items are added mid-quarter, the cumulative counts stay valid but the projection changes, so annotate the chart with a vertical marker and the reason. Annotations cost nothing and prevent an entire category of argument.
What are the trade-offs of running a CFD?
The chart costs almost nothing to produce and a great deal to maintain honestly, and honesty is the trade. Daily snapshots must survive holidays, sick days, and the week everyone is at a conference. A chart with four missing days will show a slope change that did not happen.
The second trade-off is legibility. A CFD is excellent for a delivery team and poor for an executive who wants one number. Do not try to fix this by simplifying the chart; give executives the cycle-time trend and the throughput number as text, and keep the diagram for the people who act on it.
The third is that cumulative charts hide rework. An item that goes from Review back to In Progress still counts as having reached both states, so the chart shows flow where there is actually a loop. If rework is material, add a separate “returned” count per day. It is one extra column and it explains most of the surprising cycle times.
Finally, a CFD is a lagging indicator by design. It confirms a problem two to five days after it starts. Pair it with a daily blocker list if you need earlier warning, and expect the diagram to explain the past more than predict the future.
How does Doitify support this template?
Doitify is our product, so read this as disclosure. The cumulative flow data comes from the same statuses your team already moves on the board, which means the template needs no separate data entry: the daily snapshot is a report, not a ritual. Projects, tasks, sub-tasks, checklists, owners, and due dates sit in one workspace alongside Kanban boards, Gantt charts, roadmaps, calendars, workload views, work and performance reports, automations, and project documents.
The relevant detail is the status model. Because custom statuses and WIP limits live on the board, the four readings above map to fields you can filter and export, and Doitify Copilot can turn a stated goal into tasks and a plan that those statuses then track. That removes the spreadsheet step that kills most CFD templates in month two.
FAQ
Conclusion
A cumulative flow diagram template earns its place by answering a question that status reports cannot: where is the work, and how long does it take to leave. Fill the table daily, read band thickness for congestion, slope for speed, and horizontal width for cycle time, and you will spot the review queue that adds three days to every item before anyone misses a date.
Start with four states, six people, and ten days. Do the subtraction by hand once. After that, the chart is not a report you produce; it is a habit you read.
If this post on cumulative flow diagram template was helpful, you might also enjoy How to Make Deadlines More Visible and Free Project Roadmap Template.
Join Doitify Today
Move projects forward without the chaos: all your tasks, progress, and team reports in one unified workspace. Built for companies, startups, and remote teams — with a quick setup and a free trial.