Skip to content
DocsChartsSpan waterfallLast updated Nov 2, 2026

Span waterfall

One run's steps, and where the time went. Sample data: one 9.1 s run, plan 0.8 s, six fetches 6.1 s, write 1.7 s, 4.4 s after the fix.

Spans of one run, now and after the fixThe run takes 9.1 s; its 6 fetches run one after another for 6.1 s. Run in parallel after the fix, the run takes 4.4 s.RUNPLANFETCH 1–6RANKWRITE0 S2 S4 S6 S8 S10 S9.1 s0.8 s6 × 6.1 s0.5 s1.7 sAFTER FIX 4.4 SNOW 9.1 SSPANSLOW SPANAFTER FIX
Spans of one run, now and after the fix
SpanStartDurationStart after fixDuration after fix
RUN0.0 s9.1 s
PLAN0.0 s0.8 s
FETCH 10.8 s1.1 s0.9 s1.1 s
FETCH 21.9 s0.9 s0.9 s0.9 s
FETCH 32.8 s1.0 s0.9 s1.0 s
FETCH 43.8 s1.2 s0.9 s1.2 s
FETCH 55.0 s0.8 s0.9 s0.8 s
FETCH 65.8 s1.1 s0.9 s1.1 s
RANK6.9 s0.5 s2.1 s0.5 s
WRITE7.4 s1.7 s2.6 s1.7 s
Spans of one run, now and after the fixThe run takes 9.1 s; its 6 fetches run one after another for 6.1 s. Run in parallel after the fix, the run takes 4.4 s.RUNPLANFETCH 1–6RANKWRITE0 S4 S6 S10 S9.1 s0.8 s6 × 6.1 s0.5 s1.7 sAFTER FIX 4.4 SNOW 9.1 SSPANSLOW SPANAFTER FIX
Spans of one run, now and after the fix
SpanStartDurationStart after fixDuration after fix
RUN0.0 s9.1 s
PLAN0.0 s0.8 s
FETCH 10.8 s1.1 s0.9 s1.1 s
FETCH 21.9 s0.9 s0.9 s0.9 s
FETCH 32.8 s1.0 s0.9 s1.0 s
FETCH 43.8 s1.2 s0.9 s1.2 s
FETCH 55.0 s0.8 s0.9 s0.8 s
FETCH 65.8 s1.1 s0.9 s1.1 s
RANK6.9 s0.5 s2.1 s0.5 s
WRITE7.4 s1.7 s2.6 s1.7 s

Installation

  1. 1

    Set up the registry once

    Your token in .env and @chartory in components.json. Skip this when another chart is already installed.

    Installation guide
  2. 2

    Add the chart

    One command adds the Span waterfall component to your project.

    npx shadcn add @chartory/span-waterfall
  3. 3

    Use it

    Pass your rows. The props are the Figma properties.

    usage.tsx
    import { SpanWaterfall }  from "@/components/chartory/span-waterfall"<SpanWaterfall  data={runSpans}  size="m"  legend/>

Props

<SpanWaterfall>

Every prop but data is a Figma property with the same name and values.

PropTypeDefault
data: The chart's data. The tables below list every field.SpanWaterfallDataRequired
size: The size class. Each one is laid out again from the data."xs" | "s" | "m" | "l""m"
legend: Shows the legend row under the plot.booleantrue

SpanWaterfallData

The data prop: one object for the whole chart.

PropTypeDefault
max: The top of the value scale.numberRequired
ticks: The axis ticks: [value, label] pairs.[number, string][]Required
rows: One entry per row.SpanWaterfallRow[]Required
now: Now: where it is and its label.SpanWaterfallNowRequired
fix: The value after the fix, and its label.SpanWaterfallFixRequired

SpanWaterfallRow

One object per entry in rows.

PropTypeDefault
label: The name shown on the chart.stringRequired
group?: The group the row belongs to; rows in one group can merge.string—
s: Where the span starts.numberRequired
d: The span's duration.numberRequired
tok: The colour token, e.g. "data/primary".stringRequired
ghost?: The span before the fix: [start, duration].[number, number]—

SpanWaterfallNow

The now object.

PropTypeDefault
v: The value.numberRequired
text: The label as shown.stringRequired

SpanWaterfallFix

The fix object.

PropTypeDefault
v: The value.numberRequired
text: The label as shown.stringRequired

The data as a JSON Schema: schemas/span-waterfall.json

Span waterfall: a React and Figma chart in four sizes

What does a span waterfall show?

A span waterfall draws each step of one run as a bar starting where it began, so the slow step stands out. A second marker can show the run time after a fix. Use it for agent runs, traces and request timings.

Chartory ships it as a Figma component and a React component with the same name. The code installs from the shadcn registry with one command and lands in your project as a file you own.

What is the Span waterfall component?

It is one <SpanWaterfall> component. Its props are the Figma properties with the same names and values, and the props table above lists them. The data is steps with a start and a length.

Sizes XS, S, M and L re-lay the chart out from the data instead of scaling it, so labels stay readable at every size.

When should I use it?

  • Are the steps in one flat list? Yes means the span waterfall fits.
  • Is it one run? Yes means the span waterfall fits.
  • Is it time, not money? Yes means the span waterfall fits.

When does another type fit better?

  • Steps nested in steps. Use Flame graph instead.
  • Many runs. Use Latency field instead.
  • A cash walk. Use Waterfall instead.

Span waterfall questions

Installing, data, Figma and plans.

  • Yes. It installs through the shadcn registry with the shadcn CLI, and the file lands in your project.

Stay in the loop

New charts, by email.

Get an email when new chart types and releases ship.

Unsubscribe any time.