Model/backend/epc_api/json_samples/real_life_examples/RdSAP-Schema-21.0.1
Jun-te Kim 8e33a8de53 test(accuracy): ratchet 77.3% -> 77.7% via flat-roof insulation-thickness fix (Elmhurst-validated)
A FLAT roof lodges its insulation thickness in the DEDICATED gov-EPC API
`flat_roof_insulation_thickness` field (e.g. "75mm"), leaving
`roof_insulation_thickness` None (that field is for pitched-loft joists).
`heat_transmission_from_cert` read only the latter, so a measured
flat-roof thickness was ignored and the roof billed at the uninsulated
age-band flat default (age E = 1.5) instead of its Table-16 insulated U.

Fixed by preferring `flat_roof_insulation_thickness` when the part is a
flat roof — the exact mirror of the existing rafter-thickness branch.
An "AB"/"NI" (as-built/unknown) value parses to None and keeps the
age-band default, unchanged; only measured thicknesses move.

PER-CERT ELMHURST VALIDATION (cert 47084930, top-floor flat, flat roof
75 mm): built on the lodged inputs in accredited Elmhurst RdSAP10-Online
(evidence saved: elmhurst_summary.pdf / elmhurst_worksheet.pdf). The
worksheet bills "insulated flat roof" at U 0.5 (floor 0.70 + wall 0.25
also matching the engine). The fix takes the engine roof 96.4 -> 32.1 W/K
(= 64.26 x 0.5, Elmhurst-exact), PE +47 -> +0.2, SAP 69.51 -> 74.34 =
lodged 74.

Gauge: within 77.3% -> 77.7%, SAP MAE 0.648 -> 0.641, CO2 0.074 -> 0.072,
PE 3.1 -> 2.97. Unit-pinned in test_heat_transmission
(flat_roof_insulation_thickness -> U 0.5); RealCertExpectation 47084930
= 74 (Elmhurst-validated). Also adds the build script build_47084930.py.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 23:27:57 +00:00
..
uprn_47084930 test(accuracy): ratchet 77.3% -> 77.7% via flat-roof insulation-thickness fix (Elmhurst-validated) 2026-07-02 23:27:57 +00:00
uprn_74061136 test(accuracy): ratchet SAP MAE 0.668 -> 0.658 via instantaneous-electric-DHW off-peak fix 2026-07-02 20:04:58 +00:00
uprn_103001004 test(accuracy): ratchet 74.2% -> 75.5% via 'insulated (assumed)' roof Table-18 fix 2026-07-02 19:06:26 +00:00
uprn_4510053280 test(accuracy): corpus-1000 campaign ledger + C001 4510053280 pinned 75 (lodged-software PSR gap) 2026-07-02 18:28:20 +00:00
uprn_10013924849 Add SAP-18.0.0 + SAP-16.0 schema coverage; autonomous-run triage findings 2026-06-16 20:04:43 +00:00
uprn_10023443426 sap score and elmhirst mapper optimsaiation 2026-06-20 07:25:42 +00:00
uprn_10094975827 test(accuracy): ratchet 74.2% -> 75.5% via 'insulated (assumed)' roof Table-18 fix 2026-07-02 19:06:26 +00:00
uprn_100040550095 docs(ledger): re-rank at 77.0% + triage electric-tariff & fabric tail 2026-07-02 19:48:10 +00:00
uprn_100050355518 test(accuracy): ratchet 75.5% -> 77.0% via secondary-fuel collision fix on cost path 2026-07-02 19:43:31 +00:00
uprn_200004017091 test(accuracy): ratchet 77.0% -> 77.3% via unsized-cylinder storage-loss fix 2026-07-02 23:02:27 +00:00
uprn_200004296092 docs(elmhurst): validate slice-5 wall fix against accredited Elmhurst worksheet (uprn 200004296092) 2026-07-02 20:49:58 +00:00