ToolJovia
Data

Two-stage Sankey Diagram Builder

Create an original quantity-proportional source-to-destination flow diagram with exact totals, complete tables and a real SVG or CSV export.

✓ Browser-local processing
Use the complete example schema. Unsupported keys, duplicate JSON keys and fractional/exponent numeric tokens are refused.

Loading tool…

How to use Two-stage Sankey Diagram Builder

Show how your stated quantities move from a source list to a destination list without setting up a plotting library. Every ribbon and node uses the same global amount-to-height scale. The complete tables and exact interval witnesses make the picture reviewable; all inputs remain local.

  1. Enter a title, one unit label and 1–12 source and destination nodes in the vertical order you want. Each node has a unique short ID within its own column and a literal label.
  2. Enter 1–60 source-to-destination rows with positive decimal-string quantities. References must exist, every node must be used, and a pair can appear only once. Combine duplicates or tiny flows yourself rather than letting the chart silently alter them.
  3. Review the exact source and destination totals, source-order flow table and diagram. Download SVG, HTML, CSV or JSON, then inspect the rendering and your original quantities before sharing.

Good to know

  • This profile has exactly two columns, each with 1–12 nodes, and 1–60 flows. Node IDs are 1–16 ASCII letters, digits, underscore, dot or hyphen; ID case and zeros remain significant. The same ID may be used in both columns because source and destination roles are separate. Labels are nonblank well-formed literal text up to 40 UTF-16 code units; title up to 60 and unit label up to 24. No user markup, styles, URLs or expressions are accepted.
  • Flow values are positive plain decimal JSON strings from 0.000001 through 1 billion, with at most six decimal places. No signs, exponents, leading-zero whole parts, zero flows, numeric coercion, unit conversion or inferred balances. Exact BigInt millionth-unit arithmetic preserves all totals. Duplicate pairs, unused nodes, invalid references and unsupported keys reject the complete model.
  • The chart has a 960-unit width, a 480-unit flow region and 18-unit node gaps. A single global proportional scale is used; any ribbon thinner than 0.5 chart units is refused with no artificial minimum-width inflation. Both port columns partition each node exactly into its incident flows. Coordinates serialize to the nearest 0.000001 unit, ties upward; the report retains exact rational geometry witnesses.
  • Entered node order and global flow-row port order are preserved. Crossings may obscure bands but never join them; later source rows paint over earlier ones with fixed transparency. No automatic sorting, crossing minimization, manual dragging, intermediate stages, cyclic networks, reverse flows, optimization or causal/provenance verification is provided. A two-stage table cannot validate a physical energy/material balance or financial records.
  • Short generated S/T IDs appear next to nodes. The standalone SVG includes complete two-line name legends and quantity totals; complete literal IDs and labels also remain in the HTML/CSV/JSON tables. Fixed ordinary glyphs are never stretched with textLength. Font coverage, crowded crossings, small bands, screen size and print pagination need inspection; no accessibility or measurement certification is implied.
  • CSV quotes all cells and apostrophe-prefixes potentially formula-like literal text. Only that CSV representation changes; the report and escaped HTML retain original strings. Remove private labels or quantities yourself before sharing, and review spreadsheet import behavior.
  • Browser-local processing, with no upload, persistence, external resources or code execution. Model JSON is limited to 30,000 characters, 10,000 values and 18 levels. Generated HTML is capped at 750,000 characters, SVG at 50,000, flow CSV at 35,000 and the complete report at 1,000,000. The downloaded artifact must be inspected in the target browser and print setup.

Common questions

Why does the tool refuse a tiny flow instead of drawing it thicker?

Every band must share one quantity-to-height ratio. Inflating just a small band would make the picture imply a larger amount. This profile rejects a band below 0.5 chart units; you can combine categories explicitly or choose a table or another chart. The original quantities are never silently changed.

Are my inputs uploaded or retained?

No. Computation and artifact construction stay in the current browser tab. Downloads are local files; no outside data service, storage or account is required.

Keep going with related tools

All data →