Flow & ProcessIntermediate

Alluvial Diagram

A flow visualization that traces how categorical group memberships shift across multiple dimensions or time periods — like watching populations migrate between clusters.

// 01 — The chart

What it looks like

Example — Voter party affiliation across three elections
201620202024Party AParty BOther

An alluvial diagram showing how voters migrate between political parties across three elections. Band width encodes voter count.

// 02 — Definition

What is an alluvial diagram?

An alluvial diagram is a variant of a Sankey diagram specifically designed to show how categorical group memberships change across multiple dimensions or time periods. Each vertical axis represents a categorical variable, and the curved bands between them show how observations redistribute from one category to another.

Unlike a Sankey diagram, which focuses on flows of material or energy through a process, alluvial diagrams emphasize group membership changes. The nodes on each axis represent mutually exclusive categories, and the bands between axes show how many items moved from one category to another.

The name “alluvial” comes from the resemblance to alluvial fans — the fan-shaped deposits left by rivers. The flowing, organic curves of the bands create a visual metaphor for how populations or categories erode, deposit, and redistribute over time.

Key distinction: While Sankey diagrams show flows through a process (source → destination), alluvial diagrams show how the same set of observations is classified differently across multiple categorical variables or time points. The total population stays constant.

// 03 — Anatomy

Parts of an alluvial diagram

ABCD
A — Axes (strata): Each vertical column represents one categorical variable or time point
B — Alluvia (flows): Curved bands connecting categories across axes — width encodes the group size
C — Strata nodes: Rectangular blocks within each axis representing individual categories
D — Lodes: The portion of a stratum that connects to a specific stratum on the adjacent axis

// 04 — Usage

When to use it — and when not to

✓Use an alluvial diagram when…
  • Tracking how group memberships shift across categorical dimensions
  • Visualizing voter migration, customer segment changes, or career transitions
  • Comparing the same population classified by multiple variables
  • Showing redistribution patterns over 2-5 time periods
  • Highlighting which categories gain or lose members over time
  • Making complex cross-tabulation data visually intuitive
×Avoid an alluvial diagram when…
  • You have more than 6 axes — the diagram becomes an unreadable tangle
  • Categories exceed 8-10 per axis — too many bands overlap
  • You need to show exact quantities — the curved bands make precise reading hard
  • Flows represent a physical process with loss — use a Sankey diagram instead
  • You only have two categories — a grouped bar chart is simpler
  • The audience is unfamiliar with flow diagrams — simpler charts communicate faster

// 05 — Reading guide

How to read an alluvial diagram

Follow these steps whenever you encounter an alluvial diagram in the wild.

1

Read the axis labels

Each vertical axis represents a categorical variable (e.g. year, region, category). Understand what each axis measures before interpreting the flows.

2

Identify the strata on each axis

The rectangular blocks on each axis are categories. Their height shows how many observations belong to that category at that point.

3

Follow the flows between axes

The curved bands between axes show how observations move from one category to another. Wider bands mean more observations making that transition.

4

Compare band widths

The relative width of bands tells you which transitions are dominant. A thick band from A to B means most of group A moved to B.

5

Look for convergence and divergence

When many thin bands merge into one thick block, categories are consolidating. When one thick block splits into many thin bands, the group is fragmenting.

// 06 — Pitfalls

Common mistakes

×

Too many categories per axis

Limit to 6-8 categories per axis. Merge small groups into an 'Other' category to reduce visual clutter.

×

Confusing alluvial with Sankey

Alluvial diagrams track the same population across variables; Sankey diagrams show material/energy flows with possible losses. Choose based on your data story.

×

Using misleading color

Color the bands by their origin category so readers can trace where groups came from. Avoid random or decorative coloring.

×

No axis labels

Always label each axis clearly. Without context, the diagram is meaningless — readers need to know what each column represents.

×

Ignoring sort order

Order categories consistently across axes. If possible, place the largest categories at the top so the most important flows are easiest to follow.

// 07 — In the wild

Real-world examples

Voter migration between elections

Political scientists use alluvial diagrams to show how voters shift between parties across election cycles, making it easy to see which parties gain or lose voters and from where.

Student major changes in universities

Universities visualize how students move between declared majors from freshman to senior year, revealing which departments attract transfers and which lose students.

Customer segment transitions

SaaS companies track how customer segments (free, starter, pro, enterprise) shift quarter over quarter, identifying upgrade and churn patterns visually.

// 08 — Quick reference

Key facts

Also known as

Alluvial plot, parallel categories diagram

Data type

Categorical × categorical (or categorical × time)

Best for

Group migration, segment shifts, cross-tabulation

Audience level

Intermediate — requires explanation for new viewers

Axes limit

2–5 axes for clarity

Related to

Sankey diagram, parallel sets, parallel coordinates

// 09 — Variations

Variations and extensions

Temporal alluvial

Axes represent fixed time intervals, showing how group memberships evolve chronologically.

Weighted alluvial

Band width encodes an additional numeric variable beyond simple count, such as revenue or spend.

Highlighted alluvial

One specific flow path is colored while the rest are greyed out, drawing attention to a single group's journey.

// 10 — FAQs

Frequently asked questions

What is an alluvial diagram?+

An alluvial diagram is a variant of a Sankey diagram specifically designed to show how categorical group memberships change across multiple dimensions or time periods. Each vertical axis represents a categorical variable, and the curved bands between them show how observations redistribute from one category to another.

When should you use an alluvial diagram?+

Use an alluvial diagram when tracking how group memberships shift across categorical dimensions. It also works well when visualizing voter migration, customer segment changes, or career transitions, and when comparing the same population classified by multiple variables.

When should you avoid an alluvial diagram?+

Avoid an alluvial diagram when you have more than 6 axes — the diagram becomes an unreadable tangle. It is also a poor fit when categories exceed 8-10 per axis — too many bands overlap, or when you need to show exact quantities — the curved bands make precise reading hard.

What is another name for an alluvial diagram?+

Alluvial Diagram is also known as Alluvial plot, parallel categories diagram. The name varies between fields, but the visualisation technique is the same.

What size of dataset works best for an alluvial diagram?+

Alluvial Diagram works best for Group migration, segment shifts, cross-tabulation. Outside that range the chart either looks empty or becomes too cluttered to read clearly.

Is an alluvial diagram suitable for dashboards?+

Yes — an alluvial diagram can work well in dashboards as long as the panel is large enough for readers to perceive the encoded values, has a clear title, and includes the legend or axis labels needed to interpret it.