mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
The main-wall `u_wall(...)` call dropped the `dry_lined` kwarg, so the RdSAP 10 §5.7/§5.8 (PDF p.40-41) Table 14 dry-lining adjustment — U_adj = 1/(1/U₀ + 0.17) for a dry-lined (incl. lath-and-plaster) uninsulated wall — was never applied to any main wall, even when the cert lodged `wall_dry_lined=Y`. The ALTERNATIVE-wall path already passes `dry_lined` (line 1367); this one-sided omission billed every dry-lined main wall at the un-adjusted (too-high) U → wall heat loss too high → SAP under-rated. Per-cert: a solid-brick (construction 3) band-A 230 mm main wall computes U₀=1.70; dry-lined it is 1/(1/1.70+0.17)=1.32 — we were 22% too high. Across the API gov-EPC sample the dry-lined `wall_construction=3` (solid brick) sub-cohort sat at 10% within-0.5 / signed -1.33. Fix: pass `dry_lined=bool(part.wall_dry_lined)` to the main-wall `u_wall` call, mirroring the alt-wall path. `part.wall_dry_lined` is already plumbed (Optional[bool], None → False). The three dry-lining branches in `u_wall` (stone §5.6, solid-brick-by-thickness §5.7, generic uninsulated bucket §5.8) are all spec-correct and already worksheet-validated (the bucket-0 cavity case against cert 7700 age-C → 1.20). Worksheet harness UNAFFECTED (47/47, 0 divergers): the Elmhurst/Summary extractor only captures dry-lining for ALTERNATIVE walls (Summary §7), never the main wall, so `part.wall_dry_lined` stays None on that path — this is a pure API-path improvement. API gauge: within-0.5 60.1% -> 64.4% (mean|err| 1.163 -> 1.085, signed -0.097 -> +0.049). Both affected buckets improved with no overshoot: solid brick (wc=3) 50% -> 57% within-0.5; cavity (wc=4, dry-lined via the §5.8 bucket-0 path) 68% -> 72%. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| addresses | ||
| fuel_rates | ||
| property | ||
| property_baseline | ||
| sap10_calculator | ||
| tasks | ||
| __init__.py | ||
| test_postcode.py | ||