From dba33be17465a99c32b1f7818ad16ff412c99ed7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Aug 2025 16:38:00 +0100 Subject: [PATCH] finishing implementing solar --- recommendations/Costs.py | 25 ++--------------------- recommendations/SolarPvRecommendations.py | 8 +------- 2 files changed, 3 insertions(+), 30 deletions(-) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 0550183b..aa6f5a38 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -168,28 +168,14 @@ class Costs: # We assume a conservative 10% contingency for all works which is a rate defined by SPONs CONTINGENCY = 0.1 - # For flat roof, we assume it's a high risk project as it's very weather dependent and also is heavily - # dependent on the quality of the existing roof - FLAT_ROOF_CONTINGENCY = 0.15 - - # We use a higher contingency rate for internal wall insulation because of the potential for issues with moving - # fittings and trimming doors, as well as scope for damage to the existing wall during preparation. - IWI_CONTINGENCY = 0.2 - - # For air source heat pumps, we inflate the assume cost by quite a bit to account for design and installation - ASHP_CONTINGENCY = 0.25 - # Where there is more uncertainty, a higher contingency rate is used - HIGH_RISK_CONTINGENCY = 0.2 - # When there is less uncertainty, a lower contingency rate is used - LOW_RISK_CONTINGENCY = 0.05 - # Measure level contingency CONTINGENCIES = { "cavity_wall_insulation": 0.1, "internal_wall_insulation": 0.26, "external_wall_insulation": 0.26, + "loft_insulation": 0.1, "solar_pv": 0.15, - "air_source_heat_pump": 0.2, + "air_source_heat_pump": 0.25, "flat_roof_insulation": 0.26, "suspended_floor_insulation": 0.2, "solid_floor_insulation": 0.26, @@ -202,13 +188,6 @@ class Costs: # rate, on the total cost before VAT, as recommended by SPONs PRELIMINARIES = 0.1 - # For higher risk projects, a higher preliminaries rate is used. SPONs indicates that a higher risk project might - # have a preliminaries of 12-14% so we use 12% as the median for the preliminaries rate. - # For External wall insulation (EWI), we use 15% as the preliminaries rate if we think the property might - # need scaffolding, otherwise we use 12%. This is to account for any site preparation that might be required - EWI_NO_SCAFFOLDING_PRELIMINARIES = 0.2 - EWI_SCAFFOLDING_PRELIMINARIES = 0.25 - VAT_RATE = 0.2 PROFIT_MARGIN = 0.2 diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 548ae54d..c5a1d7d0 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -231,13 +231,7 @@ class SolarPvRecommendations: scaffolding_options=self.scaffolding_options, n_floors=self.property.number_of_floors ) - kw = np.floor(recommendation_config["array_wattage"] / 100) / 10 - if has_battery: - description = ( - f"Install a {kw} kilowatt-peak (kWp) solar panel system, with a battery." - ) - else: - description = f"Install a {kw} kilowatt-peak (kWp) solar panel system." + description = f"Install a {solar_pv_product['description']}" if self.property.in_conservation_area: description += " Property is in a consevation area - please check with local planning authority."