mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
The §10.7 no-water-heating default cylinder raised UnmappedSapCode for age bands A-F (2 certs in a 2026 sample, bands B + C) because Table 29's "A to F: 12 mm loose jacket" row wasn't plumbed — the loose-jacket storage-loss branch didn't exist. S0380.224 added it, so this slice completes the Table 29 lookup. Restructure _TABLE_29_DEFAULT_CYLINDER_INSULATION_BY_AGE to carry (cylinder_insulation_type, thickness_mm) per band — A-F → (loose jacket, 12), G/H → (factory, 25), I-M → (factory, 38) per RdSAP 10 Table 29 (PDF p.56) — and have the default read both, setting the loose-jacket type for A-F instead of hardcoding factory. The strict-raise is retained only for an absent / out-of-A-M age band (no Table 29 row). Validated: certs 2211 (band B, SAP 49.8 vs lodged 52) and 3420 (band C, 11.2 vs 11) now compute. §4 + golden suite 2395 passed — the corpus "no system" cert (age G, 25 mm factory) is unchanged. cert_to_inputs.py pyright unchanged at 32; new test suppresses reportPrivateUsage. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| addresses | ||
| fuel_rates | ||
| property | ||
| property_baseline | ||
| sap10_calculator | ||
| tasks | ||
| __init__.py | ||
| test_postcode.py | ||