Skip to content

bullet ​

Use to show actual against target for several labels on one scale: quota, budget, SLA. One row per label: x label, y actual. Optional target: names a column of targets; an empty target cell draws no target. Optional min / max fix the scale; a value past them is drawn to the edge and still labeled with its number. Keep input row order. A repeated label → E_DUP_KEY. A target that is not a number → E_BAD_NUMBER. A target column that does not exist → E_UNKNOWN_FIELD.

Do not use for a single reading (gauge) or for parts of a whole (bar stacked, pie). No qualitative bands: put thresholds in the target.

x label · y number (actual) · series ignored

Rules. Keep row order. One row per label on one shared scale. Optional target column and min/max. A value past min/max is drawn to the edge and still labeled with its number. Every actual is required. A repeated label → E_DUP_KEY.

Example ​

chart
markvis: 2
type: bullet
title: Only West is short of its Q3 quota
unit: USD k
x: region
y: booked
target: quota

region,booked,quota
North,420,400
South,365,350
East,512,480
West,288,360
Only West is short of its Q3 quota bullet chart. Only West is short of its Q3 quota. x=region. y=booked. unit=USD k. 4 rows. Only West is short of its Q3 quotaOnly West is short of its Q3 quota · USD k NorthNorth SouthSouth EastEast WestWest 0 200 400 600 booked quota 420 / 400 365 / 350 512 / 480 288 / 360
Only West is short of its Q3 quota
regionbookedquota
North420400
South365350
East512480
West288360

When the block is wrong ​

The rows stay, with one line that names the error.

chart
markvis: 2
type: bullet
title: Target is text
x: region
y: booked
target: quota

region,booked,quota
North,420,four hundred
regionbookedquota
North420four hundred

E_BAD_NUMBER: row 1, column quota: "four hundred" is not a number

Generated from packages/types/bullet/ and the type's row in SPEC.md.

0.0.13 lives under legacy/