Skip to content
DocsChartsStock sawtoothLast updated Nov 2, 2026

Stock sawtooth

Stock on hand, drawn down and refilled. Sample data: units on hand, Aug 11 to Oct 9, reorder point 300, one stockout.

Open in
Stock levelUnits on hand over 60 days from 11 Aug to 9 Oct, reorder point 300: 4 deliveries, one stockout of 3 days, 474 units at the end.1,2008004000REORDER 300AUG 11SEP 10OCT 9UNITS ON HANDREORDER POINTSTOCKOUT
Stock level
DayUnitsDelivery
11 Aug862
12 Aug804
13 Aug760
14 Aug717
15 Aug674
16 Aug614
17 Aug552
18 Aug484
19 Aug445
20 Aug386
21 Aug346
22 Aug306
23 Aug259
24 Aug197
25 Aug149
26 Aug84
27 Aug735yes
28 Aug678
29 Aug638
30 Aug588
31 Aug526
1 Sept469
2 Sept410
3 Sept361
4 Sept307
5 Sept249
6 Sept198
7 Sept131
8 Sept72
9 Sept710yes
10 Sept650
11 Sept565
12 Sept494
13 Sept406
14 Sept324
15 Sept243
16 Sept173
17 Sept102
18 Sept31
19 Sept0
20 Sept0
21 Sept0
22 Sept646yes
23 Sept607
24 Sept546
25 Sept481
26 Sept438
27 Sept380
28 Sept339
29 Sept291
30 Sept250
1 Oct191
2 Oct145
3 Oct799yes
4 Oct758
5 Oct705
6 Oct655
7 Oct596
8 Oct539
9 Oct474
Stock levelUnits on hand over 60 days from 11 Aug to 9 Oct, reorder point 300: 4 deliveries, one stockout of 3 days, 474 units at the end.1,2008004000REORDER 300AUG 11SEP 10OCT 9UNITS ON HANDREORDER POINTSTOCKOUT
Stock level
DayUnitsDelivery
11 Aug862
12 Aug804
13 Aug760
14 Aug717
15 Aug674
16 Aug614
17 Aug552
18 Aug484
19 Aug445
20 Aug386
21 Aug346
22 Aug306
23 Aug259
24 Aug197
25 Aug149
26 Aug84
27 Aug735yes
28 Aug678
29 Aug638
30 Aug588
31 Aug526
1 Sept469
2 Sept410
3 Sept361
4 Sept307
5 Sept249
6 Sept198
7 Sept131
8 Sept72
9 Sept710yes
10 Sept650
11 Sept565
12 Sept494
13 Sept406
14 Sept324
15 Sept243
16 Sept173
17 Sept102
18 Sept31
19 Sept0
20 Sept0
21 Sept0
22 Sept646yes
23 Sept607
24 Sept546
25 Sept481
26 Sept438
27 Sept380
28 Sept339
29 Sept291
30 Sept250
1 Oct191
2 Oct145
3 Oct799yes
4 Oct758
5 Oct705
6 Oct655
7 Oct596
8 Oct539
9 Oct474

Installation

  1. 1

    Set up the registry once

    This chart is free in Hearth and MIT licensed: no token. Add @chartory to components.json once (the URL alone, no headers), or skip this when another chart is already installed.

    Installation guide
  2. 2

    Add the chart

    One command adds the Stock sawtooth component to your project.

    npx shadcn add @chartory/stock-sawtooth
  3. 3

    Use it

    Pass your rows. The props are the Figma properties.

    usage.tsx
    import { StockSawtooth }  from "@/components/chartory/stock-sawtooth"<StockSawtooth  data={unitsOnHand}  size="m"  legend/>

Props

<StockSawtooth>

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.StockSawtoothDataRequired
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
color: The data colour of the primary marks (data/primary)."cat-1" | "cat-2" | "cat-3" | "cat-4""cat-1"

StockSawtoothData

The data prop: one object for the whole chart.

PropTypeDefault
vals: The values, in order.number[]Required
reorder: The reorder point.numberRequired
max: The top of the value scale.numberRequired
ticks: The axis tick labels.string[]Required
arrivals: Where stock arrives.number[]Required
xl: The x axis labels, by index.Record<number, string>Required

The data as a JSON Schema: schemas/stock-sawtooth.json

Stock sawtooth chart: a React and Figma chart in four sizes

What does a stock sawtooth chart show?

A stock sawtooth chart shows units on hand falling with sales and jumping back with each delivery, with a reorder line across. Stockouts and late reorders stand out at once. Use it for inventory, spare parts and any level that is used up and refilled.

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 Stock sawtooth component?

It is one <StockSawtooth> component. Its props are the Figma properties with the same names and values, and the props table above lists them. The data is units on hand over time, a reorder point.

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?

  • Is there a level to stay above? Yes means the stock sawtooth fits.
  • Does it get refilled? Yes means the stock sawtooth fits.
  • Is it one item? Yes means the stock sawtooth fits.

When does another type fit better?

  • Just the trend. Use Line chart instead.
  • It only burns down. Use Burn-down instead.
  • Many items at once. Use Horizontal bars instead.

Stock sawtooth 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.