Blog
Charts from data

CSV to waterfall chart online

A waterfall chart shows how you got from one number to another. Each bar floats at the height where the previous one finished, so the picture reads as a running balance: revenue comes in, costs pull it down, and the last bar drops to the floor to show what is left.

Your data never leaves this device

Your data

Paste a table straight from Excel or Google Sheets, or drop a CSV file. Nothing is uploaded anywhere — the whole calculation runs inside this browser tab.

CSV, TSV or plain text. Files saved in windows-1251 are detected and re-read automatically, so Cyrillic headers do not turn into garbage.

Parsing options

Columns

Result

The drawing library is downloaded only when you press the button, and only on this page.

This page has no server side at all. The table you paste is parsed by JavaScript inside your own browser, the chart is drawn on a canvas element on your machine, and the export file is assembled locally. Nothing is uploaded, stored or written to any log. You can disconnect from the network after the page has loaded and everything will still work — which is the simplest way to verify the claim yourself.

Facts and limits of this method

Best for Explaining the difference between two figures through a sequence of changes
Input format Signed changes, not absolute levels: positives add, negatives subtract
Total bar Added automatically at the end, drawn from zero in the brand colour
Colour coding Green for increases, red for decreases, blue for the total
Step limit Around 12; beyond that the running balance becomes hard to follow
Output PNG at 2× scale, plus CSV with each step and the running balance

When it misleads you

How it is calculated

Your value column is read as a list of signed changes. The first bar starts at zero, and each subsequent bar starts where the previous one ended, so the top edge of the last change bar is the running balance at that point.

A final bar is appended automatically, drawn from zero up to the accumulated total. It is the only bar besides the first that is anchored to the axis, and it is coloured differently to mark that it is a result rather than a step.

Bars are coloured by sign: increases green, decreases red, the total blue. Because colour alone is not a reliable signal for every reader, the direction is also visible from the geometry — a decrease bar hangs below the previous top edge.

The exported CSV contains three columns: the step name, its signed change and the running balance after it. That balance column is the number people usually want and rarely get from a chart image.

Questions and answers

Should I enter absolute values or changes?

Changes, with signs. Revenue as a positive, each cost as a negative. If you enter absolute levels the chart will stack them into a meaningless growing total instead of a bridge.

Where does the final total bar come from?

It is calculated, not read from your data: it is the sum of all the changes you entered. If it does not match your expected result, the discrepancy is in the input rather than in the chart.

Does the order of steps matter?

Visually, enormously. The arithmetic is the same in any order, but the story is not — whichever step pushes the balance below zero looks like the culprit. Choose the order intentionally and say why.

Can I show a step that both adds and subtracts?

Not in one bar. Split it into two steps, one positive and one negative, which is also clearer for the reader.

Is my data uploaded?

No. Everything is computed in your browser, including the running balance.

Related tools

All tools