CH-COR-03 . family COR
XY HEATMAP
two ordered dimensions x one measure, cells shaded and numbered. Needs:
grid of values over two ordered dimensions (weekday x week, hour x day).
correlationpatterndensity
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
- patterns across two ordered dimensions: weekday x week, hour x day, section x month
- dense grids where a scatter would be unreadable
Do not use when
- entity rows with mixed-scale metrics (use CH-TAB-02, column-normalized)
- exact value lookup as the primary job (a plain table wins)
- diverging data around a midpoint (needs a diverging scale entry, planned)
See instead
Alternatives
- CH-TAB-02 (heatmap table for entity rows)
- CH-TIM-07 (calendar heatmap, planned)
Rules
- single-hue ramp from cell_low to cell_high (primary); never a rainbow
- the value is printed in every cell; color alone never carries the number
- cell text flips to the low color above 55% intensity, deterministically
- both dimensions keep their natural order
- global normalization: one scale for the whole grid
Never do this
- rainbow color scales
- cells without printed values
- sorting an ordered dimension by value
- diverging data on a sequential ramp
QA before delivering
- every cell prints its value
- single-hue ramp
- dimensions in natural order
- title names the pattern
- source line present bottom-left
Data shape
| title | string, action title naming the pattern |
| eyebrow | string caps, rendered only when the DL chrome asks for it |
| source | string, rendered bottom-left, always |
| columns | ordered dimension labels (x) |
| rows | array of {label, values[] same length as columns}, ordered dimension (y) |
Sample data (golden)
{
"title": "Thursday is the heaviest delivery day in all four weeks",
"eyebrow": "DELIVERIES . WEEKS 25-28",
"source": "Source: sample dataset v1, 2026-07-12",
"columns": [
"W25",
"W26",
"W27",
"W28"
],
"rows": [
{
"label": "Mon",
"values": [
12,
14,
11,
13
]
},
{
"label": "Tue",
"values": [
18,
16,
17,
19
]
},
{
"label": "Wed",
"values": [
22,
25,
21,
24
]
},
{
"label": "Thu",
"values": [
38,
41,
44,
47
]
},
{
"label": "Fri",
"values": [
16,
15,
18,
17
]
}
]
}