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| region | booked | quota |
|---|---|---|
| North | 420 | 400 |
| South | 365 | 350 |
| East | 512 | 480 |
| West | 288 | 360 |
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| region | booked | quota |
|---|---|---|
| North | 420 | four 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.