A Fabric First Scenario spends the budget on the envelope before heating 🟩

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Khalim Conn-Kowlessar 2026-07-09 11:44:32 +00:00
parent a9173bd492
commit 012b0b03ba

View file

@ -19,6 +19,7 @@ from domain.modelling.optimisation.optimiser import (
OptimisedPackage,
ScoredOption,
optimise_package,
optimise_package_fabric_first,
)
from domain.modelling.scoring.package_scorer import PackageScorer, Score
from domain.modelling.plan import Plan, PlanMeasure
@ -188,7 +189,13 @@ class ModellingOrchestrator:
dependencies: list[MeasureDependency] = _measure_dependencies(
effective_epc, products, considered
)
package: OptimisedPackage = optimise_package(
# A Fabric First brief optimises the envelope with the full budget
# before heating / renewables are considered on top (mirroring the
# legacy engine's enforce_fabric_first).
optimise = (
optimise_package_fabric_first if scenario.fabric_first else optimise_package
)
package: OptimisedPackage = optimise(
groups=groups,
scorer=scorer,
baseline_epc=effective_epc,