mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-19 17:03:02 +00:00
SAP 10.2 Table 12a Grid 2 (PDF p.191) bills "Fans for mechanical ventilation systems" at 0.71 (7-hour) / 0.58 (10-hour), distinct from "All other uses" (0.90 / 0.80) which covers circulation pumps, flue fans and the solar HW pump. The cost-split mech-vent kWh (`mev_kwh_for_cost_split`) only summed the decentralised-MEV (230b) fans, not the (230a) MVHR fan electricity — even though the total pumps/fans bucket adds both. So an MVHR dwelling on an off-peak tariff billed its fan electricity at the 0.90/0.80 "all other uses" rate instead of 0.71/0.58. The comment already said "MEV/MVHR-fan portion"; only the MEV term was wired when MVHR landed. Fixed to mirror both mechanical-ventilation fan terms summed into the total. Worksheet-proven on simulated case 50 (000565 semi + MVHR Vent Axia + dual electric immersion, Unknown meter -> 7-hour via the §12 dual-immersion trigger): the fan bucket (315.64 kWh, 100% MVHR per worksheet line 230a) was billing at 14.311 p/kWh (0.90) vs Elmhurst's 12.451 p/kWh (0.71) — +£5.87/yr, -0.23 SAP. After the fix our existing-dwelling rating reconciles to Elmhurst EXACTLY: SAP value 38.8426 (=Elmhurst 38.8426 -> 39), total cost £1317.0116 (=Elmhurst £1317.0116 to the penny). Same `mev_kwh_for_cost_split` feeds the CO2 + PE cascades, so all three split consistently. 0 corpus impact (all 3 corpus MVHR certs are standard tariff); gauge unchanged 73.3% / MAE 0.774 / CO2 0.08 / PE 3.4. Pin: test_mvhr_fan_electricity_bills_at_grid2_fan_fraction_on_off_peak. pyright strict gate not run locally (pyright not installed in this container). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| climate | ||
| rdsap | ||
| validation | ||
| worksheet | ||
| __init__.py | ||
| test_bre_worked_examples.py | ||
| test_calculator.py | ||
| test_pcdb_etl.py | ||
| test_pcdb_lookup.py | ||
| test_pcdb_table_322_lookup.py | ||
| test_pcdb_table_323_lookup.py | ||
| test_pcdb_table_329_lookup.py | ||
| test_pcdb_table_362_lookup.py | ||
| test_postcode_weather.py | ||
| test_real_cert_sap_accuracy.py | ||
| test_table_12.py | ||
| test_table_12a.py | ||
| test_table_13.py | ||
| test_table_32.py | ||