Power BI waterfall chart: from revenue to net income, step by step
Get started with Waterfall Plume: prepare your data, build a waterfall like Power BI's, rename the total, then move on to the price-volume-mix bridge.
Lire en françaisIn short
What is a waterfall? A waterfall (or bridge) chart shows how you get from one value to another, step by step: a start bar, one bar going up or down for each step, an end bar. Each step bar "floats": it starts where the previous one ends.
Mini example: a simplified income statement.
| Account | Amount |
|---|---|
| Revenue | 1,000 |
| Cost of sales | −400 |
| Staff costs | −250 |
| Rent | −80 |
| Other income | +30 |
| Result | 300 |
The waterfall starts at 0, climbs to 1,000, drops by 400, then by 250, then by 80, rises by 30 and ends at 300: you see at a glance where the money goes.
Waterfall Plume draws two charts:
- the classic waterfall, like Power BI's waterfall chart, plus what users have been asking for for years: a start value, a budget-to-actual bridge, subtotals ★ ("Gross margin", "EBITDA"), horizontal bars ★, a hidden or renamed total, a custom order, grouping of small steps ★;
- the price-volume-mix bridge, which explains a revenue change between two periods by three effects: you sold more (volume), you sold more expensive products (mix), prices changed (price). The visual computes it product by product, without complex DAX.
The visual picks by itself: as soon as a measure is in Quantity (price-volume-mix), it is the price-volume-mix bridge; otherwise, it is a waterfall. Format › Waterfall › Chart type forces one or the other.
- When to use it: income statement, cash flow (opening balance → flows → closing balance), variance to budget by department or region, year-over-year change by channel, revenue or margin change explained by price, volume and mix.
- When to use something else: to compare values that do not add up (rates, averages), use Bar Plume; to follow a trend over many periods, Line Plume.
- By the end, you will know how to: build a waterfall from a table; add a start value and a renamed total; build a budget-to-actual bridge; explain the year-over-year change by channel (Breakdown); add subtotals ★; build a price-volume-mix bridge.
- What you need: Power BI Desktop, the Waterfall Plume visual installed (see the shared basics), a table with a category and an amount. The PlumeWaterfall-Sample-EN sample report, in your Downloads space, shows the waterfall ("3 · Waterfall (new in 1.3)" page) and the price-volume-mix bridge (pages 1 and 2).
The data to provide
The expected shape: one row per step. The category (account, department, region…) is a column; the amount is a measure (a calculation that Power BI redoes according to the filters, written in DAX; see the glossary). The sign matters: a cost is negative.
Sample dataset (Result table, fictitious data):
| Account | Order | Amount |
|---|---|---|
| Revenue | 1 | 1000 |
| Cost of sales | 2 | -400 |
| Staff costs | 3 | -250 |
| Rent | 4 | -80 |
| Marketing | 5 | -60 |
| Other income | 6 | 30 |
| Taxes | 7 | -50 |
In Power BI Desktop, on the Modeling › New table tab, paste:
Result =
DATATABLE (
"Account", STRING,
"Order", INTEGER,
"Amount", DOUBLE,
{
{ "Revenue", 1, 1000 },
{ "Cost of sales", 2, -400 },
{ "Staff costs", 3, -250 },
{ "Rent", 4, -80 },
{ "Marketing", 5, -60 },
{ "Other income", 6, 30 },
{ "Taxes", 7, -50 }
}
)
Then the measure (Modeling › New measure):
// Adds up the amounts of the filtered rows
Total amount = SUM ( Result[Amount] )
To show the accounts in income statement order, select the Account column, then Column tools › Sort by column › Order. The visual keeps the model order (Step order = Data order (model)).
Preparation pitfalls:
- The sign. A cost entered as a positive number goes up instead of down: multiply it by −1 in the measure, or in the table.
- The order. Without "Sort by column", Power BI sorts the accounts alphabetically.
- A subtotal row in your data ("Gross margin"): either remove it, or declare it as a subtotal ★ (its value is then replaced by the running total; see the how-to guides).
- Values that do not add up (rates, averages) make no sense in a waterfall.
For the price-volume-mix bridge, you also need a quantity: see the how-to guide "How do I explain a revenue change by price, volume and mix?".
Step by step: your first waterfall in 10 minutes
Start from the Result table and the Total amount measure.
- In the Visualizations pane, click the Waterfall Plume icon. Enlarge the empty frame.
- Drag the
Accountcolumn to the Category (or Product) field. - Drag the
Total amountmeasure to the Values (amount) field. The waterfall appears: 7 step bars, green going up, red going down, then a Total bar at 190. The axis starts at zero, like in Power BI. - Hover the "Rent" bar. The tooltip gives the amount, its Share of total and the Running total reached after this step.
- In the Format pane, Waterfall card, Start, subtotals and total group, type
Net incomein Total label. - In the Data labels card, type
$in Prefix. - In the Bars card, set Connector style to Solid.
- Click the "Marketing" bar: the other visuals of the page are filtered on this account (cross-filtering). Click an empty spot of the visual to clear.
- In the Title card, type
From revenue to net income.
Expected result: a readable waterfall from revenue ($1,000) to net income ($190), in income statement order, with no watermark: this whole walkthrough uses free features.
Troubleshooting
| What you see | Likely cause | Fix |
|---|---|---|
| A price-volume-mix bridge instead of a waterfall | A measure is in Quantity (price-volume-mix) | Remove it, or set Waterfall › Chart type to Waterfall |
| "Add a "Period" field (at least two values), or the "Reference quantity" and "Reference value" measures." | Price-volume-mix bridge with no period and no reference | Add a Period, or both reference measures |
| Accounts in alphabetical order | No "Sort by column" on the category | Column tools › Sort by column, or Step order = Custom list |
| A cost goes up instead of down | Amount entered as a positive number | Flip its sign in the measure |
| Red "Subtotals not found (unknown step name)" message | Misspelled step name in Subtotals ★ | Copy the exact name (case does not matter) |
| A "Gap" bar before the end | The measured end value differs from start + steps | Expected: it is the check; review the data or remove End value (check) |
| Total bars cut by a zigzag mark | Start at zero is off (broken axis) | Turn on Value axis › Start at zero (otherwise: broken axis) |
| No percentage in the labels | Waterfall without a start: a share of the total would be misleading | Add a Start value or a Reference value; the share stays in the tooltip |
| A watermark appears | A ★ feature is in use | See the how-to guide "avoid the watermark", or add a key |
| Warning icon at the top of the visual | More than 10,000 rows (or products) or 60 periods | Filter the page, or group small steps ★ |
Key takeaways
- Category + Values = a waterfall from zero with a total at the end, like Power BI; a Quantity = a price-volume-mix bridge.
- Reference value = budget-to-actual bridge; Start value and End value = cash flow with a gap check.
- Breakdown = the change from one category to the next, item by item, like the native visual.
- Subtotals, horizontal bars and grouping of small steps are ★; start, total, order and connectors are free.
- Direction is always written with ▲▼, never shown by color alone.
Learn more
- Waterfall Plume how-to guides: recipes for common needs.
- Waterfall Plume fields and settings: every field well and every setting.
- Getting started with Plume visuals: installation, license, styles and shared settings.
- The visual's page: Waterfall Plume. A question? Support.