Cavity fill is withheld when it cannot lower the derived wall U 🟩

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Khalim Conn-Kowlessar 2026-07-03 11:41:33 +00:00
parent 5f74c34f9a
commit 7a039d30bc

View file

@ -12,6 +12,7 @@ from datatypes.epc.domain.epc_property_data import (
EpcPropertyData,
)
from domain.building_geometry import gross_heat_loss_wall_area
from domain.modelling.generators.wall_u_value_gate import wall_insulation_lowers_u
from domain.modelling.measure_type import MeasureType
from domain.modelling.recommendation import Cost, MeasureOption, Recommendation
from domain.modelling.simulation import BuildingPartOverlay, EpcSimulation
@ -46,6 +47,14 @@ def recommend_cavity_wall(
):
return None
# Wall U-Value Gate (ADR-0051): withhold the fill when it cannot lower the
# wall's derived U — e.g. an at-regs modern age band, where the as-built and
# filled-cavity cascades resolve to the same (or a no-better) value.
if not wall_insulation_lowers_u(
main, epc.country_code, insulation_type=_FILLED_CAVITY
):
return None
product = products.get(_CAVITY_MEASURE_TYPE)
wall_area: float = gross_heat_loss_wall_area(epc, BuildingPartIdentifier.MAIN)
cost = Cost(