Part of a whole

Variance waterfall chart

Breaks the difference between two totals into additive component variances.

  • Chart
  • Contribution
  • Deviation

What it answers

Which components explain a difference between two totals?

Shape
Bridge between reference totals
What it shows
Additive drivers of a gap.

Example

The question

Why did profit come in below budget?

From budget profit to actual profit, 2025 (EUR million)

From budget profit to actual profit, 2025 (EUR million)Budget 10; Volume -2.4; Price 1.1; Costs -1.6; FX 0.9; Actual 8.EUR million0481210Budget-2.4Volume+1.1Price-1.6Costs+0.9FX8Actual
From budget profit to actual profit, 2025 (EUR million)Budget 10; Volume -2.4; Price 1.1; Costs -1.6; FX 0.9; Actual 8.EUR million0481210Budget-2.4Volume+1.1Price-1.6Costs+0.9FX8Actual
Budget 10; Volume -2.4; Price 1.1; Costs -1.6; FX 0.9; Actual 8.

Illustrative data. It belongs to no company.

When to use it

Use it when

Budget/actual or prior/current reconciliation.

Avoid it when

When overlapping effects double-count the same change.

How to read it

Read baseline total, component variances and final total.

Note

Components must reconcile the opening and closing totals.

The data you need

Layout
Long table
Fields
Order: integer; Label: text; Amount: signed number; Type: Start/Change/Total
One row is
One ordered opening amount, additive change or total. What is the grain?
Rules
Keep order explicit. Treat total rows as totals, not changes. Opening plus changes must equal closing.
Optional
Optional subtotal rows and positive/negative colours.
Preparation
Validate the input grain and missing values. Keep order explicit. Treat total rows as totals, not changes. Opening plus changes must equal closing.
Units
Use the measured variable's stated unit consistently. No denominator is implied unless the value is a rate or proportion.
Example of the input layout: Long tableA long table: one row per observation, few columns. New data adds rows.OrderLabelAmountTypeAABBC
A long table: one row per observation, few columns. New data adds rows.

Worked example

Budget 100, price+10, volume+8, cost-3 gives actual 115. Components explain the full 15 difference.

OrderLabelAmountType
1Opening100Start
2Increase25Change
3Decrease-10Change
4Closing115Total