From bc39030707bec90fd401aa13cfb4db88c15fdfd0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 3 Jul 2026 11:42:29 +0000 Subject: [PATCH] =?UTF-8?q?The=20e2e=20candidate=20menu=20is=20generated?= =?UTF-8?q?=20from=20the=20Effective=20EPC,=20not=20the=20lodged=20cert=20?= =?UTF-8?q?=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The printed "candidate measures considered" now matches what the orchestrator actually offered — on 711795 the lodged cavity wall printed a cavity-fill candidate the plan (timber-frame effective wall) never saw. Co-Authored-By: Claude Opus 4.8 --- scripts/run_modelling_e2e.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/run_modelling_e2e.py b/scripts/run_modelling_e2e.py index 1a1964cec..6b4225be6 100644 --- a/scripts/run_modelling_e2e.py +++ b/scripts/run_modelling_e2e.py @@ -910,10 +910,12 @@ def main() -> None: print_table=False, ) # The full candidate menu (every Generator Option + its cost), so - # measures the Optimiser did not select are still visible. A predicted - # Property has no lodged cert, so the synthesised Effective EPC is used. + # measures the Optimiser did not select are still visible. Generated + # from the Effective EPC — the same picture the plan above modelled; + # the lodged cert would print a menu the Optimiser never saw (e.g. + # cavity fill on a wall an override moved to timber frame). candidates: list[Recommendation] = candidate_recommendations( - epc if epc is not None else effective_epc, + effective_epc, planning_restrictions=restrictions, solar_insights=solar_insights, considered_measures=considered,