Customer Segment Migration Sankey Diagram: Template
Compare customers' segment at the start and end of a year to see who upgraded, downgraded, stayed or cancelled. A two-period view with your own counts.
A segment migration Sankey compares the same customers at two points in time. The left column is their segment at the start, the right column their segment at the end.
Net movement hides churn and upgrades that cancel out. Here Premium ends the year the same size it started, yet a fifth of its customers left and others joined from below.
Each segment appears twice, once for each date, so the nodes need distinct names such as Standard at start and Standard at end.
How to read this diagram
- Premium is 2,000 customers at both dates, but 400 left it and 400 joined it.
- 800 of 5,000 free customers (16%) upgrade to a paid segment during the year.
- Of 3,000 Standard customers, 2,000 (67%) stay, 300 upgrade, 300 downgrade and 400 cancel.
- 1,000 customers cancel in total, 10% of the base.
The data behind it
Invented figures for illustration. Not data about any real business. Customers who joined during the year are not included.
| From | To | Amount (customers) |
|---|---|---|
| Free at start | Free at end | 3800 |
| Free at start | Standard at end | 700 |
| Free at start | Premium at end | 100 |
| Free at start | Cancelled | 400 |
| Standard at start | Free at end | 300 |
| Standard at start | Standard at end | 2000 |
| Standard at start | Premium at end | 300 |
| Standard at start | Cancelled | 400 |
| Premium at start | Standard at end | 200 |
| Premium at start | Premium at end | 1600 |
| Premium at start | Cancelled | 200 |
The same data as CSV
source,target,value
Free at start,Free at end,3800
Free at start,Standard at end,700
Free at start,Premium at end,100
Free at start,Cancelled,400
Standard at start,Free at end,300
Standard at start,Standard at end,2000
Standard at start,Premium at end,300
Standard at start,Cancelled,400
Premium at start,Standard at end,200
Premium at start,Premium at end,1600
Premium at start,Cancelled,200How it works
Freeze the customer list at the start date
Record each customer's segment.
Look up the same customers at the end date
Segment, or cancelled.
Count each pair of segments
For example Standard to Premium.
Check the balance
Each start segment should send on exactly the customers it began with.
Frequently asked questions
Why leave out new customers?
So each customer is counted once from the start. To include them, add a New customers node on the left.
How is this different from an alluvial diagram?
It is a two-period alluvial view drawn as a Sankey. For many periods, an alluvial or a repeated multi-stage Sankey is clearer.
Edit this migration Sankey
Open the example as your own chart and enter your start and end counts.