// Example A — active hot deal · 7 contiguous points, rising
// trend day = {d, t, pos, p} — p is TOOLTIP-DISPLAY-ONLY; pixels never derive from p
{
"tier": "hot", "tier-source": "pClose via service buckets (D1)",
"updatedAt": "2026-07-09T13:05Z",
"trend": [
{"d":"2026-07-03", "t":"cool", "pos":0.3, "p":0.09}, // cool band: 0.40 + 0.3×0.20 → alpha 0.46
{"d":"2026-07-04", "t":"cool", "pos":0.8, "p":0.14}, // cool → 0.56
{"d":"2026-07-05", "t":"warm", "pos":0.2, "p":0.16}, // warm band: 0.65 + 0.2×0.20 → 0.69
{"d":"2026-07-06", "t":"warm", "pos":0.7, "p":0.22}, // warm → 0.79
{"d":"2026-07-07", "t":"hot", "pos":0.1, "p":0.27}, // hot band: 0.90 + 0.1×0.10 → 0.91
{"d":"2026-07-08", "t":"hot", "pos":0.5, "p":0.30}, // hot → 0.95
{"d":"2026-07-09", "t":"hot", "pos":0.9, "p":0.31} // hot → 0.99 (today)
]
}
Elise Tran22mHot
7 contiguous dates → 7 filled squares; each day's alpha from ITS OWN tier's band; hue = current tier (hot).
// Example B — cool tier · going quiet (2 missing days)
{
"tier": "cool",
"updatedAt": "2026-07-07T02:00Z",
"trend": [
{"d":"2026-07-03", "t":"warm", "pos":0.5, "p":0.24}, // warm → 0.75
{"d":"2026-07-04", "t":"cool", "pos":0.6, "p":0.19}, // cool → 0.52
// 2026-07-05 ABSENT → empty gray-06 square
{"d":"2026-07-06", "t":"cool", "pos":0.2, "p":0.11}, // cool → 0.48
{"d":"2026-07-07", "t":"cold", "pos":0.7, "p":0.06} // cold band: 0.20 + 0.7×0.15 → 0.31
// 07-08, 07-09 ABSENT → empty, empty (going quiet)
]
}
Marcus Lee6dCool
Missing dates render as empty squares; the two empty squares at the RIGHT edge are the going-quiet warning.