Visuals/Pl. XXX

    Sankey

    The Sankey that keeps its shape.

    Colours and order belong to the node name, so a slicer never repaints or reshuffles the chart. Pairs at any depth or a flat table of stages, loops drawn as loops, zeros and negatives reported, free up to 40 nodes. Premium adds what changed between two periods, who dropped off, alluvial over time and small multiples.

    Read the documentationComing soon to Microsoft Marketplace
    Datasheet
    Status
    Coming soon to Microsoft Marketplace
    Price
    $1.99 /user/mo · $19 /user/yr
    Licensing
    Per user, assigned in the Microsoft 365 admin center. Unlicensed viewers see the free tier, never a blocked visual.
    Data
    Computed inside Power BI. No external calls, no API keys, no telemetry.
    Visuals API
    5.11.0
    Accessibility
    Keyboard navigation (one tab stop), screen reader labels, accessible data table, high contrast, reduce motion, non-colour cues
    Languages
    20 languages: Chinese (simplified and traditional), Czech, Danish, Dutch, English, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese (Brazil and Portugal), Slovak, Spanish, Swedish and Turkish
    Data shapes
    Source and Destination pairs at any depth, or a flat table of 2 to 10 stage columns (free up to 3)
    Data volume
    Up to 1,000,000 rows; free up to 40 nodes
    Privacy
    No external calls; one optional privilege (Export Content) for the Premium export button
    Works in
    Power BI Desktop, Service, Embedded
    Plant energy balance as a Sankey in Power BI from Source and Destination pairs: grid electricity, solar roof and natural gas flow through carriers and uses to losses and useful work, with heat recovery drawn as a return arrow
    Pl. XXX  ·  Sankey  ·  Free: an energy balance from Source and Destination pairs, the heat-recovery loop drawn as a return arrow.rendered from the shipped visual
    What it does

    SmartVisuals Sankey draws flows from the data you already have: Source and Destination pairs at any depth, or a flat table with one column per stage. No reshaping, no helper tables and no DAX. Colour, order and position are keyed to the node name, so a filter, a slicer or a refresh never repaints or reshuffles the chart, and the status line under it says what was hidden and why.

    The free version is a complete Sankey up to 40 nodes and three stage columns, with loops, blank stages, labels in your model's format, tracing, cross-filtering, node icons, four themes, keyboard navigation and 20 languages. Premium adds journeys of up to ten stages, comparisons between periods, drop-off nodes, alluvial over time, small multiples, before and after, finance mode, insights and export. Every Premium feature previews in full while you edit, readers without a licence always see the free chart, and the visual makes no external calls.

    Search all visuals

    Free and premium

    Where the line is, exactly.

    Report authors see the full premium set in edit mode, so you can evaluate every feature on your own data before assigning a single licence. Unlicensed viewers always get a working chart.

    Free tierevery viewer
    • Pairs or a flat tableSource and Destination pairs at any depth, or a flat table with up to three stage columns, up to 40 nodes. The visual builds the columns itself.
    • Blank stages and loopsBlank stages skipped, shown as (Blank) so you see where paths stop, or ending the path. Loops (rework, recovery, returns) drawn as arcs, never as duplicated nodes.
    • Correct numbersZero flows are never drawn as 1, negative values are never silently made positive, and a status line says what was hidden and why.
    • Stable colours and conditional formattingColours keyed to the node name, a colour picker per node under its real name, plus conditional formatting (fx) on node and link colours.
    • Node icons and notesAn icon from a built-in set of 20 and a note under any node, picked by node name.
    • Labels in your model's formatValue and percentage labels (of the total, the column or the largest source) with the model's format string and display units. Labels that do not fit hide instead of overlapping.
    • Trace, cross-filter, tooltipsHover or click to trace a node's whole path, cross-filtering, highlight from other visuals, bookmarks, tooltips and report page tooltips.
    • Order you controlSort by fewest crossings, size, A to Z or data order, or drag nodes into a custom order that is saved with the report.
    • LayoutColumn headers, left to right or top to bottom, and a compact mode for small tiles.
    • On-object formatting and style templatesFormat nodes, links, labels and headers on the canvas, and copy a style code from one Sankey into another.
    • Four themesSmartVisuals, Dark, Clean and Slate, each with its own personality, plus report theme colours and high contrast.
    • Accessibility and 20 languagesKeyboard navigation, screen reader labels and an accessible data table of every flow, in 20 languages.
    Premium$1.99 /user/mo · first month free
    • Long journeys, Top N and OtherCustomer journeys with four to ten stage columns, and Top N per column or merging small nodes into Other to keep a big chart readable.
    • Beyond 40 nodesThe complete chart beyond 40 nodes, for cost allocations, budgets and energy balances.
    • Who dropped offDrop-off and entry nodes counted exactly from each path; click one to filter the report to the rows behind it.
    • Volume-share traceThe exact part of a node's volume that reaches every later stage, with its share on each node.
    • Compare two periods or a budgetNew, lost, grown and shrunk flows and a strip of the biggest changes.
    • Alluvial over timeFrom a date or period column, with the same category order in every period.
    • Small multiplesThe same colours and order in every panel, with drilldown through a Split By hierarchy.
    • Before and afterThe same categories on both sides (tiers, segments) with one colour each, and stayed flows muted or hidden.
    • InsightsBottlenecks, unusual flows, drop-off share and the biggest change in plain sentences; click one to trace it.
    • Export to Excel or CSVThe flows and nodes as a workbook or the flows as CSV. Needs the tenant setting that allows downloads from custom visuals.
    • Finance mode and collapseNegative values drawn as loss flows, and a double click collapses everything downstream of a node.

    Why does a Sankey in Power BI change colour when I filter it?

    When a chart hands out colours and positions in the order the rows arrive, a slicer, a refresh or one removed node can give every other node a new colour and a new place, and the reader loses track of what they were following. SmartVisuals Sankey keys colour, order and position to the node name instead. Electricity keeps its colour and its rank whatever you filter, and a node that disappears does not reshuffle the others.

    The same rule holds for the format pane. Node Colors lists your real node names, not Node 1, Node 2, and a colour you pick stays with that name under every filter. Report theme colours are assigned the same way, so switching the report theme does not repaint the chart at random either.

    Which data shape does it need: pairs or a flat table?

    Whichever you already have. A table of pairs (from, to, amount) goes to Source, Destination and Amount, at any depth: the visual works out the columns itself, so a node that is both a destination and a source sits in the middle. A flat table with one column per stage, such as one row per customer with Channel, First order, Second order and Status, goes to Stages (in order) and Amount. There is no unpivoting, no helper table and no DAX.

    Amount is optional: without it every row counts as 1 and the status line says so. Data Shape in the Flow card is Automatic by default; set it to Pairs or Flat Table to be explicit, or to Before and After (Premium) when both sides of a migration hold the same categories.

    How are loops, blank stages, zeros and negative values handled?

    A flow back upstream, such as heat recovery feeding the furnaces again or a returned order going back to the warehouse, is drawn as a thin return arrow with its amount on it, never as a duplicated node. Node totals count it once. Loops > Hide removes them and the status line counts what was hidden.

    A blank stage in a flat table is skipped by default: the ribbon passes between the nodes of that column to the next stage that has a value. Blank Stages can show it as a (Blank) node instead, so you see where paths stop, or end the path there. Zero flows are never drawn as 1, negative amounts are never silently made positive, and the status line under the chart names every flow it left out and why.

    How do I see who dropped off and what changed between two periods?

    These are Premium. Drop-Off and Entry Nodes adds Not continued and Entered here nodes, counted exactly from each row's path rather than as a net difference; clicking one filters the report to the rows behind it, so a table next to the chart lists who dropped off. Trace Exact Volume Shares in Journeys lights only the part of every later flow that actually passed through the node you trace.

    Bind a budget or prior-year measure to Compare With (Premium), or a period column to Period (Premium), and every flow is marked new, lost, grown, shrunk or unchanged, with a strip of the five biggest changes above the chart. With a single stage column, Period draws an alluvial over time instead. Insights (Premium) writes up to five plain sentences, such as the bottleneck where the largest share does not continue, and clicking one traces it.

    How much data can it draw?

    The visual reads up to 1,000,000 rows, fetched in segments of 30,000, and draws once every row has arrived; above that a warning icon says only the first million are shown. The free version draws up to 40 nodes and up to three stage columns. Above 40 nodes it keeps the 39 largest and merges the rest into Other, and with more stage columns readers see the first three with the note "Showing 3 of N stages".

    Premium removes the 40-node cap, draws journeys with up to ten stage columns, and adds Show Top N per Column and Merge Nodes Below % of Column to keep a big chart readable. Charts with more than 300 nodes can be zoomed with the mouse wheel and panned by dragging the background. Small multiples draw up to 24 panels and say how many more there are.

    What do report readers without a licence see?

    Always a working chart. The visual never blocks a report and never adds a watermark. A reader without a licence sees the free chart of the same data: the first three stage columns, the 40-node view, the current period instead of the comparison, one panel instead of small multiples, and Power BI shows its own short licence note. An unconfigured visual uses no Premium feature, so it never raises that note.

    In edit mode every Premium feature renders in full and a status note names the ones in use, so you can try everything on your own data before buying. Premium is $1.99 per user per month or $19 per user per year through Microsoft Marketplace, assigned per user in the Microsoft 365 admin center.

    Use cases

    Where Sankey earns its place.

    An energy balance for the Chicago plant

    The site team keeps a table of pairs: From (Grid electricity, Solar roof, Natural gas, Heat recovery), To (Electricity, Process heat, Furnaces, Paint line, Losses, Useful work) and MWh. From goes to Source, To to Destination and MWh to Amount. The visual works out the four columns itself, draws heat recovery feeding the furnaces again as a return arrow with its amount, and keeps every carrier's colour when the report is filtered to Milwaukee or Atlanta.

    A customer journey from one row per customer

    Sales operations has a flat table with Channel, First order, Second order and Status per customer. The four columns go, in that order, to Stages (in order); Amount stays empty, so each customer counts once. One-order customers have a blank Second order, which is skipped by default, so their ribbon runs straight to Status. Three stage columns are free; the fourth, and Drop-Off and Entry Nodes (Premium) to list who stopped after the first order, are Premium.

    Account tiers before and after a quarter

    Customer success compares each account's tier in Q2 and Q3: Tier Q2 and Tier Q3 go to Stages (in order) and Flow > Data Shape is set to Before and After (Premium). Bronze, Silver, Gold and Platinum keep one colour on both sides and the same rank, and Links > Stayed Flows (Before and After) set to Muted lets the upgrades and churn stand out.

    Where the budget went this year compared with last year

    Finance maps the cost allocation from Chicago HQ to the sites (Toronto, Manchester, Hamburg, Lyon, Valencia) and on to cost types as Source, Destination and Amount, with last year's figures in Compare With (Premium). Every flow is marked grown, shrunk, new or lost, and the strip above the chart lists the five biggest changes; clicking one traces that flow.

    Getting started

    From empty canvas to first chart.

    1. 01

      Add SmartVisuals Sankey to the page. With no fields bound it shows the three ways to bind data.

    2. 02

      Pairs: drag the from column to Source, the to column to Destination and a measure to Amount. Flat table: drag the stage columns, in order, to Stages (in order) and a measure to Amount.

    3. 03

      Check the status line under the chart: it names zero, negative and blank-amount rows and any loops it drew or hid. Set Flow > Blank Stages and Flow > Loops to match your data.

    4. 04

      Pick colours by real node name under Node Colors, a theme under Theme, and labels under Node Labels and Link Labels.

    5. 05

      Optional, Premium: bind Compare With (Premium), Period (Premium) or Split By (Premium), or switch on Drop-Off and Entry Nodes (Premium). Everything previews in full while you edit.

    Get Sankey

    On its way.

    Installation instructions for both paths are on the download page.

    Microsoft Marketplace (recommended)

    The offer is prepared for Microsoft Marketplace and not published yet. This page will link to the listing the moment it is live.

    Coming soon
    Accessibility

    Readable and usable for everyone.

    Tab
    Moves into the chart, which is one tab stop; the first node gets a focus outline. The biggest-changes chips, insight sentences, Data table and Export buttons are separate tab stops.
    Up / Down arrow
    In a left-to-right chart, moves to the node above or below in the same column. In a top-to-bottom chart, follows the largest flow to the previous or next column.
    Left / Right arrow
    In a left-to-right chart, follows the largest flow to the previous or next column (or the nearest node there). In a top-to-bottom chart, moves within the row.
    Home / End
    Jumps to the first or the last node of the current column.
    Letters
    Type-ahead: jumps to the next node whose name starts with the letters typed.
    Enter or Space
    Selects the focused node and traces its paths, cross-filtering the page. Hold Ctrl to add it to the selection.
    Esc
    Clears the selection.
    + / -
    Collapses or expands everything downstream of the focused node when Interaction > Double-Click Collapses Downstream (Premium) is on, and expands or folds an Other node.
    Shift+F10 or the Menu key
    Opens the Power BI context menu for the focused node.
    • Screen readers

      The chart is announced as a Sankey diagram with its number of nodes and flows. The focused node is read with its name, inflow, outflow and share of the total, and each flow as "From to To" with its amount and share of the source. The status line is a live status region, and the biggest-changes strip is a labelled region of buttons.

    • Data table

      The Data table button under the chart (Interaction > Data Table Button, on by default) opens an accessible table of every flow with From, To, Amount and Share of From, largest first. It also lists flows whose labels were hidden for lack of space.

    • Not colour alone

      Loss flows in Finance mode are hatched and drop-off and entry flows dotted. In a comparison, Accessibility > Patterns for States (Non-Color Cue), on by default, gives shrunk flows a dashed edge and new flows a dotted one; lost flows are drawn as a dashed outline, and labels and chips carry the sign of the change. Loops carry a return arrow with their amount, and drop-off nodes are named Not continued and Entered here.

    • High contrast

      In Windows high contrast mode the visual uses the contrast theme's foreground, background and selection colours, draws links in a single colour without gradients, ignores custom label and background colours, and always turns on the state patterns.

    • Reduced motion

      Accessibility > Reduce Motion, or the operating system's reduced-motion setting, turns off the fade when paths are traced and dimmed.

    • Focus outline and text size

      Accessibility > Focus Outline Color and Focus Outline Width set the outline around the focused node (1 to 6 px, 2 by default), and Minimum Text Size (6 to 20 pt, 8 by default) keeps every label at or above that size.

    • Context menu

      Right-clicking a node, a flow or the empty canvas opens the Power BI context menu for it; Shift+F10 does the same for the focused node.

    • Languages

      The format pane, status line, tooltips, insights, data table and screen reader labels are available in 20 languages: Chinese (simplified and traditional), Czech, Danish, Dutch, English, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese (Brazil and Portugal), Slovak, Spanish, Swedish and Turkish.

    Questions

    Asked before you did.

    More questions? See support or write to hello@smartvisuals.io.

    The Sankey is free for pairs at any depth and flat tables with up to three stage columns, up to 40 nodes, with loops, blank stages, labels, tracing, cross-filtering, node icons and notes, themes, accessibility and 20 languages. Premium adds four to ten stage columns, Top N and Other, more than 40 nodes, drop-off and entry nodes, volume-share trace, comparisons, alluvial over time, small multiples, before and after, insights, export and finance mode, for $1.99 per user per month or $19 per user per year through Microsoft Marketplace.

    The visual has been prepared for Microsoft Marketplace and is not published yet. This page will link to the listing once it is live.

    The free chart of the same data, never a blocked or watermarked visual. Journeys show their first three stage columns with the note "Showing 3 of N stages", charts above 40 nodes keep the 39 largest plus Other, comparisons show the current period and small multiples become one chart. Power BI shows its own short licence note once. In edit mode every Premium feature renders in full.

    No. The visual makes no external calls, loads no remote images or fonts and stores nothing outside the report: dragged positions, custom order and colour assignments are saved in the report itself. The only privilege it declares is the optional Export Content for the Premium export button, which saves a file through Power BI's own download service.

    Either Source and Destination for pairs, or two to ten columns in Stages (in order) for a flat table, plus Amount. Without Amount every row counts as 1. Optional fields: Color By to colour nodes by an attribute such as region instead of by name, up to five Tooltips measures, and the Premium wells Compare With (Premium), Period (Premium) and Split By (Premium). If Source, Destination and Stages are all bound, pairs win and the status line says the stages were ignored.

    The visual reads up to 1,000,000 rows in segments of 30,000 and draws once all of them have arrived; above that a warning icon says only the first million are shown. The free version draws up to 40 nodes and three stage columns; Premium removes the node cap and allows up to ten stage columns. Small multiples draw up to 24 panels, Node Colors, Node Icons and Annotations have 30 named slots, and charts with more than 300 nodes can be zoomed and panned.

    Colour, order and position are keyed to the node name, not to the row order. A slicer or a refresh that removes one node leaves every other node with its colour and its place, and a colour you pick under Node Colors stays with that name. Nodes > Color Nodes By can also colour by Column or with One Color.

    Loops are drawn as a thin return arrow with the amount on it (Flow > Loops > Hide removes them). Blank stages are skipped by default; Flow > Blank Stages can show them as a (Blank) node or end the path. Zero flows are hidden, never drawn as 1 (Flow > Show Zero Flows draws them as a hairline), and negative flows are left out and counted in the status line. Finance Mode: Losses for Negative Values (Premium) draws them as loss flows.

    Bind the tier at the start and the tier at the end as two Stages (in order) and set Flow > Data Shape to Before and After (Premium). Each tier gets one colour on both sides and sits at the same rank, and Links > Stayed Flows (Before and After) can mute or hide the accounts that did not move.

    Yes. The chart is one tab stop. In a left-to-right chart Up and Down move within a column and Left and Right follow the largest flow to the previous or next column; Home and End jump within the column, typing letters jumps to a node by name, Enter or Space selects (Ctrl adds), Esc clears and Shift+F10 opens the context menu. Screen readers hear each node's name, inflow, outflow and share, and the Data table button lists every flow as an accessible table.

    20: Chinese (simplified and traditional), Czech, Danish, Dutch, English, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese (Brazil and Portugal), Slovak, Spanish, Swedish and Turkish, for the format pane, the status line, tooltips, insights and the data table.

    Post it on the public board at smartvisuals.io/feedback, where other users can vote and comment, or use the Report a bug block on the support page (smartvisuals.io/support) or email hello@smartvisuals.io. A screenshot and the fields you mapped help most; sample data is welcome but never required.
    Troubleshooting

    When it does not look right.

    Found a bug or missing something? Post it on the requests board or vote for what others asked; the developer answers within two business days.

    The visual only shows a page with three recipes instead of a chart.
    That is the landing page: not enough fields are bound yet. Bind Source and Destination for pairs, at least two columns to Stages (in order) for a flat table, or one stage column plus Period (Premium) for an alluvial over time.
    Some of my flows are missing.
    Read the status line under the chart: it names what was left out. Zero flows are hidden (Flow > Show Zero Flows draws them as a hairline), negative flows are not drawn (Flow > Finance Mode: Losses for Negative Values (Premium) draws them as losses), rows without an amount count as 0, and Flow > Loops set to Hide removes loops. If Source, Destination and Stages are all bound, the stages are ignored.
    The chart stops at 40 nodes and puts the rest into Other.
    The free version draws up to 40 nodes: above that it keeps the 39 largest and merges the rest into Other, and the status line says how many nodes are shown. Premium removes the cap and adds Nodes > Show Top N per Column and Merge Nodes Below % of Column to decide yourself what goes into Other. In edit mode the full chart previews while you build it.
    My readers see three stages and a note "Showing 3 of 6 stages".
    Journeys with more than three stage columns are Premium. Readers without a licence see the free chart of the same data with the first three stage columns, and Power BI shows its own licence note once; the report is never blocked and nothing is watermarked. Assign the reader a Premium licence in the Microsoft 365 admin center to show every stage.
    I cannot find the Export button.
    Turn on Interaction > Export Button (Premium) and choose Export Format. The button appears next to Data table only when the Power BI admin setting that allows downloads from custom visuals is on; in edit mode the status line says when it is off. It is not shown in format mode or with small multiples.
    A node colour or a dragged position did not stick.
    Colours, dragged positions and the custom order are stored in the report, so make the change while editing and then save the report. Node Colors, Node Icons and Annotations have 30 named slots, filled with the largest nodes first; a node beyond that keeps its automatic colour. Interaction > Reset Dragged Positions clears dragged positions, and dragging changes the order within a column only with Nodes > Order Nodes set to Custom (Drag).
    For developers & AI agents

    Add this visual programmatically.

    Use the GUID and data roles below to add Sankey to a Power BI report via PBIR or the Report Authoring agent. Full catalog (JSON)

    GUID available after the visual is published on Microsoft Marketplace.

    RoleDisplay nameKind
    sourceSourceGrouping
    destinationDestinationGrouping
    stagesStages (in order)Grouping
    amountAmountMeasure
    compareAmountCompare With (Premium)Measure
    periodPeriod (Premium)Grouping
    splitSplit By (Premium)Grouping
    colorByColor ByGrouping
    tooltipsTooltipsMeasure
    Missing something?

    Tell us what is missing.

    A feature you need, a bug you hit, a visual that does not exist yet. Every message reaches the person who builds these visuals, and feature requests shape what ships next. We also build visuals to order.

    Also in the family