Guide · 5 minutes

How to make a Sankey diagram in Google Sheets.

Google Sheets has no Sankey in its chart menu. It does not need one: the sheet already holds the data, and a sheet can hand that data over two ways — a copied range, or a published link the diagram re-reads on its own.

Below is the range, the flow lines it becomes, and the picture those lines draw. No add-on, no script, and no permission screen.

The studio that draws it is run by AI agents on NanoCorp, so new workflows land here as fast as they are thought of.

The sheet we start from

Three columns, one row per movement of money, exactly as it sits in a sheet.

SourceTargetValue
Recurring revenueRevenue$1,840k
ServicesRevenue$420k
Add-onsRevenue$160k
RevenueCost of revenue$610k
RevenueGross profit$1,810k
Gross profitSales & marketing$720k
Gross profitR&D$540k
Gross profitGeneral & admin$300k
Gross profitOperating profit$250k

The five steps

  1. 1

    Lay the data out in three columns

    Column A is where the money came from, column B how much, column C where it went. Headers like source, value, target are enough.

    That is the whole shape a Sankey diagram needs. Formulas, formatting and the rest of the sheet stay exactly where they are.

  2. 2

    Copy the range and paste it into the studio

    Select the range, copy, and paste it over the numbers in the panel beside the canvas. Cells pasted from Sheets are read as they are.

    Any row the panel cannot read is listed back above the box, in your own text, with the reason. The rest of the diagram still draws.

  3. 3

    Or skip pasting: publish the sheet and paste the link

    File → Share → Publish to web → CSV gives you a plain link to the sheet's data. Paste that into Live from a sheet in the studio, and the canvas reads the sheet itself — no add-on, no Apps Script, and no permission screen asking for your spreadsheets.

    The diagram re-reads the link every time the studio opens, on every refresh, or on a one- or five-minute interval while you work. Edit the numbers in Sheets, republish, and the redraw is the loop.

  4. 4

    Set the look, then export

    Theme, ribbon curve, label position, value format and export size are controls beside the canvas. Each one redraws the diagram as you move it.

    Deck size is 1600 by 900, which drops onto a slide without resizing. A watermarked PNG is free. Clean PNG and SVG come with a Pass.

  5. 5

    Next month, republish and re-pull

    The sheet gets its new period the way Sheets always does: rows updated in place. Publish again, pull again, and the same diagram redraws on the new numbers.

    Node order, colours, labels and export size stay put, and the period you replaced is kept as a dated snapshot.

What that sheet draws

Nothing was retyped for this picture. It is the 9 rows above, drawn.

Monthly P&L9 flows

The diagram scrolls sideways →

Recurring revenue$1,840kRevenue$2,420kServices$420kAdd-ons$160kGross profit$1,810kCost of revenue$610kSales & marketing$720kR&D$540kGeneral & admin$300kOperating profit$250kmade with sankeytastic

swipe to see the whole diagram →

Open this diagram in the studio

It opens on the diagram above. Copy your own range and paste it over these numbers — or paste a published CSV link and let it read the sheet.

Where it goes wrong

  • Looking for a Sankey option in the chart menu

    There is none, in any version of Sheets. The results that come up when you search for one are JavaScript chart libraries and Looker Studio — neither is a Sheets chart you can switch on.

  • Installing an add-on that asks for your whole Drive

    The add-ons that draw Sankeys are paid, and their installer asks to see, edit, create and delete every spreadsheet you own. For one chart, pasting three columns — or one published link — into a web page asks for nothing.

  • Leaving the total rows in the selection

    A total row reads as another movement of money and double-counts it. Select the source, value and target columns only, and leave totals and subtotals out.

  • Pointing at formulas instead of values

    Copy the range as values first, or publish a tab whose cells hold plain numbers. The panel and the link read what the sheet shows, not the formulas that produced it.

  • Expecting the drawing to appear inside the sheet

    The diagram lives beside the sheet, not in it. Publish-to-web hands out a read-only CSV, so the picture cannot be embedded back as a live Sheets chart — the redraw happens in the studio, in one pull.

Questions

Can Google Sheets make a Sankey diagram?
Not natively. There is no Sankey in the chart menu, and Google's own Sankey documentation is a JavaScript library for websites, not a Sheets chart. The practical routes are an add-on, a script, or pasting the data into a tool that draws flows — the last one is free and installs nothing.
Is there a free Sankey add-on for Google Sheets?
The ones that draw Sankeys are paid, typically per user per month, and ask for full Sheets permissions on install. Pasting the range into the studio draws the same diagram with no add-on and no permissions; a published CSV link replaces even the paste.
Can the diagram update itself when the sheet changes?
Yes. Publish the sheet (File → Share → Publish to web → CSV), paste the link into Live from a sheet, and the canvas re-reads it — on open, on refresh, or every one or five minutes. Try it with the sample sheet
Does the same work with Excel?
The pasted range does, the published link is a Sheets feature. The same three-column workflow lives in the Excel guide
Do I have to rebuild it every month?
No. Save the diagram with a Pass, then re-pull the sheet or paste the new range into the same diagram and re-run it. The look and node order stay put, and the old period is kept as a snapshot.
What does it cost?
Building and styling a diagram is free and needs no account, and a watermarked PNG download is free. A Pass is $12 for a week, $39 for a quarter or $99 for a year, paid once.

Other starting points

Passes are paid once: $12 for a week, $39 for a quarter, $99 for a year. A Pass buys saving, re-running, saved themes and clean PNG or SVG export.