Charts /
CH-RNK-04
CH-RNK-04 . family RNK
BUMP
rank positions connected across ordered periods. Needs: 3-8 competitors with a full rank (1..n) per period.
rankingchange-over-time
Use when
- rank order changes over time: who overtook whom
- league-table stories where position, not value, is the message
Do not use when
- values matter more than positions (CH-TIM-01)
- more than 8 competitors (lines tangle)
- two periods only (CH-TIM-05 slope)
See instead
Alternatives
- CH-TIM-01 (values matter more than positions)
Rules
- rank 1 at the top; the y axis is position, never value
- every series labeled at both ends with rank and name, never a legend
- one highlight maximum, drawn last
Never do this
- plotting values on the bump y axis
- more than 8 series
- legends
- smoothed curves between periods
QA before delivering
- ranks are full permutations per period
- labels at both ends
- highlight <= 1
- source present
Data shape
| title | action title naming the mover |
| source | bottom-left always |
| x | array of ordered period labels |
| series | array of {name, ranks: [1..n per period], highlight?} |
Sample data (golden)
{
"title": "Casta moved from third to first in two quarters",
"eyebrow": "SUPPLIER RANKING",
"source": "Source: supplier scorecards, Q4",
"x": [
"Q1",
"Q2",
"Q3",
"Q4"
],
"series": [
{
"name": "Alpha",
"ranks": [
1,
1,
2,
3
]
},
{
"name": "Bravo",
"ranks": [
2,
3,
3,
2
]
},
{
"name": "Casta",
"ranks": [
3,
2,
1,
1
],
"highlight": true
},
{
"name": "Delta",
"ranks": [
4,
5,
4,
5
]
},
{
"name": "Echo",
"ranks": [
5,
4,
5,
4
]
}
]
}