A dedicated Python planner that drives my combi-boiler setpoint on a five-minute cron. It replaces an older Jinja ladder that essentially knew "home" and "away" with a rung model that pre-heats on a fitted thermal response, tracks whether comfort setpoints land on time, and re-fits itself weekly. Water heats on the same boiler all year round; this page is about the heating decisions, not the water.
Live since 2026-09-10 (42 days). Winter 2026-27 is its first real season. The gas-per-heating-degree-day chart below sets it against the two prior winters — physical units (kWh / HDD) rather than cash, because UK gas prices have shifted a lot in those three years and would otherwise swamp the signal.
Gas per heating degree-day
Last winter (2025-26) the heating first came on 10 Nov.
Heating gas per heating degree-day (HDD base 15.5°C). Daily mean temperature is from Open-Meteo for London. The planner subtracts a summer-median hot-water baseline (the combi runs water all year) before dividing by HDD. Lower is better: more heat for less gas when it's equally cold outside.
Current winter still warming up — the planner holds back a saving headline until 100 HDD on the board (usually early November). So far: 46 / 100 HDD.
| Season | Days | HDD | Heating kWh | kWh / HDD |
|---|---|---|---|---|
| Winter 2024-25 | 203 | 1476 | 1,746 | 1.18 |
| Winter 2025-26 | 162 | 977 | 1,095 | 1.12 |
| Winter 2026-27 | 21 | 46 | — | — |
| Pooled baseline (2024-25, 2025-26) | 1.16 | |||
Attribution caveat: any gap between the two baseline winters happened before the planner went live (2026-09-10), so anything learned from that gap is not down to this system.
weather-normalised, not controlled: anything else that changed between winters is in the saving too
Comfort on time (recent weeks)
100% of recent comfort arrivals landed at or above the comfort setpoint on time.
Thermal fit
Latest fit: 2026-10-18, n=6050, R²=0.17.
Fit is weak right now — the fitter needs sustained boiler time to pin down warm and loss rates, and almost nothing has run since the planner went live in a mild September. The numbers below will settle once heating season starts; treat them as provisional.
- Warm rate at 10°C ΔT: 0.54 °C/h
- Loss rate at 10°C ΔT: -0.06 °C/h
- Rate the planner is using: 0.65 °C/h