Charts /
CH-TIM-13
CH-TIM-13 . family TIM
STEP
step line (values hold between changes). Needs: ordered periods + series whose value HOLDS until it changes (rates, stock, policy).
change-over-timetrend
Use when
- levels that hold between discrete changes: stock, rates, headcount, policies
- the timing of the change is the message
Do not use when
- continuously varying measures (use CH-TIM-01)
- cumulative progress (CH-TIM-02)
See instead
- values change continuously: CH-TIM-01
Alternatives
- CH-TIM-01 (continuous change)
Rules
- horizontal-then-vertical interpolation; the renderer draws the hold explicitly
- y starts at zero
- series labeled at line ends, never a legend
- annotation marks the change that matters
Never do this
- smooth or diagonal interpolation of held values (invents data)
- markers on every step
- legends
QA before delivering
- step interpolation verified
- y at zero
- no legend
- title states the level change with a number
- source present
Data shape
| title | action title with a number |
| eyebrow | caps, DL chrome only |
| source | bottom-left always |
| unit | on top tick |
| x | ordered periods |
| series | one key + optional context, values hold between points |
| annotation | optional, anchored at a data point |
Sample data (golden)
{
"title": "Stock held at 41 units for three weeks after the June draw-down",
"eyebrow": "WAREHOUSE STOCK . W20-W28",
"source": "Source: sample dataset v1, 2026-07-12",
"unit": " units",
"x": [
"W20",
"W21",
"W22",
"W23",
"W24",
"W25",
"W26",
"W27",
"W28"
],
"series": [
{
"name": "Stock",
"values": [
64,
64,
64,
58,
58,
49,
41,
41,
41
],
"role": "key"
}
],
"annotation": {
"text": "June draw-down: -23 in three weeks",
"series": "Stock",
"index": 5,
"tx": 470,
"ty": 200,
"anchor": "start"
}
}