Rate unthermostated room heaters via Table 4e Group 6 code 2601 🟩

#1624: Wythenshawe 149→151 computed. 500767954156 lands within 0.5;
500797465814 is a −8.8 tail entry — MAE ceiling re-baselined 0.67→0.72
per the coverage-growth convention (within-0.5 floor 0.76 holds).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Daniel Roth 2026-07-16 16:07:36 +00:00
parent 8b242b7da8
commit 01cacc579a
2 changed files with 10 additions and 2 deletions

View file

@ -46,8 +46,13 @@ _MANIFEST_PATH = _FIXTURES_DIR / "manifest.json"
# headroom; treat them as a regression tripwire, NOT a cohort accuracy figure,
# and re-baseline (coverage growth is not loosening) as further mapper fixes
# unblock fixtures.
# 2026-07-16 (#1622/#1624): room-heater control 2601 unblocked the two 'No
# thermostatic control...' fixtures → **151 computed / 17 blocked** (within-0.5
# 76.2% = 115/151, MAE 0.716; 500767954156 lands within 0.5, 500797465814 is a
# 8.8 tail entry). MAE ceiling re-baselined 0.67 → 0.72 per the
# coverage-growth convention above.
_MIN_WITHIN_HALF: float = 0.76
_MAX_SAP_MAE: float = 0.67
_MAX_SAP_MAE: float = 0.72
_KNOWN_GAP_REASON = (
"pashub `from_site_notes` mapper does not int-code a main-heating "

View file

@ -8037,8 +8037,11 @@ _PASHUB_STORAGE_HEATER_CONTROL_TO_SAP10: Dict[str, int] = {
# PasHub surveyed room-heater control labels → their SAP 10.2 Table 4e Group 6
# code (spec PDF p.173). PasHub lodges the singular "Programmer and room
# thermostat"; Table 4e's Group 6 wording is the plural "Programmer and room
# thermostats" (2605) — same control.
# thermostats" (2605) — same control. 2601 is the lowest-control (manual /
# no-thermostat) Group 6 code: control type 2, +0.3 °C MIT adjustment (PCDB
# `room_heater_systems_controls`), one step below 2602.
_PASHUB_ROOM_HEATER_CONTROL_TO_SAP10: Dict[str, int] = {
"No thermostatic control of room temperature": 2601,
"Appliance thermostats": 2602,
"Programmer and room thermostat": 2605,
}