CH-TIM-07 . family TIM
CALENDAR HEATMAP
weekday x week grid, shaded and numbered. Needs:
a count or measure per weekday per week; the weekly rhythm is the message.
patternchange-over-timedensity
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
- workload rhythm: deliveries, tickets, tests per weekday across weeks
- capacity planning around recurring peaks
Do not use when
- non-calendar dimensions (CH-COR-03)
- single week (a column chart does it)
See instead
Alternatives
- CH-COR-03 (generic two-dimension grids)
Rules
- weekday rows in calendar order, always
- values printed in every cell
- single-hue ramp; global normalization
Never do this
- sorting weekdays by value
- rainbow ramps
- cells without values
QA before delivering
- weekday order fixed
- every cell numbered
- title names the rhythm
- source present
Data shape
| title | action title naming the rhythm |
| source | bottom-left always |
| columns | week labels |
| rows | weekday rows {label, values[]} |
Sample data (golden)
{
"title": "Volume builds through July and Thursdays stay the peak day",
"eyebrow": "DELIVERIES . W18-W29",
"source": "Source: sample dataset v1, 2026-07-12",
"columns": [
"W18",
"W19",
"W20",
"W21",
"W22",
"W23",
"W24",
"W25",
"W26",
"W27",
"W28",
"W29"
],
"rows": [
{
"label": "Mon",
"values": [
9,
10,
11,
10,
12,
11,
12,
12,
14,
11,
13,
14
]
},
{
"label": "Tue",
"values": [
14,
13,
15,
16,
15,
17,
16,
18,
16,
17,
19,
20
]
},
{
"label": "Wed",
"values": [
18,
19,
18,
20,
21,
20,
22,
22,
25,
21,
24,
26
]
},
{
"label": "Thu",
"values": [
27,
28,
30,
31,
33,
34,
36,
38,
41,
44,
47,
49
]
},
{
"label": "Fri",
"values": [
12,
13,
12,
14,
14,
15,
15,
16,
15,
18,
17,
18
]
}
]
}