From ab150c799d6d9e0809673c30ca57b269abab9385 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Aug 2025 12:55:44 +0100 Subject: [PATCH] updating heating systems for innovation --- recommendations/Costs.py | 23 ++++------------------- recommendations/HeatingRecommender.py | 19 ++++++++----------- 2 files changed, 12 insertions(+), 30 deletions(-) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index bfca8038..09fe1a2b 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -101,8 +101,6 @@ INSTALLER_ASHP_COSTS = [ {'capacity_kw': None, 'brand': '2 x cascaded ASHPs', 'tank_size_liters': 500, 'cost': 22950.00, 'installer': 'CEG'} ] -BOILER_UPGRADE_SCHEME_ASHP_VALUE = 7500 - INSTALLER_SOLAR_BATTERY_COSTS = [ {'capacity_kwh': 5, 'description': 'Battery Add on', 'cost': 3769.89, 'installer': 'JJC'}, # {'capacity_kwh': 10, 'description': 'Battery Add on', 'cost': 4300.00, 'installer': 'CEG'}, @@ -131,19 +129,10 @@ TTZC_ROOM_TEMPERATURE_SENSOR_LABOUR_HOURS = 0.17 # (Assume ~ 10 mins install pe TTZC_SMART_RADIATOR_VALUES = 50 TTZC_SMART_RADIATOR_VALUES_LABOUR_HOURS = 0.37 # (Assume ~ 15-30 mins install per valve) -# Low carbon combi boiler - median value based on £2200 - £3000 range -LOW_CARBON_COMBI_BOILER = 2200 - # boiler prices based on -# https://www.greenmatch.co.uk/boilers/30kw-boiler -# https://www.greenmatch.co.uk/boilers/35kw-boiler -# https://www.greenmatch.co.uk/boilers/40kw-boiler +# This is the cost of a firs time central heating install from The Warm Front rate card # These are exclusive of installation costs -CONDENSING_BOILER_COSTS = { - "30kw": 1550, - "35kw": 1610, - "40kw": 1625 -} +CONDENSING_BOILER_COST = 2600 # Electric boiler prices base on # https://www.greenmatch.co.uk/boilers/combi-boilers/electric-combi-boilers @@ -155,10 +144,6 @@ ELECTRIC_BOILER_COSTS = 1800 ROOM_HEATER_REMOVAL_COST = 25 ROOM_HEATER_REMOVAL_LABOUR_HOURS = 3 -# This is a cost quoted by Jim for a system flush - existig system will run more efficiently -SYSTEM_FLUSH_COST = 250 - -SINGLE_RADIATOR_COST = 150 DOUBLE_RADIATOR_COST = 300 FLUE_COST = 600 PIPEWORK_COST = 750 # Min cost is £500 @@ -1102,7 +1087,7 @@ class Costs: estimated_radiators = max(total_radiators_based_on_power, base_radiators + additional_radiators) return round(estimated_radiators) - def boiler(self, size, exising_room_heaters, system_change, n_heated_rooms, n_rooms, is_electric=False): + def boiler(self, exising_room_heaters, system_change, n_heated_rooms, n_rooms, is_electric=False): """ Based on a basic estimate of median value £2600 to install a low carbon combi boiler First time central heating vosts can als be found here: @@ -1111,7 +1096,7 @@ class Costs: """ if not is_electric: - unit_cost = CONDENSING_BOILER_COSTS[size] + unit_cost = CONDENSING_BOILER_COST else: unit_cost = ELECTRIC_BOILER_COSTS # The unit cost is the cost without VAT diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index baeee1d5..60163090 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -649,7 +649,8 @@ class HeatingRecommender: "already_installed": already_installed, "simulation_config": simulation_config, "description_simulation": description_simulation, - **ashp_costs_with_controls + **ashp_costs_with_controls, + "innovation_rate": 0 } ashp_recommendations.append(ashp_recommendation) @@ -1064,13 +1065,6 @@ class HeatingRecommender: ), {}) if has_inefficient_space_heating or has_inefficient_water: - boiler_size = self.estimate_boiler_size( - property_type=self.property.data["property-type"], - built_form=self.property.data["built-form"], - floor_area=self.property.floor_area, - floor_height=self.property.floor_height, - num_heated_rooms=self.property.data["number-heated-rooms"], - ) if self.dual_heating: description = self.DUAL_HEATING_DESCRIPTIONS[ @@ -1141,7 +1135,6 @@ class HeatingRecommender: } boiler_costs = self.costs.boiler( - size=f"{boiler_size}kw", exising_room_heaters=exising_room_heaters, system_change=system_change, n_heated_rooms=self.property.data["number-heated-rooms"], @@ -1167,7 +1160,8 @@ class HeatingRecommender: "description_simulation": description_simulation, **boiler_costs, "system_type": "boiler_upgrade", - "survey": non_invasive_recommendation.get("survey", None) + "survey": non_invasive_recommendation.get("survey", None), + "innovation_rate": 0, } # We recommend the heating controls @@ -1208,7 +1202,10 @@ class HeatingRecommender: heating_controls_only=False, system_change=True, system_type="boiler_upgrade", - measure_type="boiler_upgrade", + heating_product={ # temp until we do another product database update + "type": "boiler_upgrade", + "innovation_rate": 0 + } ) combined_recommendations.extend(combined_recommendation)