mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
The gov-EPC API lodges a Detailed RR (RdSAP 10 §3.9, Figure 4) with up to two sloping ceilings (`slope_*`) and two vertical stud/knee walls (`stud_wall_*`) in addition to the gable + flat-ceiling surfaces. Those slope/stud fields were undeclared on the 21.0.x schema, so `from_dict` silently dropped them and `_api_rir_detailed_surfaces` built ONLY the gable + flat-ceiling surfaces. The (large) sloping roof and the knee walls contributed ZERO heat loss → undercounted RR fabric loss → a systematic over-rate. Fix: declare `slope_*`/`stud_wall_*` on `RoomInRoofDetails` (rdsap_schema_21_0_0 + _21_0_1) and build `kind="slope"` / `kind="stud_wall"` surfaces in the mapper. The cascade's Detailed-RR branch already routes both to the roof aggregate via `u_rr_slope` (Table 17 col 1) and `u_rr_stud_wall` (Table 17 col 3) — RdSAP 10 §5.11.3, p.43-44 — so no calculator change is needed (Summary path worksheet-validated by the 000565 detailed-RR fixtures). insulation_type is left None to defer to the Table 17 col-(a) mineral-wool default, mirroring the existing flat_ceiling branch. 15 /tmp certs carry `slope_height_1`: cohort mean|err| 4.26 -> 2.05, signed +4.09 -> centred (14/15 were over-rating; e.g. 0390-2538 +5.95 -> +3.56). Gauges: corpus within-0.5 67.3% -> 67.5% (MAE 1.020 -> 0.987); /tmp 71.4% -> 71.6% (MAE 0.882 -> 0.846). Harness 47/47 0 raised; regression = the 3 pre-existing fails; pyright net-zero (65=65). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| domain | ||
| loaders | ||
| schema | ||
| search | ||
| surveys | ||
| __init__.py | ||
| construction_age_band.py | ||
| efficiency.py | ||
| floor.py | ||
| fuel.py | ||
| heating_controls.py | ||
| hotwater.py | ||
| main_heating.py | ||
| property_type_built_form.py | ||
| roof.py | ||
| walls.py | ||
| windows.py | ||