Roadmap Delivery Sankey Diagram: Planned vs Shipped
Compare what a quarter's roadmap promised with what shipped, was carried over or was cut, including work added mid-quarter. Replace the sample counts with your own roadmap items.
A roadmap delivery Sankey follows planned items and mid-quarter additions to what shipped, what carried over and what was cut. It adds the reason for the items that did not ship.
The example has 72 roadmap items: 60 planned at the start of the quarter across Growth, Reliability, Platform and Customer requests, plus 12 added mid-quarter. In all, 45 shipped, 19 were carried over and 8 were cut. The last column gives the reason for carry-over (underestimated, blocked by a dependency, capacity taken by added work) and for cuts (reprioritised, no longer needed).
It differs from a bridge in that there is no opening and closing balance, only commitments and their fate. The Platform theme shipped 7 of 15 items, the weakest of the four, and 8 of the 12 added items shipped, which is how added work competes with the plan. See /sankey/engineering-time-allocation for the capacity behind it.
How to read this diagram
- 45 of 72 items (63%) shipped, 19 (26%) were carried over and 8 (11%) were cut.
- Of the 60 planned items, 37 (62%) shipped; of the 12 added, 8 (67%) did.
- Platform shipped the fewest: 7 of 15 (47%), with 6 carried over.
- Underestimation is the largest reason for carry-over: 8 of 19 items.
The data behind it
Invented figures for illustration. Not data about any real company, team or system.
| From | To | Amount (roadmap items) |
|---|---|---|
| Growth | Shipped | 13 |
| Growth | Carried over | 5 |
| Growth | Cut | 2 |
| Reliability | Shipped | 12 |
| Reliability | Carried over | 2 |
| Reliability | Cut | 1 |
| Platform | Shipped | 7 |
| Platform | Carried over | 6 |
| Platform | Cut | 2 |
| Customer requests | Shipped | 5 |
| Customer requests | Carried over | 3 |
| Customer requests | Cut | 2 |
| Added mid-quarter | Shipped | 8 |
| Added mid-quarter | Carried over | 3 |
| Added mid-quarter | Cut | 1 |
| Carried over | Underestimated | 8 |
| Carried over | Blocked by a dependency | 7 |
| Carried over | Capacity taken by added work | 4 |
| Cut | Reprioritised | 5 |
| Cut | No longer needed | 3 |
The same data as CSV
source,target,value
Growth,Shipped,13
Growth,Carried over,5
Growth,Cut,2
Reliability,Shipped,12
Reliability,Carried over,2
Reliability,Cut,1
Platform,Shipped,7
Platform,Carried over,6
Platform,Cut,2
Customer requests,Shipped,5
Customer requests,Carried over,3
Customer requests,Cut,2
Added mid-quarter,Shipped,8
Added mid-quarter,Carried over,3
Added mid-quarter,Cut,1
Carried over,Underestimated,8
Carried over,Blocked by a dependency,7
Carried over,Capacity taken by added work,4
Cut,Reprioritised,5
Cut,No longer needed,3How it works
List the roadmap as committed at the start
Group the items by theme, and mark separately anything added after the quarter began.
Record the result of each item
Use three results: shipped, carried over or cut. Decide beforehand whether a partly shipped item counts.
Add one reason for each miss
Pick a single main reason per item from a short list, and use the same list every quarter.
Check the balance
Carried over and cut must leave as many items as entered. Shipped ends at the second column.
Frequently asked questions
Should items be weighted by size?
Counts treat a one-week item like a six-week one. If size matters, use effort in days as the unit instead and say so.
Is a low ship rate bad?
Not by itself. A roadmap that ships everything may have been set too safely. The chart is for asking why items missed, not for a target.
Edit this roadmap Sankey
Open the example as your own chart and enter your quarter's items.