Sankey Diagram Examples: 6 Real Use Cases (and When a Bar Chart Wins)

⏱️ 4 min read 📈 Visualization

Sankey diagrams show quantities flowing between stages, with each band's width proportional to the amount it carries — and the six examples below cover nearly every real-world use you'll encounter. For each one: what the diagram shows, what the underlying data looks like, and the honest test of whether a plain bar chart would do the job better.

Quick answer: The classic Sankey diagram examples are: energy flows through a national grid, user journeys through a website or app, budget breakdowns from revenue to spending, customer migration between plan tiers, marketing traffic sources flowing to conversions, and supply chains from raw material to product. Use a Sankey when quantities split and merge across two or more stages; if there's only one stage of splitting, use a bar chart.

New to the chart type? Read the Sankey diagram guide first — it covers the conservation rule (flows in must equal flows out) that every example below depends on.

1. Energy Flow Sankey (the Original)

The very first Sankey — Captain Sankey's 1898 steam engine chart — showed energy, and it remains the canonical example. National energy Sankeys (like the Lawrence Livermore charts of the U.S. energy system) run sources on the left (coal, gas, solar, nuclear), the grid and conversion losses in the middle, and end uses (residential, industrial, transport) on the right.

Why a Sankey wins here: the story is the losses. Roughly two-thirds of energy input becomes "rejected energy" (waste heat), and a wide gray band makes that visceral in a way no bar chart can. Whenever your process has significant leakage between stages, a Sankey is the right call.

2. User Journey / Funnel Sankey

Nodes are pages or app screens; links are users moving between them, including explicit "exit" flows at each stage:

Homepage (10,000)
  ├─> Product Page   5,500
  ├─> Pricing        2,000
  └─> Exit           2,500
Product Page
  ├─> Add to Cart    1,800
  └─> Exit           3,700
Cart
  ├─> Checkout       1,100
  └─> Abandon          700

Why a Sankey wins here: real journeys split and merge — users reach the cart from the product page and the pricing page — which a linear funnel chart can't show. But if your flow is strictly step 1 → 2 → 3 with no branching, a funnel chart is simpler and easier to label. Always draw the exit flows: a journey Sankey without drop-offs quietly overstates conversion.

3. Budget Breakdown Sankey

Revenue enters on the left and fans out through departments to line items: revenue → operating costs → salaries, infrastructure, marketing → advertising channels. Government budget Sankeys work the same way with tax sources on the left and programs on the right.

Why a Sankey wins here: two levels of breakdown in one picture. A pie chart shows one level; a Sankey shows that marketing gets 20% of revenue and that half of marketing goes to paid ads, in a single connected view. For a one-level breakdown, though, a sorted bar chart beats both.

4. Customer Migration Sankey

Compare plan tiers (or segments) at two points in time — left nodes are "plan at start of year," right nodes are "plan at end of year," and links show how many customers moved Free → Pro, Pro → Free (downgrades), stayed put, or churned:

Free (Jan)  ──> Free (Dec)     6,200
Free (Jan)  ──> Pro (Dec)        900
Free (Jan)  ──> Churned        1,900
Pro (Jan)   ──> Pro (Dec)      2,400
Pro (Jan)   ──> Free (Dec)       300
Pro (Jan)   ──> Churned          300

Why a Sankey wins here: a bar chart of "plan counts in January vs December" shows the totals changed but hides the churn underneath — Pro can look flat while a third of its customers were replaced. The migration Sankey exposes gross flows, not just net change.

5. Traffic Sources → Conversion Sankey

Marketing channels on the left (organic, paid search, social, email), landing pages in the middle, outcomes on the right (converted, bounced). This is the analytics team's favorite because it answers attribution questions visually: which channel actually feeds the conversions, and through which pages?

Why a Sankey wins here: it connects two breakdowns that are usually shown as separate bar charts (traffic by channel; conversions by page) into one causal-looking picture. Caveat: keep it to the top 4–6 channels and pages — beyond ~20 nodes the crossing bands turn into spaghetti.

6. Supply Chain Sankey

Raw materials → suppliers → factories → distribution centers → retail regions, with band width showing tonnage, units, or cost. Sustainability teams use the same structure for carbon accounting: emissions sources flowing into scopes 1, 2, and 3.

Why a Sankey wins here: concentration risk is instantly visible — if one supplier's band carries 60% of your inputs, it dominates the diagram the way it dominates your risk. A table of percentages says the same thing; the wide band makes people act on it.

When Does a Sankey Beat a Bar Chart?

A Sankey earns its complexity only when the data has at least two stages and the splits or merges between them are the story. If you can answer the question with "how big is each category?", use a bar chart — it's easier to read exact values and to sort. Use the Sankey when the question is "where does it all go?"

SituationBetter chart
Flows split and merge across 2–5 stagesSankey
Losses/leakage between stages matterSankey
Gross movement between two snapshots (migration)Sankey
One categorical breakdownBar chart
Strictly linear drop-off, no branchingFunnel chart
More than ~20 nodesAggregate first, or use a table

How Do You Build These Examples Yourself?

All six examples are the same data shape: a list of (source, target, value) rows. In Python, plotly.graph_objects.Sankey takes exactly that. In the browser, ECharts and Plotly.js both render an interactive Sankey from a links array in under 30 lines — working code for both is in the JavaScript Sankey tutorial. No-code options: Flourish or Power BI's Sankey visual.

# Every example above reduces to this shape:
source,        target,          value
"Free (Jan)",  "Pro (Dec)",     900
"Homepage",    "Product Page",  5500
"Coal",        "Electricity",   12.5

Pro Tip: Before building any Sankey, check the conservation rule in your data: for every middle node, flows in must equal flows out (plus an explicit loss/exit link). If the numbers don't balance, viewers who add up band widths will find the discrepancy — add an "Other/Exit" node rather than letting flows silently vanish.

← Back to Visualization Tips