Model/tests/domain
Khalim Conn-Kowlessar a21d2cc579 Bill an electric second main at its own §12/Table-12a rate 🟩
Closes #1684. `_main_2_space_heating_fuel_cost_gbp_per_kwh` billed an
electric Main 2 at Main 1's space-heating rate. That was a no-op on a
homogeneous off-peak cohort (storage+storage, direct+direct → equal
rates) but mis-billed the HETEROGENEOUS case: an off-peak STORAGE Main 1
(5.5 p/kWh low) + an on-peak DIRECT-ACTING panel Main 2 (15.29 p/kWh
high) rode the storage low rate, under-costing the panel half and
over-rating SAP.

Flip it to bill Main 2 at its OWN Table 12a Grid 1 SH row, the same
per-system resolution Main 1 and a non-electric Main 2 already use — and
the same one `_main_2_high_rate_fraction` already applies, so the scalar
cost and the high-rate split are now consistent.

The docstring's "regresses certs 13/34 (Parkers Hill / Dunley Road)"
warning was stale: those names appear nowhere but that docstring, and
the full guard suite shows zero new regressions (only the two
pre-existing `test_heating_systems_corpus` fails on main). LRHA WAVE 3
fixture 497655371974 (storage+panel) moves +15.3 → -2.5 vs PasHub; cohort
MAE 0.799 → 0.675 (ratchet re-baselined 0.80 → 0.68). within-0.5 holds at
55.3% — the -2.5 residual is PasHub-vs-Elmhurst divergence, not a bug, so
the fixture stays out of the within-0.5 pin. A ground-truth Elmhurst pin
is queued (see docs/HANDOVER_1684_ELMHURST_INPUTS_497655371974.md).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-27 09:06:20 +00:00
..
abri send AM or PM instead of trying to parse morning or afternoon 2026-07-10 10:45:57 +00:00
addresses standardist Address 2026-05-22 10:13:32 +00:00
billing ASHP sizing targets the Appendix-N efficiency peak (realistic installed pump) 🟩 2026-07-03 11:02:13 +00:00
bulk_document_download Scope latest-per-Document-Type per property, each in its own folder 🟩 2026-07-08 09:15:44 +00:00
data_transformation Let a deterministic guard override the fallback classifier per description 🟥 2026-07-01 09:39:16 +00:00
epc A community override keeps an assessor-observed Group 3 control 🟥 2026-07-03 16:33:40 +00:00
epc_prediction Re-baseline epc-prediction gates for the #1669 ground-truth change 🟩 2026-07-22 15:34:12 +00:00
fuel_rates Expose an off-peak meter's standing charge and full day/night blend range 🟩 2026-06-24 17:14:51 +00:00
magicplan Mapper reads 'Individual Trickle Vent' label variant 🟥 2026-06-30 13:43:48 +00:00
modelling Gate the loft top-up strictly below the 270mm building-regs depth 🟩 2026-07-10 16:07:48 +00:00
pashub_fetcher Move the PasHub fetcher into the DDD layer structure 🟪 2026-07-22 13:35:54 +00:00
property feat: thread physical-state-change signal into rebaselining 🟩 2026-06-26 19:15:11 +00:00
property_baseline ASHP sizing targets the Appendix-N efficiency peak (realistic installed pump) 🟩 2026-07-03 11:02:13 +00:00
sap10_calculator Bill an electric second main at its own §12/Table-12a rate 🟩 2026-07-27 09:06:20 +00:00
scenario_export Source export fabric from structured SAP fields; fix stale-cert selection 2026-07-18 19:38:12 +00:00
tasks A recorded batch failure carries structured details onto the sub_task outputs 🟥 2026-07-07 11:49:56 +00:00
__init__.py added postcode splitter rewrite to ddd 2026-05-19 16:35:09 +00:00
test_building_geometry.py feat(modelling): floor Recommendation Generator + ground-floor-area geometry 2026-06-03 09:12:29 +00:00
test_postcode.py Add UK-postcode format validity to the Postcode value object 🟩 2026-06-29 15:24:18 +00:00