Model/datatypes/epc
Khalim Conn-Kowlessar c89206fc7f Slice 55: Elmhurst party-wall code "CU" maps to cavity unfilled
`_ELMHURST_PARTY_WALL_CODE_TO_SAP10` only recognised the bare "C" and
"S" leading codes. Cert 001479 Main §7 lodges "Party Wall Type: CU
Cavity masonry unfilled" — the leading token is "CU", which fell
through to None and made `u_party_wall` apply the unknown-default
U=0.25 instead of the worksheet's lodged U=0.50.

Add "CU" → 4 (SAP10 WALL_CAVITY); `u_party_wall(4) = 0.5 W/m²K`
matches the worksheet's §3 `Party walls Main … 0.50` row exactly.

This widens the chain residual on cert 001479 (cascade SAP 63.17 →
61.90 vs target 69.0094) — not a regression: pre-slice the cascade
was UNDER-counting party-wall heat loss (U=0.25 vs the lodged 0.50),
which masked over-counting elsewhere. The party-wall U-value is now
worksheet-accurate; remaining 7.1 SAP gap will narrow as the other
mapper gaps (Ext2 exposed floor, roof insulation thickness, secondary
heating SAP code, etc.) land in follow-up slices.

All 10 chain tests green (6 cohort + 2 cert-001479 structural pins).
Pyright net-zero (35-error baseline preserved on mapper.py).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 22:26:50 +00:00
..
domain Slice 55: Elmhurst party-wall code "CU" maps to cavity unfilled 2026-05-24 22:26:50 +00:00
loaders demo generated for use in address2uprn 2026-05-08 14:48:15 +00:00
schema Slice 44: flat_roof_insulation_thickness mapper fix — surface lodged value on SapBuildingPart 2026-05-24 15:28:10 +00:00
search bolstering testing 2026-04-28 13:46:09 +00:00
surveys Slice 53: Summary_000487 chain pins SAP at 1e-4 — last cohort cert closed 2026-05-24 21:42:42 +00:00
__init__.py testing out rebaselining 2026-02-12 22:25:03 +00:00
construction_age_band.py testing out rebaselining 2026-02-12 22:25:03 +00:00
efficiency.py beginning to assembly the parity class 2026-02-04 18:34:59 +00:00
floor.py preparing partiy class 2026-02-05 08:54:27 +00:00
fuel.py beginning to assembly the parity class 2026-02-04 18:34:59 +00:00
heating_controls.py beginning to assembly the parity class 2026-02-04 18:34:59 +00:00
hotwater.py beginning to assembly the parity class 2026-02-04 18:34:59 +00:00
main_heating.py beginning to assembly the parity class 2026-02-04 18:34:59 +00:00
property_type_built_form.py beginning to assembly the parity class 2026-02-04 18:34:59 +00:00
roof.py beginning to assembly the parity class 2026-02-04 18:34:59 +00:00
walls.py beginning to assembly the parity class 2026-02-04 18:34:59 +00:00
windows.py testing out rebaselining 2026-02-12 22:25:03 +00:00