Model/domain
Khalim Conn-Kowlessar 0f79de7a35 fix(exposure): honour determined roof_insulation_location for flats 🟩
A gov-API flat can lodge dwelling_type="Mid-floor flat" while carrying its
own exposed roof — a top-floor flat mislabelled mid-floor. _dwelling_exposure
keyed roof exposure on the dwelling_type label alone, dropping the roof
heat-loss term: space-heating demand under-read ~32%, SAP over-read +7.

Fix: when the main building part lodges a *determined* roof_insulation_location
(an RdSAP integer code, not the "ND" Not-Defined party-ceiling sentinel),
expose the roof regardless of a contradictory label. Structured field, not a
description string and not roof_construction (which the gov-API lodges
building-wide on every unit, so it is not a per-unit signal).

On the RdSAP-21.0.1 corpus roof_insulation_location separates the classes with
zero disagreement: all 190 party-ceiling flats lodge "ND"; the 4 mid/ground
flats this exposes all move toward lodged, 0 away. within-0.5 73.3% -> 73.6%,
MAE 0.774 -> 0.761 (ratchets tightened). Verified end-to-end on the same
block: 715363 (location 6, RHI 2694) 81 -> 74 = lodged; genuine mid-floor
sibling 715395 (location ND, RHI 1024) stays party at 83 = lodged.

The override is additive (only ever exposes a label-dropped roof) and reads
the main part, so multi-part flats with a party main ceiling stay party.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 21:34:33 +00:00
..
addresses standardist Address 2026-05-22 10:13:32 +00:00
billing Route an off-peak meter's electric end uses to the day/night carrier 🟩 2026-06-24 17:38:37 +00:00
data_transformation moved classifier data transformation to an easy one 2026-06-01 14:53:34 +00:00
elmhurst more examples 2026-06-19 09:51:49 +00:00
epc fix(overlay): synthesise a coherent gas-boiler heating system on Landlord Override 2026-06-26 12:48:33 +00:00
epc_prediction Predict ventilation kind from the cohort mode 🟩 2026-06-26 10:54:11 +00:00
fuel_rates Expose an off-peak meter's standing charge and full day/night blend range 🟩 2026-06-24 17:14:51 +00:00
geospatial feat(geospatial): one-read spatial reference (coords + restrictions) 2026-06-04 17:13:39 +00:00
magicplan add todo comment for named ranges 2026-06-10 13:32:11 +00:00
modelling Harden Dwelling-Roof Cap on real data: positional segments, ground-floor basis 🟩 2026-06-26 12:24:52 +00:00
property neighbouring properties added 2026-06-22 14:38:00 +00:00
property_baseline feat(baseline): sap_code_to_fuel normalizes via the calculator's own helper 2026-06-05 18:59:25 +00:00
sap10_calculator fix(exposure): honour determined roof_insulation_location for flats 🟩 2026-06-26 21:34:33 +00:00
sap10_ml fix(exposure): honour determined roof_insulation_location for flats 🟩 2026-06-26 21:34:33 +00:00
tasks new application to trigger e2e for a single property and scenario 2026-06-22 12:54:53 +00:00
building_geometry.py feat(modelling): floor Recommendation Generator + ground-floor-area geometry 2026-06-03 09:12:29 +00:00
postcode.py get rid of comments 2026-05-20 13:21:11 +00:00