Skip to content

Stock sawtooth chart

Stock on hand, drawn down and refilled.

Definition · Updated Nov 2, 2026

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.

Pay once. Every update included.

Live preview

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

Sample data: units on hand, Aug 11 to Oct 9, reorder point 300, one stockout

Size
Legend
Data shape
Units on hand over time, a reorder point
Good for
Inventory, spare parts, consumables
Avoid when
The level never runs down
Sizes
XS, S, M and L, re-laid out from the data

Anatomy

Inspect it like the Figma file.

The same layers, names and tokens as the component. Select one to read its size, fill and style.

Layers

084 / Stock sawtooth

chart/084-sawtooth-stock
plot · sawtooth
Layer
stockout
Type
Rectangle
Size
37 × 231
Fill
status/danger
Group
Marks · 8

Layers

084 / Stock sawtooth

chart/084-sawtooth-stock
plot · sawtooth
Layer
stockout
Type
Rectangle
Size
12 × 99
Fill
status/danger
Group
Marks · 8

Sizes

Re-laid out, never scaled.

The same data at XS, S, M and L. Every size is redrawn from the data, so text and line weights never shrink.

M against S

Width360 px480 px

Plot328 px440 px

Labels88

Marks88

Height212 px246 px

Same tokens at every size: text styles, 1 px lines and mark radius stay put.

When to use

Used up, refilled.

Three signs it fits, and three signs another type fits better.

Is there a level to stay above?

Just the trend.

Yes: Keep the stock sawtooth

Does it get refilled?

It only burns down.

Yes: Keep the stock sawtooth

Is it one item?

Many items at once.

Yes: Keep the stock sawtooth

Code and Figma

One name in Figma and in code.

Every Figma property is a prop with the same name and values. One command installs it.

Figma

chart/084-sawtooth-stock

size
legend
Property = propValuesDefault
size"xs" · "s" · "m" · "l""xs"
legendtrue · falsetrue
color"cat-1" · "cat-2" · "cat-3" · "cat-4""cat-1"
npx shadcn add @chartory/stock-sawtooth
stock-sawtooth.tsx
import { StockSawtooth } from "@/components/chartory/stock-sawtooth"import { unitsOnHand } from "./units-on-hand"export function UnitsOnHand() {  return (    <StockSawtooth      data={unitsOnHand}      size="m"      legend={true}    />  )}

Hearth widget

Stock sawtooth as a widget.

The chart in a Hearth card with a hero number and two blocks. One token set, light and dark.

Code
Get the code

EmberPreset

ChartoryDefault preset

Pick the blocks, the size and the preset for your own widget.

Read the Hearth widget docs

FAQ

Stock sawtooth questions.

What people ask before they put a stock sawtooth in a dashboard.

Something else?

hello@usechartory.com
  • Any stretch at zero is marked in the danger colour, and the legend names it (Stockout), so the sample's one stockout is easy to find.

Related types

The same question, a different shape of answer. Every type ships in Figma and in code.

Same family

Change over time

Trends, levels and seasons across days, months or years.