mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Cert 9501 worksheet line (29a) lodges both RR gable walls (13.50 + 15.95 m²) as EXTERNAL walls at U=1.7 (the main-wall U for age B Solid Brick), contributing +50.07 W/K on top of the 168.74 W/K main- wall HLC for a (29a) total of 218.81 W/K. Two mapper gaps blocked this: 1. The Summary mapper defaulted un-typed RR gable walls (`surface.gable_type=None`) to `gable_wall` (party, U=0.25 per RdSAP Table 4 row 2). For flats with RR — top-floor dwellings that sit at the end of a building block with no neighbour above — the gable walls are exposed external, not party. Threading `is_flat=property_type.lower()=='flat'` through `_map_elmhurst_building_parts` → `_map_elmhurst_room_in_roof` → `_map_elmhurst_rir_surface` switches the default for un-typed gables on flats to `gable_wall_external` (cascade falls through to main-wall U `uw`). 2. The Elmhurst wall-construction code map was missing "SO Solid Brick" (newer Elmhurst PDF variant; the cohort certs lodge "SB Solid Brick"). Cert 9501's main wall fell through to wall_construction=None → cascade uw=1.5 (Table-18 unknown-cons age-B default) instead of 1.7 (Table-18 solid-brick age-B). Added "SO": 3 alongside "SB": 3 — same SAP10 mapping. Joint effect on cert 9501 Summary path: - walls HLC 148.89 → 218.81 (exact worksheet match) - party_walls HLC 7.36 → 0.00 (gables no longer route to party) - (37) total HLC 229.71 → 296.68 (exact worksheet match) Cohort regression check: 259/0 mapper-chain + extractor + golden tests pass. Houses keep the historical un-typed-gable → party default. Houses lodging "SO" instead of "SB" now also pick up the correct solid-brick U-value. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| handler | ||
| tests | ||
| __init__.py | ||
| db_writer.py | ||
| elmhurst_extractor.py | ||
| extractor.py | ||
| local_runner.py | ||
| parser.py | ||
| pdf.py | ||