Sankey Chart Best Practices: Ten Rules for Clear Diagrams

Ten practical rules for a readable Sankey chart: one unit, few nodes, drawn losses, meaningful colour, direct labels and honest scale. With an editable marketing example.

A good Sankey diagram has one unit, few nodes, no hidden losses and labels you can read without a legend.

The example allocates a marketing budget to three channels and then shows how much of each channel's spend is attributed to leads and how much is not. It follows the rules below, and each rule has a reason you can see in it.

The rules are about what a reader needs: one scale, no hidden losses, and labels where the eye already is. None of them needs special software, only a few decisions made before the numbers go in.

Ten rules

  • Use one unit for the whole diagram, and say what it is.
  • Keep it to a handful of nodes per column. Merge the small ones into Other.
  • Draw the losses. Anything that does not continue gets its own node.
  • Make every node balance, or show the gap.
  • Order columns left to right in the direction of flow, and keep one direction.
  • Avoid loops. If something returns, split it into a separate node such as Rework.
  • Use colour to mean something: a source, a group or good against bad. Not decoration.
  • Label the bands and nodes directly, with the amount, instead of in a legend.
  • Do not truncate or rescale: width must stay proportional to the amount.
  • Say where the numbers came from and for which period.

What the rules buy you

In the example, paid takes half the budget but only 60% of its spend is attributed to leads, against 83% for content, which has a smaller budget. That comparison is visible because the 'no leads' share is drawn as a band of its own and the channels are not mixed with other groupings.

Key points

  • Of the 100 spent, 63 is attributed to leads and 37 is not.
  • Spend attributed to leads: content 25 of 30 (83%), paid 30 of 50 (60%) and events 8 of 20 (40%).
  • Paid is the largest channel but not the one with the highest attributed share.
  • The figures are invented.

The example’s data

Invented budget in thousands of euros, with each channel's spend split by whether it is attributed to leads. How spend is attributed is a modelling choice you would need to define.

Sankey Chart Best Practices: Ten Rules for Clear Diagrams (k€)
FromToAmount (k€)
Marketing budgetPaid50
Marketing budgetContent30
Marketing budgetEvents20
PaidSpend that produced leads30
PaidSpend that produced no leads20
ContentSpend that produced leads25
ContentSpend that produced no leads5
EventsSpend that produced leads8
EventsSpend that produced no leads12

The same data as CSV

source,target,value
Marketing budget,Paid,50
Marketing budget,Content,30
Marketing budget,Events,20
Paid,Spend that produced leads,30
Paid,Spend that produced no leads,20
Content,Spend that produced leads,25
Content,Spend that produced no leads,5
Events,Spend that produced leads,8
Events,Spend that produced no leads,12

How it works

  1. Fix the unit and the scope

    Choose one unit and one period before you add any node.

  2. Add the losses

    Give every non-continuing quantity its own node.

  3. Label for reading

    Put names and amounts on the diagram so that nobody has to look in a legend.

Frequently asked questions

Should I show percentages or absolute values?

Absolute values on the diagram, with percentages in the text if you need them. Width is proportional to the absolute amount, so percentages on the bands can mislead.

How do I handle very small flows?

Group them into Other, or label them directly and accept that they will be thin.

Apply these rules to your own diagram

Open the example as your own chart and replace it with your data.

Apply these rules to your own diagram

More in Sankey diagrams