{"id":1012,"date":"2026-10-23T17:31:15","date_gmt":"2026-10-23T17:31:15","guid":{"rendered":"http:\/\/jfdi-blog-how-to-make-a-waterfall-chart"},"modified":"2026-10-23T17:31:15","modified_gmt":"2026-10-23T17:31:15","slug":"how-to-make-a-waterfall-chart","status":"publish","type":"post","link":"https:\/\/jfdi.pro\/blog\/how-to-make-a-waterfall-chart\/","title":{"rendered":"How to make a waterfall chart from spreadsheet data"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A waterfall chart shows how you get from a starting value to an ending value through a series of gains and losses. Each step is a floating bar, green for increases and red for decreases, and the final bar shows the total. To make one, you need two columns: the step name and the change.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/jfdi.pro\/charts\/\">Make a waterfall chart<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Finance teams call it a <em>bridge chart<\/em>, because it bridges two numbers: last year&#8217;s profit and this year&#8217;s, an opening and closing cash balance, a budget and the actual spend.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The data layout<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the example in the <a href=\"https:\/\/jfdi.pro\/charts\/\">JFDI chart maker<\/a>, a quarter&#8217;s cash movements in \u00a3 thousands:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Item<\/th><th>Change (\u00a3k)<\/th><\/tr><\/thead><tbody><tr><td>Opening balance<\/td><td>120<\/td><\/tr><tr><td>Product sales<\/td><td>84<\/td><\/tr><tr><td>Services<\/td><td>36<\/td><\/tr><tr><td>Salaries<\/td><td>-62<\/td><\/tr><tr><td>Rent<\/td><td>-21<\/td><\/tr><tr><td>Marketing<\/td><td>-15<\/td><\/tr><tr><td>Tax<\/td><td>-12<\/td><\/tr><tr><td>Closing balance<\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Three rules:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>The first row is the starting value.<\/strong><\/li>\n\n\n\n<li><strong>Every other row is a change<\/strong>, positive or negative. Don&#8217;t type running totals.<\/li>\n\n\n\n<li><strong>Leave the value empty where you want a total.<\/strong> Any row with no value is drawn as a total bar showing the running total at that point. That&#8217;s how you get the final bar, and subtotals part-way through.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">In this example the closing balance works out at \u00a3130k: up \u00a310k on the quarter.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/jfdi.pro\/blog\/wp-content\/uploads\/2026\/10\/waterfall-cash.png\" alt=\"A waterfall chart showing an opening balance of 120, rises from sales and services, falls from salaries, rent, marketing and tax, and a closing balance of 130\"\/><figcaption class=\"wp-element-caption\">The chart maker&#8217;s example: \u00a310k more cash at the end of the quarter than at the start.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step by step<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Open the <a href=\"https:\/\/jfdi.pro\/charts\/\">chart maker<\/a><\/strong>, search for <em>waterfall<\/em> and click <strong>Waterfall chart<\/strong>.<\/li>\n\n\n\n<li><strong>Paste your two columns<\/strong> onto the Data step, replacing the example.<\/li>\n\n\n\n<li><strong>Add a total row<\/strong> at the end with no value.<\/li>\n\n\n\n<li><strong>Write a title that says the result<\/strong>, such as &#8220;Cash went up \u00a310k this quarter&#8221;. The chart maker&#8217;s example does exactly this.<\/li>\n\n\n\n<li><strong>Set the units<\/strong> under Format \u203a Numbers (a \u00a3 prefix and k suffix, for example) and turn on value labels.<\/li>\n\n\n\n<li><strong>Export<\/strong> as PNG for slides, SVG or PDF for print, or an embed for a web page.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Showing subtotals<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To show a subtotal part-way through, such as gross profit before overheads, add a row with an empty value and a name like <em>Gross profit<\/em> where it should appear. The bar is drawn from zero to the running total at that point, and the steps after it continue from there.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Getting the order right<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The order of the rows is the order of the story. Common conventions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Income first, then costs<\/strong>, so the chart climbs and then falls.<\/li>\n\n\n\n<li><strong>Biggest changes first<\/strong> within each group, so the reader sees what mattered most.<\/li>\n\n\n\n<li><strong>Group small items<\/strong> into <em>Other<\/em> to keep it to about 10 steps.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">When to use something else<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>To show <strong>where money goes<\/strong> rather than how a total changed, a <a href=\"https:\/\/jfdi.pro\/blog\/how-to-make-a-sankey-diagram\/\">Sankey diagram<\/a> or the chart maker&#8217;s <em>Income statement chart<\/em> (revenue flowing to costs and profit) is clearer.<\/li>\n\n\n\n<li>To compare <strong>several totals side by side<\/strong>, use a column chart.<\/li>\n\n\n\n<li>To show <strong>change over time<\/strong> for one value, use a line chart.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Making one in Excel instead<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Excel has had a built-in waterfall chart since Excel 2016, under Insert \u203a Charts. Its quirk is that totals aren&#8217;t automatic: you right-click a bar and choose <em>Set as total<\/em>. The chart maker does it from the empty cells, works in any browser, and exports SVG and embeds, which Excel doesn&#8217;t.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Related<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/jfdi.pro\/blog\/how-to-make-a-sankey-diagram\/\">How to make a Sankey diagram<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/jfdi.pro\/blog\/which-chart-should-i-use\/\">Which chart should I use?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/jfdi.pro\/help-charts.html\">The chart maker guide<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A waterfall chart shows how a starting value becomes an ending value through a series of increases and decreases. Here&#8217;s the data layout, a worked example, and how to show subtotals.<\/p>\n","protected":false},"author":1,"featured_media":1006,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[20,25,24],"class_list":["post-1012","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-charts","tag-data-visualisation","tag-finance","tag-waterfall-chart"],"_links":{"self":[{"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/posts\/1012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/comments?post=1012"}],"version-history":[{"count":1,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/posts\/1012\/revisions"}],"predecessor-version":[{"id":1052,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/posts\/1012\/revisions\/1052"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/media\/1006"}],"wp:attachment":[{"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/media?parent=1012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/categories?post=1012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfdi.pro\/blog\/wp-json\/wp\/v2\/tags?post=1012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}