This entry is part of the Chart Index, the reference library for the Chart Design Field Guide.

The Sankey diagram visualises flows between nodes as ribbons whose widths are proportional to the quantities flowing through them. It is the chart for where does it come from, where does it go? — the conversion funnel that does not reduce to a funnel, the energy budget that does not reduce to a pie, the customer journey that splits and rejoins. The form's name comes from Captain Matthew Henry Phineas Riall Sankey, who used it in 1898 to show steam-engine energy losses.

Sankey diagrams are dense and information-rich, but they are also surprisingly easy to make unreadable. Too many flows, too many splits, ribbons of similar widths crossing in the middle — the elegance of the form collapses quickly. Done well, they are unmatched for showing multi-step flows; done poorly, they are decorative rivers.

What it is

A Sankey diagram maps a flow process to nodes (thin bars in columns) and ribbons (curved bands) between them. Each node has an incoming total and an outgoing total; the ribbons' widths are proportional to the flow they carry. The total flow in must equal the total flow out (conservation) — though some Sankey variants relax this for visualisation purposes.

The hero chart above follows 24,000 visitors from four acquisition channels through sign-up and activation to their first week. Read it left to right: the four channel ribbons merge into the landing page, then the flow forks at every stage — the thick blue ribbons are the people who carried on, the grey ones the people who left. Half the visitors never get past the landing page; a third of those who sign up never activate. Randomise the flows and every node re-sizes to the sum of its ribbons: conservation is built into the form.

When to use it

Sankey diagrams are the right choice when:

  • The data is multi-stage flow with splits, merges, or drop-offs.
  • The reader's question is "where does the volume go through this process?"
  • Each stage's total is conserved (or near-conserved) so the ribbons have a meaningful sum.
  • You have few enough stages and flows for the chart to remain readable (typically 3–6 stages, 5–20 flows per stage).
  • The audience is familiar enough with the form or will be guided.

When not to use it

  • Single-stage flow. Use a bar chart or treemap.
  • Many splits and merges. Above 8–10 stages or 30 flows per stage, the ribbons cross into an unreadable tangle.
  • Quantity comparison rather than flow. If the reader needs to compare totals across categories, a bar chart is more precise.
  • Hierarchical data. Use a treemap or sunburst; Sankey's flow semantics are not for tree structures.

Design principles

Order columns by stage

Sankey diagrams should read left-to-right (or top-to-bottom) along the process. Each column is one stage; ribbons flow from earlier to later. Resist the urge to rearrange stages for compactness; the temporal or process order is the chart's organising principle.

Sort nodes within each column

Within a column, order nodes so that the ribbons between neighbouring columns cross as little as possible — usually largest at the top, or in an order that keeps the main path straight. Random order produces visual chaos: the same flows, drawn as a braid. The two figures below are the same energy balance with the nodes in two orders.

Nodes in the order they were typed: ribbons cross
Electricity from four sources to three uses, with the nodes kept in their input order. Gas sits at the top of the first column but feeds mostly industry at the bottom of the last, so the biggest ribbons cross the smallest and the eye has to untangle them.
Nodes sorted to minimise crossings: the same flows, untangled
Identical data with the layout free to order each column. Wind and solar rise to the top beside households, gas drops down beside industry, and the major ribbons run nearly straight. Nothing about the numbers changed; the reading did.

Show drop-offs explicitly

If people leave at each stage, show the leaving as its own ribbon into a terminal node. Hiding drop-offs by drawing only the survivors makes every stage look like a clean hand-off and turns a funnel into a pipe. The reader should be able to see, at every column, how much of the flow did not continue.

Drop-offs hidden: a pipe with no leaks
The hero's onboarding with only the continuing flows drawn. The nodes shrink from left to right, but nothing says where the missing people went, and a reader skimming the chart sees a process that simply narrows — not one that loses half its visitors at the first step.
Drop-offs drawn: every stage accounts for everyone
The same journey with the leavers given their own grey ribbons and terminal nodes. Now the landing page's full 24,000 is visible, the 11,400 who left are the biggest single flow in the chart, and the conservation at every node can be checked by eye.

Keep the flow count readable

Every ribbon competes with every other for the space between two columns. A dozen sources each feeding a dozen destinations is 144 ribbons, most of them thin, all of them crossing. When the matrix is that dense, the Sankey is the wrong form — a heatmap shows every cell without asking any of them to fit between the others.

Ten sources into ten destinations: a braid, not a diagram
A hundred flows between two columns of ten. The largest can just be followed; the rest form a translucent weave in which no single ribbon can be traced from its source to its destination. The data is a matrix and wants a matrix's chart.

Use a quiet ribbon palette

Saturated multi-coloured ribbons look like a tropical river system. Use a single hue family, or colour by source so all ribbons from the same starting node share a colour, and let the drop-off nodes go grey. The house ribbons blend from the source colour to the target colour at 45 percent opacity, which is enough to read the width and not enough to shout.

Direct-label the major flows

The widest ribbons should carry numeric labels — Activated: 8,400 (35%) — placed on or near the ribbon. Small ribbons can remain unlabelled or be shown only in tooltips; hover any node or ribbon on this page for its value.

Use small multiples for cohort comparison

To compare flows across cohorts (conversion funnels across two campaigns, say), use side-by-side Sankey diagrams rather than overlaying. Overlapping Sankeys are unreadable.

Resist the urge to encode time on ribbons

Some Sankey variants try to encode time as ribbon curvature or animation. The form's strength is its static, conserved-flow semantics. Animation belongs in tools, not in editorial communication.

Anatomy

The composition of a Sankey diagram
An anatomical guide

A Sankey diagram's anatomy is columns of nodes connected by width-proportional ribbons. Drop-offs are explicit; node order within columns is meaningful; conservation is the perceptual contract.

  • Funnel chart — for a single linear flow with no branches. Sankey's simplest case.
  • Alluvial diagram — Sankey for shifting category memberships over time.
  • Chord diagram — for all-to-all flows within one set.
  • Network graph — for arbitrary relationships without a directional flow.
  • Heatmap — the right form when every source feeds every destination.
  • Treemap — for static part-to-whole; no flow semantics.

Reading list

  • Schmidt, M. (2008). The Sankey Diagram in Energy and Material Flow Management. The form's modern formalisation.
  • Riehmann, P., Hanfler, M. & Froehlich, B. (2005). Interactive Sankey Diagrams. The interactive variants.
  • Sankey, M. (1898). Introductory Note on the Thermal Efficiency of Steam-Engines. The original chart.
  • Tufte, E. (1983). The Visual Display of Quantitative Information. On Minard's Napoleon map — the most famous flow diagram ever drawn.