mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Regression fix surfaced by the first-attempt cert 0350 prediction test. `_extract_extensions` in `backend/documents_parser/elmhurst_ extractor.py` builds a synthetic `WallDetails` for any extension that lodges "As Main Wall: Yes" (copying the Main bp's wall fields so the cascade gets the same wall config for the extension). Slice S0380.4 added a new `insulation_thickness_mm` field to `WallDetails` but did NOT update the inheritance code at line 559-567 — so any multi-bp cert with an "As Main Wall" extension was losing the lodged wall insulation thickness on its extension bps, regardless of cert. Cert 0350-2968-2650-2796-5255 is the first multi-bp ASHP cohort cert through the Summary path (Main + 1st Extension, both "CA Cavity / FE Filled Cavity + External / 100 mm"). The dr87 worksheet line ref (29a) lodges: Main: 19.4575 W/K (77.83 m² × 0.25 W/m²K) Ext1: 1.3025 W/K ( 5.21 m² × 0.25 W/m²K) total: 20.7600 W/K Pre-fix Summary cascade produced walls_w_per_k 22.2188 (over by +1.46 W/K) because Ext1's missing thickness defaulted to a higher U-value path. Post-fix walls_w_per_k = **20.7600 — exact match against worksheet (29a) sum**. One-line fix at `elmhurst_extractor.py:567`: + insulation_thickness_mm=main_walls.insulation_thickness_mm, Forcing function: cert 0350 first-attempt SAP moves from Δ -4.7365 to Δ -4.5829 — small +0.1536 SAP gain from walls alone. The remaining ~-4.58 SAP residual on cert 0350 has other contributors to investigate in subsequent slices (HW kWh 1206 vs predicted target, HTC 173.42 vs worksheet (39) avg — likely floor / ventilation / PV gaps not yet covered by Summary mapper). Added focused unit test `test_summary_0350_ext1_inherits_main_wall_insulation_thickness` that pins the inheritance contract directly on the mapper boundary (bp[0].wall_insulation_thickness == bp[1].wall_insulation_thickness == "100mm"). Will fail if a future field-addition to WallDetails again forgets to update the synthetic-WallDetails inheritance block. Pyright net-zero across both edited files. Regression suite: 676 pass + 10 fail (= handover baseline 669 + 10 + 7 new GREEN unit tests across Slices S0380.2..S0380.8). Spec / cohort context: - Affects ALL multi-bp Elmhurst Summary certs with "As Main Wall: Yes" extensions, not just cert 0350. None of the previously- closed cohort certs (001479, 0330) exercised this path — both single-bp dwellings. - SAP 10.2 §3.7 / Table S5 — composite filled-cavity-plus-external U-value calc, keyed on lodged insulation thickness. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| fixtures | ||
| __init__.py | ||
| test_elmhurst_end_to_end.py | ||
| test_elmhurst_extractor.py | ||
| test_end_to_end.py | ||
| test_extractor.py | ||
| test_pdf.py | ||
| test_summary_pdf_mapper_chain.py | ||