Skip to content

Bullet chart

Each number against its target.

Definition · Updated Nov 2, 2026

A bullet chart shows a measure as a bar, its target as a tick and poor-to-good ranges as bands behind. Several bullets stack into one compact card. Use it for revenue, orders and rates you track against a plan.

Pay once. Every update included.

Live preview

Q3 goalsQ3 goals, actual against target: revenue $428K of $500K, orders 6,120 of 7,000, avg order $70 of $68, repeat buyers 31% of 35%.RevenueUSD$428KOF $500KOrdersCOUNT6,120OF 7,000Avg orderUSD$70OF $68Repeat buyersSHARE31%OF 35%ACTUALTARGETRANGES
Q3 goals
GoalUnitActualTarget
RevenueUsd$428K$500K
OrdersCount6,1207,000
Avg orderUsd$70$68
Repeat buyersShare31%35%

Sample data: four quarter-to-date measures, revenue $428K of $500K, orders 6,120 of 7,000

Size
Legend
Data shape
Actual, target and ranges per measure
Good for
KPIs against plan, scorecards
Avoid when
There is no target
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

008 / Bullet

chart/008-bullet
plot · bullets
Layer
band 3 · revenue
Type
Rectangle
Size
142 × 20
Fill
data/idle
Group
Marks · 16

Layers

008 / Bullet

chart/008-bullet
plot · bullets
Layer
band 3 · revenue
Type
Rectangle
Size
26 × 20
Fill
data/idle
Group
Marks · 16

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

Labels1616

Marks1616

Height212 px246 px

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

When to use

Actual against plan.

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

Does each measure have a target?

No target, just amounts.

Yes: Keep the bullet

Are there several measures?

One measure, one ring.

Yes: Keep the bullet

Do the ranges matter?

Only the share of a limit.

Yes: Keep the bullet

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/008-bullet

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/bullet
bullet.tsx
import { Bullet } from "@/components/chartory/bullet"import { quarterKpis } from "./quarter-kpis"export function QuarterKpis() {  return (    <Bullet      data={quarterKpis}      size="m"      legend={true}    />  )}

Hearth widget

Bullet 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

Bullet chart questions.

What people ask before they put a bullet in a dashboard.

Something else?

hello@usechartory.com
  • The ranges, from poor to good. The bar is the actual, the tick is the target, and the legend names all three.

Related types

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

Same family

Compare items

Rank, gap and change between products, teams or regions.