mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
The gov-EPC API surfaces the assessor's RdSAP-assessed per-element U-values as `roof_u_value` / `wall_u_value` / `floor_u_value` on each building part. These were undeclared on the RdSAP 21.0.0/21.0.1 schemas, so `from_dict` silently dropped them, and `heat_transmission` re-derived each U from the §5.6 /§5.7/§5.11 construction-default cascade. The gov OPEN data routinely redacts the backing insulation thickness, so that re-derivation mis-bills an insulated element as uninsulated. RdSAP 10 §5.1: a known element U-value (documentary evidence / the lodged RdSAP output) is used directly in place of the construction-default cascade. Per [[project_per_cert_mapper_validation_state]] the gov API carries RdSAP OUTPUT, so the lodged U reproduces the official's element heat loss exactly. Worst case in the 2026 sample: cert 7921-0052-0940-5007-0663, an age-C "Pitched, sloping ceiling" (rc=8) top-floor flat lodging roof_u_value=0.2 with no thickness. The cascade returned the uninsulated 2.30 W/m²K → SAP 56.9 vs lodged 80 (-23.09, the single largest error in the sample). The roof override alone recovers ~15 SAP; the wall override (lodged 0.34 vs cascade) closes the rest of this cohort. Override applies to the MAIN wall only (alt-wall sub-areas keep their own per-area U) and the part's floor=0. Fires only when the rare field is present (9 of 909 computed certs), so the Summary path — which never lodges these API fields — is untouched. API gauge: 67.1% → 67.7% within-0.5, mean|err| 1.024 → 0.992. Worksheet harness: 47/47, 0 divergers (unchanged). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| epc | ||
| magicplan | ||
| __init__.py | ||
| datatypes.py | ||
| enums.py | ||