mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-27 23:35:01 +00:00
`_PASHUB_FLOOR_EXPOSURE` mapped the surveyed "Semi Exposed (unheated)" floor label to `is_above_partially_heated_space` (RdSAP §5.14, constant U=0.7). A floor semi-exposed to an enclosed UNHEATED space belongs in §5.13 Table 20 `u_exposed_floor` (band-B as-built U=1.20). §5.14's U=0.7 is reserved for a floor above a *partially* heated space. #1602 transposed the two branches; the too-low U under-counted floor loss on the 9 label-carrying cohort fixtures → a shared over-credit. Triangulated against all three siblings + the calculator docstring: the gov-API code-2 "To unheated space" (mapper.py:4797) and Elmhurst `_is_floor_exposed_to_unheated_space` (mapper.py:5970) both route to Table 20; rdsap_uvalues.py:1416 documents Table 20 as collapsing exposed and semi-exposed-to-unheated into one lookup. One-line data flip, from_site_notes-only (gov-API RdSAP corpus untouched, still 78.9%). Adjacent Ronald St mid-terrace pair (the clustered signal): 10 Ronald 60.35→59.02 (oracle 59), 12 Ronald 60.79→59.36 (oracle 59). Cohort vs DB oracle (portfolio 838 effective_sap) 83.3%→86.9% within-0.5, MAE 0.377→0.348, no built form regresses, all 7 verified dwellings unchanged (none carry the label). pashub harness 79.5%→82.4%, MAE 0.389→0.367; ratchets tightened 0.78→0.82 / 0.40→0.37. pyright zero-new. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| epc | ||
| __init__.py | ||
| address_match.py | ||
| datatypes.py | ||
| enums.py | ||