CH-MAG-02 . family MAG
PAIRED COLUMN
two columns per category, side by side. Needs:
ordered categories + exactly two comparable series (budget vs actual).
magnitudecomparison
DL-01 AGRAW
DL-02 KATA
DL-03 LOGOS
DL-04 SHILPA
DL-05 OBEYA
DL-06 LEX
DL-07 SAGA
DL-08 SENTINEL
DL-09 ATLAS
DL-10 BASIRA
DL-11 SUTRA
DL-12 NOROSHI
DL-13 MIZAN
DL-14 EVIDENTIA
DL-15 ABRID
DL-16 TELOS
Use when
- two measures per category: budget vs actual, plan vs forecast
- 6 categories or fewer
Do not use when
- more than two series (unreadable; use lines or small multiples)
- long category names (use CH-DST-02)
See instead
Alternatives
- CH-DST-02 (dots when columns crowd)
Rules
- series named by direct labels above the first pair, never a legend
- series_a muted (reference), series_b primary (actual/key)
- bars start at zero
- unit once
Never do this
- three or more series per group
- legends
- truncated baseline
QA before delivering
- exactly two series
- labels above first pair
- baseline at zero
- unit once
- source present
Data shape
| title | action title naming the widest gap |
| source | bottom-left always |
| unit | on first value label |
| x | ordered category labels |
| series | exactly two: [{name, values}, {name, values}]; second is the key |
Sample data (golden)
{
"title": "Q4 spend overran budget by 21 k$, the widest quarterly gap",
"eyebrow": "BUDGET VS ACTUAL . 2025",
"source": "Source: sample dataset v1, 2026-07-12",
"unit": "k$",
"x": [
"Q1",
"Q2",
"Q3",
"Q4"
],
"series": [
{
"name": "Budget",
"values": [
220,
240,
260,
280
]
},
{
"name": "Actual",
"values": [
214,
252,
249,
301
]
}
]
}