From c970cc81ca27117b935e27860942e77cdc0a8756 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Aug 2025 18:34:27 +0100 Subject: [PATCH 01/73] fleshing out prs eligibility, adding social --- backend/Funding.py | 664 +++++++++------------------------- backend/tests/test_funding.py | 63 ++-- 2 files changed, 205 insertions(+), 522 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index d17074cb..016db276 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -6,431 +6,26 @@ from typing import List from backend.app.plan.schemas import HousingType -class FundingOld: - """ - Given a property, this class identifies if the home is possibly eligible for funding under - the various funding schemes. It will also calculate the expected amount of funding available - and flag any tenant specific requirements that need to be considered to the funding to be attained - """ - - SCHEMES = ["eco4", "gbis", "whlg"] - - ECO_SAP_SCORE_THREHOLDS = [ - {'Band': 'High_A', 'From': 96.0, 'Up to': 100.0, 'Mid-point': 98.0}, - {'Band': 'Low_A', 'From': 92.0, 'Up to': 96.0, 'Mid-point': 94.0}, - {'Band': 'High_B', 'From': 86.0, 'Up to': 91.0, 'Mid-point': 88.5}, - {'Band': 'Low_B', 'From': 81.0, 'Up to': 86.0, 'Mid-point': 83.5}, - {'Band': 'High_C', 'From': 74.5, 'Up to': 80.0, 'Mid-point': 77.25}, - {'Band': 'Low_C', 'From': 69.0, 'Up to': 74.5, 'Mid-point': 71.75}, - {'Band': 'High_D', 'From': 61.5, 'Up to': 68.0, 'Mid-point': 64.75}, - {'Band': 'Low_D', 'From': 55.0, 'Up to': 61.5, 'Mid-point': 58.25}, - {'Band': 'High_E', 'From': 46.5, 'Up to': 54.0, 'Mid-point': 50.25}, - {'Band': 'Low_E', 'From': 39.0, 'Up to': 46.5, 'Mid-point': 42.75}, - {'Band': 'High_F', 'From': 29.5, 'Up to': 38.0, 'Mid-point': 33.75}, - {'Band': 'Low_F', 'From': 21.0, 'Up to': 29.5, 'Mid-point': 25.25}, - {'Band': 'High_G', 'From': 10.5, 'Up to': 20.0, 'Mid-point': 15.25}, - {'Band': 'Low_G', 'From': 1.0, 'Up to': 10.5, 'Mid-point': 5.75} - ] - - def __init__( - self, - tenure: HousingType, - starting_epc, - starting_sap, - postcode, - floor_area, - council_tax_band, - property_recommendations, - project_scores_matrix, - whlg_eligible_postcodes, - gbis_abs_rate: int, - eco4_abs_rate: int, - ): - """ - Use Pydantic to validate the parameter types - :param tenure: Indicates if the property is a social or private home - :param starting_epc: The current EPC rating of the property - :param starting_sap: The current SAP score for the property - :param floor_area: The total floor area of the property - :param council_tax_band: The council tax band of the property - :param property_recommendations: The recommendations for the property - :param project_scores_matrix: The matrix of project scores for ECO4 - :param whlg_eligible_postcodes: The postcodes eligible for WHLG - :param gbis_abs_rate: The assumed £/abs achieved by the installer for GBIS - :param eco4_abs_rate: The assumed £/abs achieved by the installer for ECO4 - """ - - # TODO: Things we need to include: - # 1) Amount of funding - # 2) Fundable measures, as a subset of measures may be fundable, not all - - self.tenure = tenure - self.starting_epc = starting_epc - self.starting_sap = starting_sap - self.postcode = postcode - self.starting_eco_band = self.sap_to_eco_band(self.starting_sap) - self.floor_area_segment = self.classify_floor_area(floor_area) - self.gbis_abs_rate = gbis_abs_rate - self.eco4_abs_rate = eco4_abs_rate - self.council_tax_band = council_tax_band - - self.recommendations = property_recommendations - - self.measure_types = list({r["measure_type"] for r in property_recommendations if r["default"]}) - - # Load in the eco4 project scores matrix - # Filter the matrix on scores relevant to this property - self.project_scores_matrix = project_scores_matrix[ - (project_scores_matrix["Floor Area Segment"] == self.floor_area_segment) & - (project_scores_matrix["Starting Band"] == self.starting_eco_band) - ] - - # The postcode column is already lower case - self.whlg_eligible_postcodes = whlg_eligible_postcodes[ - whlg_eligible_postcodes["Postcode"] == self.postcode.lower() - ] - - # Store the final outputs - self.gbis_eligibiltiy = {} - self.eco4_eligibility = {} - self.whlg_eligibility = {} - - def output( - self, - scheme: str, - eligible: bool, - types: List[str], - measure_types: List[str], - project_score: float, - estimated_funding: float, - notify_tenant_benefits_requirements: bool, - notify_council_tax_band_requirements: bool, - notify_tenant_low_income_requirements: bool, - innovation_required: bool, - ): - """" - """ - - if scheme not in self.SCHEMES: - raise ValueError("Scheme not recognised") - - return { - "scheme": scheme, - "eligible": eligible, - "type": types, - "measure_types": measure_types, - "project_score": project_score, - "estimated_funding": estimated_funding, - "requires_benefits": notify_tenant_benefits_requirements, - "requires_council_tax_band": notify_council_tax_band_requirements, - "requires_low_income": notify_tenant_low_income_requirements, - "innovation_required": innovation_required, - } - - @staticmethod - def classify_floor_area(floor_area): - if floor_area <= 72: - return "0-72" - - if floor_area <= 97: - return "73-97" - - if floor_area <= 199: - return "98-199" - - return "200" - - def eco4(self): - """ - Checks if a property is eligible for ECO4 - :return: - """ - pass - - def find_gbis_measures(self, measures): - """ - The best measure is one that: - 1) Creates some SAP movement, therefore enables eligiblity - 2) Generates the most funding - 3) Has a reasonable ROI - :return: - """ - measure_table = pd.DataFrame([ - m for m in self.recommendations if - (m["type"] in measures) or (m["measure_type"] in measures) and m["default"] - ]) - - measure_table["post_install_sap"] = measure_table["sap_points"] + self.starting_sap - # We classify the movement - measure_table["Finishing Band"] = np.floor(measure_table["post_install_sap"]).apply( - lambda points: self.sap_to_eco_band(points) - ) - # Remove any measures that generate zero SAP movement - measure_table = measure_table[measure_table["Finishing Band"] != self.starting_eco_band] - - if measure_table.empty: - raise NotImplementedError("No measures available, handle me!") - - # We merge on the project matrix, on post install band - measure_table = measure_table.merge( - self.project_scores_matrix, how="left", on="Finishing Band" - ) - # Cost Savings is the abs - measure_table["estimated_funding"] = measure_table["Cost Savings"] * self.gbis_abs_rate - # We cap any estimated funding at the install cost - measure_table["estimated_funding"] = np.where( - measure_table["estimated_funding"] >= measure_table["total"], - measure_table["total"], - measure_table["estimated_funding"] - ) - - # Sort by the measure that will cost the client the least, per sap point - measure_table["cost_minus_funding"] = measure_table["total"] - measure_table["estimated_funding"] - measure_table["cost_minus_funding_per_sap"] = measure_table["cost_minus_funding"] / measure_table["sap_points"] - measure_table = measure_table.sort_values(["cost_minus_funding_per_sap", "total"], ascending=[True, False]) - - return measure_table[ - ["type", "measure_type", "Cost Savings", "estimated_funding"] - ].rename(columns={"Cost Savings": "project_score"}).to_dict("records") - - def sap_to_eco_band(self, sap_points): - """ - Giuven a sap point score, this function will classify the points into the SAP half-band - :param sap_points: - :return: - """ - - if sap_points > 100: - return "High_A" - - classification = [ - x for x in self.ECO_SAP_SCORE_THREHOLDS if (x["From"] <= sap_points) and (sap_points <= x["Up to"]) - ] - - if len(classification) != 1: - raise Exception("We should have a single classifcation for SAP points to half band") - - return classification[0]['Band'] - - def gbis_prs(self): - """ - Checks if a private rental is eligible for GBIS. There are the following possible options - 1) General Eligibilty, contigent on EPC D-G and council tax band A-D. Excludes CWI, LI and heating - controls - 2) Low income group - contigent on EPC D-G and tenant must receive benefits. Excludes heating controls - 3) GBIS Flex route 1, 3 - Great British Insulation Scheme Routes 1 and 3 are for pre-installation - SAP bands D-G for owner-occupied households, D-E for private rented sector households - (Including F & G if exempt from MEES). If houseold is low income. Excludes heating controls - 4) GBIS Flex route 2 - EPC E - G and low income household. Excludes heating controls - - Eligible measures: - • Solid wall - • pitched roof - • flat roof - • under floor - • solid floor park home and - • room in-roof insulation - - :return: - """ - - valid_measures = [ - "internal_wall_insulation", - "external_wall_insulation", - "flat_roof_insulation", - "suspended_floor_insulation", - "room_roof_insulation", - # Not available for every eligiblity type - "cavity_wall_insulation", - "loft_insulation", - ] - - # General Eligibility - if ( - (self.starting_epc in ["G", "D", "E", "F"]) and - any( - [measure in valid_measures for measure in self.measure_types - if measure not in ["cavity_wall_insulation", "loft_insulation"]] - ) and - (self.council_tax_band in [None, "A", "B", "C", "D"]) - ): - # This function pulls out the various measures that can provide funding under GBIS - recommended_measures = self.find_gbis_measures( - measures=[m for m in valid_measures if m not in ["cavity_wall_insulation", "loft_insulation"]] - ) - # If the council tax band is missing, we nofify the customer that this is a requirement that - # should be checked - return [ - self.output( - scheme="gbis", - eligible=True, - types=[m["type"]], # This is single measure so we only have one type - measure_types=[m["measure_type"]], - project_score=m["project_score"], - estimated_funding=m["estimated_funding"], - notify_tenant_benefits_requirements=False, - notify_council_tax_band_requirements=self.council_tax_band is None, - notify_tenant_low_income_requirements=False, - innovation_required=False - ) for m in recommended_measures - ] - - # Low income/flex - if ( - (self.starting_sap in ["G", "D", "E", "F"]) and - any([measure in valid_measures for measure in self.measure_types]) - ): - # Find the best measure, and can also include CWI/LI but requires the tenant to be - # low inome or on benefits - # We find the best measure for GBIS - recommended_measures = self.find_gbis_measures(measures=valid_measures) - return [ - self.output( - scheme="gbis", - eligible=True, - types=[m["type"]], # This is single measure so we only have one type - measure_types=[m["measure_type"]], - project_score=m["project_score"], - estimated_funding=m["estimated_funding"], - notify_tenant_benefits_requirements=True, - notify_council_tax_band_requirements=False, - notify_tenant_low_income_requirements=True, - innovation_required=False - ) for m in recommended_measures - ] - - # Otherwise, no funding availability - return [] - - def gbis_social(self): - """ - Because this is social housing, we have two typical means for eligibility - 1) EPC D, where an innovation measure is required - 2) EPC G-E, where an innovation measure isn't required - :return: - """ - valid_measures = [ - "internal_wall_insulation", - "external_wall_insulation", - "flat_roof_insulation", - "suspended_floor_insulation", - "room_roof_insulation", - # Not available for every eligiblity type - "cavity_wall_insulation", - "loft_insulation", - "heating_control" - ] - - recommended_measures = self.find_gbis_measures( - measures=valid_measures - ) - - # All measures are available - if self.starting_sap == "D": - return [ - self.output( - scheme="gbis", - eligible=True, - types=[m["type"]], # This is single measure so we only have one type - measure_types=[m["measure_type"]], - project_score=m["project_score"], - estimated_funding=m["estimated_funding"], - notify_tenant_benefits_requirements=False, - notify_council_tax_band_requirements=False, - notify_tenant_low_income_requirements=False, - innovation_required=True - ) for m in recommended_measures - ] - - if self.starting_sap in ["G", "F", "E"]: - return [ - self.output( - scheme="gbis", - eligible=True, - types=[m["type"]], # This is single measure so we only have one type - measure_types=[m["measure_type"]], - project_score=m["project_score"], - estimated_funding=m["estimated_funding"], - notify_tenant_benefits_requirements=False, - notify_council_tax_band_requirements=False, - notify_tenant_low_income_requirements=False, - innovation_required=False - ) for m in recommended_measures - ] - - return [] - - def gbis(self): - """ - Check if a property is eligible for GBIS - :return: - """ - - if self.tenure == "Private": - self.gbis_eligibiltiy = self.gbis_prs() - return - - if self.tenure == "Social": - self.gbis_eligibiltiy = self.gbis_social() - - raise NotImplementedError("Implement social/oo") - - def whlg(self): - if self.tenure == "Social": - # We can't do anything for social housing - self.whlg_eligibility = [] - return - - if not self.whlg_eligible_postcodes.empty: - raise Exception("Implement me") - # self.whlg_eligibility = [ - # self.output( - # scheme, - # eligible, - # types, - # measure_types, - # project_score: float, - # estimated_funding: float, - # notify_tenant_benefits_requirements: bool, - # notify_council_tax_band_requirements: bool, - # notify_tenant_low_income_requirements: bool, - # innovation_required: bool, - # ) - # ] - - def eco4(self): - if self.tenure == "Private": - self.eco4_eligibiltiy = self.eco4_prs() - return - - def check_eligibiltiy(self): - """ - This function instigates the checking process - :return: - """ - - self.gbis() - # self.eco4() - self.whlg() - - class EligibilityCaveats(Enum): TENANT_ON_BENEFITS_OR_LOW_INCOME = "tenant_on_benefits_or_low_income" + INNOVATION_REQUIRED = "innovation_required" + SOLAR_NEEDS_HEATING = "solar_needs_heating" class Funding: """ - New class to handle funding calculation + Handles eligibility and funding calculations for ECO4 & GBIS (PRS + Social Housing). """ def __init__( self, - tenure: HousingType, + tenure: str, # 'Private' or 'Social' social_cavity_abs_rate: float, social_solid_abs_rate: float, private_cavity_abs_rate: float, private_solid_abs_rate: float, project_scores_matrix, + partial_project_scores_matrix, whlg_eligible_postcodes ): self.tenure = tenure @@ -443,10 +38,17 @@ class Funding: self.ending_sap_band = None self.floor_area_band = None self.project_scores_matrix = project_scores_matrix + self.partial_project_scores_matrix = partial_project_scores_matrix self.whlg_eligible_postcodes = whlg_eligible_postcodes self.eco4_eligible = False - self.eligbility_caveat = None + self.eco4_eligibility_caveats = [] + self.gbis_eligible = False + self.gbis_eligibility_caveats = [] + + # ----------------------- + # Utility Helpers + # ----------------------- @staticmethod def get_sap_band(sap_score_number): @@ -466,151 +68,219 @@ class Funding: ("High_G", 10.5, 21), ("Low_G", 1, 10.5), ] - for band, lower, upper in bands: if lower <= sap_score_number < upper: return band - return None @staticmethod def get_floor_area_band(floor_area): if floor_area <= 72: return "0-72" - if floor_area <= 97: return "73-97" - if floor_area <= 199: return "98-199" - return "200" - def eco4_prs_eligibility( - self, starting_sap: int, measures: List, mainheat_description: str, heating_control_description: str - ): + def _split_measures(self, measures: List[dict]): """ - Handles the eligibility criteria for private rental properties under eco - :return: + Extracts measure types and flags innovation. + measures: list of dicts like {"type": "solar_pv", "is_innovation": True} """ + measure_types = [m["type"] for m in measures] + has_innovation = any(m.get("is_innovation", False) for m in measures) + innovation_measures = [m["type"] for m in measures if m.get("is_innovation", False)] + return measure_types, has_innovation, innovation_measures - # Help to heat group - # 1) EPC E - G - # 2) Must receive one of SWI, FTCH, renewable heating or DHC - # 3) Tenant must be on benefits + # ----------------------- + # Private Rented Sector + # ----------------------- - # We don't consider the tenant being on benefits - we just notify the end user that this is a requirement + def eco4_prs_eligibility(self, starting_sap: int, measure_types: List, mainheat_description: str, + heating_control_description: str): + """ + ECO4 PRS eligibility: + - EPC E–G + - Must include SWI, FTCH, renewable heating, or DHC + - Tenant must be on benefits (flagged) + """ + meets_epc = starting_sap <= 54 # EPC E–G - meets_epc = starting_sap <= 54 - has_solid_wall = "internal_wall_insulation" in measures or "external_wall_insulation" in measures - # We check if the property has a heating system that means solar pv counts as a renewable heating system + has_swi = "internal_wall_insulation" in measure_types or "external_wall_insulation" in measure_types + has_renewable = "air_source_heat_pump" in measure_types or "ground_source_heat_pump" in measure_types + has_ftch = "first_time_central_heating" in measure_types + has_dhc = "district_heating_connection" in measure_types has_eligible_electric_heating = any(x in mainheat_description for x in [ "air source heat pump", "ground source heat pump", "boiler and radiators, electric" - ]) | (("electric storage heaters" in mainheat_description) and - (heating_control_description.lower() == "controls for high heat retention storage heaters") - ) + ]) or ( + ("electric storage heaters" in mainheat_description) + and ( + heating_control_description.lower() == "controls for high heat " + "retention storage heaters") + ) - # Counts as renewable heating - solar_renweable_heating = has_eligible_electric_heating & ("solar_pv" in measures) - # Is a renewable heating - ashp = "air_source_heat_pump" in measures + solar_counts_as_renewable = has_eligible_electric_heating and "solar_pv" in measure_types - # Meets the EPC criteria, has the measure requirement and tenant must be on benefits - if meets_epc & (solar_renweable_heating or ashp or has_solid_wall): + if meets_epc and (has_swi or has_renewable or has_ftch or has_dhc or solar_counts_as_renewable): self.eco4_eligible = True - self.eligbility_caveat = EligibilityCaveats.TENANT_ON_BENEFITS_OR_LOW_INCOME + self.eco4_eligibility_caveats.append(EligibilityCaveats.TENANT_ON_BENEFITS_OR_LOW_INCOME) + + def gbis_prs_eligibility(self, starting_sap: int, council_tax_band: str, measure_types: List): + """ + GBIS PRS eligibility: + - General route: Council Tax Band & EPC D–G + - Low-income route: tenant on benefits (flagged) + """ + gbis_measures = { + "general": [ + "internal_wall_insulation", "external_wall_insulation", + "flat_roof_insulation", "suspended_floor_insulation", + "room_roof_insulation", "solid_floor_insulation", "park_home_insulation" + ], + "low_income": [ + "internal_wall_insulation", "external_wall_insulation", + "flat_roof_insulation", "suspended_floor_insulation", + "room_roof_insulation", "solid_floor_insulation", + "cavity_wall_insulation", "loft_insulation", "park_home_insulation" + ] + } + + meets_epc = starting_sap <= 69 # EPC D–G + + # General route + if meets_epc and council_tax_band in ["A", "B", "C", "D", "E"]: + if any(m in gbis_measures["general"] for m in measure_types): + self.gbis_eligible = True + + # Low-income route + if meets_epc and any(m in gbis_measures["low_income"] for m in measure_types): + self.gbis_eligible = True + self.gbis_eligibility_caveats.append(EligibilityCaveats.TENANT_ON_BENEFITS_OR_LOW_INCOME) + + # ----------------------- + # Social Housing + # ----------------------- + + def eco4_sh_eligibility(self, starting_sap: int, measure_types: List, has_innovation: bool, + innovation_measures: List): + """ + ECO4 Social Housing eligibility. + - EPC E–G: eligible, no income check. + - EPC D: innovation measure required. + If solar PV is the innovation measure, must also install ASHP or HHRSH. + """ + meets_epc = starting_sap <= 69 + if not meets_epc: return - return False + # EPC D innovation rule + if 55 <= starting_sap <= 68: # EPC D + if not has_innovation: + self.eco4_eligible = False + self.eco4_eligibility_caveats.append(EligibilityCaveats.INNOVATION_REQUIRED) + return - def gbis_prs_eligibiltiy(self): + if "solar_pv" in innovation_measures and not any( + m in measure_types for m in ["air_source_heat_pump", "high_heat_retention_storage_heater"] + ): + self.eco4_eligible = False + self.eco4_eligibility_caveats.append(EligibilityCaveats.SOLAR_NEEDS_HEATING) + return + + self.eco4_eligible = True + + def gbis_sh_eligibility(self, starting_sap: int, measure_types: List, has_innovation: bool, + innovation_measures: List): """ - Determines if a project is eligible for GBIS funding for private rental properties + GBIS Social Housing eligibility. + - EPC E–G: insulation measures OK. + - EPC D: innovation measure required (same solar PV + heating rule). """ + meets_epc = starting_sap <= 69 + if not meets_epc: + return + + if 55 <= starting_sap <= 68: # EPC D + if not has_innovation: + self.gbis_eligible = False + self.gbis_eligibility_caveats.append(EligibilityCaveats.INNOVATION_REQUIRED) + return + + if "solar_pv" in innovation_measures and not any( + m in measure_types for m in ["air_source_heat_pump", "high_heat_retention_storage_heater"] + ): + self.gbis_eligible = False + self.gbis_eligibility_caveats.append(EligibilityCaveats.SOLAR_NEEDS_HEATING) + return + + self.gbis_eligible = True + + # ----------------------- + # Score Lookup + # ----------------------- def calculate_full_project_abs(self): - - # Filter the project scores matrix + """Look up ABS score for full projects.""" data = self.project_scores_matrix[ (self.project_scores_matrix["Floor Area Segment"] == self.floor_area_band) & (self.project_scores_matrix["Starting Band"] == self.starting_sap_band) & (self.project_scores_matrix["Finishing Band"] == self.ending_sap_band) ] - if data.emtpy: - raise ValueError("Missing abs rate, check the project scores matrix") + if data.empty: + raise ValueError("Missing ABS rate, check the project scores matrix") return data["Cost Savings"].values[0] + # ----------------------- + # Main Entry Point + # ----------------------- + def check_funding( - self, measures: List, + self, measures: List[dict], starting_sap: int, ending_sap: int, floor_area: float, mainheat_description: str, heating_control_description: str, - is_cavity: bool + is_cavity: bool, + council_tax_band: str = None ): """ - Given a list of measures, this function will check if the package of measures is fundable - :param measures: - :param starting_sap: - :param ending_sap: - :param floor_area: - :param mainheat_description: - :param heating_control_description: - :param is_cavity: Indicates if the property has cavity wall insulation - :return: + Given a list of measures, check ECO4/GBIS eligibility. """ - # If it's an E or D, should get to an EPC C - if starting_sap >= 55 and ending_sap < 69: - raise NotImplementedError("This property doesn't have sufficient SAP movement") - - if starting_sap <= 38 & ending_sap <= 55: - # F or G should get to D - raise NotImplementedError("Implement F or G to D eligibility") + # Normalize measures + measure_types, has_innovation, innovation_measures = self._split_measures(measures) + # Track EPC bands and floor area self.starting_sap_band = self.get_sap_band(starting_sap) self.ending_sap_band = self.get_sap_band(ending_sap) self.floor_area_band = self.get_floor_area_band(floor_area) - ######################## - # Private - ######################## - # 1) ECO4 - # 2) GBIS - if self.tenure == "Private": - self.eco4_prs_eligibility( - starting_sap=starting_sap, - measures=measures, - mainheat_description=mainheat_description, - heating_control_description=heating_control_description - ) + # ECO4 PRS + self.eco4_prs_eligibility(starting_sap, measure_types, mainheat_description, heating_control_description) + # GBIS PRS + self.gbis_prs_eligibility(starting_sap, council_tax_band or "", measure_types) - # Need to implement - # 1) Package has to include an insulation measure - # 2) We should use the funding for the measure that has the largest partial project score - # TODO: check the rules around GBIS eligibility and heating controls - self.gbis_prs_eligibiltiy() + if self.eco4_eligible: + eco4_abs = self.calculate_full_project_abs() + eco4_funding = eco4_abs * (self.private_cavity_abs_rate if is_cavity else self.private_solid_abs_rate) + return {"eco4_funding": eco4_funding} - if not is_eco4_eligible: - return - eco4_abs = self.calculate_full_project_abs() - # We estimate rates now - eco4_funding = ( - eco4_abs * self.private_cavity_abs_rate if is_cavity else eco4_abs & self.private_solid_abs_rate - ) + elif self.tenure == "Social": + # ECO4 Social + self.eco4_sh_eligibility(starting_sap, measure_types, has_innovation, innovation_measures) + # GBIS Social + self.gbis_sh_eligibility(starting_sap, measure_types, has_innovation, innovation_measures) - ######################## - # Social - ######################## - # 1) ECO4 - # 2) GBIS + if self.eco4_eligible: + eco4_abs = self.calculate_full_project_abs() + eco4_funding = eco4_abs * (self.social_cavity_abs_rate if is_cavity else self.social_solid_abs_rate) + return {"eco4_funding": eco4_funding} - if self.tenure == "Social": - pass - - raise NotImplementedError("Only implemented for Private or Social housing") + else: + raise NotImplementedError("Only 'Private' and 'Social' tenures are supported.") diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 3a830eae..da5a71e1 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -17,35 +17,48 @@ def get_funding_data(): project_scores_matrix.columns = ['Floor Area Segment', 'Starting Band', 'Finishing Band', 'Cost Savings'] project_scores_matrix["Cost Savings"] = project_scores_matrix["Cost Savings"].astype(float) + partial_project_scores_matrix = read_csv_from_s3( + bucket_name="retrofit-data-dev", + filepath="funding/ECO4_Partial_Project_Scores_Matrix_v6.csv", + ) + partial_project_scores_matrix = pd.DataFrame(partial_project_scores_matrix) + partial_project_scores_matrix["Cost Savings"] = partial_project_scores_matrix["Cost Savings"].astype(float) + whlg_eligible_postcodes = read_csv_from_s3( bucket_name="retrofit-data-dev", filepath="funding/whlg eligible postcodes.csv", ) whlg_eligible_postcodes = pd.DataFrame(whlg_eligible_postcodes) - return project_scores_matrix, whlg_eligible_postcodes + return project_scores_matrix, partial_project_scores_matrix, whlg_eligible_postcodes -# class TestFunding: -# -# def test_prs(self): -# eco_project_scores_matrix, whlg_eligible_postcodes = get_funding_data() -# funding = Funding( -# project_scores_matrix=eco_project_scores_matrix, -# whlg_eligible_postcodes=whlg_eligible_postcodes, -# social_cavity_abs_rate=13.5, -# social_solid_abs_rate=17, -# private_cavity_abs_rate=13.5, -# private_solid_abs_rate=17, -# tenure="Private", -# ) -# -# measures_1 = ["internal_wall_insulation", "solar_pv"] -# funding.check_funding( -# measures=measures_1, -# starting_sap=54, -# ending_sap=69, -# floor_area=73, -# mainheat_description="Boiler and radiators, mains gas", -# heating_control_description="Programmer, room thermostat and TRVs", -# is_cavity=True -# ) + +class TestFunding: + + def test_prs(self): + fps_matrix, pps_matrix, whlg_eligible_postcodes = get_funding_data() + funding = Funding( + project_scores_matrix=fps_matrix, + partial_project_scores_matrix=pps_matrix, + whlg_eligible_postcodes=whlg_eligible_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Private", + ) + + measures_1 = [ + {"type": "internal_wall_insulation", "is_innovation": False}, + {"type": "solar_pv", "is_innovation": True}, + ] + + funding.check_funding( + measures=measures_1, + starting_sap=54, + ending_sap=69, + floor_area=73, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True + ) From 9a558c5bb55908e76b52f3d2d23d8dbc2d5ab826 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Aug 2025 18:44:49 +0100 Subject: [PATCH 02/73] added base unit tests --- backend/tests/test_funding.py | 312 ++++++++++++++++++++++++++++------ 1 file changed, 263 insertions(+), 49 deletions(-) diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index da5a71e1..7a18fa55 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -1,64 +1,278 @@ import pytest import pandas as pd -from utils.s3 import read_csv_from_s3 -from backend.Funding import Funding +from backend.Funding import Funding, EligibilityCaveats -def get_funding_data(): - """ - This function retrieves the eco project scores matrix and the warm homes local grant funding data - :return: - """ - project_scores_matrix = read_csv_from_s3( - bucket_name="retrofit-data-dev", - filepath="funding/ECO4 Full Project Scores Matrix.csv", +@pytest.fixture +def mock_project_scores_matrix(): + data = [] + floor_segments = ["0-72", "73-97", "98-199", "200"] + starting_bands = ["Low_G", "High_G", "Low_F", "High_F", "Low_E", "High_E", "Low_D", "High_D", "Low_C", "High_C"] + finishing_bands = ["Low_C", "High_C", "Low_B"] # covers likely improvement targets + + cost = 50.0 + for floor in floor_segments: + for start in starting_bands: + for finish in finishing_bands: + if start != finish: # skip identical start/finish (no SAP movement) + data.append({ + "Floor Area Segment": floor, + "Starting Band": start, + "Finishing Band": finish, + "Cost Savings": cost + }) + cost += 5.0 # increment to create variety + + return pd.DataFrame(data) + + +@pytest.fixture +def mock_partial_scores_matrix(): + return pd.DataFrame([{"dummy": "data"}]) # not used for eligibility tests yet + + +@pytest.fixture +def mock_whlg_postcodes(): + return pd.DataFrame([{"Postcode": "ab12cd"}]) + + +### ------------------------- +### PRIVATE RENTED SECTOR (PRS) +### ------------------------- + +def test_eco4_prs_eligible_with_swi(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Private", ) - project_scores_matrix = pd.DataFrame(project_scores_matrix) - project_scores_matrix.columns = ['Floor Area Segment', 'Starting Band', 'Finishing Band', 'Cost Savings'] - project_scores_matrix["Cost Savings"] = project_scores_matrix["Cost Savings"].astype(float) - partial_project_scores_matrix = read_csv_from_s3( - bucket_name="retrofit-data-dev", - filepath="funding/ECO4_Partial_Project_Scores_Matrix_v6.csv", + # The property is: + # 1) private, + # 2) EPC E + # 3) is getting a solid was measure + # so it's eligible for ECO4 + + measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + funding.check_funding( + measures=measures, + starting_sap=50, # EPC E + ending_sap=69, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + council_tax_band="B" ) - partial_project_scores_matrix = pd.DataFrame(partial_project_scores_matrix) - partial_project_scores_matrix["Cost Savings"] = partial_project_scores_matrix["Cost Savings"].astype(float) - whlg_eligible_postcodes = read_csv_from_s3( - bucket_name="retrofit-data-dev", - filepath="funding/whlg eligible postcodes.csv", + assert funding.eco4_eligible + assert EligibilityCaveats.TENANT_ON_BENEFITS_OR_LOW_INCOME in funding.eco4_eligibility_caveats + + +def test_eco4_prs_not_eligible_high_epc(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): + """Should NOT be eligible if EPC is too high (C or above).""" + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Private", ) - whlg_eligible_postcodes = pd.DataFrame(whlg_eligible_postcodes) - return project_scores_matrix, partial_project_scores_matrix, whlg_eligible_postcodes + measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + funding.check_funding( + measures=measures, + starting_sap=72, # EPC C (too high) + ending_sap=75, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + council_tax_band="B" + ) + + assert not funding.eco4_eligible -class TestFunding: +def test_gbis_prs_general_eligibility(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): + """PRS EPC D–G & council tax band A–D should trigger GBIS general route.""" + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Private", + ) - def test_prs(self): - fps_matrix, pps_matrix, whlg_eligible_postcodes = get_funding_data() - funding = Funding( - project_scores_matrix=fps_matrix, - partial_project_scores_matrix=pps_matrix, - whlg_eligible_postcodes=whlg_eligible_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, - tenure="Private", - ) + measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + funding.check_funding( + measures=measures, + starting_sap=65, # EPC D + ending_sap=70, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + council_tax_band="A" + ) - measures_1 = [ - {"type": "internal_wall_insulation", "is_innovation": False}, - {"type": "solar_pv", "is_innovation": True}, - ] + assert funding.gbis_eligible - funding.check_funding( - measures=measures_1, - starting_sap=54, - ending_sap=69, - floor_area=73, - mainheat_description="Boiler and radiators, mains gas", - heating_control_description="Programmer, room thermostat and TRVs", - is_cavity=True - ) + +def test_gbis_prs_low_income_caveat(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): + """PRS EPC D–G should flag low-income caveat when low-income route is used.""" + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Private", + ) + + measures = [{"type": "cavity_wall_insulation", "is_innovation": False}] + funding.check_funding( + measures=measures, + starting_sap=60, # EPC D + ending_sap=70, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + council_tax_band="B" + ) + + assert funding.gbis_eligible + assert EligibilityCaveats.TENANT_ON_BENEFITS_OR_LOW_INCOME in funding.gbis_eligibility_caveats + + +### ------------------------- +### SOCIAL HOUSING +### ------------------------- + +def test_eco4_sh_epc_e_eligible(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): + """EPC E social housing should be ECO4 eligible without innovation.""" + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social", + ) + + measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + funding.check_funding( + measures=measures, + starting_sap=50, # EPC E + ending_sap=69, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True + ) + + assert funding.eco4_eligible + + +def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): + """EPC D social housing should require an innovation measure.""" + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social", + ) + + measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + funding.check_funding( + measures=measures, + starting_sap=60, # EPC D + ending_sap=69, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True + ) + + assert not funding.eco4_eligible + assert EligibilityCaveats.INNOVATION_REQUIRED in funding.eco4_eligibility_caveats + + +def test_eco4_sh_solar_pv_requires_heating(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): + """Solar PV as innovation measure requires ASHP or HHRSH.""" + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social", + ) + + measures = [{"type": "solar_pv", "is_innovation": True}] + funding.check_funding( + measures=measures, + starting_sap=60, # EPC D + ending_sap=69, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True + ) + + assert not funding.eco4_eligible + assert EligibilityCaveats.SOLAR_NEEDS_HEATING in funding.eco4_eligibility_caveats + + +def test_eco4_sh_solar_pv_with_heating_is_ok(mock_project_scores_matrix, mock_partial_scores_matrix, + mock_whlg_postcodes): + """Solar PV innovation with ASHP should pass EPC D innovation rule.""" + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social", + ) + + measures = [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "air_source_heat_pump", "is_innovation": False} + ] + funding.check_funding( + measures=measures, + starting_sap=60, # EPC D + ending_sap=69, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True + ) + + assert funding.eco4_eligible + assert EligibilityCaveats.SOLAR_NEEDS_HEATING not in funding.eco4_eligibility_caveats From 30e1eca74ba5c506fddaccb8e53ee630c9526ca7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 1 Aug 2025 18:57:47 +0100 Subject: [PATCH 03/73] [Cadded upgrade logic to funding engine --- backend/Funding.py | 50 +++++++++---- backend/tests/test_funding.py | 134 +++++++++++++++++++++++++++++++++- 2 files changed, 165 insertions(+), 19 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index 016db276..020cc20a 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -83,7 +83,8 @@ class Funding: return "98-199" return "200" - def _split_measures(self, measures: List[dict]): + @staticmethod + def _split_measures(measures: List[dict]): """ Extracts measure types and flags innovation. measures: list of dicts like {"type": "solar_pv", "is_innovation": True} @@ -93,11 +94,24 @@ class Funding: innovation_measures = [m["type"] for m in measures if m.get("is_innovation", False)] return measure_types, has_innovation, innovation_measures + @staticmethod + def _meets_upgrade_target(starting_sap: int, ending_sap: int) -> bool: + """ + ECO4 Upgrade Requirement: + - EPC E/D (SAP ≥ 39): must upgrade to EPC C (SAP ≥ 69) + - EPC F/G (SAP < 39): must upgrade to EPC D (SAP ≥ 55) + """ + if starting_sap >= 39 and ending_sap >= 69: + return True + if starting_sap < 39 and ending_sap >= 55: + return True + return False + # ----------------------- # Private Rented Sector # ----------------------- - def eco4_prs_eligibility(self, starting_sap: int, measure_types: List, mainheat_description: str, + def eco4_prs_eligibility(self, starting_sap: int, ending_sap: int, measure_types: List, mainheat_description: str, heating_control_description: str): """ ECO4 PRS eligibility: @@ -106,24 +120,27 @@ class Funding: - Tenant must be on benefits (flagged) """ meets_epc = starting_sap <= 54 # EPC E–G + meets_upgrade_target = self._meets_upgrade_target(starting_sap, ending_sap) has_swi = "internal_wall_insulation" in measure_types or "external_wall_insulation" in measure_types has_renewable = "air_source_heat_pump" in measure_types or "ground_source_heat_pump" in measure_types has_ftch = "first_time_central_heating" in measure_types has_dhc = "district_heating_connection" in measure_types - has_eligible_electric_heating = any(x in mainheat_description for x in [ - "air source heat pump", "ground source heat pump", "boiler and radiators, electric" - ]) or ( - ("electric storage heaters" in mainheat_description) - and ( - heating_control_description.lower() == "controls for high heat " - "retention storage heaters") - ) + has_eligible_electric_heating = ( + any(x in mainheat_description for x in [ + "air source heat pump", "ground source heat pump", "boiler and radiators, electric" + ]) or ( + ("electric storage heaters" in mainheat_description) + and (heating_control_description.lower() == "controls for high heat retention storage heaters") + ) + ) solar_counts_as_renewable = has_eligible_electric_heating and "solar_pv" in measure_types - if meets_epc and (has_swi or has_renewable or has_ftch or has_dhc or solar_counts_as_renewable): + if meets_upgrade_target and meets_epc and ( + has_swi or has_renewable or has_ftch or has_dhc or solar_counts_as_renewable + ): self.eco4_eligible = True self.eco4_eligibility_caveats.append(EligibilityCaveats.TENANT_ON_BENEFITS_OR_LOW_INCOME) @@ -163,7 +180,7 @@ class Funding: # Social Housing # ----------------------- - def eco4_sh_eligibility(self, starting_sap: int, measure_types: List, has_innovation: bool, + def eco4_sh_eligibility(self, starting_sap: int, ending_sap: int, measure_types: List, has_innovation: bool, innovation_measures: List): """ ECO4 Social Housing eligibility. @@ -172,7 +189,9 @@ class Funding: If solar PV is the innovation measure, must also install ASHP or HHRSH. """ meets_epc = starting_sap <= 69 - if not meets_epc: + meets_upgrade_target = self._meets_upgrade_target(starting_sap, ending_sap) + + if not meets_epc or not meets_upgrade_target: return # EPC D innovation rule @@ -262,7 +281,8 @@ class Funding: if self.tenure == "Private": # ECO4 PRS - self.eco4_prs_eligibility(starting_sap, measure_types, mainheat_description, heating_control_description) + self.eco4_prs_eligibility(starting_sap, ending_sap, measure_types, mainheat_description, + heating_control_description) # GBIS PRS self.gbis_prs_eligibility(starting_sap, council_tax_band or "", measure_types) @@ -273,7 +293,7 @@ class Funding: elif self.tenure == "Social": # ECO4 Social - self.eco4_sh_eligibility(starting_sap, measure_types, has_innovation, innovation_measures) + self.eco4_sh_eligibility(starting_sap, ending_sap, measure_types, has_innovation, innovation_measures) # GBIS Social self.gbis_sh_eligibility(starting_sap, measure_types, has_innovation, innovation_measures) diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 7a18fa55..7e9bc3b4 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -7,13 +7,15 @@ from backend.Funding import Funding, EligibilityCaveats def mock_project_scores_matrix(): data = [] floor_segments = ["0-72", "73-97", "98-199", "200"] - starting_bands = ["Low_G", "High_G", "Low_F", "High_F", "Low_E", "High_E", "Low_D", "High_D", "Low_C", "High_C"] - finishing_bands = ["Low_C", "High_C", "Low_B"] # covers likely improvement targets + bands = [ + "Low_G", "High_G", "Low_F", "High_F", "Low_E", "High_E", "Low_D", "High_D", "Low_C", "High_C", "Low_B", + "High_B", "Low_A", "High_A" + ] cost = 50.0 for floor in floor_segments: - for start in starting_bands: - for finish in finishing_bands: + for start in bands: + for finish in bands: if start != finish: # skip identical start/finish (no SAP movement) data.append({ "Floor Area Segment": floor, @@ -276,3 +278,127 @@ def test_eco4_sh_solar_pv_with_heating_is_ok(mock_project_scores_matrix, mock_pa assert funding.eco4_eligible assert EligibilityCaveats.SOLAR_NEEDS_HEATING not in funding.eco4_eligibility_caveats + + +def test_eco4_upgrade_requirement_e_to_c_pass(mock_project_scores_matrix, mock_partial_scores_matrix, + mock_whlg_postcodes): + """EPC E upgraded to C should pass ECO4 upgrade rule.""" + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Private", + ) + + measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + + # E (SAP 50) → C (SAP 70) meets upgrade rule + funding.check_funding( + measures=measures, + starting_sap=50, + ending_sap=70, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + council_tax_band="B" + ) + + assert funding.eco4_eligible + + +def test_eco4_upgrade_requirement_e_to_d_fail(mock_project_scores_matrix, mock_partial_scores_matrix, + mock_whlg_postcodes): + """EPC E upgraded to D should FAIL ECO4 upgrade rule (needs to hit C).""" + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Private", + ) + + measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + + # E (SAP 50) → D (SAP 65) does NOT meet ECO4 upgrade rule + funding.check_funding( + measures=measures, + starting_sap=50, + ending_sap=65, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + council_tax_band="B" + ) + + assert not funding.eco4_eligible + + +def test_eco4_upgrade_requirement_f_to_d_pass(mock_project_scores_matrix, mock_partial_scores_matrix, + mock_whlg_postcodes): + """EPC F upgraded to D should pass ECO4 upgrade rule.""" + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Private", + ) + + measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + + # F (SAP 35) → D (SAP 60) is OK for ECO4 + funding.check_funding( + measures=measures, + starting_sap=35, + ending_sap=60, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + council_tax_band="B" + ) + + assert funding.eco4_eligible + + +def test_eco4_upgrade_requirement_f_to_e_fail(mock_project_scores_matrix, mock_partial_scores_matrix, + mock_whlg_postcodes): + """EPC F upgraded only to E should FAIL ECO4 upgrade rule (needs to hit at least D).""" + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Private", + ) + + measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + + # F (SAP 35) → E (SAP 50) does NOT meet ECO4 rule + funding.check_funding( + measures=measures, + starting_sap=35, + ending_sap=50, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + council_tax_band="B" + ) + + assert not funding.eco4_eligible From 98d64b943026cf6d843df34374cf24b6763a237a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Aug 2025 12:23:26 +0100 Subject: [PATCH 04/73] added pps matrix to test data --- asset_list/hubspot/config.py | 2 +- asset_list/hubspot/prepare_for_hubspot.py | 45 +- backend/Funding.py | 332 +- backend/app/plan/schemas.py | 7 +- backend/tests/test_funding.py | 220 +- .../ECO4_Partial_Project_Scores_Matrix_v6.csv | 16565 ++++++++++++++++ 6 files changed, 17089 insertions(+), 82 deletions(-) create mode 100644 recommendations/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv diff --git a/asset_list/hubspot/config.py b/asset_list/hubspot/config.py index 403bead4..981a8045 100644 --- a/asset_list/hubspot/config.py +++ b/asset_list/hubspot/config.py @@ -1,6 +1,6 @@ from enum import IntEnum, Enum -CRM_PIPELINE_NAME = 'Operations - Housing Associations' +CRM_PIPELINE_NAME = 'Operations - Social Housing' class HubspotProcessStatus(IntEnum): diff --git a/asset_list/hubspot/prepare_for_hubspot.py b/asset_list/hubspot/prepare_for_hubspot.py index 56ce37ed..03a746f5 100644 --- a/asset_list/hubspot/prepare_for_hubspot.py +++ b/asset_list/hubspot/prepare_for_hubspot.py @@ -44,26 +44,27 @@ def app(): """ # inputs: - reconcile_programme = True # If True, the hubspot upload will include all properties with a project code - customer_domain = "https://southend.gov.uk" - installer_name = "J & J CRUMP" + reconcile_programme = False # If True, the hubspot upload will include all properties with a project code + customer_domain = "https://shgroup.org.uk" + installer_name = "SCIS" asset_list_filepath = ( - "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Southend/July 2025 Programme/SOUTHEND - RYAN - " - "Standardised 2.xlsx" + "/Users/khalimconn-kowlessar/Downloads/20250701 Optivo Southern - Standardised.xlsx" ) - asset_list_sheet_name = "Standardised Asset List" + asset_list_sheet_name = "Solar Route Revised (100)" asset_list_header = 0 - contact_details_filepath = None - contacts_sheet_name = "Sheet 1" - contacts_landlord_property_id = "UPRN" - contacts_phone_number_column = "phone_number" - contacts_secondary_phone_number_column = "secondary_phone_number" - contacts_secondary_contact_full_name = "secondary_contact_full_name" - contacts_email_column = "email" - contacts_fullname_column = "fullname" - contacts_firstname_column = "First Name" - contacts_lastname_column = "Last Name" + contact_details_filepath = ( + "/Users/khalimconn-kowlessar/Downloads/southern_optivo_solar_pv.xlsx" + ) + contacts_sheet_name = "Sheet1" + contacts_landlord_property_id = "landlord_property_id" + contacts_phone_number_column = "Primary phone number" + contacts_secondary_phone_number_column = "Secondary phone number" + contacts_secondary_contact_full_name = None + contacts_email_column = "Email Address" + contacts_fullname_column = None + contacts_firstname_column = "Name" + contacts_lastname_column = None existing_programme_filepath = None @@ -89,6 +90,18 @@ def app(): reconcile_programme=reconcile_programme ) + for x in asset_list.hubspot_data["Phone "].values: + normalize_uk_phone(x) + + asset_list.hubspot_data["Phone "] = ( + asset_list.hubspot_data["Phone "].astype("Int64").astype(str).apply(normalize_uk_phone) + ) + asset_list.hubspot_data["Secondary Phone "] = asset_list.hubspot_data[ + "Secondary Phone "].astype( + "Int64").astype( + str).apply( + normalize_uk_phone) + # Remove the existing programme # existing_programme = pd.read_csv(existing_programme_filepath, encoding="utf-8-sig") # asset_list.hubspot_data = asset_list.hubspot_data[ diff --git a/backend/Funding.py b/backend/Funding.py index 020cc20a..d3283982 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -3,13 +3,14 @@ import pandas as pd import numpy as np from typing import List -from backend.app.plan.schemas import HousingType +from backend.app.plan.schemas import HousingType, WALL_INSULATION_MEASURES, ROOF_INSULATION_MEASURES class EligibilityCaveats(Enum): TENANT_ON_BENEFITS_OR_LOW_INCOME = "tenant_on_benefits_or_low_income" INNOVATION_REQUIRED = "innovation_required" SOLAR_NEEDS_HEATING = "solar_needs_heating" + NEEDS_INSULATION_TO_MINIMUM_STANDARDS = "needs_insulation_to_minimum_standards" class Funding: @@ -46,6 +47,12 @@ class Funding: self.gbis_eligible = False self.gbis_eligibility_caveats = [] + # Funding calculation variables + self.full_project_abs = None + self.eco4_funding = None + + self.partial_project_abs = None + # ----------------------- # Utility Helpers # ----------------------- @@ -111,8 +118,10 @@ class Funding: # Private Rented Sector # ----------------------- - def eco4_prs_eligibility(self, starting_sap: int, ending_sap: int, measure_types: List, mainheat_description: str, - heating_control_description: str): + def eco4_prs_eligibility( + self, starting_sap: int, ending_sap: int, measure_types: List, has_solar: bool, solar_eligible: bool + ): + """ ECO4 PRS eligibility: - EPC E–G @@ -122,27 +131,30 @@ class Funding: meets_epc = starting_sap <= 54 # EPC E–G meets_upgrade_target = self._meets_upgrade_target(starting_sap, ending_sap) + if not meets_epc or not meets_upgrade_target: + self.eco4_eligible = False + self.eco4_eligibility_caveats = [] + return + + if has_solar and not solar_eligible: + self.eco4_eligible = False + self.eco4_eligibility_caveats.append(EligibilityCaveats.SOLAR_NEEDS_HEATING) + return + has_swi = "internal_wall_insulation" in measure_types or "external_wall_insulation" in measure_types has_renewable = "air_source_heat_pump" in measure_types or "ground_source_heat_pump" in measure_types has_ftch = "first_time_central_heating" in measure_types has_dhc = "district_heating_connection" in measure_types - has_eligible_electric_heating = ( - any(x in mainheat_description for x in [ - "air source heat pump", "ground source heat pump", "boiler and radiators, electric" - ]) or ( - ("electric storage heaters" in mainheat_description) - and (heating_control_description.lower() == "controls for high heat retention storage heaters") - ) - ) - - solar_counts_as_renewable = has_eligible_electric_heating and "solar_pv" in measure_types - if meets_upgrade_target and meets_epc and ( - has_swi or has_renewable or has_ftch or has_dhc or solar_counts_as_renewable + has_swi or has_renewable or has_ftch or has_dhc or solar_eligible ): self.eco4_eligible = True self.eco4_eligibility_caveats.append(EligibilityCaveats.TENANT_ON_BENEFITS_OR_LOW_INCOME) + return + + self.eco4_eligible = False + self.eco4_eligibility_caveats = [] def gbis_prs_eligibility(self, starting_sap: int, council_tax_band: str, measure_types: List): """ @@ -152,19 +164,26 @@ class Funding: """ gbis_measures = { "general": [ + # Cannot do CWI "internal_wall_insulation", "external_wall_insulation", "flat_roof_insulation", "suspended_floor_insulation", - "room_roof_insulation", "solid_floor_insulation", "park_home_insulation" + "room_roof_insulation", "solid_floor_insulation" ], "low_income": [ "internal_wall_insulation", "external_wall_insulation", "flat_roof_insulation", "suspended_floor_insulation", "room_roof_insulation", "solid_floor_insulation", - "cavity_wall_insulation", "loft_insulation", "park_home_insulation" + "cavity_wall_insulation", "loft_insulation" ] } meets_epc = starting_sap <= 69 # EPC D–G + is_single_measure = len(measure_types) == 1 + + if not is_single_measure or not meets_epc: + self.gbis_eligible = False + self.gbis_eligibility_caveats = [] + return # General route if meets_epc and council_tax_band in ["A", "B", "C", "D", "E"]: @@ -180,14 +199,24 @@ class Funding: # Social Housing # ----------------------- - def eco4_sh_eligibility(self, starting_sap: int, ending_sap: int, measure_types: List, has_innovation: bool, - innovation_measures: List): + def eco4_sh_eligibility( + self, + starting_sap: int, + ending_sap: int, + has_innovation: bool, + has_solar: bool, + solar_eligible: bool + ): """ ECO4 Social Housing eligibility. - EPC E–G: eligible, no income check. - EPC D: innovation measure required. If solar PV is the innovation measure, must also install ASHP or HHRSH. """ + if has_solar and not solar_eligible: + # The package contins solar PV but it doesn't meet the eligibility requirements + return + meets_epc = starting_sap <= 69 meets_upgrade_target = self._meets_upgrade_target(starting_sap, ending_sap) @@ -196,43 +225,53 @@ class Funding: # EPC D innovation rule if 55 <= starting_sap <= 68: # EPC D + + # If we don't meet the innovation requirements, we're not eligible if not has_innovation: self.eco4_eligible = False self.eco4_eligibility_caveats.append(EligibilityCaveats.INNOVATION_REQUIRED) return - if "solar_pv" in innovation_measures and not any( - m in measure_types for m in ["air_source_heat_pump", "high_heat_retention_storage_heater"] - ): - self.eco4_eligible = False - self.eco4_eligibility_caveats.append(EligibilityCaveats.SOLAR_NEEDS_HEATING) - return + self.eco4_eligible = True + self.eco4_eligibility_caveats = [] self.eco4_eligible = True + self.eco4_eligibility_caveats = [] - def gbis_sh_eligibility(self, starting_sap: int, measure_types: List, has_innovation: bool, - innovation_measures: List): + def gbis_sh_eligibility(self, starting_sap: int, measure_types: List, has_innovation: bool): """ GBIS Social Housing eligibility. - - EPC E–G: insulation measures OK. - - EPC D: innovation measure required (same solar PV + heating rule). + - EPC E–G: single insulation measure + - EPC D: single insulation, innovation measure """ - meets_epc = starting_sap <= 69 - if not meets_epc: + + meets_epc = starting_sap <= 69 # EPC D–G + is_single_measure = len(measure_types) == 1 + # Check if has a valid measure + insulation_measures = [ + 'internal_wall_insulation', 'external_wall_insulation', 'cavity_wall_insulation', + 'loft_insulation', 'flat_roof_insulation', 'room_roof_insulation', + 'suspended_floor_insulation', 'solid_floor_insulation', + ] + has_valid_measures = any(m in measure_types for m in insulation_measures) + + if not is_single_measure or not meets_epc or not has_valid_measures: + self.gbis_eligible = False + self.gbis_eligibility_caveats = [] return if 55 <= starting_sap <= 68: # EPC D + # Since it's single measure if has_innovation is true, the single insulation measure + # must be the innovation measure if not has_innovation: self.gbis_eligible = False self.gbis_eligibility_caveats.append(EligibilityCaveats.INNOVATION_REQUIRED) return - if "solar_pv" in innovation_measures and not any( - m in measure_types for m in ["air_source_heat_pump", "high_heat_retention_storage_heater"] - ): - self.gbis_eligible = False - self.gbis_eligibility_caveats.append(EligibilityCaveats.SOLAR_NEEDS_HEATING) - return + # If we don't have an innovation measure, we're not eligible + self.gbis_eligible = False + self.gbis_eligibility_caveats.append(EligibilityCaveats.SOLAR_NEEDS_HEATING) + return self.gbis_eligible = True @@ -253,27 +292,212 @@ class Funding: return data["Cost Savings"].values[0] + @staticmethod + def get_starting_ending_uvalues(current_uvalue: float) -> tuple[str, str]: + """ + Returns the closest starting U-value and appropriate ending U-value for solid wall insulation. + + - If current_uvalue is closest to 0.45, assume the improvement target is 0.21. + - Otherwise, assume the target is 0.30. + """ + possible_starting_u_values = [2.00, 1.70, 1.00, 0.60, 0.45] + closest_starting = min(possible_starting_u_values, key=lambda x: abs(x - current_uvalue)) + ending_uvalue = 0.21 if closest_starting == 0.45 else 0.30 + + return f"{closest_starting:.2f}", f"{ending_uvalue:.2f}" + + def calculate_partial_project_abs( + self, + measure_type: str, + current_wall_uvalue: float = None, + is_partial: bool = False, + existing_li_thickness: float = None, + # is_roof_insulated: bool = False + ): + """ + Calculate the partial project ABS score for a single measure. + """ + df = self.partial_project_scores_matrix[ + (self.partial_project_scores_matrix["Total Floor Area Band"] == self.floor_area_band) & + (self.partial_project_scores_matrix["Starting Band"] == self.starting_sap_band) + ] + + if measure_type == "internal_wall_insulation": + if current_wall_uvalue is None: + raise ValueError("current_wall_uvalue is required for IWI") + + starting_str, ending_str = self.get_starting_ending_uvalues(current_wall_uvalue) + measure_code = f"IWI_solid_{starting_str}_{ending_str}" + pps = df[df["Measure_Type"] == measure_code] + + if pps.shape[0] != 1: + raise ValueError(f"Invalid IWI category: {measure_code}") + return pps.squeeze()["Cost Savings"] + + if measure_type == "external_wall_insulation": + if current_wall_uvalue is None: + raise ValueError("current_wall_uvalue is required for EWI") + + starting_str, ending_str = self.get_starting_ending_uvalues(current_wall_uvalue) + measure_code = f"EWI_solid_{starting_str}_{ending_str}" + pps = df[df["Measure_Type"] == measure_code] + + if pps.shape[0] != 1: + raise ValueError(f"Invalid EWI category: {measure_code}") + return pps.squeeze()["Cost Savings"] + + if measure_type == "cavity_wall_insulation": + measure_code = "CWI_partial_fill" if is_partial else "CWI_0.033" + pps = df[df["Measure_Type"] == measure_code] + + if pps.shape[0] != 1: + raise ValueError(f"Invalid CWI category: {measure_code}") + return pps.squeeze()["Cost Savings"] + + if measure_type == "loft_insulation": + if existing_li_thickness is None: + raise ValueError("existing_li_thickness is required for LI") + + measure_code = "LI_lessequal100" if existing_li_thickness <= 100 else "LI_greater100" + pps = df[df["Measure_Type"] == measure_code] + + if pps.shape[0] != 1: + raise ValueError(f"Invalid LI category: {measure_code}") + return pps.squeeze()["Cost Savings"] + + if measure_type == "flat_roof_insulation": + pps = df[df["Measure_Type"] == "FRI"] + if pps.shape[0] != 1: + raise ValueError("Invalid FRI category") + return pps.squeeze()["Cost Savings"] + + if measure_type == "room_roof_insulation": + # Use the more conservative score (unin is usually lower) + # code = "RIRI_res_unin" if not is_roof_insulated else "RIRI_res_in" + code = "RIRI_res_unin" + pps = df[df["Measure_Type"] == code] + if pps.shape[0] != 1: + raise ValueError(f"Invalid RIRI category: {code}") + return pps.squeeze()["Cost Savings"] + + if measure_type == "suspended_floor_insulation": + pps = df[df["Measure_Type"] == "UFI"] + if pps.shape[0] != 1: + raise ValueError("Invalid UFI category") + return pps.squeeze()["Cost Savings"] + + if measure_type == "solid_floor_insulation": + pps = df[df["Measure_Type"] == "SFI"] + if pps.shape[0] != 1: + raise ValueError("Invalid SFI category") + return pps.squeeze()["Cost Savings"] + + raise ValueError(f"Invalid measure type for partial project ABS calculation: {measure_type}") + # ----------------------- # Main Entry Point # ----------------------- + @staticmethod + def check_solar_eligible_heating_system(mainheat_description, heating_control_description): + """ + Checks if the main heating system is eligible for solar PV funding. + :param mainheat_description: Describes the primary heating system + :param heating_control_description: Heating controls associated to the primary heating system + :return: + """ + + return ( + any(x in mainheat_description.lower() for x in [ + "air source heat pump", "ground source heat pump", "boiler and radiators, electric" + ]) or ( + ("electric storage heaters" in mainheat_description) + and (heating_control_description.lower() == "controls for high heat retention storage heaters") + ) + ) + + def check_solar_eligibility( + self, + measure_types, + mainheat_description, + heating_control_description, + has_wall_insulation_recommendation: bool = False, + has_roof_insulation_recommendation: bool = False, + ): + """ + Because of the various pre-requisites for solar, we have a self-contained function to check for + eligibility + + Returns a tuple of booleans (has_solar, solar_eligible) + """ + + if "solar_pv" not in measure_types: + return False, False + + # 1) We check if there is an eligible heating system in place + has_eligibile_heating = self.check_solar_eligible_heating_system( + mainheat_description, heating_control_description + ) + + if not has_eligibile_heating: + # We check if there is a recommendation for an ASHP or HHRSH + if ("air_source_heat_pump" not in measure_types) and ( + "high_heat_retention_storage_heater" not in measure_types): + return True, False + + # 2) We check if there is a wall insulation measure for this property. If so, we make sure + # we have a wall insulation recommendation in this package + if has_wall_insulation_recommendation: + # Make sure we have a wall insulation recommendation + if not any(m in measure_types for m in WALL_INSULATION_MEASURES): + return True, False + + # 3) We check if there is a roof insulation measure for this property. If so, we make sure + # we have a roof insulation recommendation in this package + if has_roof_insulation_recommendation: + # Make sure we have a roof insulation recommendation + if not any(m in measure_types for m in ROOF_INSULATION_MEASURES): + return True, False + + return True, True + def check_funding( - self, measures: List[dict], + self, + measures: List[dict], starting_sap: int, ending_sap: int, floor_area: float, mainheat_description: str, heating_control_description: str, is_cavity: bool, - council_tax_band: str = None + current_wall_uvalue: float, + is_partial: False, + existing_li_thickness: float, + council_tax_band: str = None, + has_wall_insulation_recommendation: bool = False, + has_roof_insulation_recommendation: bool = False, ): """ Given a list of measures, check ECO4/GBIS eligibility. + + Because measures like solar PV are subject to the minimum insulation requirements and we can get + exemptions on floor insulation recommendations, if has_wall_insulation_recommendation or + has_roof_insulation_recommendation are true, we check that the measures package contain a wall or roof + insulation measure otherwise solar PV isn't eligible """ # Normalize measures measure_types, has_innovation, innovation_measures = self._split_measures(measures) + # Determine if we have a solar eligible heating system + has_solar, solar_eligible = self.check_solar_eligibility( + measure_types, + mainheat_description, + heating_control_description, + has_wall_insulation_recommendation, + has_roof_insulation_recommendation, + ) + # Track EPC bands and floor area self.starting_sap_band = self.get_sap_band(starting_sap) self.ending_sap_band = self.get_sap_band(ending_sap) @@ -281,26 +505,36 @@ class Funding: if self.tenure == "Private": # ECO4 PRS - self.eco4_prs_eligibility(starting_sap, ending_sap, measure_types, mainheat_description, - heating_control_description) + self.eco4_prs_eligibility(starting_sap, ending_sap, measure_types, has_solar, solar_eligible) # GBIS PRS self.gbis_prs_eligibility(starting_sap, council_tax_band or "", measure_types) if self.eco4_eligible: - eco4_abs = self.calculate_full_project_abs() - eco4_funding = eco4_abs * (self.private_cavity_abs_rate if is_cavity else self.private_solid_abs_rate) - return {"eco4_funding": eco4_funding} + self.full_project_abs = self.calculate_full_project_abs() + self.eco4_funding = self.full_project_abs * ( + self.private_cavity_abs_rate if is_cavity else self.private_solid_abs_rate) + elif self.tenure == "Social": # ECO4 Social - self.eco4_sh_eligibility(starting_sap, ending_sap, measure_types, has_innovation, innovation_measures) + self.eco4_sh_eligibility(starting_sap, ending_sap, has_innovation, has_solar, solar_eligible) + # GBIS Social - self.gbis_sh_eligibility(starting_sap, measure_types, has_innovation, innovation_measures) + self.gbis_sh_eligibility(starting_sap, measure_types, has_innovation) if self.eco4_eligible: - eco4_abs = self.calculate_full_project_abs() - eco4_funding = eco4_abs * (self.social_cavity_abs_rate if is_cavity else self.social_solid_abs_rate) - return {"eco4_funding": eco4_funding} + # Calculate the full project ABS for ECO4 + self.full_project_abs = self.calculate_full_project_abs() + self.eco4_funding = self.full_project_abs * ( + self.social_cavity_abs_rate if is_cavity else self.social_solid_abs_rate + ) + + if self.gbis_eligible: + # Calculate the partial project score - this is dependent on the measure + self.partial_project_abs = self.calculate_partial_project_abs( + measure_types[0], current_wall_uvalue, is_partial, existing_li_thickness, + ) + else: raise NotImplementedError("Only 'Private' and 'Social' tenures are supported.") diff --git a/backend/app/plan/schemas.py b/backend/app/plan/schemas.py index 9ed6f978..36d847eb 100644 --- a/backend/app/plan/schemas.py +++ b/backend/app/plan/schemas.py @@ -8,9 +8,10 @@ TYPICAL_MEASURE_TYPES = [ "secondary_heating", "solar_pv" ] -SPECIFIC_MEASURES = [ - "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", - "loft_insulation", "flat_roof_insulation", "room_roof_insulation", +WALL_INSULATION_MEASURES = ["internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation"] +ROOF_INSULATION_MEASURES = ["loft_insulation", "flat_roof_insulation", "room_roof_insulation"] + +SPECIFIC_MEASURES = WALL_INSULATION_MEASURES + ROOF_INSULATION_MEASURES + [ "suspended_floor_insulation", "solid_floor_insulation", "boiler_upgrade", "high_heat_retention_storage_heater", "air_source_heat_pump", "secondary_heating", "solar_pv", "double_glazing", "secondary_glazing", diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 7e9bc3b4..8df90f23 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -30,7 +30,11 @@ def mock_project_scores_matrix(): @pytest.fixture def mock_partial_scores_matrix(): - return pd.DataFrame([{"dummy": "data"}]) # not used for eligibility tests yet + df = pd.read_csv("recommendations/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv") + df.columns = ['Measure category', 'Measure_Type', 'Pre_Main_Heating_Source', + 'Post_Main_Heating_Source', 'Total Floor Area Band', 'Starting Band', + 'Average Treatable Factor', 'Cost Savings', 'SAP Savings'] + return df @pytest.fixture @@ -69,7 +73,10 @@ def test_eco4_prs_eligible_with_swi(mock_project_scores_matrix, mock_partial_sco mainheat_description="Boiler and radiators, mains gas", heating_control_description="Programmer, room thermostat and TRVs", is_cavity=True, - council_tax_band="B" + council_tax_band="B", + is_partial=False, + existing_li_thickness=0, + current_wall_uvalue=2 ) assert funding.eco4_eligible @@ -98,7 +105,10 @@ def test_eco4_prs_not_eligible_high_epc(mock_project_scores_matrix, mock_partial mainheat_description="Boiler and radiators, mains gas", heating_control_description="Programmer, room thermostat and TRVs", is_cavity=True, - council_tax_band="B" + council_tax_band="B", + is_partial=False, + existing_li_thickness=0, + current_wall_uvalue=2, ) assert not funding.eco4_eligible @@ -126,7 +136,10 @@ def test_gbis_prs_general_eligibility(mock_project_scores_matrix, mock_partial_s mainheat_description="Boiler and radiators, mains gas", heating_control_description="Programmer, room thermostat and TRVs", is_cavity=True, - council_tax_band="A" + council_tax_band="A", + is_partial=False, + existing_li_thickness=0, + current_wall_uvalue=2, ) assert funding.gbis_eligible @@ -154,7 +167,10 @@ def test_gbis_prs_low_income_caveat(mock_project_scores_matrix, mock_partial_sco mainheat_description="Boiler and radiators, mains gas", heating_control_description="Programmer, room thermostat and TRVs", is_cavity=True, - council_tax_band="B" + council_tax_band="B", + is_partial=False, + existing_li_thickness=0, + current_wall_uvalue=2, ) assert funding.gbis_eligible @@ -186,7 +202,10 @@ def test_eco4_sh_epc_e_eligible(mock_project_scores_matrix, mock_partial_scores_ floor_area=80, mainheat_description="Boiler and radiators, mains gas", heating_control_description="Programmer, room thermostat and TRVs", - is_cavity=True + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, ) assert funding.eco4_eligible @@ -213,12 +232,169 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part floor_area=80, mainheat_description="Boiler and radiators, mains gas", heating_control_description="Programmer, room thermostat and TRVs", - is_cavity=True + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, ) assert not funding.eco4_eligible assert EligibilityCaveats.INNOVATION_REQUIRED in funding.eco4_eligibility_caveats + # Test with an innovation measure + funding2 = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social", + ) + measures2 = [{"type": "internal_wall_insulation", "is_innovation": True}] + funding2.check_funding( + measures=measures2, + starting_sap=60, # EPC D + ending_sap=69, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, + ) + + assert funding2.eco4_eligible + assert not funding2.eco4_eligibility_caveats + + # Test with innovation solar. If the measure is solar, we need to have an eligible heating system. + # If we don't have an eligible heating system in place, we need to have one as part of the measure + # package + # THIS SHOULD NOT BE ELIGIBLE + funding3 = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social", + ) + measures3 = [{"type": "solar_pv", "is_innovation": True}] + funding3.check_funding( + measures=measures3, + starting_sap=60, # EPC D + ending_sap=69, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, + ) + + assert not funding3.eco4_eligible + assert EligibilityCaveats.SOLAR_NEEDS_HEATING in funding3.eco4_eligibility_caveats + + # Test with innovation solar and ASHP. This should be eligible + funding4 = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social", + ) + + measures4 = [{"type": "solar_pv", "is_innovation": True}] + funding4.check_funding( + measures=measures4, + starting_sap=60, # EPC D + ending_sap=69, + floor_area=80, + mainheat_description="Air source heat pump, radiators", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, + ) + + assert funding4.eco4_eligible + assert not funding4.eco4_eligibility_caveats + + # Test with innovation solar, a non-eligible heating system but a heating upgrade + funding5 = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social", + ) + + measures5 = [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "high_heat_retention_storage_heater", "is_innovation": False} + ] + funding5.check_funding( + measures=measures5, + starting_sap=60, # EPC D + ending_sap=69, + floor_area=80, + mainheat_description="Electric storage heaters", + heating_control_description="Manual charge control", + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, + ) + + assert funding5.eco4_eligible + assert not funding5.eco4_eligibility_caveats + + # Test with innovation solar, an eligible heating system but a package that excludes the required + # fabric upgrades + funding6 = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social", + ) + + measures6 = [ + {"type": "solar_pv", "is_innovation": True}, + ] + funding6.check_funding( + measures=measures6, + starting_sap=60, # EPC D + ending_sap=69, + floor_area=80, + mainheat_description="Electric storage heaters", + heating_control_description="controls for high heat retention storage heaters", + is_cavity=True, + has_wall_insulation_recommendation=True, + has_roof_insulation_recommendation=False, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, + ) + + assert not funding6.eco4_eligible + assert not funding6.eco4_eligibility_caveats + def test_eco4_sh_solar_pv_requires_heating(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): """Solar PV as innovation measure requires ASHP or HHRSH.""" @@ -241,7 +417,10 @@ def test_eco4_sh_solar_pv_requires_heating(mock_project_scores_matrix, mock_part floor_area=80, mainheat_description="Boiler and radiators, mains gas", heating_control_description="Programmer, room thermostat and TRVs", - is_cavity=True + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, ) assert not funding.eco4_eligible @@ -273,7 +452,10 @@ def test_eco4_sh_solar_pv_with_heating_is_ok(mock_project_scores_matrix, mock_pa floor_area=80, mainheat_description="Boiler and radiators, mains gas", heating_control_description="Programmer, room thermostat and TRVs", - is_cavity=True + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, ) assert funding.eco4_eligible @@ -305,7 +487,10 @@ def test_eco4_upgrade_requirement_e_to_c_pass(mock_project_scores_matrix, mock_p mainheat_description="Boiler and radiators, mains gas", heating_control_description="Programmer, room thermostat and TRVs", is_cavity=True, - council_tax_band="B" + council_tax_band="B", + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, ) assert funding.eco4_eligible @@ -336,7 +521,10 @@ def test_eco4_upgrade_requirement_e_to_d_fail(mock_project_scores_matrix, mock_p mainheat_description="Boiler and radiators, mains gas", heating_control_description="Programmer, room thermostat and TRVs", is_cavity=True, - council_tax_band="B" + council_tax_band="B", + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, ) assert not funding.eco4_eligible @@ -367,7 +555,10 @@ def test_eco4_upgrade_requirement_f_to_d_pass(mock_project_scores_matrix, mock_p mainheat_description="Boiler and radiators, mains gas", heating_control_description="Programmer, room thermostat and TRVs", is_cavity=True, - council_tax_band="B" + council_tax_band="B", + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, ) assert funding.eco4_eligible @@ -398,7 +589,10 @@ def test_eco4_upgrade_requirement_f_to_e_fail(mock_project_scores_matrix, mock_p mainheat_description="Boiler and radiators, mains gas", heating_control_description="Programmer, room thermostat and TRVs", is_cavity=True, - council_tax_band="B" + council_tax_band="B", + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, ) assert not funding.eco4_eligible diff --git a/recommendations/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv b/recommendations/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv new file mode 100644 index 00000000..cb2e55f7 --- /dev/null +++ b/recommendations/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv @@ -0,0 +1,16565 @@ +Measure category,Measure_Type,Pre_Main_Heating_Source,Post_Main_Heating_Source,Total Floor Area Band ,Starting Band,Average Treatable Factor,Cost Savings,SAP Savings +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,High_D,0.96,499,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,Low_D,0.96,557,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,High_E,0.96,702,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,Low_E,0.96,841.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,High_F,0.96,1037,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,Low_F,0.96,1255.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,High_G,0.96,1561.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,Low_G,0.96,1911.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,High_D,0.96,488,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,Low_D,0.96,613.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,High_E,0.96,765.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,Low_E,0.96,912.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,High_F,0.96,1118.8,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,Low_F,0.96,1348.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,High_G,0.96,1671.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,Low_G,0.96,2040.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,High_D,0.96,579.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,Low_D,0.96,718.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,High_E,0.96,889,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,Low_E,0.96,1052.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,High_F,0.96,1281.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,Low_F,0.96,1537.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,High_G,0.96,1897.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,Low_G,0.96,2308,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,200,High_D,0.96,1124.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,200,Low_D,0.96,1362.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,200,High_E,0.96,1659.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,200,Low_E,0.96,1945.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,200,High_F,0.96,2345.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,200,Low_F,0.96,2793,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,200,High_G,0.96,3420.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Fuel Cell mCHP,200,Low_G,0.96,4138,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,High_D,0.96,425.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,541.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,High_E,0.96,682.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,818.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,High_F,0.96,1009.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,1223,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1522.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1864.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,High_D,0.96,468.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,589.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,High_E,0.96,736.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,878.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,High_F,0.96,1078,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,1300.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1612.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1969.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,High_D,0.96,548.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,681.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,High_E,0.96,843.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,999.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,High_F,0.96,1218.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1462.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1805.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,2197.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,High_D,0.96,1057.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,Low_D,0.96,1283.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,High_E,0.96,1564.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,Low_E,0.96,1834.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,High_F,0.96,2213.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,Low_F,0.96,2636.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,High_G,0.96,3230.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,Low_G,0.96,3909.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,High_D,0.96,387.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,Low_D,0.96,496.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,High_E,0.96,628.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,Low_E,0.96,755.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,High_F,0.96,933.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,Low_F,0.96,1132.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,High_G,0.96,1411.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,Low_G,0.96,1730.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,High_D,0.96,411.8,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,Low_D,0.96,521.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,High_E,0.96,654.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,Low_E,0.96,782.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,High_F,0.96,963,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,Low_F,0.96,1163.8,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,High_G,0.96,1445.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,Low_G,0.96,1768.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,High_D,0.96,459.8,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,Low_D,0.96,574.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,High_E,0.96,715,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,Low_E,0.96,849.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,High_F,0.96,1039,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,Low_F,0.96,1250.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,High_G,0.96,1546.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,Low_G,0.96,1885.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,200,High_D,0.96,870.8,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,200,Low_D,0.96,1060.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,200,High_E,0.96,1295.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,200,Low_E,0.96,1522.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,200,High_F,0.96,1840.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,200,Low_F,0.96,2195.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,200,High_G,0.96,2693.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Fuel Cell mCHP,200,Low_G,0.96,3263,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,High_D,0.96,370.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,474.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,High_E,0.96,602.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,725,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,High_F,0.96,897.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,1089.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1358.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1666.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,High_D,0.96,385.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,489.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,High_E,0.96,615.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,737.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,High_F,0.96,908.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,1099.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1366.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1673,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,High_D,0.96,417.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,524.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,High_E,0.96,654.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,778.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,High_F,0.96,954.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1149.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1423.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1737.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,High_D,0.96,782.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,Low_D,0.96,954.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,High_E,0.96,1168.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,Low_E,0.96,1374.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,High_F,0.96,1664,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,Low_F,0.96,1986.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,High_G,0.96,2439.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,Low_G,0.96,2957.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,High_D,0.96,402.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,509.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,High_E,0.96,640.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,766.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,High_F,0.96,943,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,1139.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1416.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1732.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,High_D,0.96,429.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,536.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,High_E,0.96,668.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,795,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,High_F,0.96,972.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,1170.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1448.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1766.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,High_D,0.96,478,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,590.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,High_E,0.96,728,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,860,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,High_F,0.96,1045.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1252.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1542.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1874.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,200,High_D,0.96,880.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,200,Low_D,0.96,1065.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,200,High_E,0.96,1295.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,200,Low_E,0.96,1516.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,200,High_F,0.96,1826.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,200,Low_F,0.96,2172.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,200,High_G,0.96,2658.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Fuel Cell mCHP,200,Low_G,0.96,3213.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,0-72,High_D,0.96,388,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,0-72,Low_D,0.96,491.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,0-72,High_E,0.96,617.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,0-72,Low_E,0.96,738.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,0-72,High_F,0.96,908.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,0-72,Low_F,0.96,1098.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,0-72,High_G,0.96,1364.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,0-72,Low_G,0.96,1669.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,73-97,High_D,0.96,405.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,73-97,Low_D,0.96,507.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,73-97,High_E,0.96,632.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,73-97,Low_E,0.96,752.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,73-97,High_F,0.96,920.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,73-97,Low_F,0.96,1107.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,73-97,High_G,0.96,1370.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,73-97,Low_G,0.96,1671.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,98-199,High_D,0.96,439.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,98-199,Low_D,0.96,543.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,98-199,High_E,0.96,669.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,98-199,Low_E,0.96,791.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,98-199,High_F,0.96,961.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,98-199,Low_F,0.96,1152.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,98-199,High_G,0.96,1419.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,98-199,Low_G,0.96,1724.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,200,High_D,0.96,794.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,200,Low_D,0.96,960.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,200,High_E,0.96,1168.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,200,Low_E,0.96,1367.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,200,High_F,0.96,1647.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,200,Low_F,0.96,1959.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,200,High_G,0.96,2397.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Fuel Cell mCHP,200,Low_G,0.96,2898.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,High_D,0.96,379.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,Low_D,0.96,480.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,High_E,0.96,603.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,Low_E,0.96,721.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,High_F,0.96,888.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,Low_F,0.96,1073.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,High_G,0.96,1334,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,Low_G,0.96,1631.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,High_D,0.96,392,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,Low_D,0.96,490.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,High_E,0.96,610.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,Low_E,0.96,726.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,High_F,0.96,888.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,Low_F,0.96,1069.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,High_G,0.96,1323.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,Low_G,0.96,1614.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,High_D,0.96,416.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,Low_D,0.96,515,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,High_E,0.96,634.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,Low_E,0.96,750,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,High_F,0.96,911.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,Low_F,0.96,1092.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,High_G,0.96,1345.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,Low_G,0.96,1634.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,High_D,0.96,742.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,Low_D,0.96,898,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,High_E,0.96,1091.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,Low_E,0.96,1278,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,High_F,0.96,1539.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,Low_F,0.96,1831.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,High_G,0.96,2240.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,Low_G,0.96,2708.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_D,0.96,366,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,463.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_E,0.96,582.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,696.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_F,0.96,857.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,1036.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1287.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1575,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_D,0.96,371.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,464.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_E,0.96,578.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,687.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_F,0.96,841.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,1012.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1253.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1528.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_D,0.96,382.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,472.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_E,0.96,582.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,688.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_F,0.96,836.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1002,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1234.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1499.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,High_D,0.96,664.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,Low_D,0.96,803.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,High_E,0.96,977.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,Low_E,0.96,1144,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,High_F,0.96,1378.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,Low_F,0.96,1639.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,High_G,0.96,2005.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,Low_G,0.96,2424.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_D,0.96,347,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,439.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_E,0.96,552.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,660.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_F,0.96,812.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,982.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1220.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1493.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_D,0.96,341,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,426.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_E,0.96,531.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,631.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_F,0.96,773.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,930.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1151.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1404.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_D,0.96,332.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,411.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_E,0.96,506.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,598.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_F,0.96,727.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,871.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1074,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1305.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,High_D,0.96,552.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,Low_D,0.96,667.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,High_E,0.96,812,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,Low_E,0.96,950.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,High_F,0.96,1144.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,Low_F,0.96,1361.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,High_G,0.96,1666.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,Low_G,0.96,2014.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Biomass Boiler,200,Low_G,0.96,0,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,0-72,High_D,0.96,426.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,0-72,Low_D,0.96,543.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,0-72,High_E,0.96,685.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,0-72,Low_E,0.96,821.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,0-72,High_F,0.96,1013.6,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,0-72,Low_F,0.96,1227.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,0-72,High_G,0.96,1527.6,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,0-72,Low_G,0.96,1870.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,73-97,High_D,0.96,470.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,73-97,Low_D,0.96,592.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,73-97,High_E,0.96,740.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,73-97,Low_E,0.96,883.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,73-97,High_F,0.96,1083.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,73-97,Low_F,0.96,1307,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,73-97,High_G,0.96,1620.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,73-97,Low_G,0.96,1979,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,98-199,High_D,0.96,552.6,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,98-199,Low_D,0.96,686.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,98-199,High_E,0.96,849.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,98-199,Low_E,0.96,1006.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,98-199,High_F,0.96,1227.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,98-199,Low_F,0.96,1473.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,98-199,High_G,0.96,1818.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,98-199,Low_G,0.96,2212.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,200,High_D,0.96,1067.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,200,Low_D,0.96,1294.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,200,High_E,0.96,1577.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,200,Low_E,0.96,1849.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,200,High_F,0.96,2232.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,200,Low_F,0.96,2658.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,200,High_G,0.96,3256.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Fuel Cell mCHP,200,Low_G,0.96,3941,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,High_D,0.96,380.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,Low_D,0.96,486,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,High_E,0.96,615.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,Low_E,0.96,739.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,High_F,0.96,913.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,Low_F,0.96,1107.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,High_G,0.96,1380.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,Low_G,0.96,1691.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,High_D,0.96,399.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,Low_D,0.96,504.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,High_E,0.96,633.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,Low_E,0.96,757.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,High_F,0.96,931.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,Low_F,0.96,1125.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,High_G,0.96,1398.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,Low_G,0.96,1709.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,High_D,0.96,438,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,Low_D,0.96,547.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,High_E,0.96,680.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,Low_E,0.96,808.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,High_F,0.96,988.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,Low_F,0.96,1188.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,High_G,0.96,1470.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,Low_G,0.96,1792.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,High_D,0.96,818.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,Low_D,0.96,996.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,High_E,0.96,1217.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,Low_E,0.96,1430.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,High_F,0.96,1729.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,Low_F,0.96,2062.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,High_G,0.96,2530.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,Low_G,0.96,3064.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,0-72,High_D,0.96,428.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,545.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,0-72,High_E,0.96,687.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,824,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,0-72,High_F,0.96,1015.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,1229.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1529.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1872.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,73-97,High_D,0.96,473.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,595,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,73-97,High_E,0.96,743.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,886,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,73-97,High_F,0.96,1086.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,1309.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1623.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1981.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,98-199,High_D,0.96,555.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,689.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,98-199,High_E,0.96,852.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,1009.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,98-199,High_F,0.96,1230.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1476.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1821.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,2215.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,200,High_D,0.96,1070.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,200,Low_D,0.96,1298.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,200,High_E,0.96,1581.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,200,Low_E,0.96,1853.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,200,High_F,0.96,2235.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,200,Low_F,0.96,2662,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,200,High_G,0.96,3260.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Fuel Cell mCHP,200,Low_G,0.96,3944.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_D,0.96,381,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,487.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_E,0.96,618,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,743.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_F,0.96,919,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,1115.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1390.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1705.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_D,0.96,401.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,508.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_E,0.96,639.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,764.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_F,0.96,941.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,1138.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1414.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1730.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_D,0.96,443.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,554.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_E,0.96,690.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,821.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_F,0.96,1005.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1210.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1497.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1826.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,High_D,0.96,835.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,Low_D,0.96,1018.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,High_E,0.96,1245.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,Low_E,0.96,1463.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,High_F,0.96,1770.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,Low_F,0.96,2112.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,High_G,0.96,2592.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,Low_G,0.96,3141.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_D,0.96,369.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,473.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_E,0.96,600.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,722.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_F,0.96,894.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,1086.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1354.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1662.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_D,0.96,383.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,486.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_E,0.96,613,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,734.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_F,0.96,904.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,1094.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1361.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1666.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_D,0.96,414.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,520.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_E,0.96,649.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,773.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_F,0.96,948.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1142.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1415.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1726.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,High_D,0.96,776,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,Low_D,0.96,946.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,High_E,0.96,1159.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,Low_E,0.96,1364.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,High_F,0.96,1651.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,Low_F,0.96,1971.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,High_G,0.96,2421.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,Low_G,0.96,2935.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_D,0.96,420,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,533.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_E,0.96,671.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,804.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_F,0.96,991.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,1199.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1491.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1825.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_D,0.96,458.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,575.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_E,0.96,718,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,855.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_F,0.96,1047.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,1262.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1564.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1909,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_D,0.96,529.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,656,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_E,0.96,810.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,959.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_F,0.96,1167.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1400.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1727.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,2100.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,High_D,0.96,1006.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,Low_D,0.96,1219.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,High_E,0.96,1484.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,Low_E,0.96,1739.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,High_F,0.96,2097.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,Low_F,0.96,2496.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,High_G,0.96,3057.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,Low_G,0.96,3698.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_D,0.96,410.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,521.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_E,0.96,656.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,786.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_F,0.96,969.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,1173.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1459.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1787,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_D,0.96,443.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,556.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_E,0.96,695.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,828.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_F,0.96,1015.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,1223.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1516.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1851,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_D,0.96,505.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,626.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_E,0.96,774.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,916.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_F,0.96,1116.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1339.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1652.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,2010,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,High_D,0.96,953.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,Low_D,0.96,1155.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,High_E,0.96,1407.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,Low_E,0.96,1649.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,High_F,0.96,1989.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,Low_F,0.96,2368.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,High_G,0.96,2900.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,Low_G,0.96,3508.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,0-72,High_B,0.96,375.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,0-72,Low_B,0.96,375.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,0-72,High_C,0.96,375.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,0-72,Low_C,0.96,375.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,0-72,High_D,0.96,375.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,0-72,Low_D,0.96,422.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,0-72,High_E,0.96,538.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,0-72,Low_E,0.96,650.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,0-72,High_F,0.96,807.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,0-72,Low_F,0.96,983.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,0-72,High_G,0.96,1229,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,0-72,Low_G,0.96,1510.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,73-97,High_B,0.96,341.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,73-97,Low_B,0.96,341.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,73-97,High_C,0.96,341.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,73-97,Low_C,0.96,341.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,73-97,High_D,0.96,381.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,73-97,Low_D,0.96,485,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,73-97,High_E,0.96,610.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,73-97,Low_E,0.96,731.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,73-97,High_F,0.96,901.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,73-97,Low_F,0.96,1091,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,73-97,High_G,0.96,1356.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,73-97,Low_G,0.96,1660.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,98-199,High_B,0.96,307.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,98-199,Low_B,0.96,307.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,98-199,High_C,0.96,307.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,98-199,Low_C,0.96,354.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,98-199,High_D,0.96,478.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,98-199,Low_D,0.96,596.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,98-199,High_E,0.96,741.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,98-199,Low_E,0.96,880.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,98-199,High_F,0.96,1076.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,98-199,Low_F,0.96,1294.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,98-199,High_G,0.96,1600.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,98-199,Low_G,0.96,1950.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,200,High_B,0.96,307.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,200,Low_B,0.96,366.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,200,High_C,0.96,565.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,200,Low_C,0.96,739.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,200,High_D,0.96,963.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,200,Low_D,0.96,1170.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,200,High_E,0.96,1428.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,200,Low_E,0.96,1676.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,200,High_F,0.96,2025.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,200,Low_F,0.96,2413.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,200,High_G,0.96,2959,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS non-CHP,200,Low_G,0.96,3582.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,0-72,High_B,0.96,202.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,0-72,Low_B,0.96,202.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,0-72,High_C,0.96,202.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,0-72,Low_C,0.96,202.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,0-72,High_D,0.96,274.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,0-72,Low_D,0.96,359.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,0-72,High_E,0.96,462.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,0-72,Low_E,0.96,561.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,0-72,High_F,0.96,700.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,0-72,Low_F,0.96,855.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,0-72,High_G,0.96,1073.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,0-72,Low_G,0.96,1322.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,73-97,High_B,0.96,184.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,73-97,Low_B,0.96,184.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,73-97,High_C,0.96,184.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,73-97,Low_C,0.96,230.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,73-97,High_D,0.96,324.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,73-97,Low_D,0.96,416.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,73-97,High_E,0.96,527.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,73-97,Low_E,0.96,634.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,73-97,High_F,0.96,784.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,73-97,Low_F,0.96,952.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,73-97,High_G,0.96,1187.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,73-97,Low_G,0.96,1457,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,98-199,High_B,0.96,165.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,98-199,Low_B,0.96,165.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,98-199,High_C,0.96,217,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,98-199,Low_C,0.96,302,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,98-199,High_D,0.96,411.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,98-199,Low_D,0.96,516.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,98-199,High_E,0.96,644.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,98-199,Low_E,0.96,767.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,98-199,High_F,0.96,940.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,98-199,Low_F,0.96,1133.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,98-199,High_G,0.96,1404.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,98-199,Low_G,0.96,1714.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,200,High_B,0.96,172,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,200,Low_B,0.96,312.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,200,High_C,0.96,488.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,200,Low_C,0.96,643,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,200,High_D,0.96,840.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,200,Low_D,0.96,1024.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,200,High_E,0.96,1252.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,200,Low_E,0.96,1472.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,200,High_F,0.96,1780.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,200,Low_F,0.96,2124.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,200,High_G,0.96,2607.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS non-CHP,200,Low_G,0.96,3159.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,0-72,High_C,0.96,30.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,0-72,Low_C,0.96,73.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,0-72,High_D,0.96,127.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,0-72,Low_D,0.96,181.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,0-72,High_E,0.96,246.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,0-72,Low_E,0.96,309.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,0-72,High_F,0.96,397.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,0-72,Low_F,0.96,495.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,0-72,High_G,0.96,633.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,0-72,Low_G,0.96,791.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,73-97,Low_B,0.96,4.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,73-97,High_C,0.96,57.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,73-97,Low_C,0.96,104,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,73-97,High_D,0.96,163.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,73-97,Low_D,0.96,221.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,73-97,High_E,0.96,292,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,73-97,Low_E,0.96,359.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,73-97,High_F,0.96,455.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,73-97,Low_F,0.96,561.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,73-97,High_G,0.96,710.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,73-97,Low_G,0.96,881,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,98-199,Low_B,0.96,37.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,98-199,High_C,0.96,99.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,98-199,Low_C,0.96,153.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,98-199,High_D,0.96,222.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,98-199,Low_D,0.96,289.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,98-199,High_E,0.96,370.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,98-199,Low_E,0.96,448.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,98-199,High_F,0.96,558.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,98-199,Low_F,0.96,680.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,98-199,High_G,0.96,852,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,98-199,Low_G,0.96,1048.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,200,High_B,0.96,71,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,200,Low_B,0.96,159.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,200,High_C,0.96,271.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,200,Low_C,0.96,369.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,200,High_D,0.96,494.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,200,Low_D,0.96,611,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,200,High_E,0.96,755.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,200,Low_E,0.96,894.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,200,High_F,0.96,1090.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,200,Low_F,0.96,1308.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,200,High_G,0.96,1614.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS non-CHP,200,Low_G,0.96,1963.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,0-72,High_C,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,0-72,Low_C,0.96,18.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,0-72,High_D,0.96,58.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,0-72,Low_D,0.96,97,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,0-72,High_E,0.96,144.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,0-72,Low_E,0.96,190,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,0-72,High_F,0.96,254.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,0-72,Low_F,0.96,325.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,0-72,High_G,0.96,425.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,0-72,Low_G,0.96,540.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,73-97,High_C,0.96,10.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,73-97,Low_C,0.96,44,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,73-97,High_D,0.96,87.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,73-97,Low_D,0.96,129.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,73-97,High_E,0.96,180.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,73-97,Low_E,0.96,229.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,73-97,High_F,0.96,299.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,73-97,Low_F,0.96,376.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,73-97,High_G,0.96,484.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,73-97,Low_G,0.96,608.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,98-199,Low_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,98-199,High_C,0.96,43.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,98-199,Low_C,0.96,83.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,98-199,High_D,0.96,133.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,98-199,Low_D,0.96,181.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,98-199,High_E,0.96,240.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,98-199,Low_E,0.96,297.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,98-199,High_F,0.96,377.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,98-199,Low_F,0.96,465.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,98-199,High_G,0.96,590.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,98-199,Low_G,0.96,733.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,200,High_B,0.96,23.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,200,Low_B,0.96,87.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,200,High_C,0.96,168.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,200,Low_C,0.96,240,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,200,High_D,0.96,331.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,200,Low_D,0.96,415.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,200,High_E,0.96,520.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,200,Low_E,0.96,621.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,200,High_F,0.96,763.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,200,Low_F,0.96,922,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,200,High_G,0.96,1144.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS non-CHP,200,Low_G,0.96,1398.3,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,0-72,High_B,0.96,56.2,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,0-72,Low_B,0.96,56.2,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,0-72,High_C,0.96,96.2,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,0-72,Low_C,0.96,135.3,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,0-72,High_D,0.96,185.9,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,0-72,Low_D,0.96,235.4,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,0-72,High_E,0.96,295.9,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,0-72,Low_E,0.96,353.9,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,0-72,High_F,0.96,435.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,0-72,Low_F,0.96,526.4,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,0-72,High_G,0.96,654.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,0-72,Low_G,0.96,800.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,73-97,High_B,0.96,51.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,73-97,Low_B,0.96,66,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,73-97,High_C,0.96,115,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,73-97,Low_C,0.96,157.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,73-97,High_D,0.96,212.9,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,73-97,Low_D,0.96,266.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,73-97,High_E,0.96,331.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,73-97,Low_E,0.96,394.6,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,73-97,High_F,0.96,482.7,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,73-97,Low_F,0.96,581,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,73-97,High_G,0.96,719,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,73-97,Low_G,0.96,876.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,98-199,High_B,0.96,46,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,98-199,Low_B,0.96,90.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,98-199,High_C,0.96,147.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,98-199,Low_C,0.96,197.4,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,98-199,High_D,0.96,261.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,98-199,Low_D,0.96,323,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,98-199,High_E,0.96,398.2,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,98-199,Low_E,0.96,470.4,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,98-199,High_F,0.96,571.9,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,98-199,Low_F,0.96,685,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,98-199,High_G,0.96,843.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,98-199,Low_G,0.96,1025.4,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,200,High_B,0.96,121.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,200,Low_B,0.96,203.3,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,200,High_C,0.96,306.6,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,200,Low_C,0.96,397.3,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,200,High_D,0.96,513.3,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,200,Low_D,0.96,620.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,200,High_E,0.96,754.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,200,Low_E,0.96,883.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,200,High_F,0.96,1064.3,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,200,Low_F,0.96,1266,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,200,High_G,0.96,1549,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS non-CHP,200,Low_G,0.96,1872.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,0-72,High_B,0.96,26.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,0-72,Low_B,0.96,35.3,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,0-72,High_C,0.96,66.2,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,0-72,Low_C,0.96,93.1,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,0-72,High_D,0.96,128,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,0-72,Low_D,0.96,162,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,0-72,High_E,0.96,203.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,0-72,Low_E,0.96,243.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,0-72,High_F,0.96,299.7,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,0-72,Low_F,0.96,362.3,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,0-72,High_G,0.96,450.2,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,0-72,Low_G,0.96,550.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,73-97,High_B,0.96,24.1,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,73-97,Low_B,0.96,45.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,73-97,High_C,0.96,79.1,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,73-97,Low_C,0.96,108.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,73-97,High_D,0.96,146.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,73-97,Low_D,0.96,183.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,73-97,High_E,0.96,228.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,73-97,Low_E,0.96,271.5,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,73-97,High_F,0.96,332.2,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,73-97,Low_F,0.96,399.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,73-97,High_G,0.96,494.8,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,73-97,Low_G,0.96,603.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,98-199,High_B,0.96,31.2,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,98-199,Low_B,0.96,62.3,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,98-199,High_C,0.96,101.5,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,98-199,Low_C,0.96,135.8,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,98-199,High_D,0.96,179.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,98-199,Low_D,0.96,222.3,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,98-199,High_E,0.96,274.1,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,98-199,Low_E,0.96,323.8,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,98-199,High_F,0.96,393.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,98-199,Low_F,0.96,471.5,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,98-199,High_G,0.96,580.7,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,98-199,Low_G,0.96,705.7,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,200,High_B,0.96,83.3,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,200,Low_B,0.96,139.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,200,High_C,0.96,211,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,200,Low_C,0.96,273.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,200,High_D,0.96,353.2,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,200,Low_D,0.96,427.3,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,200,High_E,0.96,519.5,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,200,Low_E,0.96,608.1,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,200,High_F,0.96,732.5,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,200,Low_F,0.96,871.3,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,200,High_G,0.96,1066.1,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS non-CHP,200,Low_G,0.96,1288.8,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,0-72,High_B,0.96,15.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,0-72,Low_B,0.96,25.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,0-72,High_C,0.96,48.2,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,0-72,Low_C,0.96,67.8,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,0-72,High_D,0.96,93.2,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,0-72,Low_D,0.96,118,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,0-72,High_E,0.96,148.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,0-72,Low_E,0.96,177.4,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,0-72,High_F,0.96,218.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,0-72,Low_F,0.96,263.8,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,0-72,High_G,0.96,327.8,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,0-72,Low_G,0.96,401,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,73-97,High_B,0.96,13.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,73-97,Low_B,0.96,33.1,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,73-97,High_C,0.96,57.6,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,73-97,Low_C,0.96,79.1,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,73-97,High_D,0.96,106.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,73-97,Low_D,0.96,133.5,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,73-97,High_E,0.96,166.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,73-97,Low_E,0.96,197.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,73-97,High_F,0.96,241.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,73-97,Low_F,0.96,291.2,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,73-97,High_G,0.96,360.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,73-97,Low_G,0.96,439.4,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,98-199,High_B,0.96,22.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,98-199,Low_B,0.96,45.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,98-199,High_C,0.96,73.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,98-199,Low_C,0.96,98.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,98-199,High_D,0.96,131,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,98-199,Low_D,0.96,161.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,98-199,High_E,0.96,199.6,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,98-199,Low_E,0.96,235.8,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,98-199,High_F,0.96,286.6,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,98-199,Low_F,0.96,343.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,98-199,High_G,0.96,422.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,98-199,Low_G,0.96,513.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,200,High_B,0.96,60.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,200,Low_B,0.96,101.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,200,High_C,0.96,153.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,200,Low_C,0.96,199.1,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,200,High_D,0.96,257.2,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,200,Low_D,0.96,311.1,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,200,High_E,0.96,378.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,200,Low_E,0.96,442.8,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,200,High_F,0.96,533.4,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,200,Low_F,0.96,634.5,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,200,High_G,0.96,776.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS non-CHP,200,Low_G,0.96,938.5,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,0-72,High_C,0.96,18.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,0-72,Low_C,0.96,53,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,0-72,High_D,0.96,97.6,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,0-72,Low_D,0.96,141.3,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,0-72,High_E,0.96,194.6,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,0-72,Low_E,0.96,245.8,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,0-72,High_F,0.96,317.7,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,0-72,Low_F,0.96,397.9,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,0-72,High_G,0.96,510.6,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,0-72,Low_G,0.96,639.3,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,73-97,High_C,0.96,41,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,73-97,Low_C,0.96,78.8,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,73-97,High_D,0.96,127.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,73-97,Low_D,0.96,174.7,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,73-97,High_E,0.96,232.3,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,73-97,Low_E,0.96,287.6,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,73-97,High_F,0.96,365.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,73-97,Low_F,0.96,452.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,73-97,High_G,0.96,573.8,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,73-97,Low_G,0.96,713,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,98-199,Low_B,0.96,25.5,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,98-199,High_C,0.96,75.7,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,98-199,Low_C,0.96,119.7,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,98-199,High_D,0.96,176.3,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,98-199,Low_D,0.96,230.6,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,98-199,High_E,0.96,296.9,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,98-199,Low_E,0.96,360.6,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,98-199,High_F,0.96,450.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,98-199,Low_F,0.96,549.9,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,98-199,High_G,0.96,690,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,98-199,Low_G,0.96,850.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,200,High_B,0.96,52.5,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,200,Low_B,0.96,125,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,200,High_C,0.96,216.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,200,Low_C,0.96,296.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,200,High_D,0.96,398.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,200,Low_D,0.96,493.2,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,200,High_E,0.96,611.5,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,200,Low_E,0.96,725,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,200,High_F,0.96,884.5,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,200,Low_F,0.96,1062.3,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,200,High_G,0.96,1312,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS non-CHP,200,Low_G,0.96,1597.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,0-72,High_B,0.96,229.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,0-72,Low_B,0.96,229.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,0-72,High_C,0.96,229.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,0-72,Low_C,0.96,229.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,0-72,High_D,0.96,290.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,0-72,Low_D,0.96,376.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,0-72,High_E,0.96,481.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,0-72,Low_E,0.96,582,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,0-72,High_F,0.96,723.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,0-72,Low_F,0.96,881.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,0-72,High_G,0.96,1103.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,0-72,Low_G,0.96,1356.6,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,73-97,High_B,0.96,208.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,73-97,Low_B,0.96,208.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,73-97,High_C,0.96,208.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,73-97,Low_C,0.96,244.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,73-97,High_D,0.96,340.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,73-97,Low_D,0.96,433,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,73-97,High_E,0.96,546.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,73-97,Low_E,0.96,655.4,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,73-97,High_F,0.96,808.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,73-97,Low_F,0.96,979.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,73-97,High_G,0.96,1218.7,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,73-97,Low_G,0.96,1492.7,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,98-199,High_B,0.96,187.6,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,98-199,Low_B,0.96,187.6,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,98-199,High_C,0.96,229.4,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,98-199,Low_C,0.96,316,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,98-199,High_D,0.96,427.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,98-199,Low_D,0.96,534.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,98-199,High_E,0.96,664.8,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,98-199,Low_E,0.96,790.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,98-199,High_F,0.96,966.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,98-199,Low_F,0.96,1162.7,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,98-199,High_G,0.96,1438.4,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,98-199,Low_G,0.96,1753.7,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,200,High_B,0.96,187.6,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,200,Low_B,0.96,326.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,200,High_C,0.96,505.7,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,200,Low_C,0.96,663.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,200,High_D,0.96,864.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,200,Low_D,0.96,1051.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,200,High_E,0.96,1283.9,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,200,Low_E,0.96,1507.4,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,200,High_F,0.96,1821.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,200,Low_F,0.96,2171.4,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,200,High_G,0.96,2662.8,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS non-CHP,200,Low_G,0.96,3224.7,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,0-72,High_B,0.96,221.2,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,0-72,Low_B,0.96,221.2,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,0-72,High_C,0.96,221.2,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,0-72,Low_C,0.96,221.2,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,0-72,High_D,0.96,282.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,0-72,Low_D,0.96,368.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,0-72,High_E,0.96,473,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,0-72,Low_E,0.96,573.8,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,0-72,High_F,0.96,715.4,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,0-72,Low_F,0.96,873.3,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,0-72,High_G,0.96,1095,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,0-72,Low_G,0.96,1348.4,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,73-97,High_B,0.96,201.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,73-97,Low_B,0.96,201.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,73-97,High_C,0.96,201.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,73-97,Low_C,0.96,236.9,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,73-97,High_D,0.96,332.7,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,73-97,Low_D,0.96,425.6,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,73-97,High_E,0.96,539.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,73-97,Low_E,0.96,648,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,73-97,High_F,0.96,801.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,73-97,Low_F,0.96,971.8,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,73-97,High_G,0.96,1211.3,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,73-97,Low_G,0.96,1485.3,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,98-199,High_B,0.96,181,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,98-199,Low_B,0.96,181,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,98-199,High_C,0.96,222.7,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,98-199,Low_C,0.96,309.3,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,98-199,High_D,0.96,420.6,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,98-199,Low_D,0.96,527.6,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,98-199,High_E,0.96,658.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,98-199,Low_E,0.96,783.5,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,98-199,High_F,0.96,959.6,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,98-199,Low_F,0.96,1156.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,98-199,High_G,0.96,1431.8,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,98-199,Low_G,0.96,1747,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,200,High_B,0.96,181,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,200,Low_B,0.96,319.6,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,200,High_C,0.96,499,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,200,Low_C,0.96,656.4,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,200,High_D,0.96,857.8,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,200,Low_D,0.96,1044.5,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,200,High_E,0.96,1277.2,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,200,Low_E,0.96,1500.7,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,200,High_F,0.96,1814.6,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,200,Low_F,0.96,2164.7,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,200,High_G,0.96,2656.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS non-CHP,200,Low_G,0.96,3218,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,0-72,High_C,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,0-72,Low_C,0.96,14.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,0-72,High_D,0.96,53.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,0-72,Low_D,0.96,91,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,0-72,High_E,0.96,137.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,0-72,Low_E,0.96,181.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,0-72,High_F,0.96,243.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,0-72,Low_F,0.96,313.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,0-72,High_G,0.96,410.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,0-72,Low_G,0.96,522.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,73-97,High_C,0.96,7,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,73-97,Low_C,0.96,39.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,73-97,High_D,0.96,81.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,73-97,Low_D,0.96,122.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,73-97,High_E,0.96,172.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,73-97,Low_E,0.96,220.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,73-97,High_F,0.96,287.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,73-97,Low_F,0.96,363,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,73-97,High_G,0.96,468.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,73-97,Low_G,0.96,588.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,98-199,Low_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,98-199,High_C,0.96,39.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,98-199,Low_C,0.96,78,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,98-199,High_D,0.96,127,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,98-199,Low_D,0.96,174,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,98-199,High_E,0.96,231.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,98-199,Low_E,0.96,286.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,98-199,High_F,0.96,364.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,98-199,Low_F,0.96,450.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,98-199,High_G,0.96,571.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,98-199,Low_G,0.96,710.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,200,High_B,0.96,19.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,200,Low_B,0.96,82.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,200,High_C,0.96,161.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,200,Low_C,0.96,230.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,200,High_D,0.96,319.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,200,Low_D,0.96,401.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,200,High_E,0.96,503.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,200,Low_E,0.96,602.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,200,High_F,0.96,740.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,200,Low_F,0.96,894.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,200,High_G,0.96,1110.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS non-CHP,200,Low_G,0.96,1357.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,High_C,0.96,13.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,Low_C,0.96,51.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,High_D,0.96,100.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,Low_D,0.96,147.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,High_E,0.96,206,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,Low_E,0.96,262,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,High_F,0.96,340.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,Low_F,0.96,428.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,High_G,0.96,551.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,Low_G,0.96,691.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,High_C,0.96,38.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,Low_C,0.96,80.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,High_D,0.96,133.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,Low_D,0.96,184.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,High_E,0.96,247.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,Low_E,0.96,308.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,High_F,0.96,393.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,Low_F,0.96,487.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,High_G,0.96,620.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,Low_G,0.96,772.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,Low_B,0.96,22.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,High_C,0.96,77.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,Low_C,0.96,125.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,High_D,0.96,187.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,Low_D,0.96,246.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,High_E,0.96,319,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,Low_E,0.96,388.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,High_F,0.96,486.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,Low_F,0.96,595.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,High_G,0.96,748.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,Low_G,0.96,923.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,200,High_B,0.96,52,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,200,Low_B,0.96,131.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,200,High_C,0.96,230.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,200,Low_C,0.96,318,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,200,High_D,0.96,429.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,200,Low_D,0.96,533.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,200,High_E,0.96,662.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,200,Low_E,0.96,786.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,200,High_F,0.96,960.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,200,Low_F,0.96,1154.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,200,High_G,0.96,1427.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS non-CHP,200,Low_G,0.96,1739.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,High_B,0.96,133.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,Low_B,0.96,133.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,High_C,0.96,133.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,Low_C,0.96,179.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,High_D,0.96,254.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,Low_D,0.96,328.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,High_E,0.96,418.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,Low_E,0.96,504.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,High_F,0.96,626,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,Low_F,0.96,761.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,High_G,0.96,951.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,Low_G,0.96,1168.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,High_B,0.96,121.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,Low_B,0.96,121.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,High_C,0.96,151,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,Low_C,0.96,214.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,High_D,0.96,296.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,Low_D,0.96,376.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,High_E,0.96,473.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,Low_E,0.96,567.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,High_F,0.96,698.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,Low_F,0.96,844.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,High_G,0.96,1049.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,Low_G,0.96,1284.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,High_B,0.96,109.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,Low_B,0.96,116.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,High_C,0.96,201.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,Low_C,0.96,275.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,High_D,0.96,371,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,Low_D,0.96,462.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,High_E,0.96,574.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,Low_E,0.96,682,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,High_F,0.96,833,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,Low_F,0.96,1001.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,High_G,0.96,1237.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,Low_G,0.96,1507.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,200,High_B,0.96,162.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,200,Low_B,0.96,284.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,200,High_C,0.96,438.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,200,Low_C,0.96,573.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,200,High_D,0.96,745.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,200,Low_D,0.96,905.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,200,High_E,0.96,1105.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,200,Low_E,0.96,1296.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,200,High_F,0.96,1565.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,200,Low_F,0.96,1865.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,200,High_G,0.96,2287,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS non-CHP,200,Low_G,0.96,2768.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,0-72,High_B,0.96,80.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,0-72,Low_B,0.96,80.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,0-72,High_C,0.96,99.3,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,0-72,Low_C,0.96,150.4,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,0-72,High_D,0.96,216.3,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,0-72,Low_D,0.96,280.8,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,0-72,High_E,0.96,359.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,0-72,Low_E,0.96,435.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,0-72,High_F,0.96,541.3,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,0-72,Low_F,0.96,659.8,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,0-72,High_G,0.96,826.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,0-72,Low_G,0.96,1016.2,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,73-97,High_B,0.96,73.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,73-97,Low_B,0.96,73.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,73-97,High_C,0.96,126.2,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,73-97,Low_C,0.96,182,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,73-97,High_D,0.96,253.8,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,73-97,Low_D,0.96,323.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,73-97,High_E,0.96,408.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,73-97,Low_E,0.96,490.4,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,73-97,High_F,0.96,605.2,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,73-97,Low_F,0.96,733.2,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,73-97,High_G,0.96,913,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,73-97,Low_G,0.96,1118.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,98-199,High_B,0.96,65.8,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,98-199,Low_B,0.96,96.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,98-199,High_C,0.96,170.9,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,98-199,Low_C,0.96,235.9,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,98-199,High_D,0.96,319.4,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,98-199,Low_D,0.96,399.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,98-199,High_E,0.96,497.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,98-199,Low_E,0.96,591.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,98-199,High_F,0.96,723.7,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,98-199,Low_F,0.96,871.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,98-199,High_G,0.96,1077.9,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,98-199,Low_G,0.96,1314.4,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,200,High_B,0.96,136.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,200,Low_B,0.96,243.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,200,High_C,0.96,378.2,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,200,Low_C,0.96,496.3,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,200,High_D,0.96,647.3,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,200,Low_D,0.96,787.4,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,200,High_E,0.96,962,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,200,Low_E,0.96,1129.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,200,High_F,0.96,1365.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,200,Low_F,0.96,1627.8,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,200,High_G,0.96,1996.4,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS non-CHP,200,Low_G,0.96,2418,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,0-72,High_B,0.96,425.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,0-72,Low_B,0.96,425.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,0-72,High_C,0.96,425.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,0-72,Low_C,0.96,425.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,0-72,High_D,0.96,425.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,0-72,Low_D,0.96,476.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,0-72,High_E,0.96,604.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,0-72,Low_E,0.96,727.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,0-72,High_F,0.96,899.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,0-72,Low_F,0.96,1092.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,0-72,High_G,0.96,1362.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,0-72,Low_G,0.96,1671.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,73-97,High_B,0.96,386.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,73-97,Low_B,0.96,386.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,73-97,High_C,0.96,386.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,73-97,Low_C,0.96,386.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,73-97,High_D,0.96,430.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,73-97,Low_D,0.96,543.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,73-97,High_E,0.96,682.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,73-97,Low_E,0.96,815,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,73-97,High_F,0.96,1001.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,73-97,Low_F,0.96,1209.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,73-97,High_G,0.96,1501.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,73-97,Low_G,0.96,1835.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,98-199,High_B,0.96,347.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,98-199,Low_B,0.96,347.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,98-199,High_C,0.96,347.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,98-199,Low_C,0.96,399.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,98-199,High_D,0.96,535.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,98-199,Low_D,0.96,665.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,98-199,High_E,0.96,824.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,98-199,Low_E,0.96,977.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,98-199,High_F,0.96,1192.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,98-199,Low_F,0.96,1431.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,98-199,High_G,0.96,1767.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,98-199,Low_G,0.96,2151.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,200,High_B,0.96,347.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,200,Low_B,0.96,412.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,200,High_C,0.96,630.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,200,Low_C,0.96,822.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,200,High_D,0.96,1068.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,200,Low_D,0.96,1295.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,200,High_E,0.96,1579.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,200,Low_E,0.96,1851.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,200,High_F,0.96,2234.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,200,Low_F,0.96,2661,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,200,High_G,0.96,3259.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,DHS CHP,200,Low_G,0.96,3944.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,0-72,High_B,0.96,252.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,0-72,Low_B,0.96,252.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,0-72,High_C,0.96,252.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,0-72,Low_C,0.96,252.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,0-72,High_D,0.96,335.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,0-72,Low_D,0.96,432.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,0-72,High_E,0.96,550.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,0-72,Low_E,0.96,664.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,0-72,High_F,0.96,824.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,0-72,Low_F,0.96,1002.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,0-72,High_G,0.96,1253.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,0-72,Low_G,0.96,1539.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,73-97,High_B,0.96,229.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,73-97,Low_B,0.96,229.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,73-97,High_C,0.96,229.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,73-97,Low_C,0.96,282.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,73-97,High_D,0.96,390.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,73-97,Low_D,0.96,495.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,73-97,High_E,0.96,623.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,73-97,Low_E,0.96,746.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,73-97,High_F,0.96,919.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,73-97,Low_F,0.96,1112.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,73-97,High_G,0.96,1383.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,73-97,Low_G,0.96,1692.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,98-199,High_B,0.96,206.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,98-199,Low_B,0.96,206.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,98-199,High_C,0.96,265,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,98-199,Low_C,0.96,362.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,98-199,High_D,0.96,488.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,98-199,Low_D,0.96,609.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,98-199,High_E,0.96,756.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,98-199,Low_E,0.96,898.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,98-199,High_F,0.96,1097.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,98-199,Low_F,0.96,1319.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,98-199,High_G,0.96,1630.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,98-199,Low_G,0.96,1986.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,200,High_B,0.96,213.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,200,Low_B,0.96,374.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,200,High_C,0.96,577.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,200,Low_C,0.96,754.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,200,High_D,0.96,982.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,200,Low_D,0.96,1193.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,200,High_E,0.96,1456.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,200,Low_E,0.96,1708.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,200,High_F,0.96,2063.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,200,Low_F,0.96,2458.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,200,High_G,0.96,3013.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,DHS CHP,200,Low_G,0.96,3648.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,0-72,High_B,0.96,43.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,0-72,Low_B,0.96,43.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,0-72,High_C,0.96,95.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,0-72,Low_C,0.96,154.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,0-72,High_D,0.96,232,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,0-72,Low_D,0.96,307.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,0-72,High_E,0.96,399.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,0-72,Low_E,0.96,487.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,0-72,High_F,0.96,612.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,0-72,Low_F,0.96,750.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,0-72,High_G,0.96,945.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,0-72,Low_G,0.96,1167.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,73-97,High_B,0.96,39.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,73-97,Low_B,0.96,53.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,73-97,High_C,0.96,128.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,73-97,Low_C,0.96,193.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,73-97,High_D,0.96,277.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,73-97,Low_D,0.96,359.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,73-97,High_E,0.96,458.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,73-97,Low_E,0.96,554.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,73-97,High_F,0.96,688.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,73-97,Low_F,0.96,838.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,73-97,High_G,0.96,1048.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,73-97,Low_G,0.96,1289.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,98-199,High_B,0.96,35.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,98-199,Low_B,0.96,95.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,98-199,High_C,0.96,182.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,98-199,Low_C,0.96,258.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,98-199,High_D,0.96,356.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,98-199,Low_D,0.96,450.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,98-199,High_E,0.96,564.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,98-199,Low_E,0.96,674.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,98-199,High_F,0.96,829.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,98-199,Low_F,0.96,1001.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,98-199,High_G,0.96,1243.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,98-199,Low_G,0.96,1520.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,200,High_B,0.96,142.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,200,Low_B,0.96,267.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,200,High_C,0.96,425.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,200,Low_C,0.96,563.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,200,High_D,0.96,740,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,200,Low_D,0.96,903.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,200,High_E,0.96,1107.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,200,Low_E,0.96,1304,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,200,High_F,0.96,1579.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,200,Low_F,0.96,1886.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,200,High_G,0.96,2317.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,DHS CHP,200,Low_G,0.96,2810.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,0-72,Low_B,0.96,6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,0-72,High_C,0.96,65.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,0-72,Low_C,0.96,116.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,0-72,High_D,0.96,183.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,0-72,Low_D,0.96,248.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,0-72,High_E,0.96,328,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,0-72,Low_E,0.96,404.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,0-72,High_F,0.96,511.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,0-72,Low_F,0.96,631.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,0-72,High_G,0.96,799.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,0-72,Low_G,0.96,991.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,73-97,Low_B,0.96,30.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,73-97,High_C,0.96,95.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,73-97,Low_C,0.96,151.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,73-97,High_D,0.96,224.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,73-97,Low_D,0.96,294.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,73-97,High_E,0.96,380.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,73-97,Low_E,0.96,463.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,73-97,High_F,0.96,579.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,73-97,Low_F,0.96,708.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,73-97,High_G,0.96,890.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,73-97,Low_G,0.96,1098.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,98-199,High_B,0.96,9.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,98-199,Low_B,0.96,68.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,98-199,High_C,0.96,143.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,98-199,Low_C,0.96,209.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,98-199,High_D,0.96,293.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,98-199,Low_D,0.96,374.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,98-199,High_E,0.96,473.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,98-199,Low_E,0.96,568.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,98-199,High_F,0.96,702.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,98-199,Low_F,0.96,851.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,98-199,High_G,0.96,1060.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,98-199,Low_G,0.96,1299.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,200,High_B,0.96,109,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,200,Low_B,0.96,217.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,200,High_C,0.96,353.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,200,Low_C,0.96,472.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,200,High_D,0.96,625.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,200,Low_D,0.96,766.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,200,High_E,0.96,943.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,200,Low_E,0.96,1112.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,200,High_F,0.96,1350.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,200,Low_F,0.96,1616.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,200,High_G,0.96,1988.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,DHS CHP,200,Low_G,0.96,2414.7,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,0-72,High_B,0.96,21,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,0-72,Low_B,0.96,24.5,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,0-72,High_C,0.96,86.6,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,0-72,Low_C,0.96,140.8,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,0-72,High_D,0.96,210.9,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,0-72,Low_D,0.96,279.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,0-72,High_E,0.96,363.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,0-72,Low_E,0.96,443.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,0-72,High_F,0.96,556.3,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,0-72,Low_F,0.96,682.2,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,0-72,High_G,0.96,859,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,0-72,Low_G,0.96,1061,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,73-97,High_B,0.96,19.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,73-97,Low_B,0.96,49,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,73-97,High_C,0.96,116.9,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,73-97,Low_C,0.96,176.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,73-97,High_D,0.96,252.5,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,73-97,Low_D,0.96,326.6,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,73-97,High_E,0.96,417,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,73-97,Low_E,0.96,503.9,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,73-97,High_F,0.96,625.9,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,73-97,Low_F,0.96,762,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,73-97,High_G,0.96,953,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,73-97,Low_G,0.96,1171.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,98-199,High_B,0.96,24.7,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,98-199,Low_B,0.96,87.2,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,98-199,High_C,0.96,166.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,98-199,Low_C,0.96,235.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,98-199,High_D,0.96,323.9,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,98-199,Low_D,0.96,409.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,98-199,High_E,0.96,513.2,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,98-199,Low_E,0.96,613.2,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,98-199,High_F,0.96,753.6,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,98-199,Low_F,0.96,910.2,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,98-199,High_G,0.96,1130,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,98-199,Low_G,0.96,1381.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,200,High_B,0.96,129.5,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,200,Low_B,0.96,243.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,200,High_C,0.96,386.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,200,Low_C,0.96,511.9,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,200,High_D,0.96,672.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,200,Low_D,0.96,821.3,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,200,High_E,0.96,1006.8,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,200,Low_E,0.96,1185,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,200,High_F,0.96,1435.3,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,200,Low_F,0.96,1714.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,200,High_G,0.96,2106.2,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,DHS CHP,200,Low_G,0.96,2554.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,0-72,High_B,0.96,276.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,0-72,Low_B,0.96,276.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,0-72,High_C,0.96,276.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,0-72,Low_C,0.96,276.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,0-72,High_D,0.96,345.8,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,0-72,Low_D,0.96,444,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,0-72,High_E,0.96,563.8,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,0-72,Low_E,0.96,678.9,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,0-72,High_F,0.96,840.6,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,0-72,Low_F,0.96,1020.9,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,0-72,High_G,0.96,1274,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,0-72,Low_G,0.96,1563.4,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,73-97,High_B,0.96,251.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,73-97,Low_B,0.96,251.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,73-97,High_C,0.96,251.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,73-97,Low_C,0.96,292.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,73-97,High_D,0.96,401.4,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,73-97,Low_D,0.96,507.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,73-97,High_E,0.96,637.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,73-97,Low_E,0.96,761.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,73-97,High_F,0.96,936.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,73-97,Low_F,0.96,1131.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,73-97,High_G,0.96,1404.8,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,73-97,Low_G,0.96,1717.6,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,98-199,High_B,0.96,226,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,98-199,Low_B,0.96,226,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,98-199,High_C,0.96,273.7,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,98-199,Low_C,0.96,372.6,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,98-199,High_D,0.96,499.7,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,98-199,Low_D,0.96,621.8,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,98-199,High_E,0.96,770.9,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,98-199,Low_E,0.96,914.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,98-199,High_F,0.96,1115.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,98-199,Low_F,0.96,1339.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,98-199,High_G,0.96,1654.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,98-199,Low_G,0.96,2014.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,200,High_B,0.96,226,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,200,Low_B,0.96,384.4,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,200,High_C,0.96,589.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,200,Low_C,0.96,769,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,200,High_D,0.96,998.9,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,200,Low_D,0.96,1212.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,200,High_E,0.96,1477.8,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,200,Low_E,0.96,1733,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,200,High_F,0.96,2091.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,200,Low_F,0.96,2491.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,200,High_G,0.96,3052.4,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,DHS CHP,200,Low_G,0.96,3694,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,0-72,High_B,0.96,270.5,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,0-72,Low_B,0.96,270.5,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,0-72,High_C,0.96,270.5,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,0-72,Low_C,0.96,270.5,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,0-72,High_D,0.96,340.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,0-72,Low_D,0.96,438.3,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,0-72,High_E,0.96,558.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,0-72,Low_E,0.96,673.2,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,0-72,High_F,0.96,834.9,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,0-72,Low_F,0.96,1015.2,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,0-72,High_G,0.96,1268.3,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,0-72,Low_G,0.96,1557.7,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,73-97,High_B,0.96,246,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,73-97,Low_B,0.96,246,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,73-97,High_C,0.96,246,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,73-97,Low_C,0.96,286.9,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,73-97,High_D,0.96,396.3,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,73-97,Low_D,0.96,502.4,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,73-97,High_E,0.96,631.9,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,73-97,Low_E,0.96,756.3,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,73-97,High_F,0.96,931.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,73-97,Low_F,0.96,1126,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,73-97,High_G,0.96,1399.6,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,73-97,Low_G,0.96,1712.4,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,98-199,High_B,0.96,221.4,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,98-199,Low_B,0.96,221.4,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,98-199,High_C,0.96,269,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,98-199,Low_C,0.96,367.9,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,98-199,High_D,0.96,495,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,98-199,Low_D,0.96,617.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,98-199,High_E,0.96,766.2,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,98-199,Low_E,0.96,909.4,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,98-199,High_F,0.96,1110.5,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,98-199,Low_F,0.96,1334.8,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,98-199,High_G,0.96,1649.6,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,98-199,Low_G,0.96,2009.6,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,200,High_B,0.96,221.4,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,200,Low_B,0.96,379.7,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,200,High_C,0.96,584.6,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,200,Low_C,0.96,764.3,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,200,High_D,0.96,994.3,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,200,Low_D,0.96,1207.5,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,200,High_E,0.96,1473.2,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,200,Low_E,0.96,1728.4,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,200,High_F,0.96,2086.8,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,200,Low_F,0.96,2486.6,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,200,High_G,0.96,3047.7,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,DHS CHP,200,Low_G,0.96,3689.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,0-72,High_B,0.96,22.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,0-72,Low_B,0.96,22.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,0-72,High_C,0.96,83.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,0-72,Low_C,0.96,139.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,0-72,High_D,0.96,212.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,0-72,Low_D,0.96,284,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,0-72,High_E,0.96,371.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,0-72,Low_E,0.96,454.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,0-72,High_F,0.96,572.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,0-72,Low_F,0.96,703.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,0-72,High_G,0.96,887.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,0-72,Low_G,0.96,1097.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,73-97,High_B,0.96,20.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,73-97,Low_B,0.96,44.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,73-97,High_C,0.96,115.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,73-97,Low_C,0.96,177.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,73-97,High_D,0.96,256.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,73-97,Low_D,0.96,333.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,73-97,High_E,0.96,427.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,73-97,Low_E,0.96,518.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,73-97,High_F,0.96,645.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,73-97,Low_F,0.96,787,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,73-97,High_G,0.96,985.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,73-97,Low_G,0.96,1213.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,98-199,High_B,0.96,20,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,98-199,Low_B,0.96,85.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,98-199,High_C,0.96,167.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,98-199,Low_C,0.96,239.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,98-199,High_D,0.96,331.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,98-199,Low_D,0.96,420.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,98-199,High_E,0.96,528.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,98-199,Low_E,0.96,632.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,98-199,High_F,0.96,778.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,98-199,Low_F,0.96,942,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,98-199,High_G,0.96,1170.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,98-199,Low_G,0.96,1432.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,200,High_B,0.96,129.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,200,Low_B,0.96,247.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,200,High_C,0.96,396.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,200,Low_C,0.96,527.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,200,High_D,0.96,694.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,200,Low_D,0.96,849.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,200,High_E,0.96,1042.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,200,Low_E,0.96,1228.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,200,High_F,0.96,1488.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,200,Low_F,0.96,1779.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,200,High_G,0.96,2187.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,DHS CHP,200,Low_G,0.96,2653.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,0-72,Low_B,0.96,4.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,0-72,High_C,0.96,62.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,0-72,Low_C,0.96,113.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,0-72,High_D,0.96,179.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,0-72,Low_D,0.96,244.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,0-72,High_E,0.96,322.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,0-72,Low_E,0.96,398.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,0-72,High_F,0.96,504.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,0-72,Low_F,0.96,622.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,0-72,High_G,0.96,789.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,0-72,Low_G,0.96,979,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,73-97,Low_B,0.96,29.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,73-97,High_C,0.96,93,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,73-97,Low_C,0.96,148.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,73-97,High_D,0.96,220.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,73-97,Low_D,0.96,290.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,73-97,High_E,0.96,375.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,73-97,Low_E,0.96,456.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,73-97,High_F,0.96,571.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,73-97,Low_F,0.96,699.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,73-97,High_G,0.96,879.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,73-97,Low_G,0.96,1084.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,98-199,High_B,0.96,8.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,98-199,Low_B,0.96,66.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,98-199,High_C,0.96,141,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,98-199,Low_C,0.96,205.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,98-199,High_D,0.96,289.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,98-199,Low_D,0.96,369.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,98-199,High_E,0.96,467.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,98-199,Low_E,0.96,561.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,98-199,High_F,0.96,693.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,98-199,Low_F,0.96,840.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,98-199,High_G,0.96,1047.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,98-199,Low_G,0.96,1283.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,200,High_B,0.96,106.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,200,Low_B,0.96,213.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,200,High_C,0.96,348.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,200,Low_C,0.96,466.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,200,High_D,0.96,617.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,200,Low_D,0.96,757,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,200,High_E,0.96,931.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,200,Low_E,0.96,1099,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,200,High_F,0.96,1334.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,200,Low_F,0.96,1596.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,200,High_G,0.96,1965.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,DHS CHP,200,Low_G,0.96,2386.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,0-72,High_B,0.96,188.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,0-72,Low_B,0.96,188.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,0-72,High_C,0.96,188.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,0-72,Low_C,0.96,244.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,0-72,High_D,0.96,336.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,0-72,Low_D,0.96,425.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,0-72,High_E,0.96,535.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,0-72,Low_E,0.96,640.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,0-72,High_F,0.96,787.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,0-72,Low_F,0.96,952.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,0-72,High_G,0.96,1183.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,0-72,Low_G,0.96,1447.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,73-97,High_B,0.96,171.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,73-97,Low_B,0.96,171.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,73-97,High_C,0.96,208,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,73-97,Low_C,0.96,285.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,73-97,High_D,0.96,385.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,73-97,Low_D,0.96,482,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,73-97,High_E,0.96,600.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,73-97,Low_E,0.96,713.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,73-97,High_F,0.96,873.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,73-97,Low_F,0.96,1051,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,73-97,High_G,0.96,1300.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,73-97,Low_G,0.96,1586,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,98-199,High_B,0.96,154.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,98-199,Low_B,0.96,163.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,98-199,High_C,0.96,266.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,98-199,Low_C,0.96,357,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,98-199,High_D,0.96,472.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,98-199,Low_D,0.96,584.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,98-199,High_E,0.96,720.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,98-199,Low_E,0.96,851,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,98-199,High_F,0.96,1034.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,98-199,Low_F,0.96,1239.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,98-199,High_G,0.96,1526.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,98-199,Low_G,0.96,1854.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,200,High_B,0.96,219,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,200,Low_B,0.96,367.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,200,High_C,0.96,554.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,200,Low_C,0.96,718.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,200,High_D,0.96,928.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,200,Low_D,0.96,1122.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,200,High_E,0.96,1365.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,200,Low_E,0.96,1598.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,200,High_F,0.96,1925.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,200,Low_F,0.96,2289.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,200,High_G,0.96,2801.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,DHS CHP,200,Low_G,0.96,3387.3,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,0-72,High_B,0.96,119,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,0-72,Low_B,0.96,119,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,0-72,High_C,0.96,143.3,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,0-72,Low_C,0.96,209.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,0-72,High_D,0.96,294,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,0-72,Low_D,0.96,377.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,0-72,High_E,0.96,478.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,0-72,Low_E,0.96,576.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,0-72,High_F,0.96,713,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,0-72,Low_F,0.96,865.7,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,0-72,High_G,0.96,1080,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,0-72,Low_G,0.96,1325.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,73-97,High_B,0.96,108.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,73-97,Low_B,0.96,108.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,73-97,High_C,0.96,176.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,73-97,Low_C,0.96,248.4,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,73-97,High_D,0.96,341,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,73-97,Low_D,0.96,430.8,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,73-97,High_E,0.96,540.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,73-97,Low_E,0.96,645.9,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,73-97,High_F,0.96,793.9,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,73-97,Low_F,0.96,958.9,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,73-97,High_G,0.96,1190.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,73-97,Low_G,0.96,1455.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,98-199,High_B,0.96,97.3,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,98-199,Low_B,0.96,137,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,98-199,High_C,0.96,232.7,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,98-199,Low_C,0.96,316.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,98-199,High_D,0.96,424.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,98-199,Low_D,0.96,527.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,98-199,High_E,0.96,653.7,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,98-199,Low_E,0.96,775,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,98-199,High_F,0.96,945.2,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,98-199,Low_F,0.96,1135.2,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,98-199,High_G,0.96,1401.8,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,98-199,Low_G,0.96,1706.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,200,High_B,0.96,188.4,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,200,Low_B,0.96,326.4,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,200,High_C,0.96,499.9,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,200,Low_C,0.96,652.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,200,High_D,0.96,846.8,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,200,Low_D,0.96,1027.4,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,200,High_E,0.96,1252.3,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,200,Low_E,0.96,1468.4,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,200,High_F,0.96,1772,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,200,Low_F,0.96,2110.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,200,High_G,0.96,2585.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,DHS CHP,200,Low_G,0.96,3129,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,0-72,High_B,0.96,82.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,0-72,Low_B,0.96,82.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,0-72,High_C,0.96,141.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,0-72,Low_C,0.96,198.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,0-72,High_D,0.96,272.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,0-72,Low_D,0.96,345.4,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,0-72,High_E,0.96,434,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,0-72,Low_E,0.96,519.2,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,0-72,High_F,0.96,638.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,0-72,Low_F,0.96,772.3,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,0-72,High_G,0.96,959.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,0-72,Low_G,0.96,1173.6,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,73-97,High_B,0.96,75,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,73-97,Low_B,0.96,96.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,73-97,High_C,0.96,168.7,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,73-97,Low_C,0.96,231.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,73-97,High_D,0.96,312.4,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,73-97,Low_D,0.96,390.9,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,73-97,High_E,0.96,486.7,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,73-97,Low_E,0.96,578.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,73-97,High_F,0.96,708.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,73-97,Low_F,0.96,852.3,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,73-97,High_G,0.96,1054.7,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,73-97,Low_G,0.96,1286.2,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,98-199,High_B,0.96,67.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,98-199,Low_B,0.96,132.7,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,98-199,High_C,0.96,216.3,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,98-199,Low_C,0.96,289.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,98-199,High_D,0.96,383.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,98-199,Low_D,0.96,473.9,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,98-199,High_E,0.96,584.2,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,98-199,Low_E,0.96,690.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,98-199,High_F,0.96,838.9,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,98-199,Low_F,0.96,1004.9,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,98-199,High_G,0.96,1237.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,98-199,Low_G,0.96,1504.2,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,200,High_B,0.96,177.6,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,200,Low_B,0.96,298.2,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,200,High_C,0.96,449.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,200,Low_C,0.96,582.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,200,High_D,0.96,752.9,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,200,Low_D,0.96,910.6,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,200,High_E,0.96,1107.2,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,200,Low_E,0.96,1296,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,200,High_F,0.96,1561.2,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,200,Low_F,0.96,1857,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,200,High_G,0.96,2272.2,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,DHS CHP,200,Low_G,0.96,2746.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,0-72,High_B,0.96,48.2,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,0-72,Low_B,0.96,64,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,0-72,High_C,0.96,120.1,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,0-72,Low_C,0.96,169,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,0-72,High_D,0.96,232.1,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,0-72,Low_D,0.96,294,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,0-72,High_E,0.96,369.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,0-72,Low_E,0.96,441.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,0-72,High_F,0.96,543.7,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,0-72,Low_F,0.96,657.3,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,0-72,High_G,0.96,816.7,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,0-72,Low_G,0.96,998.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,73-97,High_B,0.96,43.8,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,73-97,Low_B,0.96,82.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,73-97,High_C,0.96,143.5,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,73-97,Low_C,0.96,197,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,73-97,High_D,0.96,265.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,73-97,Low_D,0.96,332.7,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,73-97,High_E,0.96,414.3,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,73-97,Low_E,0.96,492.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,73-97,High_F,0.96,602.7,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,73-97,Low_F,0.96,725.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,73-97,High_G,0.96,897.7,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,73-97,Low_G,0.96,1094.7,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,98-199,High_B,0.96,56.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,98-199,Low_B,0.96,113,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,98-199,High_C,0.96,184.1,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,98-199,Low_C,0.96,246.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,98-199,High_D,0.96,326.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,98-199,Low_D,0.96,403.3,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,98-199,High_E,0.96,497.2,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,98-199,Low_E,0.96,587.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,98-199,High_F,0.96,714,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,98-199,Low_F,0.96,855.3,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,98-199,High_G,0.96,1053.5,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,98-199,Low_G,0.96,1280.2,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,200,High_B,0.96,151.2,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,200,Low_B,0.96,253.8,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,200,High_C,0.96,382.8,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,200,Low_C,0.96,496,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,200,High_D,0.96,640.8,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,200,Low_D,0.96,775.1,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,200,High_E,0.96,942.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,200,Low_E,0.96,1103.1,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,200,High_F,0.96,1328.8,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,200,Low_F,0.96,1580.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,200,High_G,0.96,1933.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,DHS CHP,200,Low_G,0.96,2338,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,0-72,High_B,0.96,34.2,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,0-72,Low_B,0.96,57.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,0-72,High_C,0.96,107.5,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,0-72,Low_C,0.96,151.2,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,0-72,High_D,0.96,207.8,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,0-72,Low_D,0.96,263.1,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,0-72,High_E,0.96,330.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,0-72,Low_E,0.96,395.5,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,0-72,High_F,0.96,486.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,0-72,Low_F,0.96,588.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,0-72,High_G,0.96,731,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,0-72,Low_G,0.96,894.1,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,73-97,High_B,0.96,31.1,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,73-97,Low_B,0.96,73.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,73-97,High_C,0.96,128.5,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,73-97,Low_C,0.96,176.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,73-97,High_D,0.96,238,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,73-97,Low_D,0.96,297.8,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,73-97,High_E,0.96,370.8,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,73-97,Low_E,0.96,440.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,73-97,High_F,0.96,539.4,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,73-97,Low_F,0.96,649.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,73-97,High_G,0.96,803.5,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,73-97,Low_G,0.96,979.8,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,98-199,High_B,0.96,50.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,98-199,Low_B,0.96,101.1,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,98-199,High_C,0.96,164.8,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,98-199,Low_C,0.96,220.5,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,98-199,High_D,0.96,292.2,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,98-199,Low_D,0.96,361,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,98-199,High_E,0.96,445,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,98-199,Low_E,0.96,525.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,98-199,High_F,0.96,639.1,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,98-199,Low_F,0.96,765.5,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,98-199,High_G,0.96,943,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,98-199,Low_G,0.96,1145.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,200,High_B,0.96,135.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,200,Low_B,0.96,227.2,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,200,High_C,0.96,342.6,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,200,Low_C,0.96,443.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,200,High_D,0.96,573.6,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,200,Low_D,0.96,693.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,200,High_E,0.96,843.5,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,200,Low_E,0.96,987.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,200,High_F,0.96,1189.4,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,200,Low_F,0.96,1414.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,200,High_G,0.96,1731,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,DHS CHP,200,Low_G,0.96,2092.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,0-72,High_B,0.96,19.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,0-72,Low_B,0.96,47.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,0-72,High_C,0.96,88.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,0-72,Low_C,0.96,124.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,0-72,High_D,0.96,171.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,0-72,Low_D,0.96,216.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,0-72,High_E,0.96,272.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,0-72,Low_E,0.96,326,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,0-72,High_F,0.96,401.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,0-72,Low_F,0.96,484.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,0-72,High_G,0.96,602.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,0-72,Low_G,0.96,736.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,73-97,High_B,0.96,25.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,73-97,Low_B,0.96,60.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,73-97,High_C,0.96,105.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,73-97,Low_C,0.96,145.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,73-97,High_D,0.96,196.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,73-97,Low_D,0.96,245.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,73-97,High_E,0.96,305.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,73-97,Low_E,0.96,363.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,73-97,High_F,0.96,444.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,73-97,Low_F,0.96,535.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,73-97,High_G,0.96,662.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,73-97,Low_G,0.96,807.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,98-199,High_B,0.96,41.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,98-199,Low_B,0.96,83.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,98-199,High_C,0.96,135.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,98-199,Low_C,0.96,181.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,98-199,High_D,0.96,240.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,98-199,Low_D,0.96,297.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,98-199,High_E,0.96,366.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,98-199,Low_E,0.96,433.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,98-199,High_F,0.96,526.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,98-199,Low_F,0.96,630.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,98-199,High_G,0.96,777.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,98-199,Low_G,0.96,944.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,200,High_B,0.96,111.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,200,Low_B,0.96,187.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,200,High_C,0.96,282.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,200,Low_C,0.96,365.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,200,High_D,0.96,472.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,200,Low_D,0.96,571.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,200,High_E,0.96,695.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,200,Low_E,0.96,813.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,200,High_F,0.96,980.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,200,Low_F,0.96,1165.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,200,High_G,0.96,1426.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS CHP,200,Low_G,0.96,1724.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,0-72,High_B,0.96,10.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,0-72,Low_B,0.96,32.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,0-72,High_C,0.96,61.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,0-72,Low_C,0.96,86.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,0-72,High_D,0.96,118.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,0-72,Low_D,0.96,150,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,0-72,High_E,0.96,188.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,0-72,Low_E,0.96,225.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,0-72,High_F,0.96,277.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,0-72,Low_F,0.96,335.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,0-72,High_G,0.96,416.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,0-72,Low_G,0.96,509.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,73-97,High_B,0.96,17.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,73-97,Low_B,0.96,42,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,73-97,High_C,0.96,73.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,73-97,Low_C,0.96,100.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,73-97,High_D,0.96,135.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,73-97,Low_D,0.96,169.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,73-97,High_E,0.96,211.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,73-97,Low_E,0.96,251.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,73-97,High_F,0.96,307.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,73-97,Low_F,0.96,370.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,73-97,High_G,0.96,458,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,73-97,Low_G,0.96,558.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,98-199,High_B,0.96,28.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,98-199,Low_B,0.96,57.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,98-199,High_C,0.96,93.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,98-199,Low_C,0.96,125.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,98-199,High_D,0.96,166.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,98-199,Low_D,0.96,205.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,98-199,High_E,0.96,253.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,98-199,Low_E,0.96,299.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,98-199,High_F,0.96,364.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,98-199,Low_F,0.96,436.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,98-199,High_G,0.96,537.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,98-199,Low_G,0.96,653.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,200,High_B,0.96,77.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,200,Low_B,0.96,129.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,200,High_C,0.96,195.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,200,Low_C,0.96,253.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,200,High_D,0.96,327,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,200,Low_D,0.96,395.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,200,High_E,0.96,480.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,200,Low_E,0.96,562.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,200,High_F,0.96,678,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,200,Low_F,0.96,806.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,200,High_G,0.96,986.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS CHP,200,Low_G,0.96,1193,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,0-72,High_D,0.96,487.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,0-72,Low_D,0.96,532.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,0-72,High_E,0.96,645.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,0-72,Low_E,0.96,754.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,0-72,High_F,0.96,906.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,0-72,Low_F,0.96,1076.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,0-72,High_G,0.96,1315.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,0-72,Low_G,0.96,1587.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,73-97,High_D,0.96,591.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,73-97,Low_D,0.96,591.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,73-97,High_E,0.96,704.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,73-97,Low_E,0.96,821.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,73-97,High_F,0.96,986.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,73-97,Low_F,0.96,1170,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,73-97,High_G,0.96,1427.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,73-97,Low_G,0.96,1722.8,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,98-199,High_D,0.96,705,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,98-199,Low_D,0.96,705,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,98-199,High_E,0.96,820,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,98-199,Low_E,0.96,955,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,98-199,High_F,0.96,1144.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,98-199,Low_F,0.96,1356,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,98-199,High_G,0.96,1652.8,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,98-199,Low_G,0.96,1992.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,200,High_D,0.96,1314,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,200,Low_D,0.96,1314,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,200,High_E,0.96,1486.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,200,Low_E,0.96,1727,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,200,High_F,0.96,2064.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,200,Low_F,0.96,2441.8,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,200,High_G,0.96,2970.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,GSHP,200,Low_G,0.96,3575.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,0-72,High_D,0.96,383.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,0-72,Low_D,0.96,463.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,0-72,High_E,0.96,562.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,0-72,Low_E,0.96,656.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,0-72,High_F,0.96,789.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,0-72,Low_F,0.96,937.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,0-72,High_G,0.96,1145.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,0-72,Low_G,0.96,1382.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,73-97,High_D,0.96,419.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,73-97,Low_D,0.96,506.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,73-97,High_E,0.96,613.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,73-97,Low_E,0.96,715.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,73-97,High_F,0.96,858.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,73-97,Low_F,0.96,1018.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,73-97,High_G,0.96,1243.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,73-97,Low_G,0.96,1500.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,98-199,High_D,0.96,491.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,98-199,Low_D,0.96,591.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,98-199,High_E,0.96,714.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,98-199,Low_E,0.96,831.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,98-199,High_F,0.96,996.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,98-199,Low_F,0.96,1180.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,98-199,High_G,0.96,1439.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,98-199,Low_G,0.96,1734.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,200,High_D,0.96,901.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,200,Low_D,0.96,1076.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,200,High_E,0.96,1294.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,200,Low_E,0.96,1503.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,200,High_F,0.96,1798.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,200,Low_F,0.96,2126.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,200,High_G,0.96,2586.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,GSHP,200,Low_G,0.96,3113.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,0-72,High_D,0.96,222.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,0-72,Low_D,0.96,269.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,0-72,High_E,0.96,326.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,0-72,Low_E,0.96,381.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,0-72,High_F,0.96,458.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,0-72,Low_F,0.96,544.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,0-72,High_G,0.96,665.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,0-72,Low_G,0.96,803.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,73-97,High_D,0.96,243.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,73-97,Low_D,0.96,294.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,73-97,High_E,0.96,356.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,73-97,Low_E,0.96,415.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,73-97,High_F,0.96,498.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,73-97,Low_F,0.96,591.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,73-97,High_G,0.96,722.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,73-97,Low_G,0.96,871.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,98-199,High_D,0.96,285.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,98-199,Low_D,0.96,343.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,98-199,High_E,0.96,414.8,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,98-199,Low_E,0.96,483.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,98-199,High_F,0.96,579,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,98-199,Low_F,0.96,685.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,98-199,High_G,0.96,836.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,98-199,Low_G,0.96,1007.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,200,High_D,0.96,523.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,200,Low_D,0.96,625.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,200,High_E,0.96,751.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,200,Low_E,0.96,873.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,200,High_F,0.96,1044.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,200,Low_F,0.96,1235.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,200,High_G,0.96,1502.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,GSHP,200,Low_G,0.96,1808.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,0-72,High_D,0.96,222.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,0-72,Low_D,0.96,269.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,0-72,High_E,0.96,326.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,0-72,Low_E,0.96,381.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,0-72,High_F,0.96,458.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,0-72,Low_F,0.96,544.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,0-72,High_G,0.96,665.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,0-72,Low_G,0.96,803.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,73-97,High_D,0.96,243.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,73-97,Low_D,0.96,294.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,73-97,High_E,0.96,356.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,73-97,Low_E,0.96,415.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,73-97,High_F,0.96,498.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,73-97,Low_F,0.96,591.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,73-97,High_G,0.96,722.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,73-97,Low_G,0.96,871.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,98-199,High_D,0.96,285.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,98-199,Low_D,0.96,343.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,98-199,High_E,0.96,414.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,98-199,Low_E,0.96,483.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,98-199,High_F,0.96,579,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,98-199,Low_F,0.96,685.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,98-199,High_G,0.96,836.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,98-199,Low_G,0.96,1007.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,200,High_D,0.96,523.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,200,Low_D,0.96,625.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,200,High_E,0.96,751.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,200,Low_E,0.96,873.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,200,High_F,0.96,1044.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,200,Low_F,0.96,1235.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,200,High_G,0.96,1502.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,GSHP,200,Low_G,0.96,1808.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,0-72,High_D,0.96,361.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,0-72,Low_D,0.96,429.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,0-72,High_E,0.96,513.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,0-72,Low_E,0.96,594.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,0-72,High_F,0.96,708,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,0-72,Low_F,0.96,834.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,0-72,High_G,0.96,1011.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,0-72,Low_G,0.96,1214.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,73-97,High_D,0.96,389.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,73-97,Low_D,0.96,463.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,73-97,High_E,0.96,554.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,73-97,Low_E,0.96,641.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,73-97,High_F,0.96,764.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,73-97,Low_F,0.96,901,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,73-97,High_G,0.96,1092.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,73-97,Low_G,0.96,1312.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,98-199,High_D,0.96,447.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,98-199,Low_D,0.96,533,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,98-199,High_E,0.96,637.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,98-199,Low_E,0.96,737.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,98-199,High_F,0.96,879,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,98-199,Low_F,0.96,1036.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,98-199,High_G,0.96,1257,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,98-199,Low_G,0.96,1509.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,200,High_D,0.96,797.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,200,Low_D,0.96,947,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,200,High_E,0.96,1133.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,200,Low_E,0.96,1312.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,200,High_F,0.96,1563.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,200,Low_F,0.96,1843.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,200,High_G,0.96,2237.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,GSHP,200,Low_G,0.96,2687.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,0-72,High_D,0.96,319.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,0-72,Low_D,0.96,378,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,0-72,High_E,0.96,449.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,0-72,Low_E,0.96,518.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,0-72,High_F,0.96,615.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,0-72,Low_F,0.96,723.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,0-72,High_G,0.96,875.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,0-72,Low_G,0.96,1048.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,73-97,High_D,0.96,342.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,73-97,Low_D,0.96,405.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,73-97,High_E,0.96,483.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,73-97,Low_E,0.96,558,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,73-97,High_F,0.96,662.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,73-97,Low_F,0.96,779.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,73-97,High_G,0.96,943.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,73-97,Low_G,0.96,1130.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,98-199,High_D,0.96,391,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,98-199,Low_D,0.96,464.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,98-199,High_E,0.96,553.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,98-199,Low_E,0.96,639.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,98-199,High_F,0.96,759.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,98-199,Low_F,0.96,894.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,98-199,High_G,0.96,1082.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,98-199,Low_G,0.96,1298.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,200,High_D,0.96,690.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,200,Low_D,0.96,817.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,200,High_E,0.96,976.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,200,Low_E,0.96,1129.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,200,High_F,0.96,1344.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,200,Low_F,0.96,1584,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,200,High_G,0.96,1920.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,GSHP,200,Low_G,0.96,2304.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,0-72,High_D,0.96,192.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,0-72,Low_D,0.96,232.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,0-72,High_E,0.96,282.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,0-72,Low_E,0.96,329.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,0-72,High_F,0.96,396.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,0-72,Low_F,0.96,470.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,0-72,High_G,0.96,575.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,0-72,Low_G,0.96,694.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,73-97,High_D,0.96,210.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,73-97,Low_D,0.96,254.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,73-97,High_E,0.96,308,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,73-97,Low_E,0.96,359.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,73-97,High_F,0.96,431.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,73-97,Low_F,0.96,511.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,73-97,High_G,0.96,624.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,73-97,Low_G,0.96,753.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,98-199,High_D,0.96,246.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,98-199,Low_D,0.96,297.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,98-199,High_E,0.96,358.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,98-199,Low_E,0.96,417.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,98-199,High_F,0.96,500.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,98-199,Low_F,0.96,593,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,98-199,High_G,0.96,722.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,98-199,Low_G,0.96,871.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,200,High_D,0.96,452.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,200,Low_D,0.96,540.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,200,High_E,0.96,650,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,200,Low_E,0.96,755.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,200,High_F,0.96,903,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,200,Low_F,0.96,1067.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,200,High_G,0.96,1299.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,GSHP,200,Low_G,0.96,1563.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,0-72,High_D,0.96,141.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,0-72,Low_D,0.96,170.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,0-72,High_E,0.96,207.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,0-72,Low_E,0.96,241.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,0-72,High_F,0.96,290.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,0-72,Low_F,0.96,345.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,0-72,High_G,0.96,421.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,0-72,Low_G,0.96,509.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,73-97,High_D,0.96,154.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,73-97,Low_D,0.96,186.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,73-97,High_E,0.96,225.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,73-97,Low_E,0.96,263.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,73-97,High_F,0.96,316.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,73-97,Low_F,0.96,375.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,73-97,High_G,0.96,458.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,73-97,Low_G,0.96,552.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,98-199,High_D,0.96,181.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,98-199,Low_D,0.96,218,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,98-199,High_E,0.96,263.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,98-199,Low_E,0.96,306.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,98-199,High_F,0.96,367.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,98-199,Low_F,0.96,435,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,98-199,High_G,0.96,530.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,98-199,Low_G,0.96,639.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,200,High_D,0.96,332,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,200,Low_D,0.96,396.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,200,High_E,0.96,476.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,200,Low_E,0.96,554.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,200,High_F,0.96,662.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,200,Low_F,0.96,783.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,200,High_G,0.96,953.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,GSHP,200,Low_G,0.96,1147.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,0-72,High_D,0.96,45.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,0-72,Low_D,0.96,24.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,73-97,High_D,0.96,22.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,GSHP,200,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,0-72,High_D,0.96,127.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,0-72,Low_D,0.96,128.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,0-72,High_E,0.96,128.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,0-72,Low_E,0.96,129,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,0-72,High_F,0.96,129.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,0-72,Low_F,0.96,130.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,0-72,High_G,0.96,131,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,0-72,Low_G,0.96,132,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,73-97,High_D,0.96,116.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,73-97,Low_D,0.96,117,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,73-97,High_E,0.96,117.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,73-97,Low_E,0.96,117.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,73-97,High_F,0.96,118.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,73-97,Low_F,0.96,119,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,73-97,High_G,0.96,119.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,73-97,Low_G,0.96,121,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,98-199,High_D,0.96,105.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,98-199,Low_D,0.96,105.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,98-199,High_E,0.96,106.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,98-199,Low_E,0.96,106.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,98-199,High_F,0.96,107.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,98-199,Low_F,0.96,108.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,98-199,High_G,0.96,109.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,98-199,Low_G,0.96,110.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,200,High_D,0.96,107.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,200,Low_D,0.96,107.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,200,High_E,0.96,108.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,200,Low_E,0.96,109.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,200,High_F,0.96,110.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,200,Low_F,0.96,112,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,200,High_G,0.96,113.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,GSHP,200,Low_G,0.96,116,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,0-72,High_D,0.96,286.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,0-72,Low_D,0.96,328.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,0-72,High_E,0.96,380.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,0-72,Low_E,0.96,430.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,0-72,High_F,0.96,500.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,0-72,Low_F,0.96,578.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,0-72,High_G,0.96,687.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,0-72,Low_G,0.96,812.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,73-97,High_D,0.96,297.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,73-97,Low_D,0.96,343.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,73-97,High_E,0.96,399.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,73-97,Low_E,0.96,453.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,73-97,High_F,0.96,529,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,73-97,Low_F,0.96,613.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,73-97,High_G,0.96,731.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,73-97,Low_G,0.96,866.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,98-199,High_D,0.96,327.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,98-199,Low_D,0.96,380.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,98-199,High_E,0.96,445.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,98-199,Low_E,0.96,507,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,98-199,High_F,0.96,594,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,98-199,Low_F,0.96,691,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,98-199,High_G,0.96,827.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,98-199,Low_G,0.96,982.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,200,High_D,0.96,543.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,200,Low_D,0.96,635.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,200,High_E,0.96,750.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,200,Low_E,0.96,861.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,200,High_F,0.96,1016.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,200,Low_F,0.96,1189,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,200,High_G,0.96,1431.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,GSHP,200,Low_G,0.96,1709.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,0-72,High_D,0.96,222.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,0-72,Low_D,0.96,248.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,0-72,High_E,0.96,279.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,0-72,Low_E,0.96,309.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,0-72,High_F,0.96,351.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,0-72,Low_F,0.96,398.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,0-72,High_G,0.96,464.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,0-72,Low_G,0.96,540.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,73-97,High_D,0.96,225.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,73-97,Low_D,0.96,253,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,73-97,High_E,0.96,286.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,73-97,Low_E,0.96,319.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,73-97,High_F,0.96,364.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,73-97,Low_F,0.96,415.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,73-97,High_G,0.96,486.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,73-97,Low_G,0.96,568.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,98-199,High_D,0.96,238.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,98-199,Low_D,0.96,270.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,98-199,High_E,0.96,309.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,98-199,Low_E,0.96,346.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,98-199,High_F,0.96,399.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,98-199,Low_F,0.96,457.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,98-199,High_G,0.96,540,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,98-199,Low_G,0.96,633.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,200,High_D,0.96,369,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,200,Low_D,0.96,424.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,200,High_E,0.96,493.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,200,Low_E,0.96,560.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,200,High_F,0.96,654,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,200,Low_F,0.96,758.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,200,High_G,0.96,904.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,GSHP,200,Low_G,0.96,1071.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,0-72,High_D,0.96,184.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,0-72,Low_D,0.96,200.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,0-72,High_E,0.96,219.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,0-72,Low_E,0.96,237.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,0-72,High_F,0.96,263,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,0-72,Low_F,0.96,291.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,0-72,High_G,0.96,331.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,0-72,Low_G,0.96,377,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,73-97,High_D,0.96,181.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,73-97,Low_D,0.96,198.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,73-97,High_E,0.96,219,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,73-97,Low_E,0.96,238.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,73-97,High_F,0.96,266.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,73-97,Low_F,0.96,297,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,73-97,High_G,0.96,340.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,73-97,Low_G,0.96,389.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,98-199,High_D,0.96,185.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,98-199,Low_D,0.96,204.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,98-199,High_E,0.96,228.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,98-199,Low_E,0.96,250.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,98-199,High_F,0.96,282.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,98-199,Low_F,0.96,318,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,98-199,High_G,0.96,367.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,98-199,Low_G,0.96,424.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,200,High_D,0.96,264.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,200,Low_D,0.96,297.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,200,High_E,0.96,339.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,200,Low_E,0.96,380.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,200,High_F,0.96,436.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,200,Low_F,0.96,499.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,200,High_G,0.96,588.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,GSHP,200,Low_G,0.96,689.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,0-72,High_D,0.96,400,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,0-72,Low_D,0.96,482.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,0-72,High_E,0.96,582.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,0-72,Low_E,0.96,679.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,0-72,High_F,0.96,814.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,0-72,Low_F,0.96,965.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,0-72,High_G,0.96,1177.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,0-72,Low_G,0.96,1420.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,73-97,High_D,0.96,436.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,73-97,Low_D,0.96,525.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,73-97,High_E,0.96,634,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,73-97,Low_E,0.96,738.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,73-97,High_F,0.96,884.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,73-97,Low_F,0.96,1047.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,73-97,High_G,0.96,1277.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,73-97,Low_G,0.96,1539.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,98-199,High_D,0.96,508.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,98-199,Low_D,0.96,611.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,98-199,High_E,0.96,736,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,98-199,Low_E,0.96,856,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,98-199,High_F,0.96,1024.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,98-199,Low_F,0.96,1212.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,98-199,High_G,0.96,1476.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,98-199,Low_G,0.96,1777.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,200,High_D,0.96,927.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,200,Low_D,0.96,1105.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,200,High_E,0.96,1328.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,200,Low_E,0.96,1542.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,200,High_F,0.96,1842.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,200,Low_F,0.96,2177.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,200,High_G,0.96,2647.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,GSHP,200,Low_G,0.96,3184.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,High_D,0.96,189.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,Low_D,0.96,225.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,High_E,0.96,269.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,Low_E,0.96,312.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,High_F,0.96,371.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,Low_F,0.96,437.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,High_G,0.96,530.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,Low_G,0.96,637.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,High_D,0.96,204.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,Low_D,0.96,243.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,High_E,0.96,291,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,Low_E,0.96,336.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,High_F,0.96,401,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,Low_F,0.96,472.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,High_G,0.96,573.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,Low_G,0.96,688.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,High_D,0.96,234.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,Low_D,0.96,279.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,High_E,0.96,334.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,Low_E,0.96,387.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,High_F,0.96,461,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,Low_F,0.96,543.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,High_G,0.96,659.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,Low_G,0.96,791.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,High_D,0.96,418.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,Low_D,0.96,496.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,High_E,0.96,594.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,Low_E,0.96,688.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,High_F,0.96,819.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,Low_F,0.96,966.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,High_G,0.96,1173,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,Low_G,0.96,1408.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,0-72,High_D,0.96,391.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,0-72,Low_D,0.96,473.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,0-72,High_E,0.96,573.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,0-72,Low_E,0.96,670.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,0-72,High_F,0.96,805.6,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,0-72,Low_F,0.96,956.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,0-72,High_G,0.96,1168.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,0-72,Low_G,0.96,1411.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,73-97,High_D,0.96,428.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,73-97,Low_D,0.96,517.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,73-97,High_E,0.96,625.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,73-97,Low_E,0.96,730.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,73-97,High_F,0.96,876.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,73-97,Low_F,0.96,1039.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,73-97,High_G,0.96,1269,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,73-97,Low_G,0.96,1531.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,98-199,High_D,0.96,501.6,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,98-199,Low_D,0.96,603.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,98-199,High_E,0.96,728.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,98-199,Low_E,0.96,848.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,98-199,High_F,0.96,1017.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,98-199,Low_F,0.96,1205.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,98-199,High_G,0.96,1468.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,98-199,Low_G,0.96,1770.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,200,High_D,0.96,919.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,200,Low_D,0.96,1098.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,200,High_E,0.96,1321,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,200,Low_E,0.96,1534.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,200,High_F,0.96,1835.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,200,Low_F,0.96,2170,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,200,High_G,0.96,2640.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,GSHP,200,Low_G,0.96,3177.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,0-72,High_D,0.96,462.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,0-72,Low_D,0.96,505.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,0-72,High_E,0.96,612.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,0-72,Low_E,0.96,715.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,0-72,High_F,0.96,860.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,0-72,Low_F,0.96,1021.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,0-72,High_G,0.96,1248.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,0-72,Low_G,0.96,1507.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,73-97,High_D,0.96,561.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,73-97,Low_D,0.96,561.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,73-97,High_E,0.96,668.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,73-97,Low_E,0.96,779.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,73-97,High_F,0.96,936.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,73-97,Low_F,0.96,1110.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,73-97,High_G,0.96,1355.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,73-97,Low_G,0.96,1635.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,98-199,High_D,0.96,669.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,98-199,Low_D,0.96,669.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,98-199,High_E,0.96,778.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,98-199,Low_E,0.96,906.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,98-199,High_F,0.96,1086.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,98-199,Low_F,0.96,1287.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,98-199,High_G,0.96,1569,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,98-199,Low_G,0.96,1891.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,200,High_D,0.96,1247.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,200,Low_D,0.96,1247.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,200,High_E,0.96,1411.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,200,Low_E,0.96,1639.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,200,High_F,0.96,1960.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,200,Low_F,0.96,2318,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,200,High_G,0.96,2820.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Air to Water ASHP,200,Low_G,0.96,3394.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,High_D,0.96,353.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,Low_D,0.96,427.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,High_E,0.96,518,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,Low_E,0.96,605.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,High_F,0.96,727.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,Low_F,0.96,863.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,High_G,0.96,1055.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,Low_G,0.96,1274.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,High_D,0.96,386.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,Low_D,0.96,467.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,High_E,0.96,565.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,Low_E,0.96,659.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,High_F,0.96,791.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,Low_F,0.96,938.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,High_G,0.96,1145.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,Low_G,0.96,1382.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,High_D,0.96,452.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,Low_D,0.96,545.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,High_E,0.96,658,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,Low_E,0.96,766.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,High_F,0.96,918.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,Low_F,0.96,1088.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,High_G,0.96,1326.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,Low_G,0.96,1598.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,200,High_D,0.96,830.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,200,Low_D,0.96,991.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,200,High_E,0.96,1192.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,200,Low_E,0.96,1385.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,200,High_F,0.96,1656.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,200,Low_F,0.96,1959.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,200,High_G,0.96,2383.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Air to Water ASHP,200,Low_G,0.96,2869.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,0-72,High_D,0.96,171.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,0-72,Low_D,0.96,207.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,0-72,High_E,0.96,251.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,0-72,Low_E,0.96,293.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,0-72,High_F,0.96,352.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,0-72,Low_F,0.96,418.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,0-72,High_G,0.96,511.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,0-72,Low_G,0.96,617.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,73-97,High_D,0.96,187.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,73-97,Low_D,0.96,226.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,73-97,High_E,0.96,273.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,73-97,Low_E,0.96,319.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,73-97,High_F,0.96,383.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,73-97,Low_F,0.96,455,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,73-97,High_G,0.96,555.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,73-97,Low_G,0.96,670,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,98-199,High_D,0.96,219.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,98-199,Low_D,0.96,264.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,98-199,High_E,0.96,318.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,98-199,Low_E,0.96,371.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,98-199,High_F,0.96,445.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,98-199,Low_F,0.96,527.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,98-199,High_G,0.96,642.8,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,98-199,Low_G,0.96,774.8,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,200,High_D,0.96,402.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,200,Low_D,0.96,480.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,200,High_E,0.96,578.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,200,Low_E,0.96,671.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,200,High_F,0.96,803.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,200,Low_F,0.96,949.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,200,High_G,0.96,1155.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Air to Water ASHP,200,Low_G,0.96,1390.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,High_D,0.96,84.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,Low_D,0.96,101.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,High_E,0.96,123.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,Low_E,0.96,144,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,High_F,0.96,173.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,Low_F,0.96,205.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,High_G,0.96,251.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,Low_G,0.96,303.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,High_D,0.96,92.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,Low_D,0.96,111.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,High_E,0.96,134.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,Low_E,0.96,156.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,High_F,0.96,188.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,Low_F,0.96,223.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,High_G,0.96,272.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,Low_G,0.96,329.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,High_D,0.96,107.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,Low_D,0.96,129.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,High_E,0.96,156.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,Low_E,0.96,182.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,High_F,0.96,218.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,Low_F,0.96,259,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,High_G,0.96,315.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,Low_G,0.96,380.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,200,High_D,0.96,197.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,200,Low_D,0.96,236.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,200,High_E,0.96,283.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,200,Low_E,0.96,329.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,200,High_F,0.96,394.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,200,Low_F,0.96,466.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,200,High_G,0.96,567.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Air to Water ASHP,200,Low_G,0.96,682.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,High_D,0.96,328.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,Low_D,0.96,389.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,High_E,0.96,463.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,Low_E,0.96,535.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,High_F,0.96,635.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,Low_F,0.96,747.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,High_G,0.96,905.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,Low_G,0.96,1084.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,High_D,0.96,352.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,Low_D,0.96,418.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,High_E,0.96,499,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,Low_E,0.96,576.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,High_F,0.96,684.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,Low_F,0.96,806,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,High_G,0.96,976,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,Low_G,0.96,1170.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,High_D,0.96,403.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,Low_D,0.96,479.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,High_E,0.96,571.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,Low_E,0.96,660.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,High_F,0.96,785.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,Low_F,0.96,925.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,High_G,0.96,1120.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,Low_G,0.96,1344.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,High_D,0.96,713.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,Low_D,0.96,846,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,High_E,0.96,1011.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,Low_E,0.96,1169.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,High_F,0.96,1392.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,Low_F,0.96,1640.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,High_G,0.96,1989.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,Low_G,0.96,2388.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,High_D,0.96,280.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,Low_D,0.96,330.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,High_E,0.96,391,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,Low_E,0.96,449.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,High_F,0.96,530.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,Low_F,0.96,622,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,High_G,0.96,749.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,Low_G,0.96,896.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,High_D,0.96,299.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,Low_D,0.96,352.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,High_E,0.96,418.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,Low_E,0.96,481.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,High_F,0.96,569.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,Low_F,0.96,668.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,High_G,0.96,806.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,Low_G,0.96,964.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,High_D,0.96,339.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,Low_D,0.96,401,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,High_E,0.96,476.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,Low_E,0.96,548.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,High_F,0.96,650.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,Low_F,0.96,763.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,High_G,0.96,922.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,Low_G,0.96,1104.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,200,High_D,0.96,591.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,200,Low_D,0.96,699.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,200,High_E,0.96,833.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,200,Low_E,0.96,962.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,200,High_F,0.96,1143.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,200,Low_F,0.96,1345.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,200,High_G,0.96,1629.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Air to Water ASHP,200,Low_G,0.96,1953.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,High_D,0.96,136.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,Low_D,0.96,165.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,High_E,0.96,200.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,Low_E,0.96,234.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,High_F,0.96,282,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,Low_F,0.96,334.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,High_G,0.96,409.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,Low_G,0.96,493.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,High_D,0.96,150,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,Low_D,0.96,181.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,High_E,0.96,219.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,Low_E,0.96,255.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,High_F,0.96,306.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,Low_F,0.96,364,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,High_G,0.96,444.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,Low_G,0.96,535.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,High_D,0.96,175.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,Low_D,0.96,211.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,High_E,0.96,255.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,Low_E,0.96,297.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,High_F,0.96,356,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,Low_F,0.96,421.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,High_G,0.96,514.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,Low_G,0.96,619.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,High_D,0.96,322,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,Low_D,0.96,384.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,High_E,0.96,462.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,Low_E,0.96,537.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,High_F,0.96,642.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,Low_F,0.96,759.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,High_G,0.96,924.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,Low_G,0.96,1112.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,High_D,0.96,78.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,Low_D,0.96,95.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,High_E,0.96,115.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,Low_E,0.96,134.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,High_F,0.96,162.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,Low_F,0.96,192.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,High_G,0.96,235.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,Low_G,0.96,283.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,High_D,0.96,86.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,Low_D,0.96,104.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,High_E,0.96,125.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,Low_E,0.96,146.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,High_F,0.96,176.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,Low_F,0.96,209.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,High_G,0.96,255.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,Low_G,0.96,308.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,High_D,0.96,100.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,Low_D,0.96,121.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,High_E,0.96,146.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,Low_E,0.96,170.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,High_F,0.96,204.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,Low_F,0.96,242.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,High_G,0.96,295.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,Low_G,0.96,356.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,200,High_D,0.96,185.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,200,Low_D,0.96,221,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,200,High_E,0.96,265.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,200,Low_E,0.96,308.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,200,High_F,0.96,369.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,200,Low_F,0.96,436.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,200,High_G,0.96,531.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Air to Water ASHP,200,Low_G,0.96,639.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,High_D,0.96,63.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,Low_D,0.96,46.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,High_E,0.96,26.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,Low_E,0.96,6.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,High_D,0.96,43,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,Low_D,0.96,24.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,High_E,0.96,2.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,High_D,0.96,15,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,Air to Water ASHP,200,Low_G,0.96,0,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,0-72,High_D,0.96,243.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,0-72,Low_D,0.96,274.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,0-72,High_E,0.96,312.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,0-72,Low_E,0.96,348.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,0-72,High_F,0.96,399.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,0-72,Low_F,0.96,456.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,0-72,High_G,0.96,536.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,0-72,Low_G,0.96,628.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,73-97,High_D,0.96,248.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,73-97,Low_D,0.96,282.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,73-97,High_E,0.96,323.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,73-97,Low_E,0.96,362.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,73-97,High_F,0.96,417.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,73-97,Low_F,0.96,479.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,73-97,High_G,0.96,565.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,73-97,Low_G,0.96,664.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,98-199,High_D,0.96,267.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,98-199,Low_D,0.96,306.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,98-199,High_E,0.96,353.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,98-199,Low_E,0.96,398.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,98-199,High_F,0.96,462.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,98-199,Low_F,0.96,533.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,98-199,High_G,0.96,632.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,98-199,Low_G,0.96,746.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,200,High_D,0.96,425.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,200,Low_D,0.96,492.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,200,High_E,0.96,576.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,200,Low_E,0.96,657.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,200,High_F,0.96,770.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,200,Low_F,0.96,897.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,200,High_G,0.96,1074.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Air to Water ASHP,200,Low_G,0.96,1277.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,0-72,High_D,0.96,171.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,0-72,Low_D,0.96,183.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,0-72,High_E,0.96,197.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,0-72,Low_E,0.96,211.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,0-72,High_F,0.96,231.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,0-72,Low_F,0.96,253.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,0-72,High_G,0.96,284,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,0-72,Low_G,0.96,319.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,73-97,High_D,0.96,166.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,73-97,Low_D,0.96,179.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,73-97,High_E,0.96,195,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,73-97,Low_E,0.96,210.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,73-97,High_F,0.96,231.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,73-97,Low_F,0.96,254.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,73-97,High_G,0.96,288.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,73-97,Low_G,0.96,326,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,98-199,High_D,0.96,166.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,98-199,Low_D,0.96,181.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,98-199,High_E,0.96,199.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,98-199,Low_E,0.96,216.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,98-199,High_F,0.96,241.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,98-199,Low_F,0.96,268.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,98-199,High_G,0.96,306.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,98-199,Low_G,0.96,350.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,200,High_D,0.96,227.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,200,Low_D,0.96,252.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,200,High_E,0.96,285.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,200,Low_E,0.96,316.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,200,High_F,0.96,359.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,200,Low_F,0.96,408.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,200,High_G,0.96,476.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Air to Water ASHP,200,Low_G,0.96,553.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,High_D,0.96,128.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,Low_D,0.96,128.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,High_E,0.96,129.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,Low_E,0.96,129.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,High_F,0.96,130.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,Low_F,0.96,131.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,High_G,0.96,132.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,Low_G,0.96,133.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,High_D,0.96,117,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,Low_D,0.96,117.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,High_E,0.96,118.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,Low_E,0.96,118.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,High_F,0.96,119.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,Low_F,0.96,120.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,High_G,0.96,121.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,Low_G,0.96,122.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,High_D,0.96,105.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,Low_D,0.96,106.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,High_E,0.96,107.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,Low_E,0.96,107.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,High_F,0.96,108.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,Low_F,0.96,109.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,High_G,0.96,110.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,Low_G,0.96,112.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,High_D,0.96,108.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,Low_D,0.96,109,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,High_E,0.96,110.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,Low_E,0.96,111.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,High_F,0.96,112.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,Low_F,0.96,114.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,High_G,0.96,117,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,Low_G,0.96,119.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,High_D,0.96,133.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,Low_D,0.96,157.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,High_E,0.96,186.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,Low_E,0.96,214.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,High_F,0.96,253.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,Low_F,0.96,297.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,High_G,0.96,358.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,Low_G,0.96,429,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,High_D,0.96,142.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,Low_D,0.96,168.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,High_E,0.96,199.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,Low_E,0.96,230,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,High_F,0.96,272.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,Low_F,0.96,319.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,High_G,0.96,386,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,Low_G,0.96,461.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,High_D,0.96,162,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,Low_D,0.96,191.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,High_E,0.96,227.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,Low_E,0.96,262.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,High_F,0.96,311.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,Low_F,0.96,365.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,High_G,0.96,442,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,Low_G,0.96,529.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,High_D,0.96,283,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,Low_D,0.96,334.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,High_E,0.96,399.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,Low_E,0.96,461,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,High_F,0.96,547.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,Low_F,0.96,644.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,High_G,0.96,780.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,Low_G,0.96,936.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,0-72,High_D,0.96,372.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,0-72,Low_D,0.96,448.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,0-72,High_E,0.96,541.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,0-72,Low_E,0.96,631.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,0-72,High_F,0.96,756.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,0-72,Low_F,0.96,896.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,0-72,High_G,0.96,1093.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,0-72,Low_G,0.96,1317.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,73-97,High_D,0.96,406.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,73-97,Low_D,0.96,488.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,73-97,High_E,0.96,589.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,73-97,Low_E,0.96,685.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,73-97,High_F,0.96,821.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,73-97,Low_F,0.96,972.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,73-97,High_G,0.96,1185.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,73-97,Low_G,0.96,1428.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,98-199,High_D,0.96,473.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,98-199,Low_D,0.96,567.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,98-199,High_E,0.96,683.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,98-199,Low_E,0.96,794.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,98-199,High_F,0.96,951,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,98-199,Low_F,0.96,1125.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,98-199,High_G,0.96,1369.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,98-199,Low_G,0.96,1649.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,200,High_D,0.96,860.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,200,Low_D,0.96,1026.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,200,High_E,0.96,1232.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,200,Low_E,0.96,1430.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,200,High_F,0.96,1709,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,200,Low_F,0.96,2019.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,200,High_G,0.96,2455.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Air to Water ASHP,200,Low_G,0.96,2953.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,0-72,High_D,0.96,362.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,0-72,Low_D,0.96,438.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,0-72,High_E,0.96,531.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,0-72,Low_E,0.96,621.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,0-72,High_F,0.96,746.6,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,0-72,Low_F,0.96,886.6,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,0-72,High_G,0.96,1083.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,0-72,Low_G,0.96,1307.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,73-97,High_D,0.96,397.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,73-97,Low_D,0.96,479.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,73-97,High_E,0.96,580.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,73-97,Low_E,0.96,676.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,73-97,High_F,0.96,812.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,73-97,Low_F,0.96,963.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,73-97,High_G,0.96,1176.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,73-97,Low_G,0.96,1419,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,98-199,High_D,0.96,464.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,98-199,Low_D,0.96,559.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,98-199,High_E,0.96,675.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,98-199,Low_E,0.96,786.6,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,98-199,High_F,0.96,942.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,98-199,Low_F,0.96,1116.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,98-199,High_G,0.96,1361.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,98-199,Low_G,0.96,1640.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,200,High_D,0.96,852.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,200,Low_D,0.96,1018,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,200,High_E,0.96,1224.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,200,Low_E,0.96,1422.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,200,High_F,0.96,1700.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,200,Low_F,0.96,2011.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,200,High_G,0.96,2446.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Air to Water ASHP,200,Low_G,0.96,2945,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,0-72,High_D,0.96,483.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,0-72,Low_D,0.96,528.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,0-72,High_E,0.96,640.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,0-72,Low_E,0.96,748.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,0-72,High_F,0.96,899.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,0-72,Low_F,0.96,1068.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,0-72,High_G,0.96,1305.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,0-72,Low_G,0.96,1575.8,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,73-97,High_D,0.96,587.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,73-97,Low_D,0.96,587.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,73-97,High_E,0.96,698.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,73-97,Low_E,0.96,815.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,73-97,High_F,0.96,978.8,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,73-97,Low_F,0.96,1161.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,73-97,High_G,0.96,1417.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,73-97,Low_G,0.96,1709.8,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,98-199,High_D,0.96,699.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,98-199,Low_D,0.96,699.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,98-199,High_E,0.96,813.8,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,98-199,Low_E,0.96,947.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,98-199,High_F,0.96,1135.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,98-199,Low_F,0.96,1345.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,98-199,High_G,0.96,1640.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,98-199,Low_G,0.96,1977.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,200,High_D,0.96,1304,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,200,Low_D,0.96,1304,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,200,High_E,0.96,1475.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,200,Low_E,0.96,1713.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,200,High_F,0.96,2049.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,200,Low_F,0.96,2423.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,200,High_G,0.96,2948.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Biomass Boiler,200,Low_G,0.96,3548.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,0-72,High_D,0.96,378.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,0-72,Low_D,0.96,458.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,0-72,High_E,0.96,555.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,0-72,Low_E,0.96,648.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,0-72,High_F,0.96,780.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,0-72,Low_F,0.96,926.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,0-72,High_G,0.96,1131.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,0-72,Low_G,0.96,1366.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,73-97,High_D,0.96,414.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,73-97,Low_D,0.96,501,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,73-97,High_E,0.96,606.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,73-97,Low_E,0.96,707,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,73-97,High_F,0.96,848.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,73-97,Low_F,0.96,1006.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,73-97,High_G,0.96,1228.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,73-97,Low_G,0.96,1482.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,98-199,High_D,0.96,485.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,98-199,Low_D,0.96,584.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,98-199,High_E,0.96,705.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,98-199,Low_E,0.96,821.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,98-199,High_F,0.96,985,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,98-199,Low_F,0.96,1167,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,98-199,High_G,0.96,1422.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,98-199,Low_G,0.96,1714.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,200,High_D,0.96,890.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,200,Low_D,0.96,1063.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,200,High_E,0.96,1279.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,200,Low_E,0.96,1486.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,200,High_F,0.96,1777,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,200,Low_F,0.96,2101.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,200,High_G,0.96,2556.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Biomass Boiler,200,Low_G,0.96,3077.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,0-72,High_D,0.96,214.8,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,0-72,Low_D,0.96,260,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,0-72,High_E,0.96,315.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,0-72,Low_E,0.96,368.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,0-72,High_F,0.96,442.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,0-72,Low_F,0.96,525.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,0-72,High_G,0.96,641.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,0-72,Low_G,0.96,775.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,73-97,High_D,0.96,235.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,73-97,Low_D,0.96,284.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,73-97,High_E,0.96,343.8,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,73-97,Low_E,0.96,401,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,73-97,High_F,0.96,481.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,73-97,Low_F,0.96,571.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,73-97,High_G,0.96,697,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,73-97,Low_G,0.96,841,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,98-199,High_D,0.96,275.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,98-199,Low_D,0.96,331.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,98-199,High_E,0.96,400.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,98-199,Low_E,0.96,466.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,98-199,High_F,0.96,558.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,98-199,Low_F,0.96,661.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,98-199,High_G,0.96,806.8,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,98-199,Low_G,0.96,972.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,200,High_D,0.96,505.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,200,Low_D,0.96,603.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,200,High_E,0.96,725.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,200,Low_E,0.96,843,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,200,High_F,0.96,1007.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,200,Low_F,0.96,1191.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,200,High_G,0.96,1450.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Biomass Boiler,200,Low_G,0.96,1745.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,0-72,High_D,0.96,137.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,0-72,Low_D,0.96,166.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,0-72,High_E,0.96,201.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,0-72,Low_E,0.96,235.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,0-72,High_F,0.96,282.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,0-72,Low_F,0.96,335.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,0-72,High_G,0.96,410.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,0-72,Low_G,0.96,495.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,73-97,High_D,0.96,150.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,73-97,Low_D,0.96,181.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,73-97,High_E,0.96,219.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,73-97,Low_E,0.96,256.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,73-97,High_F,0.96,307.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,73-97,Low_F,0.96,365,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,73-97,High_G,0.96,445.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,73-97,Low_G,0.96,537.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,98-199,High_D,0.96,176,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,98-199,Low_D,0.96,212,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,98-199,High_E,0.96,255.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,98-199,Low_E,0.96,297.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,98-199,High_F,0.96,357,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,98-199,Low_F,0.96,423,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,98-199,High_G,0.96,515.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,98-199,Low_G,0.96,621.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,200,High_D,0.96,322.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,200,Low_D,0.96,385.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,200,High_E,0.96,463.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,200,Low_E,0.96,538.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,200,High_F,0.96,644.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,200,Low_F,0.96,761.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,200,High_G,0.96,926.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Biomass Boiler,200,Low_G,0.96,1115.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,0-72,High_D,0.96,279.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,0-72,Low_D,0.96,320.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,0-72,High_E,0.96,370.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,0-72,Low_E,0.96,417.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,0-72,High_F,0.96,484.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,0-72,Low_F,0.96,559.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,0-72,High_G,0.96,664.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,0-72,Low_G,0.96,784.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,73-97,High_D,0.96,290.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,73-97,Low_D,0.96,334.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,73-97,High_E,0.96,388.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,73-97,Low_E,0.96,439.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,73-97,High_F,0.96,512.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,73-97,Low_F,0.96,593,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,73-97,High_G,0.96,706.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,73-97,Low_G,0.96,836.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,98-199,High_D,0.96,318.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,98-199,Low_D,0.96,369.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,98-199,High_E,0.96,431.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,98-199,Low_E,0.96,490.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,98-199,High_F,0.96,574,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,98-199,Low_F,0.96,667,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,98-199,High_G,0.96,797.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,98-199,Low_G,0.96,947,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,200,High_D,0.96,525.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,200,Low_D,0.96,614.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,200,High_E,0.96,724.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,200,Low_E,0.96,830.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,200,High_F,0.96,979,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,200,Low_F,0.96,1144.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,200,High_G,0.96,1377.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Biomass Boiler,200,Low_G,0.96,1643.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,0-72,High_D,0.96,215.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,0-72,Low_D,0.96,238.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,0-72,High_E,0.96,267.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,0-72,Low_E,0.96,294.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,0-72,High_F,0.96,333.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,0-72,Low_F,0.96,376.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,0-72,High_G,0.96,437.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,0-72,Low_G,0.96,506.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,73-97,High_D,0.96,216.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,73-97,Low_D,0.96,241.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,73-97,High_E,0.96,272.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,73-97,Low_E,0.96,302.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,73-97,High_F,0.96,344.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,73-97,Low_F,0.96,391.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,73-97,High_G,0.96,456.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,73-97,Low_G,0.96,531.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,98-199,High_D,0.96,227.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,98-199,Low_D,0.96,257.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,98-199,High_E,0.96,292.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,98-199,Low_E,0.96,327.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,98-199,High_F,0.96,375.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,98-199,Low_F,0.96,429.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,98-199,High_G,0.96,504.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,98-199,Low_G,0.96,590.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,200,High_D,0.96,347.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,200,Low_D,0.96,398.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,200,High_E,0.96,462.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,200,Low_E,0.96,523.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,200,High_F,0.96,609.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,200,Low_F,0.96,705.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,200,High_G,0.96,839.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Biomass Boiler,200,Low_G,0.96,993.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,High_D,0.96,176.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,Low_D,0.96,189.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,High_E,0.96,205.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,Low_E,0.96,221.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,High_F,0.96,242.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,Low_F,0.96,267.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,High_G,0.96,301.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,Low_G,0.96,340.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,High_D,0.96,172,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,Low_D,0.96,186.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,High_E,0.96,203.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,Low_E,0.96,220.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,High_F,0.96,244,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,Low_F,0.96,270.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,High_G,0.96,307,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,Low_G,0.96,349.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,High_D,0.96,173.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,Low_D,0.96,189.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,High_E,0.96,209.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,Low_E,0.96,229.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,High_F,0.96,256.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,Low_F,0.96,286.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,High_G,0.96,328.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,Low_G,0.96,377.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,High_D,0.96,240.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,Low_D,0.96,269.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,High_E,0.96,305,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,Low_E,0.96,339.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,High_F,0.96,387.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,Low_F,0.96,441.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,High_G,0.96,516.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,Low_G,0.96,603.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,High_D,0.96,181.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,Low_D,0.96,215.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,High_E,0.96,257.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,Low_E,0.96,297.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,High_F,0.96,353.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,Low_F,0.96,416.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,High_G,0.96,504.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,Low_G,0.96,605.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,High_D,0.96,195.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,Low_D,0.96,232.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,High_E,0.96,277.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,Low_E,0.96,320.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,High_F,0.96,381.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,Low_F,0.96,449.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,High_G,0.96,544.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,Low_G,0.96,653.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,High_D,0.96,223.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,Low_D,0.96,266.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,High_E,0.96,318.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,Low_E,0.96,368.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,High_F,0.96,438.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,Low_F,0.96,516.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,High_G,0.96,626.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,Low_G,0.96,751.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,High_D,0.96,397.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,Low_D,0.96,472.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,High_E,0.96,564.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,Low_E,0.96,653.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,High_F,0.96,778.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,Low_F,0.96,918,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,High_G,0.96,1113.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,Low_G,0.96,1397.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,0-72,High_D,0.96,395.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,0-72,Low_D,0.96,477.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,0-72,High_E,0.96,576.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,0-72,Low_E,0.96,671.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,0-72,High_F,0.96,805.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,0-72,Low_F,0.96,955.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,0-72,High_G,0.96,1164.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,0-72,Low_G,0.96,1404.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,73-97,High_D,0.96,432,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,73-97,Low_D,0.96,519.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,73-97,High_E,0.96,627.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,73-97,Low_E,0.96,730.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,73-97,High_F,0.96,875.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,73-97,Low_F,0.96,1036.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,73-97,High_G,0.96,1263.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,73-97,Low_G,0.96,1522.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,98-199,High_D,0.96,503.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,98-199,Low_D,0.96,604.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,98-199,High_E,0.96,728.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,98-199,Low_E,0.96,846.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,98-199,High_F,0.96,1013.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,98-199,Low_F,0.96,1199.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,98-199,High_G,0.96,1460,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,98-199,Low_G,0.96,1758.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,200,High_D,0.96,917,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,200,Low_D,0.96,1093.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,200,High_E,0.96,1313.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,200,Low_E,0.96,1525.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,200,High_F,0.96,1822.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,200,Low_F,0.96,2153.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,200,High_G,0.96,2618.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Biomass Boiler,200,Low_G,0.96,3179.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,0-72,High_D,0.96,386.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,0-72,Low_D,0.96,468.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,0-72,High_E,0.96,567.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,0-72,Low_E,0.96,662.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,0-72,High_F,0.96,796.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,0-72,Low_F,0.96,946.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,0-72,High_G,0.96,1155.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,0-72,Low_G,0.96,1395.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,73-97,High_D,0.96,423.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,73-97,Low_D,0.96,511.6,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,73-97,High_E,0.96,618.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,73-97,Low_E,0.96,722,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,73-97,High_F,0.96,866.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,73-97,Low_F,0.96,1028.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,73-97,High_G,0.96,1254.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,73-97,Low_G,0.96,1514.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,98-199,High_D,0.96,496,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,98-199,Low_D,0.96,597.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,98-199,High_E,0.96,720.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,98-199,Low_E,0.96,839.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,98-199,High_F,0.96,1005.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,98-199,Low_F,0.96,1191.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,98-199,High_G,0.96,1452.6,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,98-199,Low_G,0.96,1750.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,200,High_D,0.96,909.6,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,200,Low_D,0.96,1086.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,200,High_E,0.96,1306.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,200,Low_E,0.96,1517.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,200,High_F,0.96,1814.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,200,Low_F,0.96,2146,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,200,High_G,0.96,2610.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Biomass Boiler,200,Low_G,0.96,3142.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,High_D,0.96,184,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,Low_D,0.96,222.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,High_E,0.96,270,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,Low_E,0.96,315.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,High_F,0.96,379.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,Low_F,0.96,450.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,High_G,0.96,549.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,Low_G,0.96,664,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,High_D,0.96,201.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,Low_D,0.96,243.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,High_E,0.96,294.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,Low_E,0.96,343.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,High_F,0.96,412.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,Low_F,0.96,489.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,High_G,0.96,597.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,Low_G,0.96,720.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,High_D,0.96,236,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,Low_D,0.96,284.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,High_E,0.96,342.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,Low_E,0.96,399.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,High_F,0.96,478.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,Low_F,0.96,567,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,High_G,0.96,691.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,Low_G,0.96,833,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,200,High_D,0.96,432.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,200,Low_D,0.96,516.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,200,High_E,0.96,621.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,200,Low_E,0.96,722.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,200,High_F,0.96,863.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,200,Low_F,0.96,1021.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,200,High_G,0.96,1242.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Biomass Boiler,200,Low_G,0.96,1495.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,0-72,High_D,0.96,131.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,0-72,Low_D,0.96,159.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,0-72,High_E,0.96,193.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,0-72,Low_E,0.96,225.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,0-72,High_F,0.96,271.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,0-72,Low_F,0.96,322.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,0-72,High_G,0.96,393.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,0-72,Low_G,0.96,475.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,73-97,High_D,0.96,144.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,73-97,Low_D,0.96,174.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,73-97,High_E,0.96,210.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,73-97,Low_E,0.96,245.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,73-97,High_F,0.96,295.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,73-97,Low_F,0.96,350.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,73-97,High_G,0.96,427.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,73-97,Low_G,0.96,515.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,98-199,High_D,0.96,168.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,98-199,Low_D,0.96,203.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,98-199,High_E,0.96,245.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,98-199,Low_E,0.96,285.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,98-199,High_F,0.96,342.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,98-199,Low_F,0.96,405.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,98-199,High_G,0.96,494.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,98-199,Low_G,0.96,596.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,200,High_D,0.96,309.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,200,Low_D,0.96,369.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,200,High_E,0.96,444.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,200,Low_E,0.96,516.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,200,High_F,0.96,618,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,200,Low_F,0.96,730.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,200,High_G,0.96,889.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Biomass Boiler,200,Low_G,0.96,1070.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,High_D,0.96,356.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,Low_D,0.96,423.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,High_E,0.96,506.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,Low_E,0.96,585.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,High_F,0.96,697.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,Low_F,0.96,821.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,High_G,0.96,995.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,Low_G,0.96,1195.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,High_D,0.96,383.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,Low_D,0.96,456.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,High_E,0.96,546.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,Low_E,0.96,631.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,High_F,0.96,752.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,Low_F,0.96,886.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,High_G,0.96,1075.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,Low_G,0.96,1290.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,High_D,0.96,440.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,Low_D,0.96,524.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,High_E,0.96,627.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,Low_E,0.96,726.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,High_F,0.96,864.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,Low_F,0.96,1019.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,High_G,0.96,1236.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,Low_G,0.96,1484.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,200,High_D,0.96,784.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,200,Low_D,0.96,931.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,200,High_E,0.96,1114.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,200,Low_E,0.96,1290.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,200,High_F,0.96,1537.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,200,Low_F,0.96,1813.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,200,High_G,0.96,2199.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Biomass Boiler,200,Low_G,0.96,2662,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,0-72,High_D,0.96,313.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,0-72,Low_D,0.96,370.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,0-72,High_E,0.96,440.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,0-72,Low_E,0.96,508.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,0-72,High_F,0.96,602.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,0-72,Low_F,0.96,708.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,0-72,High_G,0.96,856.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,0-72,Low_G,0.96,1025.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,73-97,High_D,0.96,335.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,73-97,Low_D,0.96,397.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,73-97,High_E,0.96,473.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,73-97,Low_E,0.96,546.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,73-97,High_F,0.96,648.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,73-97,Low_F,0.96,762.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,73-97,High_G,0.96,922.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,73-97,Low_G,0.96,1105.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,98-199,High_D,0.96,383.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,98-199,Low_D,0.96,454.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,98-199,High_E,0.96,541.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,98-199,Low_E,0.96,625.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,98-199,High_F,0.96,743.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,98-199,Low_F,0.96,874.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,98-199,High_G,0.96,1058.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,98-199,Low_G,0.96,1268.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,200,High_D,0.96,675.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,200,Low_D,0.96,799.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,200,High_E,0.96,955.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,200,Low_E,0.96,1104.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,200,High_F,0.96,1314.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,200,Low_F,0.96,1547.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,200,High_G,0.96,1876,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Biomass Boiler,200,Low_G,0.96,2274.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,High_D,0.96,386.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,Low_D,0.96,434.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,High_E,0.96,553.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,Low_E,0.96,667.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,High_F,0.96,828.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,Low_F,0.96,1007.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,High_G,0.96,1259,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,Low_G,0.96,1546.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,High_D,0.96,392.8,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,Low_D,0.96,498.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,High_E,0.96,626.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,Low_E,0.96,750.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,High_F,0.96,924.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,Low_F,0.96,1117.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,High_G,0.96,1389.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,Low_G,0.96,1700.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,High_D,0.96,491,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,Low_D,0.96,612.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,High_E,0.96,760.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,Low_E,0.96,902.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,High_F,0.96,1102.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,Low_F,0.96,1325.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,High_G,0.96,1637.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,Low_G,0.96,1995.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,200,High_D,0.96,986.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,200,Low_D,0.96,1198.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,200,High_E,0.96,1462.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,200,Low_E,0.96,1716.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,200,High_F,0.96,2072.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,200,Low_F,0.96,2469.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,200,High_G,0.96,3026.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,Condensing Gas Boiler,200,Low_G,0.96,3663.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,High_D,0.96,288.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,375.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,High_E,0.96,482.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,584.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,High_F,0.96,728.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,888.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,High_G,0.96,1113.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,1371.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,High_D,0.96,339.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,434,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,High_E,0.96,549.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,659.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,High_F,0.96,815.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,988.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,High_G,0.96,1231.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,1510,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,High_D,0.96,428.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,537.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,High_E,0.96,669.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,797.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,High_F,0.96,976,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,1175.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,High_G,0.96,1455.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,1775.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,High_D,0.96,872.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,Low_D,0.96,1062.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,High_E,0.96,1298.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,Low_E,0.96,1525.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,High_F,0.96,1844.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,Low_F,0.96,2199.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,High_G,0.96,2698.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,Low_G,0.96,3269.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,High_D,0.96,151.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,Low_D,0.96,209.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,High_E,0.96,280.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,Low_E,0.96,349.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,High_F,0.96,445.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,Low_F,0.96,553,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,High_G,0.96,703.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,Low_G,0.96,876,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,High_D,0.96,189.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,Low_D,0.96,252.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,High_E,0.96,329.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,Low_E,0.96,403.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,High_F,0.96,507.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,Low_F,0.96,623.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,High_G,0.96,786.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,Low_G,0.96,972.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,High_D,0.96,252.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,Low_D,0.96,325.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,High_E,0.96,414.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,Low_E,0.96,499.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,High_F,0.96,619.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,Low_F,0.96,752.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,High_G,0.96,940,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,Low_G,0.96,1154.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,200,High_D,0.96,549.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,200,Low_D,0.96,676.8,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,200,High_E,0.96,835,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,200,Low_E,0.96,986.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,200,High_F,0.96,1200.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,200,Low_F,0.96,1438.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,200,High_G,0.96,1772.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,Condensing Gas Boiler,200,Low_G,0.96,2154.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,High_D,0.96,86.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,131,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,High_E,0.96,185.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,238.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,High_F,0.96,312,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,394.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,High_G,0.96,509.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,641.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,High_D,0.96,118.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,166.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,High_E,0.96,225.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,282.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,High_F,0.96,362.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,451,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,High_G,0.96,575.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,718.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,High_D,0.96,169.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,225.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,High_E,0.96,293.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,358.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,High_F,0.96,450.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,552.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,High_G,0.96,696.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,860.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,High_D,0.96,397.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,Low_D,0.96,494.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,High_E,0.96,615.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,Low_E,0.96,732.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,High_F,0.96,895.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,Low_F,0.96,1078,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,High_G,0.96,1334,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,Low_G,0.96,1626.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,High_D,0.96,123,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,Low_D,0.96,172.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,High_E,0.96,232.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,Low_E,0.96,290.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,High_F,0.96,371.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,Low_F,0.96,461.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,High_G,0.96,588.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,Low_G,0.96,734.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,High_D,0.96,155.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,Low_D,0.96,208.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,High_E,0.96,273.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,Low_E,0.96,336.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,High_F,0.96,423.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,Low_F,0.96,521.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,High_G,0.96,659.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,Low_G,0.96,816.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,High_D,0.96,209.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,Low_D,0.96,270.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,High_E,0.96,345.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,Low_E,0.96,417.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,High_F,0.96,518.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,Low_F,0.96,630.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,High_G,0.96,788.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,Low_G,0.96,969.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,High_D,0.96,460,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,Low_D,0.96,567,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,High_E,0.96,700.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,Low_E,0.96,828.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,High_F,0.96,1008.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,Low_F,0.96,1208.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,High_G,0.96,1490.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,Low_G,0.96,1812.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,0-72,High_D,0.96,302.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,391.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,0-72,High_E,0.96,499.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,603.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,0-72,High_F,0.96,749.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,912.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,0-72,High_G,0.96,1141.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,1403.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,73-97,High_D,0.96,353.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,449.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,73-97,High_E,0.96,566.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,679.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,73-97,High_F,0.96,837.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,1013.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,73-97,High_G,0.96,1260.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,1543.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,98-199,High_D,0.96,443.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,553.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,98-199,High_E,0.96,688.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,818,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,98-199,High_F,0.96,999.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,1202.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,98-199,High_G,0.96,1486.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,1812.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,200,High_D,0.96,894.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,200,Low_D,0.96,1087.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,200,High_E,0.96,1327.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,200,Low_E,0.96,1558.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,200,High_F,0.96,1882,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,200,Low_F,0.96,2243.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,200,High_G,0.96,2750.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,Condensing Gas Boiler,200,Low_G,0.96,3330.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,0-72,High_D,0.96,295.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,0-72,Low_D,0.96,383.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,0-72,High_E,0.96,492.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,0-72,Low_E,0.96,596.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,0-72,High_F,0.96,742.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,0-72,Low_F,0.96,905.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,0-72,High_G,0.96,1133.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,0-72,Low_G,0.96,1395.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,73-97,High_D,0.96,347,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,73-97,Low_D,0.96,442.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,73-97,High_E,0.96,559.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,73-97,Low_E,0.96,672.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,73-97,High_F,0.96,830.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,73-97,Low_F,0.96,1006.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,73-97,High_G,0.96,1253.6,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,73-97,Low_G,0.96,1536.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,98-199,High_D,0.96,437.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,98-199,Low_D,0.96,547.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,98-199,High_E,0.96,682.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,98-199,Low_E,0.96,811.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,98-199,High_F,0.96,993.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,98-199,Low_F,0.96,1196.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,98-199,High_G,0.96,1480.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,98-199,Low_G,0.96,1806.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,200,High_D,0.96,888.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,200,Low_D,0.96,1081.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,200,High_E,0.96,1321.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,200,Low_E,0.96,1551.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,200,High_F,0.96,1875.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,200,Low_F,0.96,2237.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,200,High_G,0.96,2744.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,Condensing Gas Boiler,200,Low_G,0.96,3324,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,0-72,High_E,0.96,17.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,41.3,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,0-72,High_F,0.96,75.2,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,113.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,0-72,High_G,0.96,166.2,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,227,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,14.5,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,73-97,High_E,0.96,41.7,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,67.8,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,73-97,High_F,0.96,104.5,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,145.5,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,73-97,High_G,0.96,202.9,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,268.6,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,98-199,High_D,0.96,22.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,47.7,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,98-199,High_E,0.96,79,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,109.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,98-199,High_F,0.96,151.3,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,198.4,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,98-199,High_G,0.96,264.5,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,340.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,200,High_D,0.96,126.9,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,200,Low_D,0.96,171.7,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,200,High_E,0.96,227.5,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,200,Low_E,0.96,281.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,200,High_F,0.96,356.3,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,200,Low_F,0.96,440.3,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,200,High_G,0.96,558.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,Condensing Gas Boiler,200,Low_G,0.96,692.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,High_D,0.96,205.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,260.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,High_E,0.96,326.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,391.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,High_F,0.96,481.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,581.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,High_G,0.96,722.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,884,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,High_D,0.96,235.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,294.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,High_E,0.96,366.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,436,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,High_F,0.96,533.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,642,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,High_G,0.96,794.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,968.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,High_D,0.96,288.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,356.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,High_E,0.96,440,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,519.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,High_F,0.96,631.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,756.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,High_G,0.96,932.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,1133,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,200,High_D,0.96,567.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,200,Low_D,0.96,685.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,200,High_E,0.96,834,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,200,Low_E,0.96,976.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,200,High_F,0.96,1176,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,200,Low_F,0.96,1398.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,200,High_G,0.96,1711.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,Condensing Gas Boiler,200,Low_G,0.96,2069.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,0-72,High_D,0.96,151.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,0-72,Low_D,0.96,191.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,0-72,High_E,0.96,240.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,0-72,Low_E,0.96,288.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,0-72,High_F,0.96,354.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,0-72,Low_F,0.96,428.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,0-72,High_G,0.96,532.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,0-72,Low_G,0.96,651.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,73-97,High_D,0.96,173.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,73-97,Low_D,0.96,216.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,73-97,High_E,0.96,270.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,73-97,Low_E,0.96,321.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,73-97,High_F,0.96,393,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,73-97,Low_F,0.96,473,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,73-97,High_G,0.96,585.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,73-97,Low_G,0.96,713.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,98-199,High_D,0.96,212.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,98-199,Low_D,0.96,263,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,98-199,High_E,0.96,324.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,98-199,Low_E,0.96,383,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,98-199,High_F,0.96,465.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,98-199,Low_F,0.96,557.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,98-199,High_G,0.96,687,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,98-199,Low_G,0.96,834.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,200,High_D,0.96,417.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,200,Low_D,0.96,505.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,200,High_E,0.96,614.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,200,Low_E,0.96,719.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,200,High_F,0.96,866.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,200,Low_F,0.96,1030.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,200,High_G,0.96,1261.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,Condensing Gas Boiler,200,Low_G,0.96,1524.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,High_D,0.96,118.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,Low_D,0.96,150.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,High_E,0.96,189.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,Low_E,0.96,226.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,High_F,0.96,278.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,Low_F,0.96,336.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,High_G,0.96,418.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,Low_G,0.96,511.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,High_D,0.96,136.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,Low_D,0.96,170.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,High_E,0.96,212.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,Low_E,0.96,252.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,High_F,0.96,308.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,Low_F,0.96,371.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,High_G,0.96,459.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,Low_G,0.96,560.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,High_D,0.96,167.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,Low_D,0.96,206.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,High_E,0.96,254.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,Low_E,0.96,300.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,High_F,0.96,365.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,Low_F,0.96,438.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,High_G,0.96,539.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,Low_G,0.96,655.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,High_D,0.96,328.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,Low_D,0.96,397.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,High_E,0.96,482.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,Low_E,0.96,565.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,High_F,0.96,680.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,Low_F,0.96,809.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,High_G,0.96,990.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,Low_G,0.96,1197.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_D,0.96,125.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,178.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_E,0.96,243.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,305.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_F,0.96,392.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,490,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_G,0.96,626.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,783,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_D,0.96,161,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,218.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_E,0.96,288.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,355.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_F,0.96,449.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,555.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_G,0.96,702.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,871.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_D,0.96,219.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,285.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_E,0.96,366.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,443.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_F,0.96,552,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,673.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_G,0.96,843.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,1037.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,High_D,0.96,489.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,Low_D,0.96,604.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,High_E,0.96,747.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,Low_E,0.96,885.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,High_F,0.96,1079.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,Low_F,0.96,1295.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,High_G,0.96,1598.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,Low_G,0.96,1944.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_D,0.96,81.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,125.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_E,0.96,178.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,230.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_F,0.96,302.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,382.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_G,0.96,495.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,624.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_D,0.96,113,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,160.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_E,0.96,218.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,273.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_F,0.96,351.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,438.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_G,0.96,560.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,700.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_D,0.96,163.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,218,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_E,0.96,284.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,348.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_F,0.96,438.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,538.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_G,0.96,678.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,839.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,High_D,0.96,386.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,Low_D,0.96,481.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,High_E,0.96,600,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,Low_E,0.96,713.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,High_F,0.96,873.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,Low_F,0.96,1052.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,High_G,0.96,1302.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,Low_G,0.96,1588.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_D,0.96,269.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,346.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_E,0.96,441.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,531.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_F,0.96,658.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,800.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_G,0.96,999.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,1227.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_D,0.96,313.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,397,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_E,0.96,498.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,596.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_F,0.96,734.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,887.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_G,0.96,1103.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,1349.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_D,0.96,391.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,487.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_E,0.96,604.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,717.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_F,0.96,875.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,1051.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_G,0.96,1299.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,1583,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,High_D,0.96,783.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,Low_D,0.96,951.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,High_E,0.96,1160.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,Low_E,0.96,1361.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,High_F,0.96,1643.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,Low_F,0.96,1958.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,High_G,0.96,2399.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,Low_G,0.96,2904.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_D,0.96,233.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,302.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_E,0.96,386.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,466.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_F,0.96,579.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,706.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_G,0.96,883.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,1085.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_D,0.96,273.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,347.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_E,0.96,438.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,525.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_F,0.96,647.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,784,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_G,0.96,975.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,1194.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_D,0.96,342.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,428.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_E,0.96,532.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,632.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_F,0.96,773.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,930.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_G,0.96,1150.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,1402.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,High_D,0.96,692.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,Low_D,0.96,841.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,High_E,0.96,1027.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,Low_E,0.96,1205.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,High_F,0.96,1456.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,Low_F,0.96,1736.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,High_G,0.96,2128.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,Low_G,0.96,2577.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,High_D,0.96,70.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,89,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,High_E,0.96,111.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,133.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,High_F,0.96,164.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,199,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,High_G,0.96,247.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,302.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,High_D,0.96,80.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,100.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,High_E,0.96,125.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,149.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,High_F,0.96,182.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,219.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,High_G,0.96,271.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,331.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,High_D,0.96,98.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,122.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,High_E,0.96,150.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,177.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,High_F,0.96,216.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,258.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,High_G,0.96,319,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,387.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,High_D,0.96,194,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,Low_D,0.96,234.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,High_E,0.96,285.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,Low_E,0.96,334,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,High_F,0.96,402.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,Low_F,0.96,478.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,High_G,0.96,585.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,Low_G,0.96,707.9,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,0-72,High_D,0.96,151.9,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,0-72,Low_D,0.96,190.3,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,0-72,High_E,0.96,237.5,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,0-72,Low_E,0.96,283.1,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,0-72,High_F,0.96,347.4,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,0-72,Low_F,0.96,419.3,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,0-72,High_G,0.96,520.3,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,0-72,Low_G,0.96,636.1,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,73-97,High_D,0.96,189.3,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,73-97,Low_D,0.96,235.3,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,73-97,High_E,0.96,291.8,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,73-97,Low_E,0.96,346.2,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,73-97,High_F,0.96,422.8,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,73-97,Low_F,0.96,508.5,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,73-97,High_G,0.96,628.8,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,73-97,Low_G,0.96,766.6,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,98-199,High_D,0.96,256.1,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,98-199,Low_D,0.96,315.3,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,98-199,High_E,0.96,387.9,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,98-199,Low_E,0.96,457.7,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,98-199,High_F,0.96,555.9,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,98-199,Low_F,0.96,665.6,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,98-199,High_G,0.96,819.7,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,98-199,Low_G,0.96,996.0,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,200,High_D,0.96,499.1,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,200,Low_D,0.96,603.3,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,200,High_E,0.96,733.3,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,200,Low_E,0.96,858.3,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,200,High_F,0.96,1033.8,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,200,Low_F,0.96,1229.8,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,200,High_G,0.96,1504.8,N/A +ESH,ESH_Upgrade,Bottled LPG Boiler,High Heat Retention Storage Heaters,200,Low_G,0.96,1819.4,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,0-72,High_D,0.96,104.6,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,0-72,Low_D,0.96,122.1,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,0-72,High_E,0.96,143.2,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,0-72,Low_E,0.96,163.1,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,0-72,High_F,0.96,190.9,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,0-72,Low_F,0.96,221.7,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,0-72,High_G,0.96,264.7,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,0-72,Low_G,0.96,313.6,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,73-97,High_D,0.96,121.7,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,73-97,Low_D,0.96,142.2,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,73-97,High_E,0.96,166.9,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,73-97,Low_E,0.96,190.4,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,73-97,High_F,0.96,223.2,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,73-97,Low_F,0.96,259.6,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,73-97,High_G,0.96,310.6,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,73-97,Low_G,0.96,368.7,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,98-199,High_D,0.96,170.3,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,98-199,Low_D,0.96,177.1,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,98-199,High_E,0.96,208.3,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,98-199,Low_E,0.96,238.1,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,98-199,High_F,0.96,279.7,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,98-199,Low_F,0.96,326.1,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,98-199,High_G,0.96,391.0,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,98-199,Low_G,0.96,465.1,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,200,High_D,0.96,255.7,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,200,Low_D,0.96,299.8,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,200,High_E,0.96,354.6,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,200,Low_E,0.96,407.2,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,200,High_F,0.96,481.0,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,200,Low_F,0.96,563.2,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,200,High_G,0.96,678.4,N/A +ESH,ESH_Upgrade,Gas Fire with Back Boiler,High Heat Retention Storage Heaters,200,Low_G,0.96,810.1,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,0-72,High_D,0.96,73.7,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,0-72,Low_D,0.96,81.6,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,0-72,High_E,0.96,90.7,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,0-72,Low_E,0.96,99.1,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,0-72,High_F,0.96,110.5,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,0-72,Low_F,0.96,123.0,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,0-72,High_G,0.96,140.0,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,0-72,Low_G,0.96,159.3,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,73-97,High_D,0.96,81.4,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,73-97,Low_D,0.96,90.3,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,73-97,High_E,0.96,100.7,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,73-97,Low_E,0.96,110.3,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,73-97,High_F,0.96,123.6,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,73-97,Low_F,0.96,138.1,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,73-97,High_G,0.96,158.1,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,73-97,Low_G,0.96,180.8,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,98-199,High_D,0.96,104.9,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,98-199,Low_D,0.96,113.2,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,98-199,High_E,0.96,117.6,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,98-199,Low_E,0.96,129.5,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,98-199,High_F,0.96,146.0,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,98-199,Low_F,0.96,164.2,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,98-199,High_G,0.96,189.5,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,98-199,Low_G,0.96,218.2,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,200,High_D,0.96,136.5,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,200,Low_D,0.96,153.9,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,200,High_E,0.96,175.3,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,200,Low_E,0.96,195.8,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,200,High_F,0.96,224.4,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,200,Low_F,0.96,256.1,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,200,High_G,0.96,300.6,N/A +ESH,ESH_Upgrade,Gas Room Heaters,High Heat Retention Storage Heaters,200,Low_G,0.96,351.3,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,0-72,High_D,0.96,73.6,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,0-72,Low_D,0.96,92.2,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,0-72,High_E,0.96,115.1,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,0-72,Low_E,0.96,137.2,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,0-72,High_F,0.96,168.4,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,0-72,Low_F,0.96,203.2,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,0-72,High_G,0.96,252.2,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,0-72,Low_G,0.96,308.3,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,73-97,High_D,0.96,91.8,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,73-97,Low_D,0.96,114.1,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,73-97,High_E,0.96,141.4,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,73-97,Low_E,0.96,167.8,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,73-97,High_F,0.96,204.9,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,73-97,Low_F,0.96,246.4,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,73-97,High_G,0.96,304.8,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,73-97,Low_G,0.96,371.6,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,98-199,High_D,0.96,143.1,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,98-199,Low_D,0.96,152.8,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,98-199,High_E,0.96,188.0,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,98-199,Low_E,0.96,221.8,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,98-199,High_F,0.96,269.4,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,98-199,Low_F,0.96,322.6,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,98-199,High_G,0.96,397.3,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,98-199,Low_G,0.96,482.8,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,200,High_D,0.96,241.9,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,200,Low_D,0.96,292.4,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,200,High_E,0.96,355.4,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,200,Low_E,0.96,416.0,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,200,High_F,0.96,501.1,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,200,Low_F,0.96,596.0,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,200,High_G,0.96,729.4,N/A +ESH,ESH_Upgrade,Solid Fossil Room Heaters,High Heat Retention Storage Heaters,200,Low_G,0.96,881.8,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,0-72,High_D,0.96,60.8,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,0-72,Low_D,0.96,74.1,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,0-72,High_E,0.96,90.4,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,0-72,Low_E,0.96,106.0,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,0-72,High_F,0.96,128.0,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,0-72,Low_F,0.96,152.5,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,0-72,High_G,0.96,186.9,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,0-72,Low_G,0.96,226.2,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,73-97,High_D,0.96,67.1,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,73-97,Low_D,0.96,81.5,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,73-97,High_E,0.96,99.1,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,73-97,Low_E,0.96,116,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,73-97,High_F,0.96,139.7,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,73-97,Low_F,0.96,166.2,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,73-97,High_G,0.96,203.4,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,73-97,Low_G,0.96,245.9,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,98-199,High_D,0.96,79.2,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,98-199,Low_D,0.96,95.7,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,98-199,High_E,0.96,116,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,98-199,Low_E,0.96,135.4,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,98-199,High_F,0.96,162.8,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,98-199,Low_F,0.96,193.2,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,98-199,High_G,0.96,236,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,98-199,Low_G,0.96,284.9,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,200,High_D,0.96,147,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,200,Low_D,0.96,175.9,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,200,High_E,0.96,212,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,200,Low_E,0.96,246.7,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,200,High_F,0.96,295.4,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,200,Low_F,0.96,349.7,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,200,High_G,0.96,425.9,N/A +ESH,ESH_Upgrade,Electric Storage Heaters Responsiveness <=0.2,High Heat Retention Storage Heaters,200,Low_G,0.96,513.1,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,0-72,High_D,0.96,312.7,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,0-72,Low_D,0.96,383.8,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,0-72,High_E,0.96,470.6,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,0-72,Low_E,0.96,553.9,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,0-72,High_F,0.96,671.0,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,0-72,Low_F,0.96,801.6,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,0-72,High_G,0.96,984.8,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,0-72,Low_G,0.96,1194.4,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,73-97,High_D,0.96,347.3,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,73-97,Low_D,0.96,424.2,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,73-97,High_E,0.96,518.0,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,73-97,Low_E,0.96,608.1,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,73-97,High_F,0.96,734.6,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,73-97,Low_F,0.96,875.7,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,73-97,High_G,0.96,1073.8,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,73-97,Low_G,0.96,1300.4,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,98-199,High_D,0.96,412.8,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,98-199,Low_D,0.96,501.2,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,98-199,High_E,0.96,609.2,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,98-199,Low_E,0.96,712.9,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,98-199,High_F,0.96,858.5,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,98-199,Low_F,0.96,1020.9,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,98-199,High_G,0.96,1248.9,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,98-199,Low_G,0.96,1509.6,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,200,High_D,0.96,774.3,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,200,Low_D,0.96,928.7,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,200,High_E,0.96,1121.1,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,200,Low_E,0.96,1305.9,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,200,High_F,0.96,1565.4,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,200,Low_F,0.96,1854.9,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,200,High_G,0.96,2261.3,N/A +ESH,ESH_Upgrade,Electric Room Heaters,High Heat Retention Storage Heaters,200,Low_G,0.96,2725.9,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,0-72,High_D,0.96,169.2,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,0-72,Low_D,0.96,211.0,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,0-72,High_E,0.96,262.3,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,0-72,Low_E,0.96,311.9,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,0-72,High_F,0.96,381.6,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,0-72,Low_F,0.96,459.6,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,0-72,High_G,0.96,569.3,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,0-72,Low_G,0.96,694.8,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,73-97,High_D,0.96,190.9,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,73-97,Low_D,0.96,236.4,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,73-97,High_E,0.96,292.1,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,73-97,Low_E,0.96,345.8,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,73-97,High_F,0.96,421.4,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,73-97,Low_F,0.96,505.8,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,73-97,High_G,0.96,624.5,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,73-97,Low_G,0.96,760.3,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,98-199,High_D,0.96,231.2,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,98-199,Low_D,0.96,283.8,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,98-199,High_E,0.96,348.2,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,98-199,Low_E,0.96,410.1,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,98-199,High_F,0.96,497.4,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,98-199,Low_F,0.96,594.6,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,98-199,High_G,0.96,731.4,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,98-199,Low_G,0.96,887.8,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,200,High_D,0.96,446.9,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,200,Low_D,0.96,539.4,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,200,High_E,0.96,654.8,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,200,Low_E,0.96,765.6,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,200,High_F,0.96,921.3,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,200,Low_F,0.96,1095.1,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,200,High_G,0.96,1339.1,N/A +ESH,ESH_Upgrade,Electric Boiler,High Heat Retention Storage Heaters,200,Low_G,0.96,1618.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,High_B,0.96,4.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,Low_B,0.96,11.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,High_C,0.96,21.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,Low_C,0.96,29.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,High_D,0.96,41,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,Low_D,0.96,51.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,High_E,0.96,65.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,Low_E,0.96,78.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,High_F,0.96,96.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,Low_F,0.96,116.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,High_G,0.96,144.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,Low_G,0.96,176.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,High_B,0.96,6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,Low_B,0.96,14.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,High_C,0.96,25.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,Low_C,0.96,34.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,High_D,0.96,47,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,Low_D,0.96,58.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,High_E,0.96,73.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,Low_E,0.96,87,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,High_F,0.96,106.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,Low_F,0.96,128.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,High_G,0.96,158.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,Low_G,0.96,193.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,High_B,0.96,10,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,Low_B,0.96,20,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,High_C,0.96,32.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,Low_C,0.96,43.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,High_D,0.96,57.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,Low_D,0.96,71.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,High_E,0.96,87.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,Low_E,0.96,103.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,High_F,0.96,126.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,Low_F,0.96,151.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,High_G,0.96,186.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,Low_G,0.96,226.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,200,High_B,0.96,26.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,200,Low_B,0.96,44.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,200,High_C,0.96,67.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,200,Low_C,0.96,87.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,200,High_D,0.96,113.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,200,Low_D,0.96,136.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,200,High_E,0.96,166.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,200,Low_E,0.96,194.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,200,High_F,0.96,234.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,200,Low_F,0.96,279.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,200,High_G,0.96,341.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,DHS non-CHP,200,Low_G,0.96,413.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,0-72,High_B,0.96,1.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,0-72,Low_B,0.96,3.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,0-72,High_C,0.96,6.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,0-72,Low_C,0.96,8.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,0-72,High_D,0.96,12,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,0-72,Low_D,0.96,15.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,0-72,High_E,0.96,19.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,0-72,Low_E,0.96,22.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,0-72,High_F,0.96,28.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,0-72,Low_F,0.96,34.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,0-72,High_G,0.96,42.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,0-72,Low_G,0.96,51.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,73-97,High_B,0.96,1.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,73-97,Low_B,0.96,4.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,73-97,High_C,0.96,7.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,73-97,Low_C,0.96,10.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,73-97,High_D,0.96,13.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,73-97,Low_D,0.96,17.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,73-97,High_E,0.96,21.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,73-97,Low_E,0.96,25.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,73-97,High_F,0.96,31.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,73-97,Low_F,0.96,37.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,73-97,High_G,0.96,46.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,73-97,Low_G,0.96,56.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,98-199,High_B,0.96,2.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,98-199,Low_B,0.96,5.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,98-199,High_C,0.96,9.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,98-199,Low_C,0.96,12.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,98-199,High_D,0.96,16.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,98-199,Low_D,0.96,20.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,98-199,High_E,0.96,25.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,98-199,Low_E,0.96,30.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,98-199,High_F,0.96,37,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,98-199,Low_F,0.96,44.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,98-199,High_G,0.96,54.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,98-199,Low_G,0.96,66.3,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,200,High_B,0.96,7.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,200,Low_B,0.96,13.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,200,High_C,0.96,19.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,200,Low_C,0.96,25.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,200,High_D,0.96,33.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,200,Low_D,0.96,40.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,200,High_E,0.96,48.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,200,Low_E,0.96,57.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,200,High_F,0.96,68.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,200,Low_F,0.96,81.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,200,High_G,0.96,100.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,DHS non-CHP,200,Low_G,0.96,121.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,0-72,High_D,0.96,487.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,0-72,Low_D,0.96,532.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,0-72,High_E,0.96,645.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,0-72,Low_E,0.96,754.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,0-72,High_F,0.96,906.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,0-72,Low_F,0.96,1076.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,0-72,High_G,0.96,1315.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,0-72,Low_G,0.96,1587.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,73-97,High_D,0.96,591.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,73-97,Low_D,0.96,591.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,73-97,High_E,0.96,704.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,73-97,Low_E,0.96,821.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,73-97,High_F,0.96,986.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,73-97,Low_F,0.96,1170,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,73-97,High_G,0.96,1427.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,73-97,Low_G,0.96,1722.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,98-199,High_D,0.96,705,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,98-199,Low_D,0.96,705,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,98-199,High_E,0.96,820,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,98-199,Low_E,0.96,955,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,98-199,High_F,0.96,1144.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,98-199,Low_F,0.96,1356,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,98-199,High_G,0.96,1652.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,98-199,Low_G,0.96,1992.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,200,High_D,0.96,1314,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,200,Low_D,0.96,1314,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,200,High_E,0.96,1486.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,200,Low_E,0.96,1727,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,200,High_F,0.96,2064.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,200,Low_F,0.96,2441.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,200,High_G,0.96,2970.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Room Heaters,Shared Ground Loop GSHP,200,Low_G,0.96,3575.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,383.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,463.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,562.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,656.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,789.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,937.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,1145.2,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,1382.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,419.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,506.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,613.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,715.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,858.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,1018.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,1243.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,1500.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,491.5,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,591.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,714.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,831.6,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,996.7,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,1180.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,1439.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,1734.8,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,200,High_D,0.96,901.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,1076.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,200,High_E,0.96,1294.4,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,1503.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,200,High_F,0.96,1798.1,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,2126.3,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,200,High_G,0.96,2586.9,N/A +DHS,DHS_connection_nopreHCs,Bottled LPG Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,3113.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,0-72,High_D,0.96,222.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,0-72,Low_D,0.96,269.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,0-72,High_E,0.96,326.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,0-72,Low_E,0.96,381.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,0-72,High_F,0.96,458.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,0-72,Low_F,0.96,544.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,0-72,High_G,0.96,665.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,0-72,Low_G,0.96,803.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,73-97,High_D,0.96,243.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,73-97,Low_D,0.96,294.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,73-97,High_E,0.96,356.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,73-97,Low_E,0.96,415.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,73-97,High_F,0.96,498.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,73-97,Low_F,0.96,591.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,73-97,High_G,0.96,722.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,73-97,Low_G,0.96,871.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,98-199,High_D,0.96,285.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,98-199,Low_D,0.96,343.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,98-199,High_E,0.96,414.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,98-199,Low_E,0.96,483.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,98-199,High_F,0.96,579,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,98-199,Low_F,0.96,685.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,98-199,High_G,0.96,836.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,98-199,Low_G,0.96,1007.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,200,High_D,0.96,523.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,200,Low_D,0.96,625.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,200,High_E,0.96,751.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,200,Low_E,0.96,873.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,200,High_F,0.96,1044.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,200,Low_F,0.96,1235.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,200,High_G,0.96,1502.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Room Heaters,Shared Ground Loop GSHP,200,Low_G,0.96,1808.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,222.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,269.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,326.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,381.4,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,458.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,544.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,665.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,803.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,243.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,294.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,356.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,415.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,498.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,591.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,722.3,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,871.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,285.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,343.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,414.8,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,483.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,579,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,685.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,836.1,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,1007.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,High_D,0.96,523.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,625.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,High_E,0.96,751.9,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,873.6,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,High_F,0.96,1044.5,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,1235.2,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,High_G,0.96,1502.7,N/A +DHS,DHS_connection_nopreHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,1808.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,361.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,429.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,513.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,594.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,708,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,834.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,1011.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,1214.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,389.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,463.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,554.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,641.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,764.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,901,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,1092.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,1312.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,447.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,533,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,637.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,737.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,879,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,1036.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,1257,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,1509.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_D,0.96,797.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,947,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_E,0.96,1133.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,1312.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_F,0.96,1563.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,1843.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_G,0.96,2237.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,2687.2,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,319.2,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,378,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,449.8,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,518.8,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,615.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,723.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,875.2,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,1048.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,342.4,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,405.9,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,483.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,558,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,662.7,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,779.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,943.3,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,1130.7,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,391,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,464.2,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,553.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,639.2,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,759.7,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,894.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,1082.6,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,1298.3,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_D,0.96,690.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,817.8,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_E,0.96,976.9,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,1129.8,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_F,0.96,1344.5,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,1584,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_G,0.96,1920.1,N/A +DHS,DHS_connection_nopreHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,2304.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,192.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,232.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,282.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,329.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,396.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,470.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,575.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,694.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,210.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,254.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,308,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,359.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,431.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,511.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,624.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,753.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,246.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,297.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,358.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,417.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,500.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,593,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,722.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,871.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_D,0.96,452.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,540.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_E,0.96,650,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,755.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_F,0.96,903,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,1067.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_G,0.96,1299.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,1563.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,141.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,170.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,207.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,241.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,290.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,345.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,421.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,509.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,154.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,186.8,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,225.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,263.6,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,316.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,375.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,458.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,552.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,181.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,218,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,263.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,306.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,367.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,435,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,530.2,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,639.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_D,0.96,332,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,396.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_E,0.96,476.9,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,554.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_F,0.96,662.5,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,783.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_G,0.96,953.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,1147.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,45.7,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,24.1,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,22.4,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_D,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_E,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_F,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_G,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,0,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,127.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,128.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,128.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,129,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,129.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,130.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,131,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,132,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,116.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,117,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,117.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,117.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,118.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,119,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,119.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,121,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,105.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,105.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,106.3,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,106.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,107.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,108.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,109.2,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,110.4,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_D,0.96,107.1,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,107.8,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_E,0.96,108.6,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,109.5,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_F,0.96,110.7,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,112,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_G,0.96,113.9,N/A +DHS,DHS_connection_nopreHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,116,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,286.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,328.6,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,380.4,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,430.2,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,500.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,578.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,687.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,812.6,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,297.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,343.6,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,399.7,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,453.5,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,529,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,613.3,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,731.6,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,866.9,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,327.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,380.6,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,445.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,507,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,594,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,691,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,827.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,982.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,200,High_D,0.96,543.7,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,635.9,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,200,High_E,0.96,750.8,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,861.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,200,High_F,0.96,1016.1,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,1189,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,200,High_G,0.96,1431.7,N/A +DHS,DHS_connection_nopreHCs,Gas Fire with Back Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,1709.1,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,0-72,High_D,0.96,222.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,0-72,Low_D,0.96,248.5,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,0-72,High_E,0.96,279.7,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,0-72,Low_E,0.96,309.7,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,0-72,High_F,0.96,351.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,0-72,Low_F,0.96,398.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,0-72,High_G,0.96,464.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,0-72,Low_G,0.96,540.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,73-97,High_D,0.96,225.3,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,73-97,Low_D,0.96,253,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,73-97,High_E,0.96,286.7,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,73-97,Low_E,0.96,319.2,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,73-97,High_F,0.96,364.8,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,73-97,Low_F,0.96,415.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,73-97,High_G,0.96,486.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,73-97,Low_G,0.96,568.5,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,98-199,High_D,0.96,238.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,98-199,Low_D,0.96,270.7,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,98-199,High_E,0.96,309.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,98-199,Low_E,0.96,346.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,98-199,High_F,0.96,399.4,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,98-199,Low_F,0.96,457.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,98-199,High_G,0.96,540,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,98-199,Low_G,0.96,633.8,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,200,High_D,0.96,369,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,200,Low_D,0.96,424.6,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,200,High_E,0.96,493.9,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,200,Low_E,0.96,560.5,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,200,High_F,0.96,654,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,200,Low_F,0.96,758.2,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,200,High_G,0.96,904.5,N/A +DHS,DHS_connection_nopreHCs,Gas Room Heaters,Shared Ground Loop GSHP,200,Low_G,0.96,1071.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,0-72,High_D,0.96,184.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,0-72,Low_D,0.96,200.4,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,0-72,High_E,0.96,219.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,0-72,Low_E,0.96,237.5,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,0-72,High_F,0.96,263,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,0-72,Low_F,0.96,291.4,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,0-72,High_G,0.96,331.4,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,0-72,Low_G,0.96,377,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,73-97,High_D,0.96,181.8,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,73-97,Low_D,0.96,198.6,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,73-97,High_E,0.96,219,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,73-97,Low_E,0.96,238.6,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,73-97,High_F,0.96,266.2,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,73-97,Low_F,0.96,297,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,73-97,High_G,0.96,340.1,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,73-97,Low_G,0.96,389.5,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,98-199,High_D,0.96,185.5,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,98-199,Low_D,0.96,204.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,98-199,High_E,0.96,228.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,98-199,Low_E,0.96,250.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,98-199,High_F,0.96,282.6,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,98-199,Low_F,0.96,318,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,98-199,High_G,0.96,367.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,98-199,Low_G,0.96,424.5,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,200,High_D,0.96,264.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,200,Low_D,0.96,297.9,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,200,High_E,0.96,339.8,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,200,Low_E,0.96,380.1,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,200,High_F,0.96,436.6,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,200,Low_F,0.96,499.7,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,200,High_G,0.96,588.3,N/A +DHS,DHS_connection_nopreHCs,Gas Back Boiler to Radiators,Shared Ground Loop GSHP,200,Low_G,0.96,689.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,400,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,482.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,582.6,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,679.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,814.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,965.6,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,1177.6,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,1420.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,436.6,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,525.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,634,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,738.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,884.6,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,1047.9,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,1277.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,1539.2,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,508.8,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,611.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,736,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,856,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,1024.5,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,1212.4,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,1476.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,1777.7,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,200,High_D,0.96,927.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,1105.7,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,200,High_E,0.96,1328.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,1542.1,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,200,High_F,0.96,1842.4,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,2177.3,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,200,High_G,0.96,2647.4,N/A +DHS,DHS_connection_nopreHCs,Electric Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,3184.9,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,0-72,High_D,0.96,189.7,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,0-72,Low_D,0.96,225.8,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,0-72,High_E,0.96,269.8,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,0-72,Low_E,0.96,312.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,0-72,High_F,0.96,371.5,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,0-72,Low_F,0.96,437.8,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,0-72,High_G,0.96,530.8,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,0-72,Low_G,0.96,637.2,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,73-97,High_D,0.96,204.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,73-97,Low_D,0.96,243.4,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,73-97,High_E,0.96,291,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,73-97,Low_E,0.96,336.8,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,73-97,High_F,0.96,401,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,73-97,Low_F,0.96,472.6,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,73-97,High_G,0.96,573.2,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,73-97,Low_G,0.96,688.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,98-199,High_D,0.96,234.9,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,98-199,Low_D,0.96,279.7,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,98-199,High_E,0.96,334.5,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,98-199,Low_E,0.96,387.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,98-199,High_F,0.96,461,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,98-199,Low_F,0.96,543.5,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,98-199,High_G,0.96,659.2,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,98-199,Low_G,0.96,791.5,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,200,High_D,0.96,418.3,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,200,Low_D,0.96,496.7,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,200,High_E,0.96,594.3,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,200,Low_E,0.96,688.1,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,200,High_F,0.96,819.8,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,200,Low_F,0.96,966.8,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,200,High_G,0.96,1173,N/A +DHS,DHS_connection_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,Shared Ground Loop GSHP,200,Low_G,0.96,1408.8,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,0-72,High_D,0.96,391.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,0-72,Low_D,0.96,473.3,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,0-72,High_E,0.96,573.7,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,0-72,Low_E,0.96,670.2,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,0-72,High_F,0.96,805.6,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,0-72,Low_F,0.96,956.7,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,0-72,High_G,0.96,1168.7,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,0-72,Low_G,0.96,1411.2,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,73-97,High_D,0.96,428.5,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,73-97,Low_D,0.96,517.4,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,73-97,High_E,0.96,625.9,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,73-97,Low_E,0.96,730.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,73-97,High_F,0.96,876.5,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,73-97,Low_F,0.96,1039.8,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,73-97,High_G,0.96,1269,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,73-97,Low_G,0.96,1531.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,98-199,High_D,0.96,501.6,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,98-199,Low_D,0.96,603.9,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,98-199,High_E,0.96,728.8,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,98-199,Low_E,0.96,848.7,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,98-199,High_F,0.96,1017.2,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,98-199,Low_F,0.96,1205.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,98-199,High_G,0.96,1468.9,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,98-199,Low_G,0.96,1770.5,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,200,High_D,0.96,919.8,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,200,Low_D,0.96,1098.4,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,200,High_E,0.96,1321,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,200,Low_E,0.96,1534.8,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,200,High_F,0.96,1835.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,200,Low_F,0.96,2170,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,200,High_G,0.96,2640.1,N/A +DHS,DHS_connection_nopreHCs,Electric Room Heaters,Shared Ground Loop GSHP,200,Low_G,0.96,3177.7,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,0-72,High_D,1,68.3,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,0-72,Low_D,1,78.2,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,0-72,High_E,1,90.7,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,0-72,Low_E,1,102.6,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,0-72,High_F,1,117.3,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,0-72,Low_F,1,131.5,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,0-72,High_G,1,148.7,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,0-72,Low_G,1,165.5,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,73-97,High_D,1,76.7,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,73-97,Low_D,1,89,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,73-97,High_E,1,105.1,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,73-97,Low_E,1,121.1,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,73-97,High_F,1,141.5,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,73-97,Low_F,1,162,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,73-97,High_G,1,187.7,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,73-97,Low_G,1,213.5,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,98-199,High_D,1,84.3,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,98-199,Low_D,1,97.7,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,98-199,High_E,1,115.6,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,98-199,Low_E,1,133.8,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,98-199,High_F,1,157.3,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,98-199,Low_F,1,181.3,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,98-199,High_G,1,211.7,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,98-199,Low_G,1,242.8,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,200,High_D,1,165.2,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,200,Low_D,1,191.1,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,200,High_E,1,225.1,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,200,Low_E,1,258.9,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,200,High_F,1,302.1,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,200,Low_F,1,345.4,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,200,High_G,1,399.6,N/A +Other Heating,P&RT,Condensing Gas Boiler,N/A,200,Low_G,1,454.4,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,0-72,High_D,1,76.1,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,0-72,Low_D,1,87.6,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,0-72,High_E,1,102.4,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,0-72,Low_E,1,117.2,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,0-72,High_F,1,136,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,0-72,Low_F,1,154.8,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,0-72,High_G,1,178.2,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,0-72,Low_G,1,201.7,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,73-97,High_D,1,85,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,73-97,Low_D,1,99,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,73-97,High_E,1,118.1,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,73-97,Low_E,1,137.9,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,73-97,High_F,1,164,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,73-97,Low_F,1,191,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,73-97,High_G,1,225.8,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,73-97,Low_G,1,261.8,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,98-199,High_D,1,93.2,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,98-199,Low_D,1,107.8,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,98-199,High_E,1,127.7,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,98-199,Low_E,1,148.4,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,98-199,High_F,1,175.8,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,98-199,Low_F,1,204.2,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,98-199,High_G,1,240.8,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,98-199,Low_G,1,278.8,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,200,High_D,1,175.7,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,200,Low_D,1,203.5,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,200,High_E,1,241.5,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,200,Low_E,1,281,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,200,High_F,1,333.3,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,200,Low_F,1,387.6,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,200,High_G,1,457.5,N/A +Other Heating,P&RT,Non Condensing Gas Boiler,N/A,200,Low_G,1,530.1,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,0-72,High_D,1,86.7,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,0-72,Low_D,1,97.6,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,0-72,High_E,1,114.4,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,0-72,Low_E,1,133.6,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,0-72,High_F,1,161.3,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,0-72,Low_F,1,191.8,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,0-72,High_G,1,233.4,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,0-72,Low_G,1,278.4,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,73-97,High_D,1,93,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,73-97,Low_D,1,103.8,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,73-97,High_E,1,122,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,73-97,Low_E,1,144,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,73-97,High_F,1,176.7,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,73-97,Low_F,1,213.9,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,73-97,High_G,1,265.5,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,73-97,Low_G,1,322.5,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,98-199,High_D,1,106.1,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,98-199,Low_D,1,118.1,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,98-199,High_E,1,138.6,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,98-199,Low_E,1,163.5,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,98-199,High_F,1,200.7,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,98-199,Low_F,1,243.2,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,98-199,High_G,1,302.2,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,98-199,Low_G,1,367.4,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,200,High_D,1,195,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,200,Low_D,1,216,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,200,High_E,1,253,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,200,Low_E,1,298.7,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,200,High_F,1,367.9,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,200,Low_F,1,447.4,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,200,High_G,1,558.6,N/A +Other Heating,P&RT,Non Condensing LPG Boiler,N/A,200,Low_G,1,682,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,0-72,High_D,1,80.1,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,0-72,Low_D,1,90.7,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,0-72,High_E,1,106,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,0-72,Low_E,1,122.7,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,0-72,High_F,1,145.6,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,0-72,Low_F,1,170.3,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,0-72,High_G,1,202.9,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,0-72,Low_G,1,237.5,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,73-97,High_D,1,83.3,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,73-97,Low_D,1,94.9,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,73-97,High_E,1,113.1,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,73-97,Low_E,1,134.1,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,73-97,High_F,1,164.3,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,73-97,Low_F,1,198,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,73-97,High_G,1,243.9,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,73-97,Low_G,1,293.8,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,98-199,High_D,1,94.3,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,98-199,Low_D,1,106.5,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,98-199,High_E,1,125.9,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,98-199,Low_E,1,148.4,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,98-199,High_F,1,181,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,98-199,Low_F,1,217.4,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,98-199,High_G,1,267.1,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,98-199,Low_G,1,321.3,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,200,High_D,1,175.8,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,200,Low_D,1,197.5,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,200,High_E,1,232.4,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,200,Low_E,1,273.3,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,200,High_F,1,332.9,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,200,Low_F,1,399.6,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,200,High_G,1,491.2,N/A +Other Heating,P&RT,Condensing LPG Boiler,N/A,200,Low_G,1,591.2,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,0-72,High_D,1,91.4,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,0-72,Low_D,1,103.7,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,0-72,High_E,1,120.4,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,0-72,Low_E,1,137.6,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,0-72,High_F,1,160.1,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,0-72,Low_F,1,183.4,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,0-72,High_G,1,213.1,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,0-72,Low_G,1,243.9,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,73-97,High_D,1,96,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,73-97,Low_D,1,109.9,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,73-97,High_E,1,129.7,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,73-97,Low_E,1,151,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,73-97,High_F,1,180.1,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,73-97,Low_F,1,211.1,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,73-97,High_G,1,251.9,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,73-97,Low_G,1,295,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,98-199,High_D,1,103.4,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,98-199,Low_D,1,117.5,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,98-199,High_E,1,138.3,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,98-199,Low_E,1,161.3,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,98-199,High_F,1,193.3,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,98-199,Low_F,1,228,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,98-199,High_G,1,274.3,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,98-199,Low_G,1,323.8,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,200,High_D,1,183.8,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,200,Low_D,1,209.8,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,200,High_E,1,248.2,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,200,Low_E,1,290.7,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,200,High_F,1,349.9,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,200,Low_F,1,414.2,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,200,High_G,1,500.1,N/A +Other Heating,P&RT,Non Condensing Oil Boiler,N/A,200,Low_G,1,591.9,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,0-72,High_D,1,86.6,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,0-72,Low_D,1,98.4,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,0-72,High_E,1,113.9,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,0-72,Low_E,1,129.6,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,0-72,High_F,1,149.7,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,0-72,Low_F,1,170.1,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,0-72,High_G,1,195.7,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,0-72,Low_G,1,221.8,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,73-97,High_D,1,92.5,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,73-97,Low_D,1,106.2,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,73-97,High_E,1,125.2,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,73-97,Low_E,1,145.1,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,73-97,High_F,1,171.7,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,73-97,Low_F,1,199.6,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,73-97,High_G,1,235.8,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,73-97,Low_G,1,273.5,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,98-199,High_D,1,96.7,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,98-199,Low_D,1,110.5,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,98-199,High_E,1,130.2,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,98-199,Low_E,1,151.4,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,98-199,High_F,1,180.2,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,98-199,Low_F,1,210.8,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,98-199,High_G,1,251.2,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,98-199,Low_G,1,293.8,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,200,High_D,1,179.2,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,200,Low_D,1,204.9,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,200,High_E,1,241.4,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,200,Low_E,1,280.5,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,200,High_F,1,333.7,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,200,Low_F,1,390.2,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,200,High_G,1,464.5,N/A +Other Heating,P&RT,Condensing Oil Boiler,N/A,200,Low_G,1,542.9,N/A +Other Heating,P&RT,Electric Boiler,N/A,0-72,High_D,1,33.3,N/A +Other Heating,P&RT,Electric Boiler,N/A,0-72,Low_D,1,38.5,N/A +Other Heating,P&RT,Electric Boiler,N/A,0-72,High_E,1,45.4,N/A +Other Heating,P&RT,Electric Boiler,N/A,0-72,Low_E,1,52.4,N/A +Other Heating,P&RT,Electric Boiler,N/A,0-72,High_F,1,61.3,N/A +Other Heating,P&RT,Electric Boiler,N/A,0-72,Low_F,1,70.4,N/A +Other Heating,P&RT,Electric Boiler,N/A,0-72,High_G,1,81.8,N/A +Other Heating,P&RT,Electric Boiler,N/A,0-72,Low_G,1,93.5,N/A +Other Heating,P&RT,Electric Boiler,N/A,73-97,High_D,1,37.3,N/A +Other Heating,P&RT,Electric Boiler,N/A,73-97,Low_D,1,43.9,N/A +Other Heating,P&RT,Electric Boiler,N/A,73-97,High_E,1,53.1,N/A +Other Heating,P&RT,Electric Boiler,N/A,73-97,Low_E,1,62.9,N/A +Other Heating,P&RT,Electric Boiler,N/A,73-97,High_F,1,76.1,N/A +Other Heating,P&RT,Electric Boiler,N/A,73-97,Low_F,1,90,N/A +Other Heating,P&RT,Electric Boiler,N/A,73-97,High_G,1,108.1,N/A +Other Heating,P&RT,Electric Boiler,N/A,73-97,Low_G,1,127.2,N/A +Other Heating,P&RT,Electric Boiler,N/A,98-199,High_D,1,44.5,N/A +Other Heating,P&RT,Electric Boiler,N/A,98-199,Low_D,1,51.9,N/A +Other Heating,P&RT,Electric Boiler,N/A,98-199,High_E,1,62.2,N/A +Other Heating,P&RT,Electric Boiler,N/A,98-199,Low_E,1,73.1,N/A +Other Heating,P&RT,Electric Boiler,N/A,98-199,High_F,1,87.8,N/A +Other Heating,P&RT,Electric Boiler,N/A,98-199,Low_F,1,103.4,N/A +Other Heating,P&RT,Electric Boiler,N/A,98-199,High_G,1,123.7,N/A +Other Heating,P&RT,Electric Boiler,N/A,98-199,Low_G,1,145,N/A +Other Heating,P&RT,Electric Boiler,N/A,200,High_D,1,84,N/A +Other Heating,P&RT,Electric Boiler,N/A,200,Low_D,1,97.6,N/A +Other Heating,P&RT,Electric Boiler,N/A,200,High_E,1,117,N/A +Other Heating,P&RT,Electric Boiler,N/A,200,Low_E,1,138,N/A +Other Heating,P&RT,Electric Boiler,N/A,200,High_F,1,166.5,N/A +Other Heating,P&RT,Electric Boiler,N/A,200,Low_F,1,196.9,N/A +Other Heating,P&RT,Electric Boiler,N/A,200,High_G,1,237,N/A +Other Heating,P&RT,Electric Boiler,N/A,200,Low_G,1,279.4,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,0-72,High_D,1,42.8,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,0-72,Low_D,1,48.6,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,0-72,High_E,1,56.3,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,0-72,Low_E,1,64,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,0-72,High_F,1,73.8,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,0-72,Low_F,1,83.7,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,0-72,High_G,1,96.1,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,0-72,Low_G,1,108.7,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,73-97,High_D,1,44.4,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,73-97,Low_D,1,51.1,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,73-97,High_E,1,60.5,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,73-97,Low_E,1,70.6,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,73-97,High_F,1,84.3,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,73-97,Low_F,1,98.8,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,73-97,High_G,1,117.9,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,73-97,Low_G,1,138.1,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,98-199,High_D,1,50,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,98-199,Low_D,1,57.3,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,98-199,High_E,1,67.7,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,98-199,Low_E,1,78.9,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,98-199,High_F,1,94.2,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,98-199,Low_F,1,110.4,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,98-199,High_G,1,131.9,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,98-199,Low_G,1,154.5,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,200,High_D,1,90.4,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,200,Low_D,1,103.6,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,200,High_E,1,122.5,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,200,Low_E,1,143.1,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,200,High_F,1,171.4,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,200,Low_F,1,201.8,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,200,High_G,1,241.9,N/A +Other Heating,P&RT,Solid Fossil Boiler,N/A,200,Low_G,1,284.5,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,0-72,High_D,1,16.9,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,0-72,Low_D,1,17.4,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,0-72,High_E,1,17.4,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,0-72,Low_E,1,16.6,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,0-72,High_F,1,14.7,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,0-72,Low_F,1,12,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,0-72,High_G,1,7.6,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,0-72,Low_G,1,2.2,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,73-97,High_D,1,22.7,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,73-97,Low_D,1,23.6,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,73-97,High_E,1,23.7,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,73-97,Low_E,1,22.8,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,73-97,High_F,1,20.5,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,73-97,Low_F,1,17.1,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,73-97,High_G,1,11.5,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,73-97,Low_G,1,4.5,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,98-199,High_D,1,25.3,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,98-199,Low_D,1,25.8,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,98-199,High_E,1,25.5,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,98-199,Low_E,1,24,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,98-199,High_F,1,21,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,98-199,Low_F,1,16.7,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,98-199,High_G,1,10,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,98-199,Low_G,1,2,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,200,High_D,1,71.3,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,200,Low_D,1,72,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,200,High_E,1,49.2,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,200,Low_E,1,47.5,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,200,High_F,1,31.8,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,200,Low_F,1,19.6,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,200,High_G,1,7.4,N/A +Other Heating,TRV,Condensing Gas Boiler,N/A,200,Low_G,1,4.3,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,0-72,High_D,1,21.4,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,0-72,Low_D,1,23.1,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,0-72,High_E,1,24.4,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,0-72,Low_E,1,24.8,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,0-72,High_F,1,24.4,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,0-72,Low_F,1,23,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,0-72,High_G,1,20.2,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,0-72,Low_G,1,16.3,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,73-97,High_D,1,25.6,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,73-97,Low_D,1,27.2,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,73-97,High_E,1,28.3,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,73-97,Low_E,1,28.3,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,73-97,High_F,1,27,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,73-97,Low_F,1,24.6,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,73-97,High_G,1,20.2,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,73-97,Low_G,1,14.6,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,98-199,High_D,1,30.4,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,98-199,Low_D,1,32.2,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,98-199,High_E,1,33.5,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,98-199,Low_E,1,33.6,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,98-199,High_F,1,32.6,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,98-199,Low_F,1,30.2,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,98-199,High_G,1,25.9,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,98-199,Low_G,1,20.2,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,200,High_D,1,67.6,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,200,Low_D,1,71.4,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,200,High_E,1,73.6,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,200,Low_E,1,72.9,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,200,High_F,1,68.8,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,200,Low_F,1,61.6,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,200,High_G,1,48.9,N/A +Other Heating,TRV,Non Condensing Gas Boiler,N/A,200,Low_G,1,32.6,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,0-72,High_D,1,35.2,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,0-72,Low_D,1,38.9,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,0-72,High_E,1,42.2,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,0-72,Low_E,1,44.1,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,0-72,High_F,1,44.8,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,0-72,Low_F,1,43.9,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,0-72,High_G,1,40.9,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,0-72,Low_G,1,36,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,73-97,High_D,1,42.8,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,73-97,Low_D,1,46.5,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,73-97,High_E,1,49.5,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,73-97,Low_E,1,50.9,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,73-97,High_F,1,50.7,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,73-97,Low_F,1,48.6,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,73-97,High_G,1,43.8,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,73-97,Low_G,1,36.9,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,98-199,High_D,1,52.3,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,98-199,Low_D,1,56.2,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,98-199,High_E,1,59.4,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,98-199,Low_E,1,60.7,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,98-199,High_F,1,60.2,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,98-199,Low_F,1,57.7,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,98-199,High_G,1,52,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,98-199,Low_G,1,44.1,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,200,High_D,1,96.6,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,200,Low_D,1,105.6,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,200,High_E,1,115,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,200,Low_E,1,122.1,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,200,High_F,1,128.5,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,200,Low_F,1,132.3,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,200,High_G,1,134.1,N/A +Other Heating,TRV,Non Condensing LPG Boiler,N/A,200,Low_G,1,133,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,0-72,High_D,1,35.6,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,0-72,Low_D,1,38.6,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,0-72,High_E,1,40.4,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,0-72,Low_E,1,40.2,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,0-72,High_F,1,37.8,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,0-72,Low_F,1,33.1,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,0-72,High_G,1,24.7,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,0-72,Low_G,1,13.8,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,73-97,High_D,1,43,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,73-97,Low_D,1,45.9,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,73-97,High_E,1,47.5,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,73-97,Low_E,1,46.9,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,73-97,High_F,1,43.5,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,73-97,Low_F,1,37.6,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,73-97,High_G,1,27.4,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,73-97,Low_G,1,14.3,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,98-199,High_D,1,51,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,98-199,Low_D,1,54.3,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,98-199,High_E,1,56.2,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,98-199,Low_E,1,55.8,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,98-199,High_F,1,52.5,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,98-199,Low_F,1,46.6,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,98-199,High_G,1,36.2,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,98-199,Low_G,1,22.8,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,200,High_D,1,100.3,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,200,Low_D,1,108.6,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,200,High_E,1,115.2,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,200,Low_E,1,117.8,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,200,High_F,1,116.2,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,200,Low_F,1,110.1,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,200,High_G,1,97.2,N/A +Other Heating,TRV,Condensing LPG Boiler,N/A,200,Low_G,1,79.1,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,0-72,High_D,1,31.6,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,0-72,Low_D,1,33.4,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,0-72,High_E,1,34,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,0-72,Low_E,1,32.8,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,0-72,High_F,1,29.3,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,0-72,Low_F,1,23.9,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,0-72,High_G,1,14.8,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,0-72,Low_G,1,3.6,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,73-97,High_D,1,39,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,73-97,Low_D,1,41.1,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,73-97,High_E,1,41.7,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,73-97,Low_E,1,40.2,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,73-97,High_F,1,35.7,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,73-97,Low_F,1,28.9,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,73-97,High_G,1,17.7,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,73-97,Low_G,1,3.7,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,98-199,High_D,1,43.5,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,98-199,Low_D,1,46,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,98-199,High_E,1,47.3,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,98-199,Low_E,1,46.7,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,98-199,High_F,1,43.7,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,98-199,Low_F,1,38.5,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,98-199,High_G,1,29.4,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,98-199,Low_G,1,17.9,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,200,High_D,1,92.5,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,200,Low_D,1,99.4,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,200,High_E,1,104.2,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,200,Low_E,1,104.9,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,200,High_F,1,101.1,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,200,Low_F,1,92.8,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,200,High_G,1,77.1,N/A +Other Heating,TRV,Non Condensing Oil Boiler,N/A,200,Low_G,1,56.3,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,0-72,High_D,1,29,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,0-72,Low_D,1,31.7,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,0-72,High_E,1,34.1,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,0-72,Low_E,1,35.5,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,0-72,High_F,1,36,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,0-72,Low_F,1,35.3,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,0-72,High_G,1,33.1,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,0-72,Low_G,1,29.6,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,73-97,High_D,1,34.4,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,73-97,Low_D,1,36.6,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,73-97,High_E,1,38,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,73-97,Low_E,1,37.8,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,73-97,High_F,1,35.9,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,73-97,Low_F,1,32.3,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,73-97,High_G,1,25.9,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,73-97,Low_G,1,17.5,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,98-199,High_D,1,39.6,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,98-199,Low_D,1,42.1,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,98-199,High_E,1,43.9,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,98-199,Low_E,1,44.2,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,98-199,High_F,1,42.7,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,98-199,Low_F,1,39.6,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,98-199,High_G,1,33.7,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,98-199,Low_G,1,25.9,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,200,High_D,1,85.2,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,200,Low_D,1,91.5,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,200,High_E,1,96,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,200,Low_E,1,97,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,200,High_F,1,94.1,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,200,Low_F,1,87.4,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,200,High_G,1,74.3,N/A +Other Heating,TRV,Condensing Oil Boiler,N/A,200,Low_G,1,56.9,N/A +Other Heating,TRV,Electric Boiler,N/A,0-72,High_D,1,27.7,N/A +Other Heating,TRV,Electric Boiler,N/A,0-72,Low_D,1,29.4,N/A +Other Heating,TRV,Electric Boiler,N/A,0-72,High_E,1,30,N/A +Other Heating,TRV,Electric Boiler,N/A,0-72,Low_E,1,29,N/A +Other Heating,TRV,Electric Boiler,N/A,0-72,High_F,1,25.7,N/A +Other Heating,TRV,Electric Boiler,N/A,0-72,Low_F,1,20.7,N/A +Other Heating,TRV,Electric Boiler,N/A,0-72,High_G,1,12.3,N/A +Other Heating,TRV,Electric Boiler,N/A,0-72,Low_G,1,1.9,N/A +Other Heating,TRV,Electric Boiler,N/A,73-97,High_D,1,32.6,N/A +Other Heating,TRV,Electric Boiler,N/A,73-97,Low_D,1,34.5,N/A +Other Heating,TRV,Electric Boiler,N/A,73-97,High_E,1,35.3,N/A +Other Heating,TRV,Electric Boiler,N/A,73-97,Low_E,1,34.4,N/A +Other Heating,TRV,Electric Boiler,N/A,73-97,High_F,1,31.3,N/A +Other Heating,TRV,Electric Boiler,N/A,73-97,Low_F,1,26.3,N/A +Other Heating,TRV,Electric Boiler,N/A,73-97,High_G,1,17.8,N/A +Other Heating,TRV,Electric Boiler,N/A,73-97,Low_G,1,7.2,N/A +Other Heating,TRV,Electric Boiler,N/A,98-199,High_D,1,39.7,N/A +Other Heating,TRV,Electric Boiler,N/A,98-199,Low_D,1,41.5,N/A +Other Heating,TRV,Electric Boiler,N/A,98-199,High_E,1,41.8,N/A +Other Heating,TRV,Electric Boiler,N/A,98-199,Low_E,1,40.3,N/A +Other Heating,TRV,Electric Boiler,N/A,98-199,High_F,1,36,N/A +Other Heating,TRV,Electric Boiler,N/A,98-199,Low_F,1,29.5,N/A +Other Heating,TRV,Electric Boiler,N/A,98-199,High_G,1,18.9,N/A +Other Heating,TRV,Electric Boiler,N/A,98-199,Low_G,1,5.8,N/A +Other Heating,TRV,Electric Boiler,N/A,200,High_D,1,83,N/A +Other Heating,TRV,Electric Boiler,N/A,200,Low_D,1,90.1,N/A +Other Heating,TRV,Electric Boiler,N/A,200,High_E,1,96.1,N/A +Other Heating,TRV,Electric Boiler,N/A,200,Low_E,1,99,N/A +Other Heating,TRV,Electric Boiler,N/A,200,High_F,1,99.1,N/A +Other Heating,TRV,Electric Boiler,N/A,200,Low_F,1,95.6,N/A +Other Heating,TRV,Electric Boiler,N/A,200,High_G,1,87.2,N/A +Other Heating,TRV,Electric Boiler,N/A,200,Low_G,1,74.9,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,0-72,High_D,1,33.8,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,0-72,Low_D,1,35.6,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,0-72,High_E,1,36,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,0-72,Low_E,1,34.6,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,0-72,High_F,1,30.4,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,0-72,Low_F,1,24.1,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,0-72,High_G,1,13.8,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,0-72,Low_G,1,1,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,73-97,High_D,1,41.4,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,73-97,Low_D,1,44.1,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,73-97,High_E,1,45.4,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,73-97,Low_E,1,44.7,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,73-97,High_F,1,41.2,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,73-97,Low_F,1,35.5,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,73-97,High_G,1,25.6,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,73-97,Low_G,1,13,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,98-199,High_D,1,46.7,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,98-199,Low_D,1,49.5,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,98-199,High_E,1,50.8,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,98-199,Low_E,1,49.9,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,98-199,High_F,1,46.1,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,98-199,Low_F,1,39.7,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,98-199,High_G,1,28.9,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,98-199,Low_G,1,15.2,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,200,High_D,1,96.8,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,200,Low_D,1,104.6,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,200,High_E,1,110.5,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,200,Low_E,1,112,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,200,High_F,1,109,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,200,Low_F,1,101.2,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,200,High_G,1,86,N/A +Other Heating,TRV,Solid Fossil Boiler,N/A,200,Low_G,1,65.3,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,0-72,High_D,1,41.3,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,0-72,Low_D,1,50.5,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,0-72,High_E,1,62,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,0-72,Low_E,1,72.9,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,0-72,High_F,1,86.1,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,0-72,Low_F,1,98.8,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,0-72,High_G,1,114,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,0-72,Low_G,1,128.6,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,73-97,High_D,1,55.8,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,73-97,Low_D,1,69.4,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,73-97,High_E,1,87,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,73-97,Low_E,1,104.4,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,73-97,High_F,1,126.3,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,73-97,Low_F,1,148.1,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,73-97,High_G,1,175,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,73-97,Low_G,1,202,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,98-199,High_D,1,65.9,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,98-199,Low_D,1,81,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,98-199,High_E,1,100.1,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,98-199,Low_E,1,118.8,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,98-199,High_F,1,142,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,98-199,Low_F,1,164.7,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,98-199,High_G,1,192.6,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,98-199,Low_G,1,220,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,200,High_D,1,134.6,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,200,Low_D,1,175.2,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,200,High_E,1,214.3,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,200,Low_E,1,258,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,200,High_F,1,318.4,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,200,Low_F,1,367.7,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,200,High_G,1,419.8,N/A +Other Heating,TTZC,Condensing Gas Boiler,N/A,200,Low_G,1,471.8,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,0-72,High_D,1,41.2,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,0-72,Low_D,1,50.6,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,0-72,High_E,1,62.6,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,0-72,Low_E,1,74.1,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,0-72,High_F,1,88.3,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,0-72,Low_F,1,102.2,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,0-72,High_G,1,119,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,0-72,Low_G,1,135.5,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,73-97,High_D,1,51.1,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,73-97,Low_D,1,65,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,73-97,High_E,1,83.7,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,73-97,Low_E,1,102.7,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,73-97,High_F,1,127.6,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,73-97,Low_F,1,153,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,73-97,High_G,1,185.4,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,73-97,Low_G,1,218.6,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,98-199,High_D,1,59.6,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,98-199,Low_D,1,75.4,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,98-199,High_E,1,97.1,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,98-199,Low_E,1,119.4,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,98-199,High_F,1,149,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,98-199,Low_F,1,179.5,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,98-199,High_G,1,218.8,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,98-199,Low_G,1,259.5,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,200,High_D,1,127.7,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,200,Low_D,1,160.8,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,200,High_E,1,205.8,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,200,Low_E,1,252.2,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,200,High_F,1,313.3,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,200,Low_F,1,376.4,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,200,High_G,1,457.5,N/A +Other Heating,TTZC,Non Condensing Gas Boiler,N/A,200,Low_G,1,541.2,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,0-72,High_D,1,28.1,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,0-72,Low_D,1,37.7,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,0-72,High_E,1,52.1,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,0-72,Low_E,1,68.1,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,0-72,High_F,1,90.5,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,0-72,Low_F,1,114.8,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,0-72,High_G,1,147.5,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,0-72,Low_G,1,182.5,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,73-97,High_D,1,27.6,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,73-97,Low_D,1,39.9,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,73-97,High_E,1,59.9,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,73-97,Low_E,1,83.4,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,73-97,High_F,1,117.9,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,73-97,Low_F,1,156.7,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,73-97,High_G,1,210.1,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,73-97,Low_G,1,268.6,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,98-199,High_D,1,31.5,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,98-199,Low_D,1,44.4,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,98-199,High_E,1,65.9,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,98-199,Low_E,1,91.9,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,98-199,High_F,1,130.4,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,98-199,Low_F,1,174.1,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,98-199,High_G,1,234.7,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,98-199,Low_G,1,301.4,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,200,High_D,1,68.1,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,200,Low_D,1,92.8,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,200,High_E,1,134.5,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,200,Low_E,1,184.8,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,200,High_F,1,259.6,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,200,Low_F,1,344.7,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,200,High_G,1,462.8,N/A +Other Heating,TTZC,Non Condensing LPG Boiler,N/A,200,Low_G,1,592.9,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,0-72,High_D,1,31.9,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,0-72,Low_D,1,42,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,0-72,High_E,1,56.4,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,0-72,Low_E,1,72,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,0-72,High_F,1,93.2,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,0-72,Low_F,1,115.9,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,0-72,High_G,1,145.9,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,0-72,Low_G,1,177.5,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,73-97,High_D,1,34.8,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,73-97,Low_D,1,47.7,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,73-97,High_E,1,67.4,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,73-97,Low_E,1,89.7,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,73-97,High_F,1,121.5,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,73-97,Low_F,1,156.5,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,73-97,High_G,1,203.9,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,73-97,Low_G,1,255.2,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,98-199,High_D,1,42.3,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,98-199,Low_D,1,56.5,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,98-199,High_E,1,78.6,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,98-199,Low_E,1,103.9,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,98-199,High_F,1,140.1,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,98-199,Low_F,1,180.2,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,98-199,High_G,1,234.7,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,98-199,Low_G,1,293.8,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,200,High_D,1,85,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,200,Low_D,1,113.3,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,200,High_E,1,157.7,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,200,Low_E,1,208.9,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,200,High_F,1,282.8,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,200,Low_F,1,364.8,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,200,High_G,1,476.8,N/A +Other Heating,TTZC,Condensing LPG Boiler,N/A,200,Low_G,1,598.4,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,0-72,High_D,1,46.3,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,0-72,Low_D,1,57.2,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,0-72,High_E,1,71.4,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,0-72,Low_E,1,85.5,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,0-72,High_F,1,103.4,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,0-72,Low_F,1,121.2,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,0-72,High_G,1,143.4,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,0-72,Low_G,1,165.7,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,73-97,High_D,1,51.8,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,73-97,Low_D,1,66.6,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,73-97,High_E,1,87.3,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,73-97,Low_E,1,109,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,73-97,High_F,1,138,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,73-97,Low_F,1,168.5,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,73-97,High_G,1,208.1,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,73-97,Low_G,1,249.4,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,98-199,High_D,1,62.3,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,98-199,Low_D,1,78.6,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,98-199,High_E,1,101.3,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,98-199,Low_E,1,125.2,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,98-199,High_F,1,157.1,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,98-199,Low_F,1,190.6,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,98-199,High_G,1,234,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,98-199,Low_G,1,279.4,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,200,High_D,1,108.8,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,200,Low_D,1,140,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,200,High_E,1,185.3,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,200,Low_E,1,234.9,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,200,High_F,1,303.2,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,200,Low_F,1,376.7,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,200,High_G,1,474.3,N/A +Other Heating,TTZC,Non Condensing Oil Boiler,N/A,200,Low_G,1,578.2,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,0-72,High_D,1,49.1,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,0-72,Low_D,1,60,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,0-72,High_E,1,73.8,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,0-72,Low_E,1,87.2,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,0-72,High_F,1,103.8,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,0-72,Low_F,1,120,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,0-72,High_G,1,139.7,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,0-72,Low_G,1,159,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,73-97,High_D,1,58.4,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,73-97,Low_D,1,73.7,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,73-97,High_E,1,94.3,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,73-97,Low_E,1,115.4,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,73-97,High_F,1,143.1,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,73-97,Low_F,1,171.6,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,73-97,High_G,1,208,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,73-97,Low_G,1,245.4,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,98-199,High_D,1,63.8,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,98-199,Low_D,1,80.8,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,98-199,High_E,1,104.6,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,98-199,Low_E,1,129.5,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,98-199,High_F,1,162.8,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,98-199,Low_F,1,197.7,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,98-199,High_G,1,243.1,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,98-199,Low_G,1,290.4,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,200,High_D,1,122.6,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,200,Low_D,1,155.5,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,200,High_E,1,201.8,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,200,Low_E,1,251,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,200,High_F,1,317.5,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,200,Low_F,1,387.8,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,200,High_G,1,479.7,N/A +Other Heating,TTZC,Condensing Oil Boiler,N/A,200,Low_G,1,576.3,N/A +Other Heating,TTZC,Electric Boiler,N/A,0-72,High_D,1,29.2,N/A +Other Heating,TTZC,Electric Boiler,N/A,0-72,Low_D,1,36,N/A +Other Heating,TTZC,Electric Boiler,N/A,0-72,High_E,1,44.7,N/A +Other Heating,TTZC,Electric Boiler,N/A,0-72,Low_E,1,53.2,N/A +Other Heating,TTZC,Electric Boiler,N/A,0-72,High_F,1,63.9,N/A +Other Heating,TTZC,Electric Boiler,N/A,0-72,Low_F,1,74.5,N/A +Other Heating,TTZC,Electric Boiler,N/A,0-72,High_G,1,87.5,N/A +Other Heating,TTZC,Electric Boiler,N/A,0-72,Low_G,1,100.4,N/A +Other Heating,TTZC,Electric Boiler,N/A,73-97,High_D,1,34.6,N/A +Other Heating,TTZC,Electric Boiler,N/A,73-97,Low_D,1,44.2,N/A +Other Heating,TTZC,Electric Boiler,N/A,73-97,High_E,1,57.3,N/A +Other Heating,TTZC,Electric Boiler,N/A,73-97,Low_E,1,71,N/A +Other Heating,TTZC,Electric Boiler,N/A,73-97,High_F,1,89.2,N/A +Other Heating,TTZC,Electric Boiler,N/A,73-97,Low_F,1,108.3,N/A +Other Heating,TTZC,Electric Boiler,N/A,73-97,High_G,1,132.9,N/A +Other Heating,TTZC,Electric Boiler,N/A,73-97,Low_G,1,158.5,N/A +Other Heating,TTZC,Electric Boiler,N/A,98-199,High_D,1,43.6,N/A +Other Heating,TTZC,Electric Boiler,N/A,98-199,Low_D,1,55.1,N/A +Other Heating,TTZC,Electric Boiler,N/A,98-199,High_E,1,70.9,N/A +Other Heating,TTZC,Electric Boiler,N/A,98-199,Low_E,1,87.4,N/A +Other Heating,TTZC,Electric Boiler,N/A,98-199,High_F,1,109.5,N/A +Other Heating,TTZC,Electric Boiler,N/A,98-199,Low_F,1,132.5,N/A +Other Heating,TTZC,Electric Boiler,N/A,98-199,High_G,1,162.4,N/A +Other Heating,TTZC,Electric Boiler,N/A,98-199,Low_G,1,193.6,N/A +Other Heating,TTZC,Electric Boiler,N/A,200,High_D,1,88.8,N/A +Other Heating,TTZC,Electric Boiler,N/A,200,Low_D,1,112,N/A +Other Heating,TTZC,Electric Boiler,N/A,200,High_E,1,144.4,N/A +Other Heating,TTZC,Electric Boiler,N/A,200,Low_E,1,178.8,N/A +Other Heating,TTZC,Electric Boiler,N/A,200,High_F,1,225.1,N/A +Other Heating,TTZC,Electric Boiler,N/A,200,Low_F,1,273.8,N/A +Other Heating,TTZC,Electric Boiler,N/A,200,High_G,1,337.5,N/A +Other Heating,TTZC,Electric Boiler,N/A,200,Low_G,1,404.3,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,0-72,High_D,1,26.7,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,0-72,Low_D,1,32.5,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,0-72,High_E,1,39.8,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,0-72,Low_E,1,46.9,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,0-72,High_F,1,55.8,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,0-72,Low_F,1,64.5,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,0-72,High_G,1,75.2,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,0-72,Low_G,1,85.8,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,73-97,High_D,1,29.7,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,73-97,Low_D,1,37.5,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,73-97,High_E,1,48.2,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,73-97,Low_E,1,59.4,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,73-97,High_F,1,74.2,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,73-97,Low_F,1,89.7,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,73-97,High_G,1,109.7,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,73-97,Low_G,1,130.5,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,98-199,High_D,1,35.1,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,98-199,Low_D,1,43.7,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,98-199,High_E,1,55.5,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,98-199,Low_E,1,67.9,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,98-199,High_F,1,84.3,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,98-199,Low_F,1,101.5,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,98-199,High_G,1,123.7,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,98-199,Low_G,1,146.9,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,200,High_D,1,59.6,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,200,Low_D,1,75.9,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,200,High_E,1,99.5,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,200,Low_E,1,125.2,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,200,High_F,1,160.8,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,200,Low_F,1,199,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,200,High_G,1,249.6,N/A +Other Heating,TTZC,Solid Fossil Boiler,N/A,200,Low_G,1,303.5,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Air to Water ASHP,GSHP,200,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Air to Water ASHP,GSHP,200,Low_G,0.96,0,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,0-72,High_D,1,22.2,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,0-72,Low_D,1,25.4,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,0-72,High_E,1,29.4,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,0-72,Low_E,1,33.3,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,0-72,High_F,1,38.1,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,0-72,Low_F,1,42.6,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,0-72,High_G,1,48.1,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,0-72,Low_G,1,53.5,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,73-97,High_D,1,24.7,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,73-97,Low_D,1,29,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,73-97,High_E,1,34.6,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,73-97,Low_E,1,40.3,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,73-97,High_F,1,47.7,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,73-97,Low_F,1,55.2,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,73-97,High_G,1,64.7,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,73-97,Low_G,1,74.3,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,98-199,High_D,1,28,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,98-199,Low_D,1,32.6,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,98-199,High_E,1,38.8,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,98-199,Low_E,1,45,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,98-199,High_F,1,53.2,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,98-199,Low_F,1,61.6,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,98-199,High_G,1,72.2,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,98-199,Low_G,1,83,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,200,High_D,1,49.8,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,200,Low_D,1,57.9,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,200,High_E,1,69,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,200,Low_E,1,80.4,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,200,High_F,1,95.4,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,200,Low_F,1,111,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,200,High_G,1,130.9,N/A +Other Heating,P&RT,Air to Water ASHP,N/A,200,Low_G,1,151.5,N/A +Other Heating,P&RT,GSHP,N/A,0-72,High_D,1,22.4,N/A +Other Heating,P&RT,GSHP,N/A,0-72,Low_D,1,25.7,N/A +Other Heating,P&RT,GSHP,N/A,0-72,High_E,1,29.8,N/A +Other Heating,P&RT,GSHP,N/A,0-72,Low_E,1,33.7,N/A +Other Heating,P&RT,GSHP,N/A,0-72,High_F,1,38.4,N/A +Other Heating,P&RT,GSHP,N/A,0-72,Low_F,1,43,N/A +Other Heating,P&RT,GSHP,N/A,0-72,High_G,1,48.4,N/A +Other Heating,P&RT,GSHP,N/A,0-72,Low_G,1,53.6,N/A +Other Heating,P&RT,GSHP,N/A,73-97,High_D,1,25.8,N/A +Other Heating,P&RT,GSHP,N/A,73-97,Low_D,1,29.9,N/A +Other Heating,P&RT,GSHP,N/A,73-97,High_E,1,35.1,N/A +Other Heating,P&RT,GSHP,N/A,73-97,Low_E,1,40.1,N/A +Other Heating,P&RT,GSHP,N/A,73-97,High_F,1,46.4,N/A +Other Heating,P&RT,GSHP,N/A,73-97,Low_F,1,52.4,N/A +Other Heating,P&RT,GSHP,N/A,73-97,High_G,1,59.8,N/A +Other Heating,P&RT,GSHP,N/A,73-97,Low_G,1,67,N/A +Other Heating,P&RT,GSHP,N/A,98-199,High_D,1,28.1,N/A +Other Heating,P&RT,GSHP,N/A,98-199,Low_D,1,32.5,N/A +Other Heating,P&RT,GSHP,N/A,98-199,High_E,1,38.2,N/A +Other Heating,P&RT,GSHP,N/A,98-199,Low_E,1,43.9,N/A +Other Heating,P&RT,GSHP,N/A,98-199,High_F,1,51,N/A +Other Heating,P&RT,GSHP,N/A,98-199,Low_F,1,58.1,N/A +Other Heating,P&RT,GSHP,N/A,98-199,High_G,1,66.8,N/A +Other Heating,P&RT,GSHP,N/A,98-199,Low_G,1,75.6,N/A +Other Heating,P&RT,GSHP,N/A,200,High_D,1,50.2,N/A +Other Heating,P&RT,GSHP,N/A,200,Low_D,1,58.7,N/A +Other Heating,P&RT,GSHP,N/A,200,High_E,1,70.1,N/A +Other Heating,P&RT,GSHP,N/A,200,Low_E,1,81.7,N/A +Other Heating,P&RT,GSHP,N/A,200,High_F,1,96.8,N/A +Other Heating,P&RT,GSHP,N/A,200,Low_F,1,112.3,N/A +Other Heating,P&RT,GSHP,N/A,200,High_G,1,132,N/A +Other Heating,P&RT,GSHP,N/A,200,Low_G,1,152.2,N/A +Other Heating,TRV,Air to Water ASHP,N/A,0-72,High_D,1,21.1,N/A +Other Heating,TRV,Air to Water ASHP,N/A,0-72,Low_D,1,21.1,N/A +Other Heating,TRV,Air to Water ASHP,N/A,0-72,High_E,1,19.9,N/A +Other Heating,TRV,Air to Water ASHP,N/A,0-72,Low_E,1,17.6,N/A +Other Heating,TRV,Air to Water ASHP,N/A,0-72,High_F,1,13.4,N/A +Other Heating,TRV,Air to Water ASHP,N/A,0-72,Low_F,1,8,N/A +Other Heating,TRV,Air to Water ASHP,N/A,0-72,High_G,1,0,N/A +Other Heating,TRV,Air to Water ASHP,N/A,0-72,Low_G,1,0,N/A +Other Heating,TRV,Air to Water ASHP,N/A,73-97,High_D,1,25.2,N/A +Other Heating,TRV,Air to Water ASHP,N/A,73-97,Low_D,1,25.1,N/A +Other Heating,TRV,Air to Water ASHP,N/A,73-97,High_E,1,23.6,N/A +Other Heating,TRV,Air to Water ASHP,N/A,73-97,Low_E,1,20.8,N/A +Other Heating,TRV,Air to Water ASHP,N/A,73-97,High_F,1,15.8,N/A +Other Heating,TRV,Air to Water ASHP,N/A,73-97,Low_F,1,9.4,N/A +Other Heating,TRV,Air to Water ASHP,N/A,73-97,High_G,1,0,N/A +Other Heating,TRV,Air to Water ASHP,N/A,73-97,Low_G,1,0,N/A +Other Heating,TRV,Air to Water ASHP,N/A,98-199,High_D,1,30.7,N/A +Other Heating,TRV,Air to Water ASHP,N/A,98-199,Low_D,1,30.5,N/A +Other Heating,TRV,Air to Water ASHP,N/A,98-199,High_E,1,28.6,N/A +Other Heating,TRV,Air to Water ASHP,N/A,98-199,Low_E,1,25.3,N/A +Other Heating,TRV,Air to Water ASHP,N/A,98-199,High_F,1,19.4,N/A +Other Heating,TRV,Air to Water ASHP,N/A,98-199,Low_F,1,11.7,N/A +Other Heating,TRV,Air to Water ASHP,N/A,98-199,High_G,1,0.2,N/A +Other Heating,TRV,Air to Water ASHP,N/A,98-199,Low_G,1,0,N/A +Other Heating,TRV,Air to Water ASHP,N/A,200,High_D,1,73.6,N/A +Other Heating,TRV,Air to Water ASHP,N/A,200,Low_D,1,75,N/A +Other Heating,TRV,Air to Water ASHP,N/A,200,High_E,1,72.6,N/A +Other Heating,TRV,Air to Water ASHP,N/A,200,Low_E,1,66.2,N/A +Other Heating,TRV,Air to Water ASHP,N/A,200,High_F,1,53.1,N/A +Other Heating,TRV,Air to Water ASHP,N/A,200,Low_F,1,35.4,N/A +Other Heating,TRV,Air to Water ASHP,N/A,200,High_G,1,7.9,N/A +Other Heating,TRV,Air to Water ASHP,N/A,200,Low_G,1,0,N/A +Other Heating,TRV,GSHP,N/A,0-72,High_D,1,16.6,N/A +Other Heating,TRV,GSHP,N/A,0-72,Low_D,1,16.1,N/A +Other Heating,TRV,GSHP,N/A,0-72,High_E,1,14.6,N/A +Other Heating,TRV,GSHP,N/A,0-72,Low_E,1,12.6,N/A +Other Heating,TRV,GSHP,N/A,0-72,High_F,1,9.1,N/A +Other Heating,TRV,GSHP,N/A,0-72,Low_F,1,4.9,N/A +Other Heating,TRV,GSHP,N/A,0-72,High_G,1,0,N/A +Other Heating,TRV,GSHP,N/A,0-72,Low_G,1,0,N/A +Other Heating,TRV,GSHP,N/A,73-97,High_D,1,20.2,N/A +Other Heating,TRV,GSHP,N/A,73-97,Low_D,1,19.6,N/A +Other Heating,TRV,GSHP,N/A,73-97,High_E,1,17.9,N/A +Other Heating,TRV,GSHP,N/A,73-97,Low_E,1,15.3,N/A +Other Heating,TRV,GSHP,N/A,73-97,High_F,1,11.2,N/A +Other Heating,TRV,GSHP,N/A,73-97,Low_F,1,6,N/A +Other Heating,TRV,GSHP,N/A,73-97,High_G,1,0,N/A +Other Heating,TRV,GSHP,N/A,73-97,Low_G,1,0,N/A +Other Heating,TRV,GSHP,N/A,98-199,High_D,1,23.6,N/A +Other Heating,TRV,GSHP,N/A,98-199,Low_D,1,22.8,N/A +Other Heating,TRV,GSHP,N/A,98-199,High_E,1,20.7,N/A +Other Heating,TRV,GSHP,N/A,98-199,Low_E,1,17.8,N/A +Other Heating,TRV,GSHP,N/A,98-199,High_F,1,12.9,N/A +Other Heating,TRV,GSHP,N/A,98-199,Low_F,1,7.1,N/A +Other Heating,TRV,GSHP,N/A,98-199,High_G,1,0,N/A +Other Heating,TRV,GSHP,N/A,98-199,Low_G,1,0,N/A +Other Heating,TRV,GSHP,N/A,200,High_D,1,62,N/A +Other Heating,TRV,GSHP,N/A,200,Low_D,1,62.3,N/A +Other Heating,TRV,GSHP,N/A,200,High_E,1,59.3,N/A +Other Heating,TRV,GSHP,N/A,200,Low_E,1,53.2,N/A +Other Heating,TRV,GSHP,N/A,200,High_F,1,41.5,N/A +Other Heating,TRV,GSHP,N/A,200,Low_F,1,26.3,N/A +Other Heating,TRV,GSHP,N/A,200,High_G,1,2.9,N/A +Other Heating,TRV,GSHP,N/A,200,Low_G,1,0,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,0-72,High_D,1,53.5,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,0-72,Low_D,1,64.3,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,0-72,High_E,1,77.5,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,0-72,Low_E,1,90,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,0-72,High_F,1,105.1,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,0-72,Low_F,1,119.4,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,0-72,High_G,1,136.3,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,0-72,Low_G,1,152.5,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,73-97,High_D,1,63.9,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,73-97,Low_D,1,79.1,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,73-97,High_E,1,99.1,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,73-97,Low_E,1,119.2,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,73-97,High_F,1,144.9,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,73-97,Low_F,1,170.9,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,73-97,High_G,1,203.6,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,73-97,Low_G,1,236.7,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,98-199,High_D,1,72.3,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,98-199,Low_D,1,89.2,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,98-199,High_E,1,111.5,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,98-199,Low_E,1,134,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,98-199,High_F,1,162.7,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,98-199,Low_F,1,191.8,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,98-199,High_G,1,228.4,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,98-199,Low_G,1,265.5,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,200,High_D,1,139.7,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,200,Low_D,1,172.9,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,200,High_E,1,217.7,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,200,Low_E,1,263.4,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,200,High_F,1,323.2,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,200,Low_F,1,384.5,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,200,High_G,1,462.6,N/A +Other Heating,TTZC,Air to Water ASHP,N/A,200,Low_G,1,543,N/A +Other Heating,TTZC,GSHP,N/A,0-72,High_D,1,54.1,N/A +Other Heating,TTZC,GSHP,N/A,0-72,Low_D,1,64.6,N/A +Other Heating,TTZC,GSHP,N/A,0-72,High_E,1,77.5,N/A +Other Heating,TTZC,GSHP,N/A,0-72,Low_E,1,89.6,N/A +Other Heating,TTZC,GSHP,N/A,0-72,High_F,1,104.2,N/A +Other Heating,TTZC,GSHP,N/A,0-72,Low_F,1,118,N/A +Other Heating,TTZC,GSHP,N/A,0-72,High_G,1,134.2,N/A +Other Heating,TTZC,GSHP,N/A,0-72,Low_G,1,149.6,N/A +Other Heating,TTZC,GSHP,N/A,73-97,High_D,1,67.1,N/A +Other Heating,TTZC,GSHP,N/A,73-97,Low_D,1,82.8,N/A +Other Heating,TTZC,GSHP,N/A,73-97,High_E,1,103.4,N/A +Other Heating,TTZC,GSHP,N/A,73-97,Low_E,1,123.9,N/A +Other Heating,TTZC,GSHP,N/A,73-97,High_F,1,150.1,N/A +Other Heating,TTZC,GSHP,N/A,73-97,Low_F,1,176.5,N/A +Other Heating,TTZC,GSHP,N/A,73-97,High_G,1,209.5,N/A +Other Heating,TTZC,GSHP,N/A,73-97,Low_G,1,242.8,N/A +Other Heating,TTZC,GSHP,N/A,98-199,High_D,1,77.1,N/A +Other Heating,TTZC,GSHP,N/A,98-199,Low_D,1,93.9,N/A +Other Heating,TTZC,GSHP,N/A,98-199,High_E,1,115.4,N/A +Other Heating,TTZC,GSHP,N/A,98-199,Low_E,1,136.4,N/A +Other Heating,TTZC,GSHP,N/A,98-199,High_F,1,162.7,N/A +Other Heating,TTZC,GSHP,N/A,98-199,Low_F,1,188.5,N/A +Other Heating,TTZC,GSHP,N/A,98-199,High_G,1,220.4,N/A +Other Heating,TTZC,GSHP,N/A,98-199,Low_G,1,251.9,N/A +Other Heating,TTZC,GSHP,N/A,200,High_D,1,147.7,N/A +Other Heating,TTZC,GSHP,N/A,200,Low_D,1,181.2,N/A +Other Heating,TTZC,GSHP,N/A,200,High_E,1,225.4,N/A +Other Heating,TTZC,GSHP,N/A,200,Low_E,1,269.9,N/A +Other Heating,TTZC,GSHP,N/A,200,High_F,1,327.1,N/A +Other Heating,TTZC,GSHP,N/A,200,Low_F,1,385,N/A +Other Heating,TTZC,GSHP,N/A,200,High_G,1,458,N/A +Other Heating,TTZC,GSHP,N/A,200,Low_G,1,532.1,N/A +Other Heating,TRV,DHS non-CHP,N/A,0-72,High_B,1,19,N/A +Other Heating,TRV,DHS non-CHP,N/A,0-72,Low_B,1,28.2,N/A +Other Heating,TRV,DHS non-CHP,N/A,0-72,High_C,1,40,N/A +Other Heating,TRV,DHS non-CHP,N/A,0-72,Low_C,1,50.6,N/A +Other Heating,TRV,DHS non-CHP,N/A,0-72,High_D,1,64.3,N/A +Other Heating,TRV,DHS non-CHP,N/A,0-72,Low_D,1,77.3,N/A +Other Heating,TRV,DHS non-CHP,N/A,0-72,High_E,1,93.6,N/A +Other Heating,TRV,DHS non-CHP,N/A,0-72,Low_E,1,109.2,N/A +Other Heating,TRV,DHS non-CHP,N/A,0-72,High_F,1,128.4,N/A +Other Heating,TRV,DHS non-CHP,N/A,0-72,Low_F,1,146.9,N/A +Other Heating,TRV,DHS non-CHP,N/A,0-72,High_G,1,169.2,N/A +Other Heating,TRV,DHS non-CHP,N/A,0-72,Low_G,1,190.9,N/A +Other Heating,TRV,DHS non-CHP,N/A,73-97,High_B,1,22,N/A +Other Heating,TRV,DHS non-CHP,N/A,73-97,Low_B,1,32.5,N/A +Other Heating,TRV,DHS non-CHP,N/A,73-97,High_C,1,46.6,N/A +Other Heating,TRV,DHS non-CHP,N/A,73-97,Low_C,1,59.9,N/A +Other Heating,TRV,DHS non-CHP,N/A,73-97,High_D,1,78.2,N/A +Other Heating,TRV,DHS non-CHP,N/A,73-97,Low_D,1,96.4,N/A +Other Heating,TRV,DHS non-CHP,N/A,73-97,High_E,1,120.6,N/A +Other Heating,TRV,DHS non-CHP,N/A,73-97,Low_E,1,144.9,N/A +Other Heating,TRV,DHS non-CHP,N/A,73-97,High_F,1,176.2,N/A +Other Heating,TRV,DHS non-CHP,N/A,73-97,Low_F,1,208,N/A +Other Heating,TRV,DHS non-CHP,N/A,73-97,High_G,1,248.1,N/A +Other Heating,TRV,DHS non-CHP,N/A,73-97,Low_G,1,288.9,N/A +Other Heating,TRV,DHS non-CHP,N/A,98-199,High_B,1,29,N/A +Other Heating,TRV,DHS non-CHP,N/A,98-199,Low_B,1,40.9,N/A +Other Heating,TRV,DHS non-CHP,N/A,98-199,High_C,1,56.8,N/A +Other Heating,TRV,DHS non-CHP,N/A,98-199,Low_C,1,71.7,N/A +Other Heating,TRV,DHS non-CHP,N/A,98-199,High_D,1,92,N/A +Other Heating,TRV,DHS non-CHP,N/A,98-199,Low_D,1,112.2,N/A +Other Heating,TRV,DHS non-CHP,N/A,98-199,High_E,1,138.7,N/A +Other Heating,TRV,DHS non-CHP,N/A,98-199,Low_E,1,165.3,N/A +Other Heating,TRV,DHS non-CHP,N/A,98-199,High_F,1,199.3,N/A +Other Heating,TRV,DHS non-CHP,N/A,98-199,Low_F,1,233.7,N/A +Other Heating,TRV,DHS non-CHP,N/A,98-199,High_G,1,276.9,N/A +Other Heating,TRV,DHS non-CHP,N/A,98-199,Low_G,1,320.7,N/A +Other Heating,TRV,DHS non-CHP,N/A,200,High_B,1,64.3,N/A +Other Heating,TRV,DHS non-CHP,N/A,200,Low_B,1,84.9,N/A +Other Heating,TRV,DHS non-CHP,N/A,200,High_C,1,113.7,N/A +Other Heating,TRV,DHS non-CHP,N/A,200,Low_C,1,142.1,N/A +Other Heating,TRV,DHS non-CHP,N/A,200,High_D,1,182.2,N/A +Other Heating,TRV,DHS non-CHP,N/A,200,Low_D,1,223.3,N/A +Other Heating,TRV,DHS non-CHP,N/A,200,High_E,1,279.3,N/A +Other Heating,TRV,DHS non-CHP,N/A,200,Low_E,1,337.1,N/A +Other Heating,TRV,DHS non-CHP,N/A,200,High_F,1,413.2,N/A +Other Heating,TRV,DHS non-CHP,N/A,200,Low_F,1,491.8,N/A +Other Heating,TRV,DHS non-CHP,N/A,200,High_G,1,592.6,N/A +Other Heating,TRV,DHS non-CHP,N/A,200,Low_G,1,696.9,N/A +Other Heating,TRV,DHS CHP,N/A,0-72,High_B,1,17.8,N/A +Other Heating,TRV,DHS CHP,N/A,0-72,Low_B,1,27.1,N/A +Other Heating,TRV,DHS CHP,N/A,0-72,High_C,1,38.4,N/A +Other Heating,TRV,DHS CHP,N/A,0-72,Low_C,1,47.9,N/A +Other Heating,TRV,DHS CHP,N/A,0-72,High_D,1,59.6,N/A +Other Heating,TRV,DHS CHP,N/A,0-72,Low_D,1,69.9,N/A +Other Heating,TRV,DHS CHP,N/A,0-72,High_E,1,81.9,N/A +Other Heating,TRV,DHS CHP,N/A,0-72,Low_E,1,92.6,N/A +Other Heating,TRV,DHS CHP,N/A,0-72,High_F,1,104.5,N/A +Other Heating,TRV,DHS CHP,N/A,0-72,Low_F,1,114.8,N/A +Other Heating,TRV,DHS CHP,N/A,0-72,High_G,1,126,N/A +Other Heating,TRV,DHS CHP,N/A,0-72,Low_G,1,135.5,N/A +Other Heating,TRV,DHS CHP,N/A,73-97,High_B,1,22.1,N/A +Other Heating,TRV,DHS CHP,N/A,73-97,Low_B,1,33.3,N/A +Other Heating,TRV,DHS CHP,N/A,73-97,High_C,1,47.6,N/A +Other Heating,TRV,DHS CHP,N/A,73-97,Low_C,1,60.5,N/A +Other Heating,TRV,DHS CHP,N/A,73-97,High_D,1,77.4,N/A +Other Heating,TRV,DHS CHP,N/A,73-97,Low_D,1,93.5,N/A +Other Heating,TRV,DHS CHP,N/A,73-97,High_E,1,113.9,N/A +Other Heating,TRV,DHS CHP,N/A,73-97,Low_E,1,133.6,N/A +Other Heating,TRV,DHS CHP,N/A,73-97,High_F,1,158,N/A +Other Heating,TRV,DHS CHP,N/A,73-97,Low_F,1,181.7,N/A +Other Heating,TRV,DHS CHP,N/A,73-97,High_G,1,210.6,N/A +Other Heating,TRV,DHS CHP,N/A,73-97,Low_G,1,239,N/A +Other Heating,TRV,DHS CHP,N/A,98-199,High_B,1,29.5,N/A +Other Heating,TRV,DHS CHP,N/A,98-199,Low_B,1,41,N/A +Other Heating,TRV,DHS CHP,N/A,98-199,High_C,1,56.1,N/A +Other Heating,TRV,DHS CHP,N/A,98-199,Low_C,1,70.3,N/A +Other Heating,TRV,DHS CHP,N/A,98-199,High_D,1,89.3,N/A +Other Heating,TRV,DHS CHP,N/A,98-199,Low_D,1,108,N/A +Other Heating,TRV,DHS CHP,N/A,98-199,High_E,1,132.4,N/A +Other Heating,TRV,DHS CHP,N/A,98-199,Low_E,1,156.7,N/A +Other Heating,TRV,DHS CHP,N/A,98-199,High_F,1,187.6,N/A +Other Heating,TRV,DHS CHP,N/A,98-199,Low_F,1,218.5,N/A +Other Heating,TRV,DHS CHP,N/A,98-199,High_G,1,257.1,N/A +Other Heating,TRV,DHS CHP,N/A,98-199,Low_G,1,296,N/A +Other Heating,TRV,DHS CHP,N/A,200,High_B,1,64.6,N/A +Other Heating,TRV,DHS CHP,N/A,200,Low_B,1,88.9,N/A +Other Heating,TRV,DHS CHP,N/A,200,High_C,1,121,N/A +Other Heating,TRV,DHS CHP,N/A,200,Low_C,1,150.9,N/A +Other Heating,TRV,DHS CHP,N/A,200,High_D,1,191.2,N/A +Other Heating,TRV,DHS CHP,N/A,200,Low_D,1,230.7,N/A +Other Heating,TRV,DHS CHP,N/A,200,High_E,1,282.3,N/A +Other Heating,TRV,DHS CHP,N/A,200,Low_E,1,333.7,N/A +Other Heating,TRV,DHS CHP,N/A,200,High_F,1,399,N/A +Other Heating,TRV,DHS CHP,N/A,200,Low_F,1,464.4,N/A +Other Heating,TRV,DHS CHP,N/A,200,High_G,1,545.9,N/A +Other Heating,TRV,DHS CHP,N/A,200,Low_G,1,628.1,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,0-72,High_D,1,18.5,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,0-72,Low_D,1,21.2,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,0-72,High_E,1,24.7,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,0-72,Low_E,1,28,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,0-72,High_F,1,32,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,0-72,Low_F,1,35.8,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,0-72,High_G,1,40.4,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,0-72,Low_G,1,44.8,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,73-97,High_D,1,20.8,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,73-97,Low_D,1,24.1,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,73-97,High_E,1,28.3,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,73-97,Low_E,1,32.3,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,73-97,High_F,1,37.4,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,73-97,Low_F,1,42.3,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,73-97,High_G,1,48.4,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,73-97,Low_G,1,54.3,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,98-199,High_D,1,22.7,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,98-199,Low_D,1,26.2,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,98-199,High_E,1,30.7,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,98-199,Low_E,1,35.2,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,98-199,High_F,1,40.7,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,98-199,Low_F,1,46.3,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,98-199,High_G,1,53.1,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,98-199,Low_G,1,59.9,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,200,High_D,1,43.9,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,200,Low_D,1,50.4,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,200,High_E,1,58.6,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,200,Low_E,1,66.6,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,200,High_F,1,76.3,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,200,Low_F,1,85.8,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,200,High_G,1,97.3,N/A +Other Heating,Compensation_nopreHCs,Condensing Gas Boiler,N/A,200,Low_G,1,108.5,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,0-72,High_D,1,22.7,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,0-72,Low_D,1,25.8,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,0-72,High_E,1,30.2,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,0-72,Low_E,1,35.1,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,0-72,High_F,1,41.7,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,0-72,Low_F,1,48.8,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,0-72,High_G,1,58.2,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,0-72,Low_G,1,68.1,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,73-97,High_D,1,23.8,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,73-97,Low_D,1,27,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,73-97,High_E,1,31.8,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,73-97,Low_E,1,37.2,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,73-97,High_F,1,44.8,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,73-97,Low_F,1,53,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,73-97,High_G,1,64.1,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,73-97,Low_G,1,76,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,98-199,High_D,1,26.6,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,98-199,Low_D,1,30,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,98-199,High_E,1,35.1,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,98-199,Low_E,1,40.8,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,98-199,High_F,1,48.9,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,98-199,Low_F,1,57.8,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,98-199,High_G,1,69.7,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,98-199,Low_G,1,82.6,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,200,High_D,1,49,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,200,Low_D,1,55.5,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,200,High_E,1,65,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,200,Low_E,1,75.7,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,200,High_F,1,90.6,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,200,Low_F,1,106.8,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,200,High_G,1,128.5,N/A +Other Heating,Compensation_nopreHCs,Condensing LPG Boiler,N/A,200,Low_G,1,151.8,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,0-72,High_D,1,22.6,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,0-72,Low_D,1,26,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,0-72,High_E,1,30.4,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,0-72,Low_E,1,34.7,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,0-72,High_F,1,40.1,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,0-72,Low_F,1,45.4,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,0-72,High_G,1,52,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,0-72,Low_G,1,58.5,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,73-97,High_D,1,24.9,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,73-97,Low_D,1,28.9,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,73-97,High_E,1,34.2,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,73-97,Low_E,1,39.6,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,73-97,High_F,1,46.6,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,73-97,Low_F,1,53.7,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,73-97,High_G,1,62.7,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,73-97,Low_G,1,71.8,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,98-199,High_D,1,26.5,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,98-199,Low_D,1,30.8,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,98-199,High_E,1,36.6,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,98-199,Low_E,1,42.5,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,98-199,High_F,1,50.3,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,98-199,Low_F,1,58.4,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,98-199,High_G,1,68.7,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,98-199,Low_G,1,79.4,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,200,High_D,1,50.5,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,200,Low_D,1,58.6,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,200,High_E,1,69.3,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,200,Low_E,1,80.2,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,200,High_F,1,94.2,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,200,Low_F,1,108.6,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,200,High_G,1,126.8,N/A +Other Heating,Compensation_nopreHCs,Non Condensing Gas Boiler,N/A,200,Low_G,1,145.4,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,0-72,High_D,1,27.9,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,0-72,Low_D,1,31.3,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,0-72,High_E,1,36.3,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,0-72,Low_E,1,41.9,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,0-72,High_F,1,49.6,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,0-72,Low_F,1,57.9,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,0-72,High_G,1,69.1,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,0-72,Low_G,1,81,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,73-97,High_D,1,29.9,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,73-97,Low_D,1,33.6,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,73-97,High_E,1,39.4,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,73-97,Low_E,1,46.1,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,73-97,High_F,1,55.6,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,73-97,Low_F,1,66.1,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,73-97,High_G,1,80.4,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,73-97,Low_G,1,95.9,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,98-199,High_D,1,31.8,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,98-199,Low_D,1,35.5,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,98-199,High_E,1,41.4,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,98-199,Low_E,1,48.3,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,98-199,High_F,1,58.4,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,98-199,Low_F,1,69.6,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,98-199,High_G,1,85,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,98-199,Low_G,1,101.8,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,200,High_D,1,59.9,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,200,Low_D,1,66.8,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,200,High_E,1,77.6,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,200,Low_E,1,89.9,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,200,High_F,1,107.7,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,200,Low_F,1,127.3,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,200,High_G,1,154,N/A +Other Heating,Compensation_nopreHCs,Non Condensing LPG Boiler,N/A,200,Low_G,1,182.9,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,0-72,High_D,1,20.5,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,0-72,Low_D,1,23.6,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,0-72,High_E,1,27.5,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,0-72,Low_E,1,31.4,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,0-72,High_F,1,36.1,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,0-72,Low_F,1,40.8,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,0-72,High_G,1,46.5,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,0-72,Low_G,1,52.2,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,73-97,High_D,1,22.2,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,73-97,Low_D,1,25.8,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,73-97,High_E,1,30.4,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,73-97,Low_E,1,34.9,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,73-97,High_F,1,40.8,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,73-97,Low_F,1,46.6,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,73-97,High_G,1,53.9,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,73-97,Low_G,1,61.2,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,98-199,High_D,1,24.5,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,98-199,Low_D,1,28.3,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,98-199,High_E,1,33.3,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,98-199,Low_E,1,38.3,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,98-199,High_F,1,44.9,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,98-199,Low_F,1,51.5,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,98-199,High_G,1,59.8,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,98-199,Low_G,1,68.3,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,200,High_D,1,46.6,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,200,Low_D,1,53.7,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,200,High_E,1,63,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,200,Low_E,1,72.4,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,200,High_F,1,84.3,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,200,Low_F,1,96.4,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,200,High_G,1,111.5,N/A +Other Heating,Compensation_preHCs,Condensing Gas Boiler,N/A,200,Low_G,1,126.8,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,0-72,High_D,1,18.5,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,0-72,Low_D,1,21.2,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,0-72,High_E,1,24.7,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,0-72,Low_E,1,28,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,0-72,High_F,1,32,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,0-72,Low_F,1,35.8,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,0-72,High_G,1,40.4,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,0-72,Low_G,1,44.8,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,73-97,High_D,1,20.8,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,73-97,Low_D,1,24.1,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,73-97,High_E,1,28.3,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,73-97,Low_E,1,32.3,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,73-97,High_F,1,37.4,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,73-97,Low_F,1,42.3,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,73-97,High_G,1,48.4,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,73-97,Low_G,1,54.3,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,98-199,High_D,1,22.7,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,98-199,Low_D,1,26.2,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,98-199,High_E,1,30.7,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,98-199,Low_E,1,35.2,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,98-199,High_F,1,40.7,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,98-199,Low_F,1,46.3,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,98-199,High_G,1,53.1,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,98-199,Low_G,1,59.9,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,200,High_D,1,53.2,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,200,Low_D,1,59.4,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,200,High_E,1,69.2,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,200,Low_E,1,80.4,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,200,High_F,1,96.7,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,200,Low_F,1,114.7,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,200,High_G,1,139.4,N/A +Other Heating,Compensation_preHCs,Condensing LPG Boiler,N/A,200,Low_G,1,166.2,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,0-72,High_D,1,24.4,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,0-72,Low_D,1,28.1,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,0-72,High_E,1,33,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,0-72,Low_E,1,38,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,0-72,High_F,1,44.3,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,0-72,Low_F,1,50.7,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,0-72,High_G,1,58.7,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,0-72,Low_G,1,66.9,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,73-97,High_D,1,27.1,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,73-97,Low_D,1,31.5,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,73-97,High_E,1,37.4,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,73-97,Low_E,1,43.4,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,73-97,High_F,1,51.4,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,73-97,Low_F,1,59.7,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,73-97,High_G,1,70.2,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,73-97,Low_G,1,81.2,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,98-199,High_D,1,29.7,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,98-199,Low_D,1,34.2,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,98-199,High_E,1,40.2,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,98-199,Low_E,1,46.5,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,98-199,High_F,1,54.7,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,98-199,Low_F,1,63.3,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,98-199,High_G,1,74.2,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,98-199,Low_G,1,85.5,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,200,High_D,1,56.5,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,200,Low_D,1,64.8,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,200,High_E,1,76,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,200,Low_E,1,87.4,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,200,High_F,1,102.4,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,200,Low_F,1,117.7,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,200,High_G,1,137.3,N/A +Other Heating,Compensation_preHCs,Non Condensing Gas Boiler,N/A,200,Low_G,1,157.5,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,0-72,High_D,1,22.6,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,0-72,Low_D,1,26,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,0-72,High_E,1,30.4,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,0-72,Low_E,1,34.7,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,0-72,High_F,1,40.1,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,0-72,Low_F,1,45.4,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,0-72,High_G,1,52,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,0-72,Low_G,1,58.5,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,73-97,High_D,1,24.9,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,73-97,Low_D,1,28.9,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,73-97,High_E,1,34.2,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,73-97,Low_E,1,39.6,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,73-97,High_F,1,46.6,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,73-97,Low_F,1,53.7,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,73-97,High_G,1,62.7,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,73-97,Low_G,1,71.8,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,98-199,High_D,1,26.5,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,98-199,Low_D,1,30.8,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,98-199,High_E,1,36.6,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,98-199,Low_E,1,42.5,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,98-199,High_F,1,50.3,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,98-199,Low_F,1,58.4,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,98-199,High_G,1,68.7,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,98-199,Low_G,1,79.4,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,200,High_D,1,65,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,200,Low_D,1,71.6,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,200,High_E,1,83,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,200,Low_E,1,96.9,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,200,High_F,1,117.8,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,200,Low_F,1,141.8,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,200,High_G,1,175.2,N/A +Other Heating,Compensation_preHCs,Non Condensing LPG Boiler,N/A,200,Low_G,1,212.1,N/A +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,0-72,High_D,1,25.1,1.11 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,0-72,Low_D,1,30.3,1.34 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,0-72,High_E,1,34.3,1.58 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,0-72,Low_E,1,38.9,1.61 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,0-72,High_F,1,43.1,1.5 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,0-72,Low_F,1,47.5,1.4 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,0-72,High_G,1,51.8,1.26 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,0-72,Low_G,1,56.1,1.14 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,73-97,High_D,1,29.1,1.19 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,73-97,Low_D,1,36.2,1.49 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,73-97,High_E,1,42.5,1.8 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,73-97,Low_E,1,47.9,1.84 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,73-97,High_F,1,57.8,1.87 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,73-97,Low_F,1,64.7,1.78 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,73-97,High_G,1,72.3,1.64 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,73-97,Low_G,1,80,1.51 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,98-199,High_D,1,35.1,1.25 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,98-199,Low_D,1,40.9,1.46 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,98-199,High_E,1,48,1.79 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,98-199,Low_E,1,54.9,1.81 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,98-199,High_F,1,62,1.73 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,98-199,Low_F,1,75.7,1.79 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,98-199,High_G,1,85,1.66 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,98-199,Low_G,1,95.4,1.56 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,200,High_D,1,73.7,1.47 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,200,Low_D,1,85.3,1.71 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,200,High_E,1,100.6,2.11 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,200,Low_E,1,115.3,2.13 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,200,High_F,1,128.8,2 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,200,Low_F,1,154.7,2.04 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,200,High_G,1,172.3,1.88 +Other Heating,Smarttherm,Condensing Gas Boiler,N/A,200,Low_G,1,192,1.74 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,0-72,High_D,1,26.3,1.16 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,0-72,Low_D,1,31.4,1.39 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,0-72,High_E,1,37,1.7 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,0-72,Low_E,1,40.7,1.68 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,0-72,High_F,1,47,1.64 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,0-72,Low_F,1,51.6,1.53 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,0-72,High_G,1,56.6,1.38 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,0-72,Low_G,1,61.6,1.25 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,73-97,High_D,1,29.4,1.2 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,73-97,Low_D,1,38.4,1.57 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,73-97,High_E,1,44.8,1.89 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,73-97,Low_E,1,51.9,2 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,73-97,High_F,1,59.3,1.92 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,73-97,Low_F,1,70.7,1.95 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,73-97,High_G,1,79.4,1.8 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,73-97,Low_G,1,88.7,1.68 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,98-199,High_D,1,33.6,1.2 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,98-199,Low_D,1,41.1,1.47 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,98-199,High_E,1,50.1,1.86 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,98-199,Low_E,1,56.8,1.88 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,98-199,High_F,1,66.7,1.86 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,98-199,Low_F,1,76.1,1.8 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,98-199,High_G,1,88.6,1.73 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,98-199,Low_G,1,99,1.62 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,200,High_D,1,71.2,1.42 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,200,Low_D,1,86.3,1.73 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,200,High_E,1,99.9,2.09 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,200,Low_E,1,117.8,2.17 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,200,High_F,1,136.5,2.12 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,200,Low_F,1,154.6,2.04 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,200,High_G,1,181.2,1.98 +Other Heating,Smarttherm,Non Condensing Gas Boiler,N/A,200,Low_G,1,202.1,1.84 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,0-72,High_D,1,26.9,1.19 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,0-72,Low_D,1,33.3,1.48 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,0-72,High_E,1,39.5,1.81 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,0-72,Low_E,1,49,2.03 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,0-72,High_F,1,58.5,2.05 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,0-72,Low_F,1,69,2.05 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,0-72,High_G,1,75.8,1.86 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,0-72,Low_G,1,87.6,1.79 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,73-97,High_D,1,30.7,1.26 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,73-97,Low_D,1,38.3,1.57 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,73-97,High_E,1,45.6,1.93 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,73-97,Low_E,1,52.8,2.03 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,73-97,High_F,1,63.6,2.06 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,73-97,Low_F,1,79.1,2.18 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,73-97,High_G,1,96.9,2.21 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,73-97,Low_G,1,119,2.27 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,98-199,High_D,1,33.4,1.19 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,98-199,Low_D,1,42.5,1.51 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,98-199,High_E,1,52,1.93 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,98-199,Low_E,1,62.7,2.08 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,98-199,High_F,1,76.7,2.14 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,98-199,Low_F,1,89.2,2.12 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,98-199,High_G,1,104.8,2.06 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,98-199,Low_G,1,135.3,2.22 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,200,High_D,1,79.3,1.59 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,200,Low_D,1,89.2,1.78 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,200,High_E,1,111.9,2.33 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,200,Low_E,1,127.3,2.35 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,200,High_F,1,148,2.3 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,200,Low_F,1,178.8,2.37 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,200,High_G,1,208.3,2.28 +Other Heating,Smarttherm,Condensing LPG Boiler,N/A,200,Low_G,1,269.9,2.47 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,0-72,High_D,1,24.8,1.1 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,0-72,Low_D,1,31.5,1.4 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,0-72,High_E,1,39,1.79 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,0-72,Low_E,1,46.3,1.92 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,0-72,High_F,1,57.4,2.01 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,0-72,Low_F,1,68.5,2.04 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,0-72,High_G,1,81.3,2 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,0-72,Low_G,1,98.2,2.02 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,73-97,High_D,1,25.2,1.03 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,73-97,Low_D,1,36,1.48 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,73-97,High_E,1,44.9,1.9 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,73-97,Low_E,1,53.4,2.05 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,73-97,High_F,1,61.9,2 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,73-97,Low_F,1,74.5,2.05 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,73-97,High_G,1,92.7,2.11 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,73-97,Low_G,1,127.9,2.44 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,98-199,High_D,1,34.2,1.22 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,98-199,Low_D,1,42.6,1.52 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,98-199,High_E,1,49.8,1.85 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,98-199,Low_E,1,60.9,2.02 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,98-199,High_F,1,73.4,2.05 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,98-199,Low_F,1,89.8,2.14 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,98-199,High_G,1,107.6,2.12 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,98-199,Low_G,1,148.6,2.45 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,200,High_D,1,72.4,1.45 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,200,Low_D,1,92.9,1.86 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,200,High_E,1,104.5,2.18 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,200,Low_E,1,131,2.42 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,200,High_F,1,149,2.32 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,200,Low_F,1,173.4,2.3 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,200,High_G,1,209.4,2.29 +Other Heating,Smarttherm,Non Condensing LPG Boiler,N/A,200,Low_G,1,303,2.78 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,0-72,High_D,1,27.5,1.22 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,0-72,Low_D,1,33.4,1.48 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,0-72,High_E,1,38.4,1.76 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,0-72,Low_E,1,43.8,1.82 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,0-72,High_F,1,49.6,1.73 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,0-72,Low_F,1,55.8,1.65 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,0-72,High_G,1,61.6,1.51 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,0-72,Low_G,1,67.6,1.38 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,73-97,High_D,1,31.7,1.3 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,73-97,Low_D,1,38.5,1.58 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,73-97,High_E,1,44.4,1.88 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,73-97,Low_E,1,51.8,1.99 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,73-97,High_F,1,60.1,1.94 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,73-97,Low_F,1,68.6,1.89 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,73-97,High_G,1,81.8,1.86 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,73-97,Low_G,1,91.8,1.74 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,98-199,High_D,1,34.9,1.24 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,98-199,Low_D,1,40.2,1.43 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,98-199,High_E,1,47.6,1.77 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,98-199,Low_E,1,55.3,1.83 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,98-199,High_F,1,65,1.81 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,98-199,Low_F,1,77.2,1.83 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,98-199,High_G,1,88.1,1.72 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,98-199,Low_G,1,102.5,1.67 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,200,High_D,1,74.2,1.48 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,200,Low_D,1,85.8,1.72 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,200,High_E,1,99.8,2.09 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,200,Low_E,1,115.6,2.13 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,200,High_F,1,129.2,2.01 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,200,Low_F,1,149.9,1.98 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,200,High_G,1,174.5,1.9 +Other Heating,Smarttherm,Condensing Oil Boiler,N/A,200,Low_G,1,209.6,1.91 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,0-72,High_D,1,27.5,1.22 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,0-72,Low_D,1,33.2,1.47 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,0-72,High_E,1,38.6,1.77 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,0-72,Low_E,1,44.2,1.83 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,0-72,High_F,1,50.7,1.77 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,0-72,Low_F,1,56.7,1.68 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,0-72,High_G,1,65.4,1.6 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,0-72,Low_G,1,72.3,1.48 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,73-97,High_D,1,29.1,1.2 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,73-97,Low_D,1,35.6,1.46 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,73-97,High_E,1,44.3,1.87 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,73-97,Low_E,1,52.1,2 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,73-97,High_F,1,61.4,1.99 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,73-97,Low_F,1,70.3,1.94 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,73-97,High_G,1,79.4,1.8 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,73-97,Low_G,1,97.3,1.85 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,98-199,High_D,1,36.2,1.29 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,98-199,Low_D,1,42.2,1.5 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,98-199,High_E,1,48.8,1.81 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,98-199,Low_E,1,54.5,1.8 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,98-199,High_F,1,65.7,1.83 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,98-199,Low_F,1,78,1.85 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,98-199,High_G,1,90.3,1.77 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,98-199,Low_G,1,109.1,1.78 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,200,High_D,1,72.6,1.45 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,200,Low_D,1,83.3,1.67 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,200,High_E,1,96.4,2.02 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,200,Low_E,1,112.1,2.07 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,200,High_F,1,129.8,2.01 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,200,Low_F,1,153.1,2.02 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,200,High_G,1,181.7,1.98 +Other Heating,Smarttherm,Non Condensing Oil Boiler,N/A,200,Low_G,1,214.6,1.95 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,0-72,High_D,1,29.7,1.32 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,0-72,Low_D,1,36.8,1.63 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,0-72,High_E,1,42.2,1.93 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,0-72,Low_E,1,48.1,2 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,0-72,High_F,1,54.9,1.92 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,0-72,Low_F,1,60.3,1.79 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,0-72,High_G,1,69.8,1.71 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,0-72,Low_G,1,76.6,1.56 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,73-97,High_D,1,32,1.31 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,73-97,Low_D,1,40.7,1.67 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,73-97,High_E,1,46.6,1.97 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,73-97,Low_E,1,53.9,2.07 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,73-97,High_F,1,64.4,2.09 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,73-97,Low_F,1,74.5,2.05 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,73-97,High_G,1,84.7,1.93 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,73-97,Low_G,1,105.2,2 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,98-199,High_D,1,36.2,1.29 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,98-199,Low_D,1,44.1,1.57 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,98-199,High_E,1,54.6,2.02 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,98-199,Low_E,1,64.3,2.13 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,98-199,High_F,1,72.3,2.02 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,98-199,Low_F,1,84.7,2.01 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,98-199,High_G,1,97.8,1.92 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,98-199,Low_G,1,117.6,1.93 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,200,High_D,1,77.3,1.55 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,200,Low_D,1,92.6,1.85 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,200,High_E,1,111.5,2.32 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,200,Low_E,1,116.1,2.14 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,200,High_F,1,141.9,2.21 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,200,Low_F,1,168.8,2.23 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,200,High_G,1,192.5,2.1 +Other Heating,Smarttherm,Solid Fossil Boiler,N/A,200,Low_G,1,230.3,2.1 +Other Heating,Smarttherm,Electric Boiler,N/A,0-72,High_D,1,23.7,1.05 +Other Heating,Smarttherm,Electric Boiler,N/A,0-72,Low_D,1,29.5,1.31 +Other Heating,Smarttherm,Electric Boiler,N/A,0-72,High_E,1,35.5,1.63 +Other Heating,Smarttherm,Electric Boiler,N/A,0-72,Low_E,1,40.3,1.67 +Other Heating,Smarttherm,Electric Boiler,N/A,0-72,High_F,1,45.9,1.6 +Other Heating,Smarttherm,Electric Boiler,N/A,0-72,Low_F,1,50.5,1.49 +Other Heating,Smarttherm,Electric Boiler,N/A,0-72,High_G,1,58,1.42 +Other Heating,Smarttherm,Electric Boiler,N/A,0-72,Low_G,1,63.6,1.3 +Other Heating,Smarttherm,Electric Boiler,N/A,73-97,High_D,1,27.3,1.12 +Other Heating,Smarttherm,Electric Boiler,N/A,73-97,Low_D,1,34.6,1.42 +Other Heating,Smarttherm,Electric Boiler,N/A,73-97,High_E,1,42.7,1.81 +Other Heating,Smarttherm,Electric Boiler,N/A,73-97,Low_E,1,49,1.88 +Other Heating,Smarttherm,Electric Boiler,N/A,73-97,High_F,1,57,1.84 +Other Heating,Smarttherm,Electric Boiler,N/A,73-97,Low_F,1,64.6,1.77 +Other Heating,Smarttherm,Electric Boiler,N/A,73-97,High_G,1,78.4,1.78 +Other Heating,Smarttherm,Electric Boiler,N/A,73-97,Low_G,1,88.1,1.67 +Other Heating,Smarttherm,Electric Boiler,N/A,98-199,High_D,1,33.7,1.2 +Other Heating,Smarttherm,Electric Boiler,N/A,98-199,Low_D,1,42.2,1.5 +Other Heating,Smarttherm,Electric Boiler,N/A,98-199,High_E,1,47.3,1.76 +Other Heating,Smarttherm,Electric Boiler,N/A,98-199,Low_E,1,57.6,1.9 +Other Heating,Smarttherm,Electric Boiler,N/A,98-199,High_F,1,67.8,1.89 +Other Heating,Smarttherm,Electric Boiler,N/A,98-199,Low_F,1,76.9,1.82 +Other Heating,Smarttherm,Electric Boiler,N/A,98-199,High_G,1,88.2,1.73 +Other Heating,Smarttherm,Electric Boiler,N/A,98-199,Low_G,1,103.1,1.68 +Other Heating,Smarttherm,Electric Boiler,N/A,200,High_D,1,71.4,1.43 +Other Heating,Smarttherm,Electric Boiler,N/A,200,Low_D,1,82.9,1.66 +Other Heating,Smarttherm,Electric Boiler,N/A,200,High_E,1,97.1,2.04 +Other Heating,Smarttherm,Electric Boiler,N/A,200,Low_E,1,113.1,2.08 +Other Heating,Smarttherm,Electric Boiler,N/A,200,High_F,1,134.5,2.09 +Other Heating,Smarttherm,Electric Boiler,N/A,200,Low_F,1,155.3,2.05 +Other Heating,Smarttherm,Electric Boiler,N/A,200,High_G,1,174.3,1.9 +Other Heating,Smarttherm,Electric Boiler,N/A,200,Low_G,1,210.8,1.92 +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,High_D,0.96,263.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,Low_D,0.96,350.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,High_E,0.96,455.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,Low_E,0.96,556.8,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,High_F,0.96,702.5,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,Low_F,0.96,868.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,High_G,0.96,1105.2,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,0-72,Low_G,0.96,1380.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,High_D,0.96,265.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,Low_D,0.96,347.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,High_E,0.96,447.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,Low_E,0.96,543.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,High_F,0.96,681,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,Low_F,0.96,837.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,High_G,0.96,1061.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,73-97,Low_G,0.96,1323.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,High_D,0.96,280.5,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,Low_D,0.96,362.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,High_E,0.96,460.8,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,Low_E,0.96,554.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,High_F,0.96,688.8,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,Low_F,0.96,841.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,High_G,0.96,1060.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,98-199,Low_G,0.96,1315.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,High_D,0.96,478,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,Low_D,0.96,601.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,High_E,0.96,754.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,Low_E,0.96,900.5,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,High_F,0.96,1111.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,Low_F,0.96,1353.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,High_G,0.96,1701.8,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Fuel Cell mCHP,200,Low_G,0.96,2108.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,0-72,High_D,0.96,69.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,0-72,Low_D,0.96,70.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,0-72,High_E,0.96,71.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,0-72,Low_E,0.96,72.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,0-72,High_F,0.96,77.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,0-72,Low_F,0.96,86,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,0-72,High_G,0.96,102.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,0-72,Low_G,0.96,125.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,73-97,High_D,0.96,54.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,73-97,Low_D,0.96,55.8,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,73-97,High_E,0.96,55.8,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,73-97,Low_E,0.96,55.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,73-97,High_F,0.96,58.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,73-97,Low_F,0.96,65.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,73-97,High_G,0.96,78.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,73-97,Low_G,0.96,98.5,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,98-199,High_D,0.96,49.2,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,98-199,Low_D,0.96,52.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,98-199,High_E,0.96,54.2,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,98-199,Low_E,0.96,55.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,98-199,High_F,0.96,59.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,98-199,Low_F,0.96,67.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,98-199,High_G,0.96,82.8,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,98-199,Low_G,0.96,104.8,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,200,Low_D,0.96,1.49999999999997,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,200,High_E,0.96,2.40000000000001,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,200,Low_E,0.96,2.60000000000002,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,200,High_F,0.96,8.80000000000004,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,200,Low_F,0.96,22.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,200,High_G,0.96,49.5,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,GSHP,200,Low_G,0.96,89.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,High_D,0.96,12.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Air to Water ASHP,200,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,High_D,0.96,60.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,Low_D,0.96,59.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,High_E,0.96,57.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,Low_E,0.96,56,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,High_F,0.96,57.2,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,Low_F,0.96,61.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,High_G,0.96,72.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,0-72,Low_G,0.96,88.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,High_D,0.96,45.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,Low_D,0.96,43.5,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,High_E,0.96,40.5,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,Low_E,0.96,37.5,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,High_F,0.96,36.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,Low_F,0.96,38.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,High_G,0.96,45.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,73-97,Low_G,0.96,58.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,High_D,0.96,37.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,Low_D,0.96,37.2,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,High_E,0.96,35.8,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,Low_E,0.96,33.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,High_F,0.96,33.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,Low_F,0.96,36,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,High_G,0.96,43.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,98-199,Low_G,0.96,57.5,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Biomass Boiler,200,Low_G,0.96,3.40000000000007,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,High_D,0.96,3.30000000000001,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,Low_D,0.96,20.5,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,High_E,0.96,41.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,Low_E,0.96,61.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,High_F,0.96,92.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,Low_F,0.96,131.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,High_G,0.96,189.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,0-72,Low_G,0.96,260.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,High_D,0.96,9.29999999999999,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,Low_D,0.96,27.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,High_E,0.96,49.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,Low_E,0.96,69.5,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,High_F,0.96,101.2,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,Low_F,0.96,139.8,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,High_G,0.96,198.2,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,73-97,Low_G,0.96,269.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,High_D,0.96,31,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,Low_D,0.96,54.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,High_E,0.96,80.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,Low_E,0.96,105.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,High_F,0.96,142.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,Low_F,0.96,187.8,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,High_G,0.96,254.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,98-199,Low_G,0.96,336.2,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,High_D,0.96,63.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,Low_D,0.96,100.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,High_E,0.96,145.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,Low_E,0.96,187.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,High_F,0.96,253,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,Low_F,0.96,332.2,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,High_G,0.96,452.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,Condensing Gas Boiler,200,Low_G,0.96,598.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,3.30000000000001,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,20.5,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,41.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,61.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,92.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,131.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,189.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,260.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,9.29999999999999,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,27.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,49.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,69.5,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,101.2,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,139.8,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,198.2,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,269.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,31,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,54.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,80.6,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,105.3,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,142.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,187.8,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,254.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,336.2,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,High_D,0.96,63.9,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,100.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,High_E,0.96,145.4,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,187.7,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,High_F,0.96,253,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,332.2,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,High_G,0.96,452.1,N/A +Boiler,B_Upgrade_preHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,598.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_D,0.96,265.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,347.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_E,0.96,448.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,546.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_F,0.96,686.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,844.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1070.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1332.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_D,0.96,245.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,318.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_E,0.96,407.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,493.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_F,0.96,617.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,758.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_G,0.96,960.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1194.9,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_D,0.96,227.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,292.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_E,0.96,371.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,447.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_F,0.96,556.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,681.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_G,0.96,861.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1070.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,High_D,0.96,325.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,Low_D,0.96,415.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,High_E,0.96,548.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,Low_E,0.96,656.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,High_F,0.96,824.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,Low_F,0.96,1011.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,High_G,0.96,1275.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Fuel Cell mCHP,200,Low_G,0.96,1574.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Biomass Boiler,200,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,GSHP,200,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,Air to Water ASHP,200,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_D,0.96,299.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,397.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_E,0.96,516.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,630.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_F,0.96,793.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,978.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1241.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1545.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_D,0.96,322.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,421.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_E,0.96,541.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,654.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_F,0.96,815.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,997.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1256,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1555.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_D,0.96,365.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,472,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_E,0.96,599.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,720.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_F,0.96,892.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1086.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1361.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1679.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,High_D,0.96,688.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,Low_D,0.96,861.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,High_E,0.96,1073.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,Low_E,0.96,1273.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,High_F,0.96,1558,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,Low_F,0.96,1878.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,High_G,0.96,2335.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Fuel Cell mCHP,200,Low_G,0.96,2865,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,0-72,High_D,0.96,208.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,0-72,Low_D,0.96,254,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,0-72,High_E,0.96,309.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,0-72,Low_E,0.96,362.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,0-72,High_F,0.96,439.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,0-72,Low_F,0.96,528.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,0-72,High_G,0.96,656.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,0-72,Low_G,0.96,807.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,73-97,High_D,0.96,221.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,73-97,Low_D,0.96,270.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,73-97,High_E,0.96,329.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,73-97,Low_E,0.96,384.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,73-97,High_F,0.96,463.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,73-97,Low_F,0.96,553.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,73-97,High_G,0.96,682.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,73-97,Low_G,0.96,834.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,98-199,High_D,0.96,251.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,98-199,Low_D,0.96,309.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,98-199,High_E,0.96,378.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,98-199,Low_E,0.96,443.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,98-199,High_F,0.96,535.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,98-199,Low_F,0.96,640.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,98-199,High_G,0.96,791.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,98-199,Low_G,0.96,967.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,200,High_D,0.96,425,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,200,Low_D,0.96,523.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,200,High_E,0.96,643.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,200,Low_E,0.96,754.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,200,High_F,0.96,913.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,200,Low_F,0.96,1094.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,200,High_G,0.96,1355.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,GSHP,200,Low_G,0.96,1660.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,High_D,0.96,169.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,Low_D,0.96,206.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,High_E,0.96,250.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,Low_E,0.96,292.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,High_F,0.96,354.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,Low_F,0.96,426.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,High_G,0.96,531.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,0-72,Low_G,0.96,654.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,High_D,0.96,178.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,Low_D,0.96,217.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,High_E,0.96,264.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,Low_E,0.96,307.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,High_F,0.96,370.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,Low_F,0.96,441.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,High_G,0.96,545.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,73-97,Low_G,0.96,668.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,High_D,0.96,199.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,Low_D,0.96,246.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,High_E,0.96,301.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,Low_E,0.96,352.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,High_F,0.96,426.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,Low_F,0.96,510.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,High_G,0.96,631.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,98-199,Low_G,0.96,774.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,200,High_D,0.96,326.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,200,Low_D,0.96,405.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,200,High_E,0.96,499.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,200,Low_E,0.96,587.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,200,High_F,0.96,712.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,200,Low_F,0.96,856.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,200,High_G,0.96,1064.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Air to Water ASHP,200,Low_G,0.96,1309.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,0-72,High_D,0.96,202.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,0-72,Low_D,0.96,246.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,0-72,High_E,0.96,300.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,0-72,Low_E,0.96,351.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,0-72,High_F,0.96,426.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,0-72,Low_F,0.96,513,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,0-72,High_G,0.96,637.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,0-72,Low_G,0.96,784.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,73-97,High_D,0.96,214.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,73-97,Low_D,0.96,262.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,73-97,High_E,0.96,319.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,73-97,Low_E,0.96,372.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,73-97,High_F,0.96,449.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,73-97,Low_F,0.96,536.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,73-97,High_G,0.96,662.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,73-97,Low_G,0.96,809.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,98-199,High_D,0.96,243.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,98-199,Low_D,0.96,300.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,98-199,High_E,0.96,367,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,98-199,Low_E,0.96,429.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,98-199,High_F,0.96,518.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,98-199,Low_F,0.96,620.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,98-199,High_G,0.96,767.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,98-199,Low_G,0.96,938.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,200,High_D,0.96,410.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,200,Low_D,0.96,506,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,200,High_E,0.96,621.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,200,Low_E,0.96,729,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,200,High_F,0.96,882.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,200,Low_F,0.96,1058.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,200,High_G,0.96,1311.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Biomass Boiler,200,Low_G,0.96,1631.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_D,0.96,122.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,178.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_E,0.96,245.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,310.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_F,0.96,403.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,510.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_G,0.96,664.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,844.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_D,0.96,152.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,212.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_E,0.96,284.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,351.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_F,0.96,448.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,557.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_G,0.96,715,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,898.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_D,0.96,203.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,273.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_E,0.96,357.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,436.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_F,0.96,549.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,677,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_G,0.96,859.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,1072.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,High_D,0.96,427.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,Low_D,0.96,547.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,High_E,0.96,693.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,Low_E,0.96,830.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,High_F,0.96,1025.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,Low_F,0.96,1246.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,High_G,0.96,1564.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,Condensing Gas Boiler,200,Low_G,0.96,1934.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,208.2,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,254,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,309.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,362.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,439.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,528.4,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,656.8,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,807.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,221.1,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,270.8,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,329.4,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,384.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,463.2,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,553.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,682.9,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,834.9,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,251.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,309.8,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,378.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,443.2,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,535.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,640.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,791.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,967.9,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_D,0.96,425,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,523.9,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_E,0.96,643.2,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,754.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_F,0.96,913.4,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,1094.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_G,0.96,1355.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,1660.9,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_D,0.96,258.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,348.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_E,0.96,458.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,564.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_F,0.96,716.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,889,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1135.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1421,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_D,0.96,261.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,349.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_E,0.96,456.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,558.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_F,0.96,705.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,872,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1110.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1386.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_D,0.96,284.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,374.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_E,0.96,482.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,586.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_F,0.96,734.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,902,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1141.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1420,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,High_D,0.96,522.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,Low_D,0.96,662.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,High_E,0.96,835.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,Low_E,0.96,1001.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,High_F,0.96,1240.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,Low_F,0.96,1513.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,High_G,0.96,1903.9,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Fuel Cell mCHP,200,Low_G,0.96,2359.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,0-72,High_D,0.96,30.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,0-72,Low_D,0.96,46,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,0-72,High_E,0.96,65,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,0-72,Low_E,0.96,83.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,0-72,High_F,0.96,112.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,0-72,Low_F,0.96,148.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,0-72,High_G,0.96,202.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,0-72,Low_G,0.96,268.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,73-97,High_D,0.96,32.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,73-97,Low_D,0.96,49.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,73-97,High_E,0.96,69.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,73-97,Low_E,0.96,88,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,73-97,High_F,0.96,117.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,73-97,Low_F,0.96,152.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,73-97,High_G,0.96,207,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,73-97,Low_G,0.96,273.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,98-199,High_D,0.96,50.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,98-199,Low_D,0.96,71.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,98-199,High_E,0.96,95.9,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,98-199,Low_E,0.96,118.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,98-199,High_F,0.96,153.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,98-199,Low_F,0.96,194.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,98-199,High_G,0.96,256.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,98-199,Low_G,0.96,332.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,200,High_D,0.96,78.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,200,Low_D,0.96,112,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,200,High_E,0.96,153,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,200,Low_E,0.96,191.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,200,High_F,0.96,251.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,200,Low_F,0.96,324.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,200,High_G,0.96,435.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,GSHP,200,Low_G,0.96,571.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,High_G,0.96,15.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,0-72,Low_G,0.96,42.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,High_G,0.96,4.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,73-97,Low_G,0.96,28.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,Low_F,0.96,2.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,High_G,0.96,22.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,98-199,Low_G,0.96,49.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,200,High_G,0.96,13.9,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Air to Water ASHP,200,Low_G,0.96,63.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,0-72,High_D,0.96,20.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,0-72,Low_D,0.96,34.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,0-72,High_E,0.96,51.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,0-72,Low_E,0.96,67.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,0-72,High_F,0.96,93,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,0-72,Low_F,0.96,125,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,0-72,High_G,0.96,173.9,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,0-72,Low_G,0.96,233.9,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,73-97,High_D,0.96,22.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,73-97,Low_D,0.96,37.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,73-97,High_E,0.96,54.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,73-97,Low_E,0.96,70.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,73-97,High_F,0.96,95.9,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,73-97,Low_F,0.96,127.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,73-97,High_G,0.96,176.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,73-97,Low_G,0.96,236.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,98-199,High_D,0.96,38.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,98-199,Low_D,0.96,56.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,98-199,High_E,0.96,78.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,98-199,Low_E,0.96,98.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,98-199,High_F,0.96,128.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,98-199,Low_F,0.96,165.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,98-199,High_G,0.96,221.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,98-199,Low_G,0.96,289.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,200,High_D,0.96,55.9,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,200,Low_D,0.96,85.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,200,High_E,0.96,121,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,200,Low_E,0.96,154.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,200,High_F,0.96,207.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,200,Low_F,0.96,272.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,200,High_G,0.96,371.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Biomass Boiler,200,Low_G,0.96,494.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,0.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_E,0.96,36.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,71.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_F,0.96,124.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,185.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_G,0.96,276.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,383.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,23.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_E,0.96,61.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,98.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_F,0.96,152.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,216.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_G,0.96,309.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,420.9,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_D,0.96,32.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,71.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_E,0.96,117.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,160.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_F,0.96,224.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,297.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_G,0.96,405.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,532.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,High_D,0.96,132.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,Low_D,0.96,196.9,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,High_E,0.96,276.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,Low_E,0.96,351.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,High_F,0.96,463,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,Low_F,0.96,593.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,High_G,0.96,785.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,Condensing Gas Boiler,200,Low_G,0.96,1013.1,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,30.1,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,46,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,65,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,83.5,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,112.6,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,148.2,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,202.2,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,268.1,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,32.8,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,49.6,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,69.3,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,88,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,117.1,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,152.8,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,207,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,273.3,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,50.3,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,71.5,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,95.9,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,118.7,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,153.2,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,194.6,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,256.8,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,332.2,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_D,0.96,78.2,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,112,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_E,0.96,153,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,191.6,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_F,0.96,251.7,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,324.8,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_G,0.96,435.7,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,571.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,0-72,High_D,0.96,370.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,480.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,0-72,High_E,0.96,615.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,745.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,0-72,High_F,0.96,932.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,1142.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1439.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1781.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,73-97,High_D,0.96,406.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,519.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,73-97,High_E,0.96,658.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,792.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,73-97,High_F,0.96,983.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,1198,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1502.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1852.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,98-199,High_D,0.96,474.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,599.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,98-199,High_E,0.96,753.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,901.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,98-199,High_F,0.96,1111.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1348.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1684.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,2071.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,200,High_D,0.96,910.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,200,Low_D,0.96,1117.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,200,High_E,0.96,1376.7,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,200,Low_E,0.96,1626,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,200,High_F,0.96,1980.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,200,Low_F,0.96,2381.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,200,High_G,0.96,2949.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Fuel Cell mCHP,200,Low_G,0.96,3604.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,0-72,High_D,0.96,341.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,0-72,Low_D,0.96,417,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,0-72,High_E,0.96,510.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,0-72,Low_E,0.96,601,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,0-72,High_F,0.96,730.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,0-72,Low_F,0.96,878.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,0-72,High_G,0.96,1087.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,0-72,Low_G,0.96,1328.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,73-97,High_D,0.96,369.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,73-97,Low_D,0.96,450.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,73-97,High_E,0.96,549.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,73-97,Low_E,0.96,644.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,73-97,High_F,0.96,781.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,73-97,Low_F,0.96,936.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,73-97,High_G,0.96,1156.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,73-97,Low_G,0.96,1410.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,98-199,High_D,0.96,428.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,98-199,Low_D,0.96,521.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,98-199,High_E,0.96,636.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,98-199,Low_E,0.96,747.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,98-199,High_F,0.96,905.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,98-199,Low_F,0.96,1084.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,98-199,High_G,0.96,1339.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,98-199,Low_G,0.96,1633,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,200,High_D,0.96,766.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,200,Low_D,0.96,925.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,200,High_E,0.96,1123.7,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,200,Low_E,0.96,1314.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,200,High_F,0.96,1587.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,200,Low_F,0.96,1896.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,200,High_G,0.96,2336.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,GSHP,200,Low_G,0.96,2844.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,0-72,High_D,0.96,314,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,0-72,Low_D,0.96,383.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,0-72,High_E,0.96,469.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,0-72,Low_E,0.96,553.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,0-72,High_F,0.96,673.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,0-72,Low_F,0.96,809.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,0-72,High_G,0.96,1002.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,0-72,Low_G,0.96,1226.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,73-97,High_D,0.96,339.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,73-97,Low_D,0.96,413.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,73-97,High_E,0.96,504.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,73-97,Low_E,0.96,592.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,73-97,High_F,0.96,718.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,73-97,Low_F,0.96,861.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,73-97,High_G,0.96,1064.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,73-97,Low_G,0.96,1299.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,98-199,High_D,0.96,392.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,98-199,Low_D,0.96,478.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,98-199,High_E,0.96,583.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,98-199,Low_E,0.96,686,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,98-199,High_F,0.96,832.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,98-199,Low_F,0.96,997.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,98-199,High_G,0.96,1232.7,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,98-199,Low_G,0.96,1504.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,200,High_D,0.96,700.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,200,Low_D,0.96,846.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,200,High_E,0.96,1027.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,200,Low_E,0.96,1203.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,200,High_F,0.96,1454.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,200,Low_F,0.96,1738.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,200,High_G,0.96,2143.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Air to Water ASHP,200,Low_G,0.96,2613.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,0-72,High_D,0.96,337.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,0-72,Low_D,0.96,411.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,0-72,High_E,0.96,504.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,0-72,Low_E,0.96,593.7,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,0-72,High_F,0.96,722.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,0-72,Low_F,0.96,867.7,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,0-72,High_G,0.96,1074.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,0-72,Low_G,0.96,1313.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,73-97,High_D,0.96,364.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,73-97,Low_D,0.96,444.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,73-97,High_E,0.96,542.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,73-97,Low_E,0.96,636.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,73-97,High_F,0.96,772,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,73-97,Low_F,0.96,925,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,73-97,High_G,0.96,1142.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,73-97,Low_G,0.96,1393.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,98-199,High_D,0.96,422.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,98-199,Low_D,0.96,515,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,98-199,High_E,0.96,628.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,98-199,Low_E,0.96,737.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,98-199,High_F,0.96,894.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,98-199,Low_F,0.96,1071.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,98-199,High_G,0.96,1323.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,98-199,Low_G,0.96,1613.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,200,High_D,0.96,756.7,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,200,Low_D,0.96,913.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,200,High_E,0.96,1109.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,200,Low_E,0.96,1297.7,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,200,High_F,0.96,1567.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,200,Low_F,0.96,1872.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,200,High_G,0.96,2307,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Biomass Boiler,200,Low_G,0.96,2839.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,0-72,High_D,0.96,244.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,326.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,0-72,High_E,0.96,427.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,525.7,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,0-72,High_F,0.96,666.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,825.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,0-72,High_G,0.96,1051.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,1311.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,73-97,High_D,0.96,286.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,374.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,73-97,High_E,0.96,482,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,585.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,73-97,High_F,0.96,734.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,901.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,73-97,High_G,0.96,1139.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,1414.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,98-199,High_D,0.96,362.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,464.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,98-199,High_E,0.96,588.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,709.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,98-199,High_F,0.96,880.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,1074.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,98-199,High_G,0.96,1350.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,1667.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,200,High_D,0.96,734.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,200,Low_D,0.96,907.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,200,High_E,0.96,1122.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,200,Low_E,0.96,1330.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,200,High_F,0.96,1627.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,200,Low_F,0.96,1962.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,200,High_G,0.96,2439.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,Condensing Gas Boiler,200,Low_G,0.96,2990.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,341.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,417,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,510.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,601,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,730.9,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,878.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,1087.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,1328.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,369.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,450.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,549.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,644.8,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,781.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,936.3,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,1156.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,1410.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,428.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,521.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,636.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,747.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,905.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,1084.8,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,1339.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,1633,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,200,High_D,0.96,766.8,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,925.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,200,High_E,0.96,1123.7,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,1314.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,200,High_F,0.96,1587.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,1896.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,200,High_G,0.96,2336.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,2844.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_D,0.96,272.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,357.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_E,0.96,460.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,560.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_F,0.96,703.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,865.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1097.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1365.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_D,0.96,265,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,343.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_E,0.96,437.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,528.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_F,0.96,658,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,805.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1017,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1262.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_D,0.96,263.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,338.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_E,0.96,427.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,513.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_F,0.96,636.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,776.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,High_G,0.96,978.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1212.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,High_D,0.96,431,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,Low_D,0.96,539.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,High_E,0.96,674.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,Low_E,0.96,804.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,High_F,0.96,992.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,Low_F,0.96,1208,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,High_G,0.96,1519.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Fuel Cell mCHP,200,Low_G,0.96,1884.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,0-72,High_D,0.96,34.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,0-72,Low_D,0.96,22.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,0-72,High_E,0.96,6.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,73-97,High_D,0.96,10.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,GSHP,200,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,0-72,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,73-97,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,98-199,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,Low_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,High_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Air to Water ASHP,200,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,High_F,0.96,10.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,28.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,High_G,0.96,56.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,93.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,12.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,High_G,0.96,35.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,66.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,High_F,0.96,16.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,33.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,High_G,0.96,62.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,100.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,High_F,0.96,16.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,Low_F,0.96,47.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,High_G,0.96,99.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,Condensing Gas Boiler,200,Low_G,0.96,167.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,34.3,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,22.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,6.9,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,10.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_D,0.96,302.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,402.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_E,0.96,521.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,633.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_F,0.96,793.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,972.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1228.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1523.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_D,0.96,327.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,431,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_E,0.96,553.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,668.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_F,0.96,829.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,1010.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1267.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1564,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_D,0.96,377.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,488.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_E,0.96,620.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,743.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_F,0.96,917.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1111.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1387.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1705.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,High_D,0.96,726.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,Low_D,0.96,910.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,High_E,0.96,1131.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,Low_E,0.96,1335.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,High_F,0.96,1621.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,Low_F,0.96,1940.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,High_G,0.96,2392.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Fuel Cell mCHP,200,Low_G,0.96,2915.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,0-72,High_D,0.96,244.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,0-72,Low_D,0.96,299,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,0-72,High_E,0.96,363.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,0-72,Low_E,0.96,424,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,0-72,High_F,0.96,510.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,0-72,Low_F,0.96,608.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,0-72,High_G,0.96,748.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,0-72,Low_G,0.96,912.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,73-97,High_D,0.96,258.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,73-97,Low_D,0.96,319.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,73-97,High_E,0.96,389.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,73-97,Low_E,0.96,454.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,73-97,High_F,0.96,546,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,73-97,Low_F,0.96,649,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,73-97,High_G,0.96,795.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,73-97,Low_G,0.96,967.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,98-199,High_D,0.96,295.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,98-199,Low_D,0.96,365.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,98-199,High_E,0.96,447.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,98-199,Low_E,0.96,522.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,98-199,High_F,0.96,628.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,98-199,Low_F,0.96,747.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,98-199,High_G,0.96,916.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,98-199,Low_G,0.96,1114.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,200,High_D,0.96,517.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,200,Low_D,0.96,638.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,200,High_E,0.96,780,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,200,Low_E,0.96,908.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,200,High_F,0.96,1087,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,200,Low_F,0.96,1287.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,200,High_G,0.96,1572.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,GSHP,200,Low_G,0.96,1904.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,High_D,0.96,211.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,Low_D,0.96,258.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,High_E,0.96,313.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,Low_E,0.96,364.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,High_F,0.96,438,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,Low_F,0.96,521.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,High_G,0.96,641.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,0-72,Low_G,0.96,783,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,High_D,0.96,222.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,Low_D,0.96,274.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,High_E,0.96,334.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,Low_E,0.96,389.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,High_F,0.96,466.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,Low_F,0.96,554,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,High_G,0.96,679,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,73-97,Low_G,0.96,825.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,High_D,0.96,251.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,Low_D,0.96,311.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,High_E,0.96,381.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,Low_E,0.96,445.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,High_F,0.96,535.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,Low_F,0.96,636.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,High_G,0.96,780.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,98-199,Low_G,0.96,949.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,High_D,0.96,433.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,Low_D,0.96,537.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,High_E,0.96,657.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,Low_E,0.96,765.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,High_F,0.96,915.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,Low_F,0.96,1084.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,High_G,0.96,1324.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Air to Water ASHP,200,Low_G,0.96,1605.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,High_D,0.96,239.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,Low_D,0.96,292.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,High_E,0.96,356,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,Low_E,0.96,415,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,High_F,0.96,499.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,Low_F,0.96,595,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,High_G,0.96,732.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,0-72,Low_G,0.96,893.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,High_D,0.96,253.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,Low_D,0.96,312.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,High_E,0.96,381.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,Low_E,0.96,444.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,High_F,0.96,534,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,Low_F,0.96,634.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,High_G,0.96,778.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,73-97,Low_G,0.96,945.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,High_D,0.96,288.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,Low_D,0.96,357.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,High_E,0.96,437.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,Low_E,0.96,511,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,High_F,0.96,614.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,Low_F,0.96,730.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,High_G,0.96,896.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,98-199,Low_G,0.96,1089.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,200,High_D,0.96,504.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,200,Low_D,0.96,622.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,200,High_E,0.96,761.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,200,Low_E,0.96,886.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,200,High_F,0.96,1061,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,200,Low_F,0.96,1256.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,200,High_G,0.96,1534.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Biomass Boiler,200,Low_G,0.96,1879.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_D,0.96,152.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,215.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_E,0.96,290.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,361,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_F,0.96,461.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,574.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,High_G,0.96,736.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,925.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_D,0.96,183.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,252.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_E,0.96,334.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,409.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_F,0.96,516.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,635.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,High_G,0.96,806.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,1004.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_D,0.96,239,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,319.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_E,0.96,414.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,501.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_F,0.96,624.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,763.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,High_G,0.96,959.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,1188,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,High_D,0.96,504,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,Low_D,0.96,643,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,High_E,0.96,807.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,Low_E,0.96,957.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,High_F,0.96,1167.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,Low_F,0.96,1401.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,High_G,0.96,1734.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,Condensing Gas Boiler,200,Low_G,0.96,2122.4,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,244.1,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,299,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,363.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,424,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,510.2,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,608.2,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,748.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,912.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,258.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,319.4,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,389.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,454.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,546,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,649,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,795.8,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,967.2,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,295.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,365.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,447.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,522.7,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,628.4,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,747.4,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,916.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,1114.4,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_D,0.96,517.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,638.2,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_E,0.96,780,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,908.1,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_F,0.96,1087,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,1287.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,High_G,0.96,1572.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,1904.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_D,0.96,262.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,356.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_E,0.96,469.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,579.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_F,0.96,737.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,916.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1171.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1467.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_D,0.96,271.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,363.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_E,0.96,474.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,581.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_F,0.96,734.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,907.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1155.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1443.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_D,0.96,302.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,397.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_E,0.96,512.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,621.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_F,0.96,777.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,954.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1206.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1498.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,High_D,0.96,570.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,Low_D,0.96,721.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,High_E,0.96,907.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,Low_E,0.96,1084,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,High_F,0.96,1337.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,Low_F,0.96,1625.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,High_G,0.96,2038.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Fuel Cell mCHP,200,Low_G,0.96,2519.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,0-72,High_D,0.96,74.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,0-72,Low_D,0.96,101.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,0-72,High_E,0.96,134.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,0-72,Low_E,0.96,166.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,0-72,High_F,0.96,214.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,0-72,Low_F,0.96,271.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,0-72,High_G,0.96,356.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,0-72,Low_G,0.96,456.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,73-97,High_D,0.96,81.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,73-97,Low_D,0.96,109.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,73-97,High_E,0.96,143.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,73-97,Low_E,0.96,175.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,73-97,High_F,0.96,224.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,73-97,Low_F,0.96,281.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,73-97,High_G,0.96,365.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,73-97,Low_G,0.96,466.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,98-199,High_D,0.96,105.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,98-199,Low_D,0.96,140.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,98-199,High_E,0.96,180.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,98-199,Low_E,0.96,217.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,98-199,High_F,0.96,273,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,98-199,Low_F,0.96,337.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,98-199,High_G,0.96,431.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,98-199,Low_G,0.96,543.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,200,High_D,0.96,187.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,200,Low_D,0.96,243.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,200,High_E,0.96,311.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,200,Low_E,0.96,375.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,200,High_F,0.96,469.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,200,Low_F,0.96,581.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,200,High_G,0.96,745,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,GSHP,200,Low_G,0.96,941.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,High_D,0.96,18.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,Low_D,0.96,34,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,High_E,0.96,52.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,Low_E,0.96,71,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,High_F,0.96,100.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,Low_F,0.96,135.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,High_G,0.96,190.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,0-72,Low_G,0.96,256.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,High_D,0.96,20.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,Low_D,0.96,36.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,High_E,0.96,54.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,Low_E,0.96,72,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,High_F,0.96,99.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,Low_F,0.96,133.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,High_G,0.96,185.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,73-97,Low_G,0.96,249.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,High_D,0.96,34.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,Low_D,0.96,54.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,High_E,0.96,76.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,Low_E,0.96,97.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,High_F,0.96,128.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,Low_F,0.96,166,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,High_G,0.96,222.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,98-199,Low_G,0.96,291.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,High_D,0.96,56.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,Low_D,0.96,87.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,High_E,0.96,124.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,Low_E,0.96,157.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,High_F,0.96,209.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,Low_F,0.96,272.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,High_G,0.96,370.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Air to Water ASHP,200,Low_G,0.96,490,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,High_D,0.96,65.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,Low_D,0.96,91.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,High_E,0.96,121.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,Low_E,0.96,151.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,High_F,0.96,197.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,Low_F,0.96,251.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,High_G,0.96,331,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,0-72,Low_G,0.96,426.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,High_D,0.96,72,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,Low_D,0.96,98.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,High_E,0.96,130,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,Low_E,0.96,160,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,High_F,0.96,205.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,Low_F,0.96,258.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,High_G,0.96,338.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,73-97,Low_G,0.96,433.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,High_D,0.96,95,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,Low_D,0.96,127.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,High_E,0.96,164.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,Low_E,0.96,199.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,High_F,0.96,251.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,Low_F,0.96,311.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,High_G,0.96,399.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,98-199,Low_G,0.96,505,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,200,High_D,0.96,167.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,200,Low_D,0.96,220.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,200,High_E,0.96,283.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,200,Low_E,0.96,342.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,200,High_F,0.96,430.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,200,Low_F,0.96,534.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,200,High_G,0.96,688.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Biomass Boiler,200,Low_G,0.96,872.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_D,0.96,7.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,46.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_E,0.96,95,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,141.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_F,0.96,210.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,291,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,High_G,0.96,407.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,545.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_D,0.96,31.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,73.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_E,0.96,123.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,171.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_F,0.96,242.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,324.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,High_G,0.96,444.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,585,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_D,0.96,78.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,128.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_E,0.96,187.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,243.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_F,0.96,324.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,417.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,High_G,0.96,551.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,709.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,High_D,0.96,224,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,Low_D,0.96,307.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,High_E,0.96,409.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,Low_E,0.96,505.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,High_F,0.96,646.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,Low_F,0.96,808.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,High_G,0.96,1044.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,Condensing Gas Boiler,200,Low_G,0.96,1322.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,74.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,101.3,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,134.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,166.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,214.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,271.8,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,356.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,456.8,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,81.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,109.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,143.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,175.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,224.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,281.3,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,365.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,466.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,105.8,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,140.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,180.3,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,217.9,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,273,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,337.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,431.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,543.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_D,0.96,187.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,243.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_E,0.96,311.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,375.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_F,0.96,469.9,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,581.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,High_G,0.96,745,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,941.3,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,High_D,0.96,296.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,394,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,High_E,0.96,513.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,630.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,High_F,0.96,797.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,985.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1253.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1561.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,High_D,0.96,302.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,397.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,High_E,0.96,514.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,626.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,High_F,0.96,788,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,970.3,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1229.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1528,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,High_D,0.96,325,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,421.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,High_E,0.96,540.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,655.3,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,High_F,0.96,819.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1005.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1269.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1574.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,High_D,0.96,602.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,Low_D,0.96,754.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,High_E,0.96,945.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,Low_E,0.96,1129.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,High_F,0.96,1394.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,Low_F,0.96,1695.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,High_G,0.96,2124.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Fuel Cell mCHP,200,Low_G,0.96,2621.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,0-72,High_D,0.96,149.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,0-72,Low_D,0.96,188.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,0-72,High_E,0.96,237.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,0-72,Low_E,0.96,286.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,0-72,High_F,0.96,358.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,0-72,Low_F,0.96,441,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,0-72,High_G,0.96,559.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,0-72,Low_G,0.96,697.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,73-97,High_D,0.96,161.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,73-97,Low_D,0.96,203.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,73-97,High_E,0.96,254.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,73-97,Low_E,0.96,304.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,73-97,High_F,0.96,378.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,73-97,Low_F,0.96,462.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,73-97,High_G,0.96,584.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,73-97,Low_G,0.96,726.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,98-199,High_D,0.96,192.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,98-199,Low_D,0.96,241.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,98-199,High_E,0.96,301,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,98-199,Low_E,0.96,359.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,98-199,High_F,0.96,444.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,98-199,Low_F,0.96,541.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,98-199,High_G,0.96,681.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,98-199,Low_G,0.96,844.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,200,High_D,0.96,343.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,200,Low_D,0.96,425.3,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,200,High_E,0.96,528.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,200,Low_E,0.96,628.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,200,High_F,0.96,775.3,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,200,Low_F,0.96,944.3,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,200,High_G,0.96,1188,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,GSHP,200,Low_G,0.96,1472.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,High_D,0.96,10.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,Low_D,0.96,20.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,High_E,0.96,34.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,Low_E,0.96,49.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,High_F,0.96,73.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,Low_F,0.96,102.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,High_G,0.96,145.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,0-72,Low_G,0.96,198,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,High_D,0.96,9.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,Low_D,0.96,19.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,High_E,0.96,32.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,Low_E,0.96,46.3,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,High_F,0.96,67.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,Low_F,0.96,94.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,High_G,0.96,135,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,73-97,Low_G,0.96,184.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,High_D,0.96,14.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,Low_D,0.96,27.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,High_E,0.96,42.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,Low_E,0.96,58.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,High_F,0.96,84,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,Low_F,0.96,114.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,High_G,0.96,161.3,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,98-199,Low_G,0.96,217.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,200,High_D,0.96,17.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,200,Low_D,0.96,36.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,200,High_E,0.96,60.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,200,Low_E,0.96,84.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,200,High_F,0.96,125.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,200,Low_F,0.96,175.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,200,High_G,0.96,252.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Air to Water ASHP,200,Low_G,0.96,347.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,0-72,High_D,0.96,63.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,0-72,Low_D,0.96,85.3,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,0-72,High_E,0.96,112.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,0-72,Low_E,0.96,140.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,0-72,High_F,0.96,182.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,0-72,Low_F,0.96,232.3,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,0-72,High_G,0.96,304.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,0-72,Low_G,0.96,390,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,73-97,High_D,0.96,68,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,73-97,Low_D,0.96,90.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,73-97,High_E,0.96,118,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,73-97,Low_E,0.96,145.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,73-97,High_F,0.96,187.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,73-97,Low_F,0.96,236,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,73-97,High_G,0.96,307.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,73-97,Low_G,0.96,392.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,98-199,High_D,0.96,83.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,98-199,Low_D,0.96,109.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,98-199,High_E,0.96,142,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,98-199,Low_E,0.96,174.3,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,98-199,High_F,0.96,222.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,98-199,Low_F,0.96,278.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,98-199,High_G,0.96,361.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,98-199,Low_G,0.96,458.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,200,High_D,0.96,143.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,200,Low_D,0.96,185.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,200,High_E,0.96,240,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,200,Low_E,0.96,293.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,200,High_F,0.96,374.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,200,Low_F,0.96,470.8,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,200,High_G,0.96,611.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Biomass Boiler,200,Low_G,0.96,779.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,High_D,0.96,12.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,50.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,High_E,0.96,97.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,143.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,High_F,0.96,211.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,290.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,High_G,0.96,404.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,536.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,High_D,0.96,35.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,75.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,High_E,0.96,124,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,171.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,High_F,0.96,241.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,322.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,High_G,0.96,438.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,573.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,High_D,0.96,76.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,122.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,High_E,0.96,179.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,234.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,High_F,0.96,315.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,408.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,High_G,0.96,541.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,697.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,High_D,0.96,217.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,Low_D,0.96,294.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,High_E,0.96,392,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,Low_E,0.96,487.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,High_F,0.96,626.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,Low_F,0.96,787.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,High_G,0.96,1019.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,Condensing Gas Boiler,200,Low_G,0.96,1290.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,High_D,0.96,149.1,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,Low_D,0.96,188.5,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,High_E,0.96,237.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,Low_E,0.96,286.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,High_F,0.96,358.5,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,Low_F,0.96,441,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,High_G,0.96,559.7,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,0-72,Low_G,0.96,697.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,High_D,0.96,161.5,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,Low_D,0.96,203.1,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,High_E,0.96,254.6,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,Low_E,0.96,304.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,High_F,0.96,378.4,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,Low_F,0.96,462.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,High_G,0.96,584.6,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,73-97,Low_G,0.96,726.5,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,High_D,0.96,192.6,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,Low_D,0.96,241.2,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,High_E,0.96,301,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,Low_E,0.96,359.4,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,High_F,0.96,444.4,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,Low_F,0.96,541.8,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,High_G,0.96,681.7,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,98-199,Low_G,0.96,844.8,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,High_D,0.96,343.8,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,Low_D,0.96,425.3,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,High_E,0.96,528.2,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,Low_E,0.96,628.6,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,High_F,0.96,775.3,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,Low_F,0.96,944.3,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,High_G,0.96,1188,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,Shared Ground Loop GSHP,200,Low_G,0.96,1472.9,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,0-72,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,0-72,Low_C,0.96,15.6,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,0-72,High_D,0.96,36.7,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,0-72,Low_D,0.96,58.2,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,0-72,High_E,0.96,84.8,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,0-72,Low_E,0.96,111.1,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,0-72,High_F,0.96,150.7,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,0-72,Low_F,0.96,197.6,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,0-72,High_G,0.96,266.7,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,0-72,Low_G,0.96,348.7,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,73-97,High_C,0.96,2.1,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,73-97,Low_C,0.96,18.7,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,73-97,High_D,0.96,40.2,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,73-97,Low_D,0.96,61.6,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,73-97,High_E,0.96,87.7,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,73-97,Low_E,0.96,113.2,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,73-97,High_F,0.96,151.9,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,73-97,Low_F,0.96,198.2,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,73-97,High_G,0.96,266.9,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,73-97,Low_G,0.96,349.2,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,98-199,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,98-199,High_C,0.96,13.9,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,98-199,Low_C,0.96,34.7,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,98-199,High_D,0.96,61.3,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,98-199,Low_D,0.96,87.2,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,98-199,High_E,0.96,118.3,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,98-199,Low_E,0.96,148.2,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,98-199,High_F,0.96,193.2,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,98-199,Low_F,0.96,246.3,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,98-199,High_G,0.96,324.7,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,98-199,Low_G,0.96,418.2,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,200,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,200,Low_B,0.96,1,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,200,High_C,0.96,33.4,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,200,Low_C,0.96,60.3,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,200,High_D,0.96,100,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,200,Low_D,0.96,142.9,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,200,High_E,0.96,217.6,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,200,Low_E,0.96,268.7,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,200,High_F,0.96,357.5,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,200,Low_F,0.96,456.1,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,200,High_G,0.96,596,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS CHP,200,Low_G,0.96,752.7,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,0-72,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,0-72,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,0-72,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,0-72,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,0-72,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,0-72,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,0-72,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,0-72,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,0-72,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,0-72,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,73-97,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,73-97,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,73-97,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,73-97,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,73-97,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,73-97,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,73-97,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,73-97,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,73-97,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,73-97,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,98-199,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,98-199,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,98-199,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,98-199,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,98-199,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,98-199,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,98-199,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,98-199,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,98-199,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,98-199,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,98-199,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,200,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,200,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,200,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,200,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,200,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,200,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,200,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,200,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,200,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,200,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,200,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Gas Boiler,DHS non-CHP,200,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,0-72,High_C,0.96,19,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,0-72,Low_C,0.96,44.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,0-72,High_D,0.96,77.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,0-72,Low_D,0.96,110.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,0-72,High_E,0.96,150.8,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,0-72,Low_E,0.96,189.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,0-72,High_F,0.96,247.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,0-72,Low_F,0.96,314.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,0-72,High_G,0.96,412,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,0-72,Low_G,0.96,527.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,73-97,High_C,0.96,26.9,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,73-97,Low_C,0.96,54.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,73-97,High_D,0.96,89.9,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,73-97,Low_D,0.96,124.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,73-97,High_E,0.96,165,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,73-97,Low_E,0.96,203.9,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,73-97,High_F,0.96,261.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,73-97,Low_F,0.96,328.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,73-97,High_G,0.96,426,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,73-97,Low_G,0.96,542.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,98-199,Low_B,0.96,6.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,98-199,High_C,0.96,45.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,98-199,Low_C,0.96,79.3,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,98-199,High_D,0.96,122.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,98-199,Low_D,0.96,163.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,98-199,High_E,0.96,212,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,98-199,Low_E,0.96,258.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,98-199,High_F,0.96,326.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,98-199,Low_F,0.96,405.8,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,98-199,High_G,0.96,521,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,98-199,Low_G,0.96,657.3,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,200,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,200,Low_B,0.96,36.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,200,High_C,0.96,104.9,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,200,Low_C,0.96,164.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,200,High_D,0.96,239.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,200,Low_D,0.96,307.8,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,200,High_E,0.96,392.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,200,Low_E,0.96,473.9,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,200,High_F,0.96,594.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,200,Low_F,0.96,734.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,200,High_G,0.96,940.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS CHP,200,Low_G,0.96,1184.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,0-72,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,73-97,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,98-199,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,200,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,200,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,200,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,200,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,200,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,200,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,200,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,200,Low_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,200,High_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,200,Low_F,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,200,High_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Gas Boiler,DHS non-CHP,200,Low_G,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,0-72,High_B,0.96,14.1,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,0-72,Low_B,0.96,5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,0-72,High_C,0.96,12.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,0-72,Low_C,0.96,52.9,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,0-72,High_D,0.96,105.2,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,0-72,Low_D,0.96,156.7,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,0-72,High_E,0.96,218.9,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,0-72,Low_E,0.96,278.7,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,0-72,High_F,0.96,365.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,0-72,Low_F,0.96,464.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,0-72,High_G,0.96,607.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,0-72,Low_G,0.96,775,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,73-97,High_C,0.96,28.1,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,73-97,Low_C,0.96,74.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,73-97,High_D,0.96,132.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,73-97,Low_D,0.96,188.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,73-97,High_E,0.96,254.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,73-97,Low_E,0.96,316.7,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,73-97,High_F,0.96,405.7,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,73-97,Low_F,0.96,507.1,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,73-97,High_G,0.96,652.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,73-97,Low_G,0.96,822.7,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,98-199,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,98-199,High_C,0.96,55.8,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,98-199,Low_C,0.96,110.7,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,98-199,High_D,0.96,179.9,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,98-199,Low_D,0.96,245.2,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,98-199,High_E,0.96,322.7,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,98-199,Low_E,0.96,395.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,98-199,High_F,0.96,499.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,98-199,Low_F,0.96,617.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,98-199,High_G,0.96,786.7,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,98-199,Low_G,0.96,984.1,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,200,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,200,Low_B,0.96,43.8,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,200,High_C,0.96,159.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,200,Low_C,0.96,258.7,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,200,High_D,0.96,382.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,200,Low_D,0.96,493.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,200,High_E,0.96,628.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,200,Low_E,0.96,754.2,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,200,High_F,0.96,934,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,200,Low_F,0.96,1138.4,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,200,High_G,0.96,1431.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS non-CHP,200,Low_G,0.96,1774.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,0-72,High_B,0.96,52.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,0-72,Low_B,0.96,43.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,0-72,High_C,0.96,56.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,0-72,Low_C,0.96,111.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,0-72,High_D,0.96,182.9,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,0-72,Low_D,0.96,253,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,0-72,High_E,0.96,338.1,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,0-72,Low_E,0.96,419.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,0-72,High_F,0.96,536.9,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,0-72,Low_F,0.96,670.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,0-72,High_G,0.96,861.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,0-72,Low_G,0.96,1083.8,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,73-97,High_B,0.96,26.7,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,73-97,Low_B,0.96,19.8,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,73-97,High_C,0.96,78.4,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,73-97,Low_C,0.96,140.7,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,73-97,High_D,0.96,219.8,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,73-97,Low_D,0.96,295.7,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,73-97,High_E,0.96,386.4,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,73-97,Low_E,0.96,472.2,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,73-97,High_F,0.96,594.4,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,73-97,Low_F,0.96,732.8,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,73-97,High_G,0.96,930.2,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,73-97,Low_G,0.96,1159.7,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,98-199,Low_B,0.96,32,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,98-199,High_C,0.96,117.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,98-199,Low_C,0.96,191.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,98-199,High_D,0.96,284.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,98-199,Low_D,0.96,373.1,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,98-199,High_E,0.96,478.9,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,98-199,Low_E,0.96,578.9,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,98-199,High_F,0.96,721.1,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,98-199,Low_F,0.96,881.8,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,98-199,High_G,0.96,1110.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,98-199,Low_G,0.96,1376.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,200,High_B,0.96,1.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,200,Low_B,0.96,126.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,200,High_C,0.96,281.3,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,200,Low_C,0.96,414.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,200,High_D,0.96,581.8,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,200,Low_D,0.96,733.5,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,200,High_E,0.96,918.6,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,200,Low_E,0.96,1093,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,200,High_F,0.96,1340.8,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,200,Low_F,0.96,1621.1,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,200,High_G,0.96,2020.8,N/A +DHS,DHS_connection_preHCs,Condensing LPG Boiler,DHS CHP,200,Low_G,0.96,2485.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,High_B,0.96,53.7,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,Low_B,0.96,47.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,High_C,0.96,38.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,Low_C,0.96,75.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,High_D,0.96,137.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,Low_D,0.96,197.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,High_E,0.96,267.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,Low_E,0.96,334,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,High_F,0.96,428.2,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,Low_F,0.96,535.1,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,High_G,0.96,688,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,0-72,Low_G,0.96,866.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,High_B,0.96,20.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,Low_B,0.96,17.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,High_C,0.96,40.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,Low_C,0.96,96.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,High_D,0.96,166.4,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,Low_D,0.96,232.2,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,High_E,0.96,309,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,Low_E,0.96,379.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,High_F,0.96,479.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,Low_F,0.96,592.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,High_G,0.96,752.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,73-97,Low_G,0.96,939.7,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,High_C,0.96,70.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,Low_C,0.96,136.8,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,High_D,0.96,218.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,Low_D,0.96,295.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,High_E,0.96,384.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,Low_E,0.96,466.7,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,High_F,0.96,582.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,Low_F,0.96,712.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,High_G,0.96,897.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,98-199,Low_G,0.96,1112.8,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,200,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,200,Low_B,0.96,51,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,200,High_C,0.96,195.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,200,Low_C,0.96,316.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,200,High_D,0.96,465.8,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,200,Low_D,0.96,597,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,200,High_E,0.96,751.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,200,Low_E,0.96,892.7,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,200,High_F,0.96,1089.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,200,Low_F,0.96,1309.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,200,High_G,0.96,1622,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS non-CHP,200,Low_G,0.96,1986.2,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,0-72,High_B,0.96,109.2,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,0-72,Low_B,0.96,103.1,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,0-72,High_C,0.96,94.2,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,0-72,Low_C,0.96,141,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,0-72,High_D,0.96,219.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,0-72,Low_D,0.96,294.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,0-72,High_E,0.96,384.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,0-72,Low_E,0.96,469.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,0-72,High_F,0.96,589.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,0-72,Low_F,0.96,726,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,0-72,High_G,0.96,919.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,0-72,Low_G,0.96,1145.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,73-97,High_B,0.96,71.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,73-97,Low_B,0.96,67.8,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,73-97,High_C,0.96,97.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,73-97,Low_C,0.96,167.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,73-97,High_D,0.96,254.8,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,73-97,Low_D,0.96,337.7,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,73-97,High_E,0.96,435.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,73-97,Low_E,0.96,526.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,73-97,High_F,0.96,654.8,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,73-97,Low_F,0.96,798.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,73-97,High_G,0.96,1003.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,73-97,Low_G,0.96,1241,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,98-199,High_B,0.96,34,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,98-199,Low_B,0.96,39.7,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,98-199,High_C,0.96,136,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,98-199,Low_C,0.96,218.1,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,98-199,High_D,0.96,320.8,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,98-199,Low_D,0.96,416.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,98-199,High_E,0.96,530.2,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,98-199,Low_E,0.96,635.7,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,98-199,High_F,0.96,783.9,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,98-199,Low_F,0.96,950.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,98-199,High_G,0.96,1186.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,98-199,Low_G,0.96,1459.8,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,200,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,200,Low_B,0.96,134.3,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,200,High_C,0.96,311.7,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,200,Low_C,0.96,462.4,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,200,High_D,0.96,648.5,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,200,Low_D,0.96,814.2,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,200,High_E,0.96,1012,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,200,Low_E,0.96,1194.1,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,200,High_F,0.96,1448.6,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,200,Low_F,0.96,1733.4,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,200,High_G,0.96,2136.8,N/A +DHS,DHS_connection_preHCs,Non Condensing LPG Boiler,DHS CHP,200,Low_G,0.96,2604.8,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,0-72,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,0-72,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,0-72,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,0-72,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,0-72,High_E,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,0-72,Low_E,0.96,23,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,0-72,High_F,0.96,65.5,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,0-72,Low_F,0.96,116.1,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,0-72,High_G,0.96,191.1,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,0-72,Low_G,0.96,280.9,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,73-97,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,73-97,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,73-97,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,73-97,Low_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,73-97,High_E,0.96,16,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,73-97,Low_E,0.96,45,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,73-97,High_F,0.96,88.6,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,73-97,Low_F,0.96,140.4,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,73-97,High_G,0.96,217.3,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,73-97,Low_G,0.96,309.5,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,98-199,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,98-199,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,98-199,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,98-199,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,98-199,Low_D,0.96,27.5,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,98-199,High_E,0.96,64.3,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,98-199,Low_E,0.96,98.9,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,98-199,High_F,0.96,150.1,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,98-199,Low_F,0.96,210.1,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,98-199,High_G,0.96,298.4,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,98-199,Low_G,0.96,403.6,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,200,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,200,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,200,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,200,Low_C,0.96,8.5,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,200,High_D,0.96,65.5,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,200,Low_D,0.96,117,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,200,High_E,0.96,180,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,200,Low_E,0.96,239.8,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,200,High_F,0.96,329.5,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,200,Low_F,0.96,435.8,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,200,High_G,0.96,593.2,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS non-CHP,200,Low_G,0.96,781.9,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,0-72,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,0-72,Low_C,0.96,17.6,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,0-72,High_D,0.96,68.7,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,0-72,Low_D,0.96,119.3,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,0-72,High_E,0.96,180.7,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,0-72,Low_E,0.96,239.9,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,0-72,High_F,0.96,326.3,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,0-72,Low_F,0.96,425.7,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,0-72,High_G,0.96,569.4,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,0-72,Low_G,0.96,737.7,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,73-97,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,73-97,Low_C,0.96,42.7,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,73-97,High_D,0.96,98.6,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,73-97,Low_D,0.96,153,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,73-97,High_E,0.96,218.6,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,73-97,Low_E,0.96,281.3,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,73-97,High_F,0.96,372.3,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,73-97,Low_F,0.96,477,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,73-97,High_G,0.96,628,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,73-97,Low_G,0.96,805.1,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,98-199,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,98-199,High_C,0.96,37.8,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,98-199,Low_C,0.96,91,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,98-199,High_D,0.96,158.5,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,98-199,Low_D,0.96,223,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,98-199,High_E,0.96,300.2,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,98-199,Low_E,0.96,373.7,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,98-199,High_F,0.96,479.4,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,98-199,Low_F,0.96,600.2,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,98-199,High_G,0.96,773.8,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,98-199,Low_G,0.96,976.7,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,200,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,200,Low_B,0.96,41.4,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,200,High_C,0.96,149.8,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,200,Low_C,0.96,243.9,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,200,High_D,0.96,363.2,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,200,Low_D,0.96,472.5,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,200,High_E,0.96,607.6,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,200,Low_E,0.96,736.6,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,200,High_F,0.96,923.5,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,200,Low_F,0.96,1138.2,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,200,High_G,0.96,1447.7,N/A +DHS,DHS_connection_preHCs,Condensing Oil Boiler,DHS CHP,200,Low_G,0.96,1810.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,Low_D,0.96,16.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,High_E,0.96,57.8,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,Low_E,0.96,98.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,High_F,0.96,158.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,Low_F,0.96,229.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,High_G,0.96,332.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,0-72,Low_G,0.96,454.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,High_D,0.96,3.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,Low_D,0.96,39.9,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,High_E,0.96,83.3,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,Low_E,0.96,124.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,High_F,0.96,186,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,Low_F,0.96,257.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,High_G,0.96,362,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,73-97,Low_G,0.96,486,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,Low_C,0.96,0.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,High_D,0.96,46.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,Low_D,0.96,89.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,High_E,0.96,140.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,Low_E,0.96,188.8,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,High_F,0.96,258.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,Low_F,0.96,339.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,High_G,0.96,456.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,98-199,Low_G,0.96,595.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,200,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,200,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,200,High_C,0.96,20.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,200,Low_C,0.96,84.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,200,High_D,0.96,164.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,200,Low_D,0.96,236.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,200,High_E,0.96,324.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,200,Low_E,0.96,406.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,200,High_F,0.96,527.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,200,Low_F,0.96,668.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,200,High_G,0.96,873.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS non-CHP,200,Low_G,0.96,1117,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,0-72,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,0-72,Low_C,0.96,36.3,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,0-72,High_D,0.96,94.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,0-72,Low_D,0.96,152.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,0-72,High_E,0.96,222.9,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,0-72,Low_E,0.96,291.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,0-72,High_F,0.96,390.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,0-72,Low_F,0.96,504.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,0-72,High_G,0.96,668.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,0-72,Low_G,0.96,860.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,73-97,High_C,0.96,13.9,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,73-97,Low_C,0.96,63.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,73-97,High_D,0.96,126.9,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,73-97,Low_D,0.96,188.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,73-97,High_E,0.96,263.3,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,73-97,Low_E,0.96,334.8,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,73-97,High_F,0.96,438.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,73-97,Low_F,0.96,556.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,73-97,High_G,0.96,727.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,73-97,Low_G,0.96,926.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,98-199,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,98-199,High_C,0.96,53.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,98-199,Low_C,0.96,114.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,98-199,High_D,0.96,190.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,98-199,Low_D,0.96,263.3,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,98-199,High_E,0.96,350.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,98-199,Low_E,0.96,433,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,98-199,High_F,0.96,551.4,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,98-199,Low_F,0.96,686.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,98-199,High_G,0.96,879.3,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,98-199,Low_G,0.96,1104.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,200,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,200,Low_B,0.96,62.7,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,200,High_C,0.96,186.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,200,Low_C,0.96,293.8,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,200,High_D,0.96,429.2,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,200,Low_D,0.96,552.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,200,High_E,0.96,704.3,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,200,Low_E,0.96,848.3,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,200,High_F,0.96,1055.6,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,200,Low_F,0.96,1292.5,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,200,High_G,0.96,1633.1,N/A +DHS,DHS_connection_preHCs,Non Condensing Oil Boiler,DHS CHP,200,Low_G,0.96,2031.3,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,0-72,High_B,0.96,201.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,0-72,Low_B,0.96,194.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,0-72,High_C,0.96,185.7,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,0-72,Low_C,0.96,178.8,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,0-72,High_D,0.96,231.7,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,0-72,Low_D,0.96,311,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,0-72,High_E,0.96,408.8,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,0-72,Low_E,0.96,503.9,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,0-72,High_F,0.96,640,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,0-72,Low_F,0.96,794,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,0-72,High_G,0.96,1012.7,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,0-72,Low_G,0.96,1265,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,73-97,High_B,0.96,174,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,73-97,Low_B,0.96,166.8,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,73-97,High_C,0.96,158,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,73-97,Low_C,0.96,186.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,73-97,High_D,0.96,273,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,73-97,Low_D,0.96,357.8,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,73-97,High_E,0.96,461.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,73-97,Low_E,0.96,562.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,73-97,High_F,0.96,705.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,73-97,Low_F,0.96,867.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,73-97,High_G,0.96,1097.8,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,73-97,Low_G,0.96,1363.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,98-199,High_B,0.96,142.7,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,98-199,Low_B,0.96,134.7,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,98-199,High_C,0.96,166.7,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,98-199,Low_C,0.96,245.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,98-199,High_D,0.96,346.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,98-199,Low_D,0.96,444.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,98-199,High_E,0.96,564.9,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,98-199,Low_E,0.96,681.3,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,98-199,High_F,0.96,847.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,98-199,Low_F,0.96,1035.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,98-199,High_G,0.96,1301.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,98-199,Low_G,0.96,1608.9,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,200,High_B,0.96,100,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,200,Low_B,0.96,223.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,200,High_C,0.96,383.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,200,Low_C,0.96,524.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,200,High_D,0.96,704.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,200,Low_D,0.96,871,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,200,High_E,0.96,1079.3,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,200,Low_E,0.96,1279.9,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,200,High_F,0.96,1566.3,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,200,Low_F,0.96,1890.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,200,High_G,0.96,2351.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS non-CHP,200,Low_G,0.96,2884.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,0-72,High_B,0.96,248.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,0-72,Low_B,0.96,241.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,0-72,High_C,0.96,232.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,0-72,Low_C,0.96,225.7,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,0-72,High_D,0.96,287.3,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,0-72,Low_D,0.96,378.8,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,0-72,High_E,0.96,491.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,0-72,Low_E,0.96,600.9,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,0-72,High_F,0.96,757,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,0-72,Low_F,0.96,933.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,0-72,High_G,0.96,1183.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,0-72,Low_G,0.96,1471.9,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,73-97,High_B,0.96,216.7,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,73-97,Low_B,0.96,209.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,73-97,High_C,0.96,200.7,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,73-97,Low_C,0.96,234.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,73-97,High_D,0.96,334.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,73-97,Low_D,0.96,432.3,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,73-97,High_E,0.96,552.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,73-97,Low_E,0.96,668.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,73-97,High_F,0.96,833.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,73-97,Low_F,0.96,1019.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,73-97,High_G,0.96,1283.8,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,73-97,Low_G,0.96,1588.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,98-199,High_B,0.96,181.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,98-199,Low_B,0.96,173.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,98-199,High_C,0.96,211.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,98-199,Low_C,0.96,301.8,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,98-199,High_D,0.96,418.9,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,98-199,Low_D,0.96,532.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,98-199,High_E,0.96,671,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,98-199,Low_E,0.96,805.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,98-199,High_F,0.96,996.3,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,98-199,Low_F,0.96,1211.9,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,98-199,High_G,0.96,1517.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,98-199,Low_G,0.96,1869.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,200,High_B,0.96,138.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,200,Low_B,0.96,281.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,200,High_C,0.96,467.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,200,Low_C,0.96,630.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,200,High_D,0.96,838.6,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,200,Low_D,0.96,1032,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,200,High_E,0.96,1273.2,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,200,Low_E,0.96,1505.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,200,High_F,0.96,1836.5,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,200,Low_F,0.96,2210.4,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,200,High_G,0.96,2741.1,N/A +DHS,DHS_connection_preHCs,Electric Boiler,DHS CHP,200,Low_G,0.96,3353.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,0-72,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,0-72,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,0-72,High_D,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,0-72,Low_D,0.96,16.1,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,0-72,High_E,0.96,55.8,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,0-72,Low_E,0.96,95.5,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,0-72,High_F,0.96,154,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,0-72,Low_F,0.96,222,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,0-72,High_G,0.96,320.2,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,0-72,Low_G,0.96,435,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,73-97,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,73-97,Low_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,73-97,High_D,0.96,4.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,73-97,Low_D,0.96,38,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,73-97,High_E,0.96,79,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,73-97,Low_E,0.96,119.2,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,73-97,High_F,0.96,178.6,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,73-97,Low_F,0.96,247.3,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,73-97,High_G,0.96,346.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,73-97,Low_G,0.96,463.5,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,98-199,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,98-199,High_C,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,98-199,Low_C,0.96,1.1,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,98-199,High_D,0.96,40.5,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,98-199,Low_D,0.96,79.2,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,98-199,High_E,0.96,127,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,98-199,Low_E,0.96,173.8,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,98-199,High_F,0.96,242.5,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,98-199,Low_F,0.96,321.8,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,98-199,High_G,0.96,436.3,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,98-199,Low_G,0.96,570.2,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,200,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,200,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,200,High_C,0.96,29.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,200,Low_C,0.96,82.8,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,200,High_D,0.96,151.3,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,200,Low_D,0.96,215.6,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,200,High_E,0.96,297,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,200,Low_E,0.96,376.8,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,200,High_F,0.96,494.4,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,200,Low_F,0.96,631.1,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,200,High_G,0.96,829.4,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS non-CHP,200,Low_G,0.96,1062.4,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,0-72,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,0-72,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,0-72,High_C,0.96,8.3,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,0-72,Low_C,0.96,52.1,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,0-72,High_D,0.96,109.7,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,0-72,Low_D,0.96,167.5,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,0-72,High_E,0.96,239.3,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,0-72,Low_E,0.96,309.8,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,0-72,High_F,0.96,411.7,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,0-72,Low_F,0.96,528,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,0-72,High_G,0.96,694,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,0-72,Low_G,0.96,886.3,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,73-97,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,73-97,Low_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,73-97,High_C,0.96,31.6,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,73-97,Low_C,0.96,79.6,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,73-97,High_D,0.96,142,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,73-97,Low_D,0.96,203.5,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,73-97,High_E,0.96,279.2,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,73-97,Low_E,0.96,352.8,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,73-97,High_F,0.96,458.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,73-97,Low_F,0.96,579.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,73-97,High_G,0.96,752.8,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,73-97,Low_G,0.96,953.2,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,98-199,High_B,0.96,0,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,98-199,Low_B,0.96,6.4,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,98-199,High_C,0.96,70.8,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,98-199,Low_C,0.96,127.5,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,98-199,High_D,0.96,200.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,98-199,Low_D,0.96,272.4,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,98-199,High_E,0.96,360.1,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,98-199,Low_E,0.96,445.3,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,98-199,High_F,0.96,567.8,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,98-199,Low_F,0.96,707.2,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,98-199,High_G,0.96,906.1,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,98-199,Low_G,0.96,1136.5,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,200,High_B,0.96,9.1,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,200,Low_B,0.96,99.7,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,200,High_C,0.96,214.3,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,200,Low_C,0.96,315.4,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,200,High_D,0.96,445.5,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,200,Low_D,0.96,567,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,200,High_E,0.96,719.6,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,200,Low_E,0.96,867.7,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,200,High_F,0.96,1081.4,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,200,Low_F,0.96,1325.2,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,200,High_G,0.96,1673.9,N/A +DHS,DHS_connection_preHCs,Solid Fossil Boiler,DHS CHP,200,Low_G,0.96,2078.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,0-72,High_B,0.95,81,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,0-72,Low_B,0.95,81.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,0-72,High_C,0.95,83.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,0-72,Low_C,0.95,85.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,0-72,High_D,0.95,88.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,0-72,Low_D,0.95,92.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,0-72,High_E,0.95,99.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,0-72,Low_E,0.95,106.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,0-72,High_F,0.95,116.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,0-72,Low_F,0.95,128,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,0-72,High_G,0.95,143.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,0-72,Low_G,0.95,159.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,0-72,High_B,0.95,102.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,0-72,Low_B,0.95,103.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,0-72,High_C,0.95,105,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,0-72,Low_C,0.95,107.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,0-72,High_D,0.95,112.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,0-72,Low_D,0.95,117.4,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,0-72,High_E,0.95,125.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,0-72,Low_E,0.95,134.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,0-72,High_F,0.95,148.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,0-72,Low_F,0.95,162.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,0-72,High_G,0.95,182.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,0-72,Low_G,0.95,203.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,0-72,High_B,0.95,97.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,0-72,Low_B,0.95,98.4,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,0-72,High_C,0.95,100.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,0-72,Low_C,0.95,102.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,0-72,High_D,0.95,107,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,0-72,Low_D,0.95,112.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,0-72,High_E,0.95,119.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,0-72,Low_E,0.95,128.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,0-72,High_F,0.95,141.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,0-72,Low_F,0.95,155.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,0-72,High_G,0.95,173.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,0-72,Low_G,0.95,193.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,0-72,High_B,0.95,77.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,0-72,Low_B,0.95,78.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,0-72,High_C,0.95,79.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,0-72,Low_C,0.95,81.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,0-72,High_D,0.95,85,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,0-72,Low_D,0.95,89,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,0-72,High_E,0.95,95.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,0-72,Low_E,0.95,102,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,0-72,High_F,0.95,111.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,0-72,Low_F,0.95,122.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,0-72,High_G,0.95,137.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,0-72,Low_G,0.95,152.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,0-72,High_B,0.95,42,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,0-72,Low_B,0.95,42.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,0-72,High_C,0.95,42.7,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,0-72,Low_C,0.95,43.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,0-72,High_D,0.95,45,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,0-72,Low_D,0.95,46.7,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,0-72,High_E,0.95,49.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,0-72,Low_E,0.95,52.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,0-72,High_F,0.95,57,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,0-72,Low_F,0.95,62,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,0-72,High_G,0.95,68.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,0-72,Low_G,0.95,75.9,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,0-72,High_B,0.95,53.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,0-72,Low_B,0.95,53.4,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,0-72,High_C,0.95,54.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,0-72,Low_C,0.95,55.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,0-72,High_D,0.95,56.9,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,0-72,Low_D,0.95,59.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,0-72,High_E,0.95,62.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,0-72,Low_E,0.95,66.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,0-72,High_F,0.95,72.3,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,0-72,Low_F,0.95,78.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,0-72,High_G,0.95,87.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,0-72,Low_G,0.95,96.4,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,0-72,High_B,0.95,30.7,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,0-72,Low_B,0.95,30.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,0-72,High_C,0.95,31.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,0-72,Low_C,0.95,31.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,0-72,High_D,0.95,32.9,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,0-72,Low_D,0.95,34.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,0-72,High_E,0.95,36.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,0-72,Low_E,0.95,38.4,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,0-72,High_F,0.95,41.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,0-72,Low_F,0.95,45.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,0-72,High_G,0.95,50,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,0-72,Low_G,0.95,55.3,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,0-72,High_B,0.95,31.2,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,0-72,Low_B,0.95,30.9,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,0-72,High_C,0.95,30.8,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,0-72,Low_C,0.95,31,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,0-72,High_D,0.95,31.5,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,0-72,Low_D,0.95,32.2,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,0-72,High_E,0.95,33.5,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,0-72,Low_E,0.95,35.2,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,0-72,High_F,0.95,37.6,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,0-72,Low_F,0.95,40.4,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,0-72,High_G,0.95,44.4,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,0-72,Low_G,0.95,48.8,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,0-72,High_B,0.95,26.1,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,0-72,Low_B,0.95,25.9,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,0-72,High_C,0.95,25.8,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,0-72,Low_C,0.95,25.9,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,0-72,High_D,0.95,26.3,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,0-72,Low_D,0.95,27,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,0-72,High_E,0.95,28,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,0-72,Low_E,0.95,29.4,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,0-72,High_F,0.95,31.4,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,0-72,Low_F,0.95,33.8,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,0-72,High_G,0.95,37,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,0-72,Low_G,0.95,40.6,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,0-72,High_B,0.95,17.6,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,0-72,Low_B,0.95,17.7,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,0-72,High_C,0.95,17.9,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,0-72,Low_C,0.95,18.3,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,0-72,High_D,0.95,19,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,0-72,Low_D,0.95,19.8,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,0-72,High_E,0.95,21.1,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,0-72,Low_E,0.95,22.5,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,0-72,High_F,0.95,24.6,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,0-72,Low_F,0.95,26.9,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,0-72,High_G,0.95,30.1,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,0-72,Low_G,0.95,33.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,0-72,High_B,0.95,105.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,0-72,Low_B,0.95,106,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,0-72,High_C,0.95,107.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,0-72,Low_C,0.95,108.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,0-72,High_D,0.95,112.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,0-72,Low_D,0.95,116.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,0-72,High_E,0.95,123.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,0-72,Low_E,0.95,132.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,0-72,High_F,0.95,144,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,0-72,Low_F,0.95,157.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,0-72,High_G,0.95,175.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,0-72,Low_G,0.95,195,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,0-72,High_B,0.95,123.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,0-72,Low_B,0.95,123.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,0-72,High_C,0.95,125.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,0-72,Low_C,0.95,127.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,0-72,High_D,0.95,131.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,0-72,Low_D,0.95,136.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,0-72,High_E,0.95,145.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,0-72,Low_E,0.95,154.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,0-72,High_F,0.95,168.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,0-72,Low_F,0.95,184.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,0-72,High_G,0.95,205.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,0-72,Low_G,0.95,229.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,0-72,High_B,0.95,130.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,0-72,Low_B,0.95,131,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,0-72,High_C,0.95,132.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,0-72,Low_C,0.95,134.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,0-72,High_D,0.95,139,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,0-72,Low_D,0.95,144.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,0-72,High_E,0.95,153.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,0-72,Low_E,0.95,163.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,0-72,High_F,0.95,178.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,0-72,Low_F,0.95,195.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,0-72,High_G,0.95,218,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,0-72,Low_G,0.95,242.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,0-72,High_B,0.95,127.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,0-72,Low_B,0.95,127.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,0-72,High_C,0.95,128.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,0-72,Low_C,0.95,131,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,0-72,High_D,0.95,135.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,0-72,Low_D,0.95,140.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,0-72,High_E,0.95,149.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,0-72,Low_E,0.95,159.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,0-72,High_F,0.95,173.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,0-72,Low_F,0.95,189.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,0-72,High_G,0.95,211.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,0-72,Low_G,0.95,235.9,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,0-72,High_B,0.95,59.8,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,0-72,Low_B,0.95,60.1,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,0-72,High_C,0.95,61.2,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,0-72,Low_C,0.95,62.5,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,0-72,High_D,0.95,64.9,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,0-72,Low_D,0.95,67.8,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,0-72,High_E,0.95,72.1,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,0-72,Low_E,0.95,77.1,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,0-72,High_F,0.95,84.2,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,0-72,Low_F,0.95,91.9,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,0-72,High_G,0.95,102.4,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,0-72,Low_G,0.95,113.7,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,0-72,High_B,0.95,63.8,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,0-72,Low_B,0.95,64.3,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,0-72,High_C,0.95,65.3,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,0-72,Low_C,0.95,66.8,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,0-72,High_D,0.95,69.3,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,0-72,Low_D,0.95,72.4,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,0-72,High_E,0.95,77.1,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,0-72,Low_E,0.95,82.4,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,0-72,High_F,0.95,90,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,0-72,Low_F,0.95,98.3,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,0-72,High_G,0.95,109.5,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,0-72,Low_G,0.95,121.7,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,0-72,High_B,0.95,67.7,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,0-72,Low_B,0.95,68.2,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,0-72,High_C,0.95,69.3,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,0-72,Low_C,0.95,70.8,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,0-72,High_D,0.95,73.5,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,0-72,Low_D,0.95,76.8,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,0-72,High_E,0.95,81.8,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,0-72,Low_E,0.95,87.4,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,0-72,High_F,0.95,95.4,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,0-72,Low_F,0.95,104.3,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,0-72,High_G,0.95,116.3,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,0-72,Low_G,0.95,129.2,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,0-72,High_B,0.95,17.7,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,0-72,Low_B,0.95,17.6,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,0-72,High_C,0.95,17.6,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,0-72,Low_C,0.95,17.8,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,0-72,High_D,0.95,18.1,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,0-72,Low_D,0.95,18.6,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,0-72,High_E,0.95,19.4,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,0-72,Low_E,0.95,20.3,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,0-72,High_F,0.95,21.8,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,0-72,Low_F,0.95,23.4,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,0-72,High_G,0.95,25.6,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,0-72,Low_G,0.95,28.1,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,0-72,High_B,0.95,12.4,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,0-72,Low_B,0.95,12.4,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,0-72,High_C,0.95,12.6,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,0-72,Low_C,0.95,12.9,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,0-72,High_D,0.95,13.4,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,0-72,Low_D,0.95,14,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,0-72,High_E,0.95,14.9,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,0-72,Low_E,0.95,15.9,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,0-72,High_F,0.95,17.4,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,0-72,Low_F,0.95,19.1,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,0-72,High_G,0.95,21.3,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,0-72,Low_G,0.95,23.7,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,0-72,High_D,0.97,80.7,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,0-72,Low_D,0.97,85.5,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,0-72,High_E,0.97,92.7,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,0-72,Low_E,0.97,100.8,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,0-72,High_F,0.97,112.2,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,0-72,Low_F,0.97,124.6,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,0-72,High_G,0.97,141.3,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,0-72,Low_G,0.97,159.2,N/A +Loft Insulation,LI_greater100,N/A,N/A,0-72,High_D,0.97,21.4,N/A +Loft Insulation,LI_greater100,N/A,N/A,0-72,Low_D,0.97,22.3,N/A +Loft Insulation,LI_greater100,N/A,N/A,0-72,High_E,0.97,23.8,N/A +Loft Insulation,LI_greater100,N/A,N/A,0-72,Low_E,0.97,25.6,N/A +Loft Insulation,LI_greater100,N/A,N/A,0-72,High_F,0.97,28.1,N/A +Loft Insulation,LI_greater100,N/A,N/A,0-72,Low_F,0.97,31,N/A +Loft Insulation,LI_greater100,N/A,N/A,0-72,High_G,0.97,35,N/A +Loft Insulation,LI_greater100,N/A,N/A,0-72,Low_G,0.97,39.4,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,0-72,High_D,0.86,200.5,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,0-72,Low_D,0.86,215.6,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,0-72,High_E,0.86,236.5,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,0-72,Low_E,0.86,258.5,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,0-72,High_F,0.86,287.7,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,0-72,Low_F,0.86,318.2,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,0-72,High_G,0.86,357.8,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,0-72,Low_G,0.86,399,N/A +Other Insulation,RIRI_res_in,N/A,N/A,0-72,High_D,0.86,207.8,N/A +Other Insulation,RIRI_res_in,N/A,N/A,0-72,Low_D,0.86,223.8,N/A +Other Insulation,RIRI_res_in,N/A,N/A,0-72,High_E,0.86,245.9,N/A +Other Insulation,RIRI_res_in,N/A,N/A,0-72,Low_E,0.86,269,N/A +Other Insulation,RIRI_res_in,N/A,N/A,0-72,High_F,0.86,299.8,N/A +Other Insulation,RIRI_res_in,N/A,N/A,0-72,Low_F,0.86,332,N/A +Other Insulation,RIRI_res_in,N/A,N/A,0-72,High_G,0.86,373.8,N/A +Other Insulation,RIRI_res_in,N/A,N/A,0-72,Low_G,0.86,417.3,N/A +Other Insulation,FRI,N/A,N/A,0-72,High_D,0.99,299.2,N/A +Other Insulation,FRI,N/A,N/A,0-72,Low_D,0.99,319.6,N/A +Other Insulation,FRI,N/A,N/A,0-72,High_E,0.99,350.3,N/A +Other Insulation,FRI,N/A,N/A,0-72,Low_E,0.99,384.7,N/A +Other Insulation,FRI,N/A,N/A,0-72,High_F,0.99,433.3,N/A +Other Insulation,FRI,N/A,N/A,0-72,Low_F,0.99,486.5,N/A +Other Insulation,FRI,N/A,N/A,0-72,High_G,0.99,558,N/A +Other Insulation,FRI,N/A,N/A,0-72,Low_G,0.99,635.1,N/A +Other Insulation,UFI,N/A,N/A,0-72,High_D,0.97,72.3,N/A +Other Insulation,UFI,N/A,N/A,0-72,Low_D,0.97,75.1,N/A +Other Insulation,UFI,N/A,N/A,0-72,High_E,0.97,79,N/A +Other Insulation,UFI,N/A,N/A,0-72,Low_E,0.97,83.2,N/A +Other Insulation,UFI,N/A,N/A,0-72,High_F,0.97,88.9,N/A +Other Insulation,UFI,N/A,N/A,0-72,Low_F,0.97,94.9,N/A +Other Insulation,UFI,N/A,N/A,0-72,High_G,0.97,102.8,N/A +Other Insulation,UFI,N/A,N/A,0-72,Low_G,0.97,111.2,N/A +Other Insulation,SFI,N/A,N/A,0-72,High_D,0.98,44.9,N/A +Other Insulation,SFI,N/A,N/A,0-72,Low_D,0.98,46.6,N/A +Other Insulation,SFI,N/A,N/A,0-72,High_E,0.98,49.2,N/A +Other Insulation,SFI,N/A,N/A,0-72,Low_E,0.98,52,N/A +Other Insulation,SFI,N/A,N/A,0-72,High_F,0.98,56,N/A +Other Insulation,SFI,N/A,N/A,0-72,Low_F,0.98,60.3,N/A +Other Insulation,SFI,N/A,N/A,0-72,High_G,0.98,66.1,N/A +Other Insulation,SFI,N/A,N/A,0-72,Low_G,0.98,72.4,N/A +Other Insulation,DP,N/A,N/A,0-72,High_D,1,20.3,N/A +Other Insulation,DP,N/A,N/A,0-72,Low_D,1,21,N/A +Other Insulation,DP,N/A,N/A,0-72,High_E,1,22,N/A +Other Insulation,DP,N/A,N/A,0-72,Low_E,1,23.1,N/A +Other Insulation,DP,N/A,N/A,0-72,High_F,1,24.5,N/A +Other Insulation,DP,N/A,N/A,0-72,Low_F,1,26.1,N/A +Other Insulation,DP,N/A,N/A,0-72,High_G,1,28.3,N/A +Other Insulation,DP,N/A,N/A,0-72,Low_G,1,30.5,N/A +Other Insulation,WG_singletodouble,N/A,N/A,0-72,High_D,1,83.6,N/A +Other Insulation,WG_singletodouble,N/A,N/A,0-72,Low_D,1,86.4,N/A +Other Insulation,WG_singletodouble,N/A,N/A,0-72,High_E,1,90.8,N/A +Other Insulation,WG_singletodouble,N/A,N/A,0-72,Low_E,1,95.8,N/A +Other Insulation,WG_singletodouble,N/A,N/A,0-72,High_F,1,103,N/A +Other Insulation,WG_singletodouble,N/A,N/A,0-72,Low_F,1,110.9,N/A +Other Insulation,WG_singletodouble,N/A,N/A,0-72,High_G,1,121.8,N/A +Other Insulation,WG_singletodouble,N/A,N/A,0-72,Low_G,1,133.5,N/A +Other Insulation,WG_improveddouble,N/A,N/A,0-72,High_D,1,15,N/A +Other Insulation,WG_improveddouble,N/A,N/A,0-72,Low_D,1,15.6,N/A +Other Insulation,WG_improveddouble,N/A,N/A,0-72,High_E,1,16.5,N/A +Other Insulation,WG_improveddouble,N/A,N/A,0-72,Low_E,1,17.6,N/A +Other Insulation,WG_improveddouble,N/A,N/A,0-72,High_F,1,19.3,N/A +Other Insulation,WG_improveddouble,N/A,N/A,0-72,Low_F,1,21,N/A +Other Insulation,WG_improveddouble,N/A,N/A,0-72,High_G,1,23.5,N/A +Other Insulation,WG_improveddouble,N/A,N/A,0-72,Low_G,1,26.2,N/A +Other Insulation,HPED,N/A,N/A,0-72,High_D,1,7,N/A +Other Insulation,HPED,N/A,N/A,0-72,Low_D,1,7.2,N/A +Other Insulation,HPED,N/A,N/A,0-72,High_E,1,7.5,N/A +Other Insulation,HPED,N/A,N/A,0-72,Low_E,1,7.9,N/A +Other Insulation,HPED,N/A,N/A,0-72,High_F,1,8.5,N/A +Other Insulation,HPED,N/A,N/A,0-72,Low_F,1,9.1,N/A +Other Insulation,HPED,N/A,N/A,0-72,High_G,1,10,N/A +Other Insulation,HPED,N/A,N/A,0-72,Low_G,1,10.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,0-72,High_B,0.95,81,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,0-72,Low_B,0.95,81.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,0-72,High_C,0.95,83.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,0-72,Low_C,0.95,85.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,0-72,High_D,0.95,88.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,0-72,Low_D,0.95,92.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,0-72,High_E,0.95,99.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,0-72,Low_E,0.95,106.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,0-72,High_F,0.95,116.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,0-72,Low_F,0.95,128,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,0-72,High_G,0.95,143.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,0-72,Low_G,0.95,159.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,0-72,High_B,0.95,102.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,0-72,Low_B,0.95,103.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,0-72,High_C,0.95,105,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,0-72,Low_C,0.95,107.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,0-72,High_D,0.95,112.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,0-72,Low_D,0.95,117.4,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,0-72,High_E,0.95,125.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,0-72,Low_E,0.95,134.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,0-72,High_F,0.95,148.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,0-72,Low_F,0.95,162.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,0-72,High_G,0.95,182.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,0-72,Low_G,0.95,203.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,0-72,High_B,0.95,97.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,0-72,Low_B,0.95,98.4,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,0-72,High_C,0.95,100.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,0-72,Low_C,0.95,102.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,0-72,High_D,0.95,107,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,0-72,Low_D,0.95,112.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,0-72,High_E,0.95,119.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,0-72,Low_E,0.95,128.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,0-72,High_F,0.95,141.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,0-72,Low_F,0.95,155.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,0-72,High_G,0.95,173.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,0-72,Low_G,0.95,193.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,0-72,High_B,0.95,77.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,0-72,Low_B,0.95,78.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,0-72,High_C,0.95,79.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,0-72,Low_C,0.95,81.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,0-72,High_D,0.95,85,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,0-72,Low_D,0.95,89,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,0-72,High_E,0.95,95.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,0-72,Low_E,0.95,102,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,0-72,High_F,0.95,111.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,0-72,Low_F,0.95,122.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,0-72,High_G,0.95,137.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,0-72,Low_G,0.95,152.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,0-72,High_B,0.95,42,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,0-72,Low_B,0.95,42.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,0-72,High_C,0.95,42.7,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,0-72,Low_C,0.95,43.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,0-72,High_D,0.95,45,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,0-72,Low_D,0.95,46.7,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,0-72,High_E,0.95,49.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,0-72,Low_E,0.95,52.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,0-72,High_F,0.95,57,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,0-72,Low_F,0.95,62,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,0-72,High_G,0.95,68.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,0-72,Low_G,0.95,75.9,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,0-72,High_B,0.95,53.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,0-72,Low_B,0.95,53.4,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,0-72,High_C,0.95,54.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,0-72,Low_C,0.95,55.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,0-72,High_D,0.95,56.9,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,0-72,Low_D,0.95,59.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,0-72,High_E,0.95,62.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,0-72,Low_E,0.95,66.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,0-72,High_F,0.95,72.3,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,0-72,Low_F,0.95,78.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,0-72,High_G,0.95,87.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,0-72,Low_G,0.95,96.4,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,0-72,High_B,0.95,30.7,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,0-72,Low_B,0.95,30.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,0-72,High_C,0.95,31.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,0-72,Low_C,0.95,31.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,0-72,High_D,0.95,32.9,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,0-72,Low_D,0.95,34.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,0-72,High_E,0.95,36.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,0-72,Low_E,0.95,38.4,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,0-72,High_F,0.95,41.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,0-72,Low_F,0.95,45.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,0-72,High_G,0.95,50,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,0-72,Low_G,0.95,55.3,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,0-72,High_B,0.95,31.2,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,0-72,Low_B,0.95,30.9,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,0-72,High_C,0.95,30.8,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,0-72,Low_C,0.95,31,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,0-72,High_D,0.95,31.5,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,0-72,Low_D,0.95,32.2,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,0-72,High_E,0.95,33.5,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,0-72,Low_E,0.95,35.2,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,0-72,High_F,0.95,37.6,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,0-72,Low_F,0.95,40.4,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,0-72,High_G,0.95,44.4,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,0-72,Low_G,0.95,48.8,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,0-72,High_B,0.95,26.1,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,0-72,Low_B,0.95,25.9,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,0-72,High_C,0.95,25.8,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,0-72,Low_C,0.95,25.9,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,0-72,High_D,0.95,26.3,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,0-72,Low_D,0.95,27,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,0-72,High_E,0.95,28,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,0-72,Low_E,0.95,29.4,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,0-72,High_F,0.95,31.4,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,0-72,Low_F,0.95,33.8,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,0-72,High_G,0.95,37,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,0-72,Low_G,0.95,40.6,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,0-72,High_B,0.95,17.6,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,0-72,Low_B,0.95,17.7,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,0-72,High_C,0.95,17.9,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,0-72,Low_C,0.95,18.3,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,0-72,High_D,0.95,19,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,0-72,Low_D,0.95,19.8,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,0-72,High_E,0.95,21.1,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,0-72,Low_E,0.95,22.5,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,0-72,High_F,0.95,24.6,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,0-72,Low_F,0.95,26.9,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,0-72,High_G,0.95,30.1,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,0-72,Low_G,0.95,33.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,0-72,High_B,0.95,105.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,0-72,Low_B,0.95,106,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,0-72,High_C,0.95,107.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,0-72,Low_C,0.95,108.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,0-72,High_D,0.95,112.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,0-72,Low_D,0.95,116.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,0-72,High_E,0.95,123.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,0-72,Low_E,0.95,132.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,0-72,High_F,0.95,144,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,0-72,Low_F,0.95,157.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,0-72,High_G,0.95,175.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,0-72,Low_G,0.95,195,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,0-72,High_B,0.95,123.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,0-72,Low_B,0.95,123.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,0-72,High_C,0.95,125.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,0-72,Low_C,0.95,127.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,0-72,High_D,0.95,131.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,0-72,Low_D,0.95,136.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,0-72,High_E,0.95,145.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,0-72,Low_E,0.95,154.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,0-72,High_F,0.95,168.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,0-72,Low_F,0.95,184.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,0-72,High_G,0.95,205.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,0-72,Low_G,0.95,229.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,0-72,High_B,0.95,130.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,0-72,Low_B,0.95,131,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,0-72,High_C,0.95,132.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,0-72,Low_C,0.95,134.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,0-72,High_D,0.95,139,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,0-72,Low_D,0.95,144.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,0-72,High_E,0.95,153.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,0-72,Low_E,0.95,163.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,0-72,High_F,0.95,178.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,0-72,Low_F,0.95,195.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,0-72,High_G,0.95,218,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,0-72,Low_G,0.95,242.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,0-72,High_B,0.95,127.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,0-72,Low_B,0.95,127.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,0-72,High_C,0.95,128.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,0-72,Low_C,0.95,131,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,0-72,High_D,0.95,135.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,0-72,Low_D,0.95,140.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,0-72,High_E,0.95,149.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,0-72,Low_E,0.95,159.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,0-72,High_F,0.95,173.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,0-72,Low_F,0.95,189.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,0-72,High_G,0.95,211.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,0-72,Low_G,0.95,235.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,0-72,High_B,0.95,81,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_B,0.95,81.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,0-72,High_C,0.95,83.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_C,0.95,85.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,0-72,High_D,0.95,88.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_D,0.95,92.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,0-72,High_E,0.95,99.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_E,0.95,106.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,0-72,High_F,0.95,116.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_F,0.95,128,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,0-72,High_G,0.95,143.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_G,0.95,159.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,0-72,High_B,0.95,102.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_B,0.95,103.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,0-72,High_C,0.95,105,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_C,0.95,107.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,0-72,High_D,0.95,112.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_D,0.95,117.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,0-72,High_E,0.95,125.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_E,0.95,134.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,0-72,High_F,0.95,148.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_F,0.95,162.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,0-72,High_G,0.95,182.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_G,0.95,203.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,0-72,High_B,0.95,97.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_B,0.95,98.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,0-72,High_C,0.95,100.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_C,0.95,102.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,0-72,High_D,0.95,107,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_D,0.95,112.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,0-72,High_E,0.95,119.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_E,0.95,128.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,0-72,High_F,0.95,141.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_F,0.95,155.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,0-72,High_G,0.95,173.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_G,0.95,193.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,0-72,High_B,0.95,77.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_B,0.95,78.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,0-72,High_C,0.95,79.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_C,0.95,81.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,0-72,High_D,0.95,85,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_D,0.95,89,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,0-72,High_E,0.95,95.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_E,0.95,102,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,0-72,High_F,0.95,111.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_F,0.95,122.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,0-72,High_G,0.95,137.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_G,0.95,152.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,0-72,High_B,0.95,42,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_B,0.95,42.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,0-72,High_C,0.95,42.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_C,0.95,43.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,0-72,High_D,0.95,45,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_D,0.95,46.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,0-72,High_E,0.95,49.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_E,0.95,52.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,0-72,High_F,0.95,57,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_F,0.95,62,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,0-72,High_G,0.95,68.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_G,0.95,75.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,0-72,High_B,0.95,53.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_B,0.95,53.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,0-72,High_C,0.95,54.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_C,0.95,55.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,0-72,High_D,0.95,56.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_D,0.95,59.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,0-72,High_E,0.95,62.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_E,0.95,66.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,0-72,High_F,0.95,72.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_F,0.95,78.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,0-72,High_G,0.95,87.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_G,0.95,96.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,0-72,High_B,0.95,30.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_B,0.95,30.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,0-72,High_C,0.95,31.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_C,0.95,31.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,0-72,High_D,0.95,32.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_D,0.95,34.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,0-72,High_E,0.95,36.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_E,0.95,38.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,0-72,High_F,0.95,41.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_F,0.95,45.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,0-72,High_G,0.95,50,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_G,0.95,55.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,0-72,High_B,0.95,31.2,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_B,0.95,30.9,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,0-72,High_C,0.95,30.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_C,0.95,31,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,0-72,High_D,0.95,31.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_D,0.95,32.2,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,0-72,High_E,0.95,33.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_E,0.95,35.2,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,0-72,High_F,0.95,37.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_F,0.95,40.4,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,0-72,High_G,0.95,44.4,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_G,0.95,48.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,0-72,High_B,0.95,26.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_B,0.95,25.9,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,0-72,High_C,0.95,25.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_C,0.95,25.9,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,0-72,High_D,0.95,26.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_D,0.95,27,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,0-72,High_E,0.95,28,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_E,0.95,29.4,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,0-72,High_F,0.95,31.4,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_F,0.95,33.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,0-72,High_G,0.95,37,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_G,0.95,40.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,0-72,High_B,0.95,17.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_B,0.95,17.7,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,0-72,High_C,0.95,17.9,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_C,0.95,18.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,0-72,High_D,0.95,19,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_D,0.95,19.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,0-72,High_E,0.95,21.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_E,0.95,22.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,0-72,High_F,0.95,24.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_F,0.95,26.9,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,0-72,High_G,0.95,30.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_G,0.95,33.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,0-72,High_B,0.95,105.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_B,0.95,106,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,0-72,High_C,0.95,107.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_C,0.95,108.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,0-72,High_D,0.95,112.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_D,0.95,116.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,0-72,High_E,0.95,123.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_E,0.95,132.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,0-72,High_F,0.95,144,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_F,0.95,157.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,0-72,High_G,0.95,175.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_G,0.95,195,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,0-72,High_B,0.95,123.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_B,0.95,123.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,0-72,High_C,0.95,125.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_C,0.95,127.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,0-72,High_D,0.95,131.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_D,0.95,136.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,0-72,High_E,0.95,145.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_E,0.95,154.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,0-72,High_F,0.95,168.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_F,0.95,184.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,0-72,High_G,0.95,205.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_G,0.95,229.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,0-72,High_B,0.95,130.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_B,0.95,131,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,0-72,High_C,0.95,132.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_C,0.95,134.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,0-72,High_D,0.95,139,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_D,0.95,144.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,0-72,High_E,0.95,153.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_E,0.95,163.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,0-72,High_F,0.95,178.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_F,0.95,195.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,0-72,High_G,0.95,218,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_G,0.95,242.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,0-72,High_B,0.95,127.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_B,0.95,127.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,0-72,High_C,0.95,128.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_C,0.95,131,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,0-72,High_D,0.95,135.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_D,0.95,140.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,0-72,High_E,0.95,149.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_E,0.95,159.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,0-72,High_F,0.95,173.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_F,0.95,189.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,0-72,High_G,0.95,211.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_G,0.95,235.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,0-72,High_B,0.95,81,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_B,0.95,81.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,0-72,High_C,0.95,83.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_C,0.95,85.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,0-72,High_D,0.95,88.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_D,0.95,92.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,0-72,High_E,0.95,99.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_E,0.95,106.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,0-72,High_F,0.95,116.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_F,0.95,128,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,0-72,High_G,0.95,143.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_G,0.95,159.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,0-72,High_B,0.95,102.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_B,0.95,103.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,0-72,High_C,0.95,105,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_C,0.95,107.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,0-72,High_D,0.95,112.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_D,0.95,117.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,0-72,High_E,0.95,125.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_E,0.95,134.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,0-72,High_F,0.95,148.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_F,0.95,162.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,0-72,High_G,0.95,182.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_G,0.95,203.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,0-72,High_B,0.95,97.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_B,0.95,98.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,0-72,High_C,0.95,100.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_C,0.95,102.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,0-72,High_D,0.95,107,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_D,0.95,112.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,0-72,High_E,0.95,119.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_E,0.95,128.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,0-72,High_F,0.95,141.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_F,0.95,155.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,0-72,High_G,0.95,173.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_G,0.95,193.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,0-72,High_B,0.95,77.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_B,0.95,78.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,0-72,High_C,0.95,79.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_C,0.95,81.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,0-72,High_D,0.95,85,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_D,0.95,89,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,0-72,High_E,0.95,95.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_E,0.95,102,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,0-72,High_F,0.95,111.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_F,0.95,122.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,0-72,High_G,0.95,137.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_G,0.95,152.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,0-72,High_B,0.95,42,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_B,0.95,42.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,0-72,High_C,0.95,42.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_C,0.95,43.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,0-72,High_D,0.95,45,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_D,0.95,46.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,0-72,High_E,0.95,49.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_E,0.95,52.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,0-72,High_F,0.95,57,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_F,0.95,62,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,0-72,High_G,0.95,68.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_G,0.95,75.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,0-72,High_B,0.95,53.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_B,0.95,53.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,0-72,High_C,0.95,54.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_C,0.95,55.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,0-72,High_D,0.95,56.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_D,0.95,59.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,0-72,High_E,0.95,62.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_E,0.95,66.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,0-72,High_F,0.95,72.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_F,0.95,78.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,0-72,High_G,0.95,87.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_G,0.95,96.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,0-72,High_B,0.95,30.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_B,0.95,30.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,0-72,High_C,0.95,31.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_C,0.95,31.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,0-72,High_D,0.95,32.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_D,0.95,34.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,0-72,High_E,0.95,36.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_E,0.95,38.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,0-72,High_F,0.95,41.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_F,0.95,45.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,0-72,High_G,0.95,50,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_G,0.95,55.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,0-72,High_B,0.95,31.2,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_B,0.95,30.9,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,0-72,High_C,0.95,30.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_C,0.95,31,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,0-72,High_D,0.95,31.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_D,0.95,32.2,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,0-72,High_E,0.95,33.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_E,0.95,35.2,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,0-72,High_F,0.95,37.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_F,0.95,40.4,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,0-72,High_G,0.95,44.4,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_G,0.95,48.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,0-72,High_B,0.95,26.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_B,0.95,25.9,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,0-72,High_C,0.95,25.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_C,0.95,25.9,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,0-72,High_D,0.95,26.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_D,0.95,27,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,0-72,High_E,0.95,28,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_E,0.95,29.4,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,0-72,High_F,0.95,31.4,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_F,0.95,33.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,0-72,High_G,0.95,37,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_G,0.95,40.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,0-72,High_B,0.95,17.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_B,0.95,17.7,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,0-72,High_C,0.95,17.9,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_C,0.95,18.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,0-72,High_D,0.95,19,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_D,0.95,19.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,0-72,High_E,0.95,21.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_E,0.95,22.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,0-72,High_F,0.95,24.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_F,0.95,26.9,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,0-72,High_G,0.95,30.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_G,0.95,33.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,0-72,High_B,0.95,105.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_B,0.95,106,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,0-72,High_C,0.95,107.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_C,0.95,108.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,0-72,High_D,0.95,112.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_D,0.95,116.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,0-72,High_E,0.95,123.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_E,0.95,132.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,0-72,High_F,0.95,144,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_F,0.95,157.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,0-72,High_G,0.95,175.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_G,0.95,195,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,0-72,High_B,0.95,123.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_B,0.95,123.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,0-72,High_C,0.95,125.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_C,0.95,127.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,0-72,High_D,0.95,131.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_D,0.95,136.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,0-72,High_E,0.95,145.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_E,0.95,154.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,0-72,High_F,0.95,168.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_F,0.95,184.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,0-72,High_G,0.95,205.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_G,0.95,229.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,0-72,High_B,0.95,130.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_B,0.95,131,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,0-72,High_C,0.95,132.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_C,0.95,134.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,0-72,High_D,0.95,139,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_D,0.95,144.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,0-72,High_E,0.95,153.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_E,0.95,163.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,0-72,High_F,0.95,178.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_F,0.95,195.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,0-72,High_G,0.95,218,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_G,0.95,242.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,0-72,High_B,0.95,127.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_B,0.95,127.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,0-72,High_C,0.95,128.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_C,0.95,131,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,0-72,High_D,0.95,135.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_D,0.95,140.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,0-72,High_E,0.95,149.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_E,0.95,159.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,0-72,High_F,0.95,173.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_F,0.95,189.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,0-72,High_G,0.95,211.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_G,0.95,235.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,0-72,High_B,0.95,81,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,0-72,Low_B,0.95,81.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,0-72,High_C,0.95,83.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,0-72,Low_C,0.95,85.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,0-72,High_D,0.95,88.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,0-72,Low_D,0.95,92.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,0-72,High_E,0.95,99.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,0-72,Low_E,0.95,106.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,0-72,High_F,0.95,116.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,0-72,Low_F,0.95,128,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,0-72,High_G,0.95,143.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,0-72,Low_G,0.95,159.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,0-72,High_B,0.95,102.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,0-72,Low_B,0.95,103.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,0-72,High_C,0.95,105,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,0-72,Low_C,0.95,107.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,0-72,High_D,0.95,112.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,0-72,Low_D,0.95,117.4,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,0-72,High_E,0.95,125.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,0-72,Low_E,0.95,134.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,0-72,High_F,0.95,148.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,0-72,Low_F,0.95,162.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,0-72,High_G,0.95,182.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,0-72,Low_G,0.95,203.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,0-72,High_B,0.95,97.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,0-72,Low_B,0.95,98.4,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,0-72,High_C,0.95,100.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,0-72,Low_C,0.95,102.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,0-72,High_D,0.95,107,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,0-72,Low_D,0.95,112.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,0-72,High_E,0.95,119.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,0-72,Low_E,0.95,128.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,0-72,High_F,0.95,141.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,0-72,Low_F,0.95,155.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,0-72,High_G,0.95,173.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,0-72,Low_G,0.95,193.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,0-72,High_B,0.95,77.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,0-72,Low_B,0.95,78.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,0-72,High_C,0.95,79.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,0-72,Low_C,0.95,81.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,0-72,High_D,0.95,85,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,0-72,Low_D,0.95,89,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,0-72,High_E,0.95,95.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,0-72,Low_E,0.95,102,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,0-72,High_F,0.95,111.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,0-72,Low_F,0.95,122.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,0-72,High_G,0.95,137.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,0-72,Low_G,0.95,152.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,0-72,High_B,0.95,42,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,0-72,Low_B,0.95,42.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,0-72,High_C,0.95,42.7,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,0-72,Low_C,0.95,43.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,0-72,High_D,0.95,45,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,0-72,Low_D,0.95,46.7,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,0-72,High_E,0.95,49.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,0-72,Low_E,0.95,52.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,0-72,High_F,0.95,57,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,0-72,Low_F,0.95,62,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,0-72,High_G,0.95,68.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,0-72,Low_G,0.95,75.9,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,0-72,High_B,0.95,53.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,0-72,Low_B,0.95,53.4,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,0-72,High_C,0.95,54.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,0-72,Low_C,0.95,55.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,0-72,High_D,0.95,56.9,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,0-72,Low_D,0.95,59.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,0-72,High_E,0.95,62.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,0-72,Low_E,0.95,66.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,0-72,High_F,0.95,72.3,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,0-72,Low_F,0.95,78.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,0-72,High_G,0.95,87.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,0-72,Low_G,0.95,96.4,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,0-72,High_B,0.95,30.7,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,0-72,Low_B,0.95,30.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,0-72,High_C,0.95,31.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,0-72,Low_C,0.95,31.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,0-72,High_D,0.95,32.9,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,0-72,Low_D,0.95,34.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,0-72,High_E,0.95,36.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,0-72,Low_E,0.95,38.4,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,0-72,High_F,0.95,41.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,0-72,Low_F,0.95,45.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,0-72,High_G,0.95,50,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,0-72,Low_G,0.95,55.3,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,0-72,High_B,0.95,31.2,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,0-72,Low_B,0.95,30.9,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,0-72,High_C,0.95,30.8,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,0-72,Low_C,0.95,31,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,0-72,High_D,0.95,31.5,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,0-72,Low_D,0.95,32.2,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,0-72,High_E,0.95,33.5,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,0-72,Low_E,0.95,35.2,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,0-72,High_F,0.95,37.6,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,0-72,Low_F,0.95,40.4,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,0-72,High_G,0.95,44.4,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,0-72,Low_G,0.95,48.8,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,0-72,High_B,0.95,26.1,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,0-72,Low_B,0.95,25.9,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,0-72,High_C,0.95,25.8,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,0-72,Low_C,0.95,25.9,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,0-72,High_D,0.95,26.3,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,0-72,Low_D,0.95,27,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,0-72,High_E,0.95,28,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,0-72,Low_E,0.95,29.4,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,0-72,High_F,0.95,31.4,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,0-72,Low_F,0.95,33.8,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,0-72,High_G,0.95,37,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,0-72,Low_G,0.95,40.6,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,0-72,High_B,0.95,17.6,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,0-72,Low_B,0.95,17.7,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,0-72,High_C,0.95,17.9,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,0-72,Low_C,0.95,18.3,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,0-72,High_D,0.95,19,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,0-72,Low_D,0.95,19.8,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,0-72,High_E,0.95,21.1,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,0-72,Low_E,0.95,22.5,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,0-72,High_F,0.95,24.6,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,0-72,Low_F,0.95,26.9,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,0-72,High_G,0.95,30.1,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,0-72,Low_G,0.95,33.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,0-72,High_B,0.95,105.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,0-72,Low_B,0.95,106,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,0-72,High_C,0.95,107.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,0-72,Low_C,0.95,108.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,0-72,High_D,0.95,112.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,0-72,Low_D,0.95,116.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,0-72,High_E,0.95,123.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,0-72,Low_E,0.95,132.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,0-72,High_F,0.95,144,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,0-72,Low_F,0.95,157.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,0-72,High_G,0.95,175.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,0-72,Low_G,0.95,195,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,0-72,High_B,0.95,123.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,0-72,Low_B,0.95,123.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,0-72,High_C,0.95,125.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,0-72,Low_C,0.95,127.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,0-72,High_D,0.95,131.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,0-72,Low_D,0.95,136.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,0-72,High_E,0.95,145.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,0-72,Low_E,0.95,154.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,0-72,High_F,0.95,168.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,0-72,Low_F,0.95,184.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,0-72,High_G,0.95,205.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,0-72,Low_G,0.95,229.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,0-72,High_B,0.95,130.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,0-72,Low_B,0.95,131,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,0-72,High_C,0.95,132.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,0-72,Low_C,0.95,134.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,0-72,High_D,0.95,139,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,0-72,Low_D,0.95,144.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,0-72,High_E,0.95,153.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,0-72,Low_E,0.95,163.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,0-72,High_F,0.95,178.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,0-72,Low_F,0.95,195.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,0-72,High_G,0.95,218,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,0-72,Low_G,0.95,242.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,0-72,High_B,0.95,127.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,0-72,Low_B,0.95,127.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,0-72,High_C,0.95,128.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,0-72,Low_C,0.95,131,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,0-72,High_D,0.95,135.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,0-72,Low_D,0.95,140.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,0-72,High_E,0.95,149.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,0-72,Low_E,0.95,159.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,0-72,High_F,0.95,173.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,0-72,Low_F,0.95,189.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,0-72,High_G,0.95,211.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,0-72,Low_G,0.95,235.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,0-72,High_B,0.95,81,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_B,0.95,81.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,0-72,High_C,0.95,83.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_C,0.95,85.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,0-72,High_D,0.95,88.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_D,0.95,92.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,0-72,High_E,0.95,99.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_E,0.95,106.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,0-72,High_F,0.95,116.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_F,0.95,128,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,0-72,High_G,0.95,143.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,0-72,Low_G,0.95,159.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,0-72,High_B,0.95,102.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_B,0.95,103.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,0-72,High_C,0.95,105,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_C,0.95,107.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,0-72,High_D,0.95,112.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_D,0.95,117.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,0-72,High_E,0.95,125.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_E,0.95,134.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,0-72,High_F,0.95,148.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_F,0.95,162.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,0-72,High_G,0.95,182.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,0-72,Low_G,0.95,203.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,0-72,High_B,0.95,97.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_B,0.95,98.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,0-72,High_C,0.95,100.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_C,0.95,102.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,0-72,High_D,0.95,107,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_D,0.95,112.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,0-72,High_E,0.95,119.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_E,0.95,128.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,0-72,High_F,0.95,141.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_F,0.95,155.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,0-72,High_G,0.95,173.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,0-72,Low_G,0.95,193.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,0-72,High_B,0.95,77.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_B,0.95,78.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,0-72,High_C,0.95,79.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_C,0.95,81.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,0-72,High_D,0.95,85,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_D,0.95,89,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,0-72,High_E,0.95,95.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_E,0.95,102,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,0-72,High_F,0.95,111.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_F,0.95,122.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,0-72,High_G,0.95,137.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,0-72,Low_G,0.95,152.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,0-72,High_B,0.95,42,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_B,0.95,42.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,0-72,High_C,0.95,42.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_C,0.95,43.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,0-72,High_D,0.95,45,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_D,0.95,46.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,0-72,High_E,0.95,49.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_E,0.95,52.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,0-72,High_F,0.95,57,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_F,0.95,62,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,0-72,High_G,0.95,68.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,0-72,Low_G,0.95,75.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,0-72,High_B,0.95,53.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_B,0.95,53.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,0-72,High_C,0.95,54.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_C,0.95,55.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,0-72,High_D,0.95,56.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_D,0.95,59.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,0-72,High_E,0.95,62.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_E,0.95,66.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,0-72,High_F,0.95,72.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_F,0.95,78.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,0-72,High_G,0.95,87.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,0-72,Low_G,0.95,96.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,0-72,High_B,0.95,30.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_B,0.95,30.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,0-72,High_C,0.95,31.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_C,0.95,31.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,0-72,High_D,0.95,32.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_D,0.95,34.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,0-72,High_E,0.95,36.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_E,0.95,38.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,0-72,High_F,0.95,41.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_F,0.95,45.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,0-72,High_G,0.95,50,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,0-72,Low_G,0.95,55.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,0-72,High_B,0.95,31.2,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_B,0.95,30.9,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,0-72,High_C,0.95,30.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_C,0.95,31,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,0-72,High_D,0.95,31.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_D,0.95,32.2,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,0-72,High_E,0.95,33.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_E,0.95,35.2,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,0-72,High_F,0.95,37.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_F,0.95,40.4,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,0-72,High_G,0.95,44.4,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,0-72,Low_G,0.95,48.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,0-72,High_B,0.95,26.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_B,0.95,25.9,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,0-72,High_C,0.95,25.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_C,0.95,25.9,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,0-72,High_D,0.95,26.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_D,0.95,27,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,0-72,High_E,0.95,28,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_E,0.95,29.4,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,0-72,High_F,0.95,31.4,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_F,0.95,33.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,0-72,High_G,0.95,37,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,0-72,Low_G,0.95,40.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,0-72,High_B,0.95,17.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_B,0.95,17.7,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,0-72,High_C,0.95,17.9,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_C,0.95,18.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,0-72,High_D,0.95,19,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_D,0.95,19.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,0-72,High_E,0.95,21.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_E,0.95,22.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,0-72,High_F,0.95,24.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_F,0.95,26.9,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,0-72,High_G,0.95,30.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,0-72,Low_G,0.95,33.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,0-72,High_B,0.95,105.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_B,0.95,106,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,0-72,High_C,0.95,107.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_C,0.95,108.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,0-72,High_D,0.95,112.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_D,0.95,116.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,0-72,High_E,0.95,123.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_E,0.95,132.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,0-72,High_F,0.95,144,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_F,0.95,157.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,0-72,High_G,0.95,175.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,0-72,Low_G,0.95,195,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,0-72,High_B,0.95,123.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_B,0.95,123.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,0-72,High_C,0.95,125.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_C,0.95,127.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,0-72,High_D,0.95,131.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_D,0.95,136.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,0-72,High_E,0.95,145.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_E,0.95,154.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,0-72,High_F,0.95,168.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_F,0.95,184.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,0-72,High_G,0.95,205.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,0-72,Low_G,0.95,229.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,0-72,High_B,0.95,130.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_B,0.95,131,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,0-72,High_C,0.95,132.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_C,0.95,134.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,0-72,High_D,0.95,139,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_D,0.95,144.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,0-72,High_E,0.95,153.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_E,0.95,163.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,0-72,High_F,0.95,178.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_F,0.95,195.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,0-72,High_G,0.95,218,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,0-72,Low_G,0.95,242.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,0-72,High_B,0.95,127.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_B,0.95,127.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,0-72,High_C,0.95,128.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_C,0.95,131,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,0-72,High_D,0.95,135.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_D,0.95,140.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,0-72,High_E,0.95,149.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_E,0.95,159.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,0-72,High_F,0.95,173.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_F,0.95,189.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,0-72,High_G,0.95,211.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,0-72,Low_G,0.95,235.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,73-97,High_B,0.95,162.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,73-97,Low_B,0.95,162.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,73-97,High_C,0.95,165.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,73-97,Low_C,0.95,169.4,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,73-97,High_D,0.95,177.4,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,73-97,Low_D,0.95,187.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,73-97,High_E,0.95,203.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,73-97,Low_E,0.95,222.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,73-97,High_F,0.95,249.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,73-97,Low_F,0.95,280.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,73-97,High_G,0.95,321.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,73-97,Low_G,0.95,367.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,73-97,High_B,0.95,212.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,73-97,Low_B,0.95,213,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,73-97,High_C,0.95,215.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,73-97,Low_C,0.95,221,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,73-97,High_D,0.95,231.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,73-97,Low_D,0.95,243.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,73-97,High_E,0.95,264.4,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,73-97,Low_E,0.95,288.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,73-97,High_F,0.95,322.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,73-97,Low_F,0.95,361.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,73-97,High_G,0.95,414.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,73-97,Low_G,0.95,471.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,73-97,High_B,0.95,201.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,73-97,Low_B,0.95,201.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,73-97,High_C,0.95,204.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,73-97,Low_C,0.95,209.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,73-97,High_D,0.95,219.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,73-97,Low_D,0.95,231.4,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,73-97,High_E,0.95,250.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,73-97,Low_E,0.95,273.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,73-97,High_F,0.95,306.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,73-97,Low_F,0.95,343.4,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,73-97,High_G,0.95,393.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,73-97,Low_G,0.95,448.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,73-97,High_B,0.95,155,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,73-97,Low_B,0.95,155.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,73-97,High_C,0.95,157.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,73-97,Low_C,0.95,161.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,73-97,High_D,0.95,169.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,73-97,Low_D,0.95,179,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,73-97,High_E,0.95,194.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,73-97,Low_E,0.95,212.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,73-97,High_F,0.95,238.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,73-97,Low_F,0.95,267.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,73-97,High_G,0.95,307.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,73-97,Low_G,0.95,350.9,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,73-97,High_B,0.95,78.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,73-97,Low_B,0.95,78.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,73-97,High_C,0.95,79.7,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,73-97,Low_C,0.95,81.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,73-97,High_D,0.95,85.3,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,73-97,Low_D,0.95,90.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,73-97,High_E,0.95,97.7,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,73-97,Low_E,0.95,106.7,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,73-97,High_F,0.95,119.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,73-97,Low_F,0.95,134.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,73-97,High_G,0.95,153.9,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,73-97,Low_G,0.95,175.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,73-97,High_B,0.95,101.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,73-97,Low_B,0.95,101.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,73-97,High_C,0.95,102.4,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,73-97,Low_C,0.95,104.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,73-97,High_D,0.95,109.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,73-97,Low_D,0.95,115.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,73-97,High_E,0.95,125.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,73-97,Low_E,0.95,136.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,73-97,High_F,0.95,153,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,73-97,Low_F,0.95,171.3,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,73-97,High_G,0.95,196.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,73-97,Low_G,0.95,223.9,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,73-97,High_B,0.95,56.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,73-97,Low_B,0.95,56.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,73-97,High_C,0.95,57.4,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,73-97,Low_C,0.95,58.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,73-97,High_D,0.95,61.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,73-97,Low_D,0.95,65.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,73-97,High_E,0.95,70.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,73-97,Low_E,0.95,77.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,73-97,High_F,0.95,86.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,73-97,Low_F,0.95,97.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,73-97,High_G,0.95,111.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,73-97,Low_G,0.95,127.3,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,73-97,High_B,0.95,52.6,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,73-97,Low_B,0.95,52.5,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,73-97,High_C,0.95,53,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,73-97,Low_C,0.95,54.2,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,73-97,High_D,0.95,56.5,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,73-97,Low_D,0.95,59.5,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,73-97,High_E,0.95,64.4,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,73-97,Low_E,0.95,70.1,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,73-97,High_F,0.95,78.5,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,73-97,Low_F,0.95,87.8,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,73-97,High_G,0.95,100.6,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,73-97,Low_G,0.95,114.7,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,73-97,High_B,0.95,43.6,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,73-97,Low_B,0.95,43.5,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,73-97,High_C,0.95,44,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,73-97,Low_C,0.95,45,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,73-97,High_D,0.95,46.9,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,73-97,Low_D,0.95,49.5,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,73-97,High_E,0.95,53.5,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,73-97,Low_E,0.95,58.3,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,73-97,High_F,0.95,65.3,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,73-97,Low_F,0.95,73.1,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,73-97,High_G,0.95,83.8,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,73-97,Low_G,0.95,95.5,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,73-97,High_B,0.95,35.5,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,73-97,Low_B,0.95,35.3,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,73-97,High_C,0.95,35.6,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,73-97,Low_C,0.95,36.3,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,73-97,High_D,0.95,37.8,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,73-97,Low_D,0.95,39.7,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,73-97,High_E,0.95,42.9,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,73-97,Low_E,0.95,46.6,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,73-97,High_F,0.95,52.1,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,73-97,Low_F,0.95,58.3,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,73-97,High_G,0.95,66.8,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,73-97,Low_G,0.95,76.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,73-97,High_B,0.95,195.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,73-97,Low_B,0.95,196.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,73-97,High_C,0.95,199.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,73-97,Low_C,0.95,205.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,73-97,High_D,0.95,215.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,73-97,Low_D,0.95,228.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,73-97,High_E,0.95,248.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,73-97,Low_E,0.95,271.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,73-97,High_F,0.95,304.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,73-97,Low_F,0.95,341.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,73-97,High_G,0.95,392.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,73-97,Low_G,0.95,446.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,73-97,High_B,0.95,234.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,73-97,Low_B,0.95,235.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,73-97,High_C,0.95,239.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,73-97,Low_C,0.95,245.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,73-97,High_D,0.95,257.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,73-97,Low_D,0.95,272.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,73-97,High_E,0.95,296.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,73-97,Low_E,0.95,323.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,73-97,High_F,0.95,362.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,73-97,Low_F,0.95,405.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,73-97,High_G,0.95,464.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,73-97,Low_G,0.95,528.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,73-97,High_B,0.95,250.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,73-97,Low_B,0.95,251.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,73-97,High_C,0.95,255.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,73-97,Low_C,0.95,262.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,73-97,High_D,0.95,275.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,73-97,Low_D,0.95,290.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,73-97,High_E,0.95,315.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,73-97,Low_E,0.95,344.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,73-97,High_F,0.95,385.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,73-97,Low_F,0.95,431.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,73-97,High_G,0.95,494.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,73-97,Low_G,0.95,562.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,73-97,High_B,0.95,242.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,73-97,Low_B,0.95,243.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,73-97,High_C,0.95,247.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,73-97,Low_C,0.95,254.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,73-97,High_D,0.95,266.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,73-97,Low_D,0.95,281.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,73-97,High_E,0.95,305.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,73-97,Low_E,0.95,333.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,73-97,High_F,0.95,373.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,73-97,Low_F,0.95,418.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,73-97,High_G,0.95,479.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,73-97,Low_G,0.95,545.5,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,73-97,High_B,0.95,117.8,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,73-97,Low_B,0.95,117.7,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,73-97,High_C,0.95,119.1,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,73-97,Low_C,0.95,121.8,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,73-97,High_D,0.95,127.2,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,73-97,Low_D,0.95,134.2,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,73-97,High_E,0.95,145.6,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,73-97,Low_E,0.95,158.8,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,73-97,High_F,0.95,178.2,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,73-97,Low_F,0.95,199.8,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,73-97,High_G,0.95,229.5,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,73-97,Low_G,0.95,262,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,73-97,High_B,0.95,126.7,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,73-97,Low_B,0.95,126.5,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,73-97,High_C,0.95,128,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,73-97,Low_C,0.95,130.8,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,73-97,High_D,0.95,136.6,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,73-97,Low_D,0.95,144.2,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,73-97,High_E,0.95,156.3,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,73-97,Low_E,0.95,170.4,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,73-97,High_F,0.95,191.1,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,73-97,Low_F,0.95,214.2,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,73-97,High_G,0.95,246,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,73-97,Low_G,0.95,280.7,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,73-97,High_B,0.95,135.2,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,73-97,Low_B,0.95,135,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,73-97,High_C,0.95,136.5,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,73-97,Low_C,0.95,139.5,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,73-97,High_D,0.95,145.7,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,73-97,Low_D,0.95,153.6,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,73-97,High_E,0.95,166.5,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,73-97,Low_E,0.95,181.5,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,73-97,High_F,0.95,203.4,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,73-97,Low_F,0.95,228,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,73-97,High_G,0.95,261.7,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,73-97,Low_G,0.95,298.5,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,73-97,High_B,0.95,16.9,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,73-97,Low_B,0.95,16.7,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,73-97,High_C,0.95,16.8,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,73-97,Low_C,0.95,17.1,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,73-97,High_D,0.95,17.9,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,73-97,Low_D,0.95,18.9,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,73-97,High_E,0.95,20.6,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,73-97,Low_E,0.95,22.6,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,73-97,High_F,0.95,25.6,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,73-97,Low_F,0.95,28.9,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,73-97,High_G,0.95,33.6,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,73-97,Low_G,0.95,38.8,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,73-97,High_B,0.95,25,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,73-97,Low_B,0.95,24.9,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,73-97,High_C,0.95,25.1,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,73-97,Low_C,0.95,25.6,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,73-97,High_D,0.95,26.7,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,73-97,Low_D,0.95,28,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,73-97,High_E,0.95,30.3,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,73-97,Low_E,0.95,33,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,73-97,High_F,0.95,36.9,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,73-97,Low_F,0.95,41.2,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,73-97,High_G,0.95,47.3,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,73-97,Low_G,0.95,53.9,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,73-97,High_D,0.97,43.3,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,73-97,Low_D,0.97,45.7,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,73-97,High_E,0.97,49.6,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,73-97,Low_E,0.97,54.2,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,73-97,High_F,0.97,61,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,73-97,Low_F,0.97,68.7,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,73-97,High_G,0.97,79.3,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,73-97,Low_G,0.97,91,N/A +Loft Insulation,LI_greater100,N/A,N/A,73-97,High_D,0.97,10.6,N/A +Loft Insulation,LI_greater100,N/A,N/A,73-97,Low_D,0.97,11.1,N/A +Loft Insulation,LI_greater100,N/A,N/A,73-97,High_E,0.97,12.1,N/A +Loft Insulation,LI_greater100,N/A,N/A,73-97,Low_E,0.97,13.2,N/A +Loft Insulation,LI_greater100,N/A,N/A,73-97,High_F,0.97,14.8,N/A +Loft Insulation,LI_greater100,N/A,N/A,73-97,Low_F,0.97,16.7,N/A +Loft Insulation,LI_greater100,N/A,N/A,73-97,High_G,0.97,19.2,N/A +Loft Insulation,LI_greater100,N/A,N/A,73-97,Low_G,0.97,22,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,73-97,High_D,0.86,169.6,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,73-97,Low_D,0.86,175.7,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,73-97,High_E,0.86,187.3,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,73-97,Low_E,0.86,202.3,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,73-97,High_F,0.86,225.6,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,73-97,Low_F,0.86,252.8,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,73-97,High_G,0.86,291.4,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,73-97,Low_G,0.86,334.6,N/A +Other Insulation,RIRI_res_in,N/A,N/A,73-97,High_D,0.86,175.5,N/A +Other Insulation,RIRI_res_in,N/A,N/A,73-97,Low_D,0.86,181.8,N/A +Other Insulation,RIRI_res_in,N/A,N/A,73-97,High_E,0.86,193.7,N/A +Other Insulation,RIRI_res_in,N/A,N/A,73-97,Low_E,0.86,209.2,N/A +Other Insulation,RIRI_res_in,N/A,N/A,73-97,High_F,0.86,233.2,N/A +Other Insulation,RIRI_res_in,N/A,N/A,73-97,Low_F,0.86,261.3,N/A +Other Insulation,RIRI_res_in,N/A,N/A,73-97,High_G,0.86,301.1,N/A +Other Insulation,RIRI_res_in,N/A,N/A,73-97,Low_G,0.86,345.7,N/A +Other Insulation,FRI,N/A,N/A,73-97,High_D,0.99,174.9,N/A +Other Insulation,FRI,N/A,N/A,73-97,Low_D,0.99,184.4,N/A +Other Insulation,FRI,N/A,N/A,73-97,High_E,0.99,199.9,N/A +Other Insulation,FRI,N/A,N/A,73-97,Low_E,0.99,218.5,N/A +Other Insulation,FRI,N/A,N/A,73-97,High_F,0.99,245.7,N/A +Other Insulation,FRI,N/A,N/A,73-97,Low_F,0.99,276.5,N/A +Other Insulation,FRI,N/A,N/A,73-97,High_G,0.99,318.9,N/A +Other Insulation,FRI,N/A,N/A,73-97,Low_G,0.99,365.5,N/A +Other Insulation,UFI,N/A,N/A,73-97,High_D,0.97,44.9,N/A +Other Insulation,UFI,N/A,N/A,73-97,Low_D,0.97,47.7,N/A +Other Insulation,UFI,N/A,N/A,73-97,High_E,0.97,52.3,N/A +Other Insulation,UFI,N/A,N/A,73-97,Low_E,0.97,57.8,N/A +Other Insulation,UFI,N/A,N/A,73-97,High_F,0.97,65.9,N/A +Other Insulation,UFI,N/A,N/A,73-97,Low_F,0.97,75,N/A +Other Insulation,UFI,N/A,N/A,73-97,High_G,0.97,87.5,N/A +Other Insulation,UFI,N/A,N/A,73-97,Low_G,0.97,101.3,N/A +Other Insulation,SFI,N/A,N/A,73-97,High_D,0.98,32.7,N/A +Other Insulation,SFI,N/A,N/A,73-97,Low_D,0.98,34.6,N/A +Other Insulation,SFI,N/A,N/A,73-97,High_E,0.98,37.6,N/A +Other Insulation,SFI,N/A,N/A,73-97,Low_E,0.98,41.3,N/A +Other Insulation,SFI,N/A,N/A,73-97,High_F,0.98,46.6,N/A +Other Insulation,SFI,N/A,N/A,73-97,Low_F,0.98,52.6,N/A +Other Insulation,SFI,N/A,N/A,73-97,High_G,0.98,60.9,N/A +Other Insulation,SFI,N/A,N/A,73-97,Low_G,0.98,70,N/A +Other Insulation,DP,N/A,N/A,73-97,High_D,1,19.4,N/A +Other Insulation,DP,N/A,N/A,73-97,Low_D,1,20.5,N/A +Other Insulation,DP,N/A,N/A,73-97,High_E,1,22.4,N/A +Other Insulation,DP,N/A,N/A,73-97,Low_E,1,24.6,N/A +Other Insulation,DP,N/A,N/A,73-97,High_F,1,27.8,N/A +Other Insulation,DP,N/A,N/A,73-97,Low_F,1,31.5,N/A +Other Insulation,DP,N/A,N/A,73-97,High_G,1,36.5,N/A +Other Insulation,DP,N/A,N/A,73-97,Low_G,1,42,N/A +Other Insulation,WG_singletodouble,N/A,N/A,73-97,High_D,1,68.6,N/A +Other Insulation,WG_singletodouble,N/A,N/A,73-97,Low_D,1,72.4,N/A +Other Insulation,WG_singletodouble,N/A,N/A,73-97,High_E,1,78.8,N/A +Other Insulation,WG_singletodouble,N/A,N/A,73-97,Low_E,1,86.6,N/A +Other Insulation,WG_singletodouble,N/A,N/A,73-97,High_F,1,98.1,N/A +Other Insulation,WG_singletodouble,N/A,N/A,73-97,Low_F,1,111.3,N/A +Other Insulation,WG_singletodouble,N/A,N/A,73-97,High_G,1,129.6,N/A +Other Insulation,WG_singletodouble,N/A,N/A,73-97,Low_G,1,149.8,N/A +Other Insulation,WG_improveddouble,N/A,N/A,73-97,High_D,1,13.1,N/A +Other Insulation,WG_improveddouble,N/A,N/A,73-97,Low_D,1,13.9,N/A +Other Insulation,WG_improveddouble,N/A,N/A,73-97,High_E,1,15.1,N/A +Other Insulation,WG_improveddouble,N/A,N/A,73-97,Low_E,1,16.6,N/A +Other Insulation,WG_improveddouble,N/A,N/A,73-97,High_F,1,18.7,N/A +Other Insulation,WG_improveddouble,N/A,N/A,73-97,Low_F,1,21.1,N/A +Other Insulation,WG_improveddouble,N/A,N/A,73-97,High_G,1,24.4,N/A +Other Insulation,WG_improveddouble,N/A,N/A,73-97,Low_G,1,27.9,N/A +Other Insulation,HPED,N/A,N/A,73-97,High_D,1,8.8,N/A +Other Insulation,HPED,N/A,N/A,73-97,Low_D,1,9.3,N/A +Other Insulation,HPED,N/A,N/A,73-97,High_E,1,10.1,N/A +Other Insulation,HPED,N/A,N/A,73-97,Low_E,1,11.1,N/A +Other Insulation,HPED,N/A,N/A,73-97,High_F,1,12.6,N/A +Other Insulation,HPED,N/A,N/A,73-97,Low_F,1,14.3,N/A +Other Insulation,HPED,N/A,N/A,73-97,High_G,1,16.6,N/A +Other Insulation,HPED,N/A,N/A,73-97,Low_G,1,19.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,73-97,High_B,0.95,162.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,73-97,Low_B,0.95,162.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,73-97,High_C,0.95,165.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,73-97,Low_C,0.95,169.4,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,73-97,High_D,0.95,177.4,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,73-97,Low_D,0.95,187.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,73-97,High_E,0.95,203.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,73-97,Low_E,0.95,222.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,73-97,High_F,0.95,249.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,73-97,Low_F,0.95,280.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,73-97,High_G,0.95,321.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,73-97,Low_G,0.95,367.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,73-97,High_B,0.95,212.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,73-97,Low_B,0.95,213,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,73-97,High_C,0.95,215.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,73-97,Low_C,0.95,221,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,73-97,High_D,0.95,231.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,73-97,Low_D,0.95,243.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,73-97,High_E,0.95,264.4,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,73-97,Low_E,0.95,288.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,73-97,High_F,0.95,322.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,73-97,Low_F,0.95,361.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,73-97,High_G,0.95,414.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,73-97,Low_G,0.95,471.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,73-97,High_B,0.95,201.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,73-97,Low_B,0.95,201.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,73-97,High_C,0.95,204.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,73-97,Low_C,0.95,209.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,73-97,High_D,0.95,219.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,73-97,Low_D,0.95,231.4,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,73-97,High_E,0.95,250.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,73-97,Low_E,0.95,273.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,73-97,High_F,0.95,306.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,73-97,Low_F,0.95,343.4,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,73-97,High_G,0.95,393.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,73-97,Low_G,0.95,448.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,73-97,High_B,0.95,155,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,73-97,Low_B,0.95,155.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,73-97,High_C,0.95,157.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,73-97,Low_C,0.95,161.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,73-97,High_D,0.95,169.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,73-97,Low_D,0.95,179,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,73-97,High_E,0.95,194.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,73-97,Low_E,0.95,212.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,73-97,High_F,0.95,238.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,73-97,Low_F,0.95,267.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,73-97,High_G,0.95,307.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,73-97,Low_G,0.95,350.9,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,73-97,High_B,0.95,78.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,73-97,Low_B,0.95,78.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,73-97,High_C,0.95,79.7,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,73-97,Low_C,0.95,81.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,73-97,High_D,0.95,85.3,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,73-97,Low_D,0.95,90.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,73-97,High_E,0.95,97.7,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,73-97,Low_E,0.95,106.7,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,73-97,High_F,0.95,119.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,73-97,Low_F,0.95,134.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,73-97,High_G,0.95,153.9,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,73-97,Low_G,0.95,175.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,73-97,High_B,0.95,101.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,73-97,Low_B,0.95,101.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,73-97,High_C,0.95,102.4,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,73-97,Low_C,0.95,104.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,73-97,High_D,0.95,109.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,73-97,Low_D,0.95,115.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,73-97,High_E,0.95,125.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,73-97,Low_E,0.95,136.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,73-97,High_F,0.95,153,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,73-97,Low_F,0.95,171.3,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,73-97,High_G,0.95,196.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,73-97,Low_G,0.95,223.9,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,73-97,High_B,0.95,56.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,73-97,Low_B,0.95,56.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,73-97,High_C,0.95,57.4,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,73-97,Low_C,0.95,58.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,73-97,High_D,0.95,61.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,73-97,Low_D,0.95,65.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,73-97,High_E,0.95,70.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,73-97,Low_E,0.95,77.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,73-97,High_F,0.95,86.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,73-97,Low_F,0.95,97.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,73-97,High_G,0.95,111.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,73-97,Low_G,0.95,127.3,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,73-97,High_B,0.95,52.6,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,73-97,Low_B,0.95,52.5,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,73-97,High_C,0.95,53,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,73-97,Low_C,0.95,54.2,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,73-97,High_D,0.95,56.5,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,73-97,Low_D,0.95,59.5,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,73-97,High_E,0.95,64.4,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,73-97,Low_E,0.95,70.1,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,73-97,High_F,0.95,78.5,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,73-97,Low_F,0.95,87.8,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,73-97,High_G,0.95,100.6,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,73-97,Low_G,0.95,114.7,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,73-97,High_B,0.95,43.6,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,73-97,Low_B,0.95,43.5,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,73-97,High_C,0.95,44,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,73-97,Low_C,0.95,45,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,73-97,High_D,0.95,46.9,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,73-97,Low_D,0.95,49.5,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,73-97,High_E,0.95,53.5,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,73-97,Low_E,0.95,58.3,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,73-97,High_F,0.95,65.3,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,73-97,Low_F,0.95,73.1,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,73-97,High_G,0.95,83.8,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,73-97,Low_G,0.95,95.5,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,73-97,High_B,0.95,35.5,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,73-97,Low_B,0.95,35.3,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,73-97,High_C,0.95,35.6,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,73-97,Low_C,0.95,36.3,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,73-97,High_D,0.95,37.8,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,73-97,Low_D,0.95,39.7,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,73-97,High_E,0.95,42.9,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,73-97,Low_E,0.95,46.6,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,73-97,High_F,0.95,52.1,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,73-97,Low_F,0.95,58.3,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,73-97,High_G,0.95,66.8,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,73-97,Low_G,0.95,76.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,73-97,High_B,0.95,195.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,73-97,Low_B,0.95,196.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,73-97,High_C,0.95,199.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,73-97,Low_C,0.95,205.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,73-97,High_D,0.95,215.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,73-97,Low_D,0.95,228.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,73-97,High_E,0.95,248.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,73-97,Low_E,0.95,271.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,73-97,High_F,0.95,304.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,73-97,Low_F,0.95,341.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,73-97,High_G,0.95,392.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,73-97,Low_G,0.95,446.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,73-97,High_B,0.95,234.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,73-97,Low_B,0.95,235.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,73-97,High_C,0.95,239.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,73-97,Low_C,0.95,245.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,73-97,High_D,0.95,257.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,73-97,Low_D,0.95,272.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,73-97,High_E,0.95,296.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,73-97,Low_E,0.95,323.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,73-97,High_F,0.95,362.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,73-97,Low_F,0.95,405.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,73-97,High_G,0.95,464.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,73-97,Low_G,0.95,528.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,73-97,High_B,0.95,250.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,73-97,Low_B,0.95,251.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,73-97,High_C,0.95,255.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,73-97,Low_C,0.95,262.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,73-97,High_D,0.95,275.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,73-97,Low_D,0.95,290.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,73-97,High_E,0.95,315.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,73-97,Low_E,0.95,344.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,73-97,High_F,0.95,385.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,73-97,Low_F,0.95,431.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,73-97,High_G,0.95,494.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,73-97,Low_G,0.95,562.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,73-97,High_B,0.95,242.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,73-97,Low_B,0.95,243.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,73-97,High_C,0.95,247.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,73-97,Low_C,0.95,254.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,73-97,High_D,0.95,266.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,73-97,Low_D,0.95,281.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,73-97,High_E,0.95,305.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,73-97,Low_E,0.95,333.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,73-97,High_F,0.95,373.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,73-97,Low_F,0.95,418.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,73-97,High_G,0.95,479.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,73-97,Low_G,0.95,545.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,73-97,High_B,0.95,162.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_B,0.95,162.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,73-97,High_C,0.95,165.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_C,0.95,169.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,73-97,High_D,0.95,177.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_D,0.95,187.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,73-97,High_E,0.95,203.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_E,0.95,222.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,73-97,High_F,0.95,249.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_F,0.95,280.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,73-97,High_G,0.95,321.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_G,0.95,367.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,73-97,High_B,0.95,212.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_B,0.95,213,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,73-97,High_C,0.95,215.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_C,0.95,221,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,73-97,High_D,0.95,231.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_D,0.95,243.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,73-97,High_E,0.95,264.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_E,0.95,288.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,73-97,High_F,0.95,322.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_F,0.95,361.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,73-97,High_G,0.95,414.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_G,0.95,471.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,73-97,High_B,0.95,201.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_B,0.95,201.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,73-97,High_C,0.95,204.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_C,0.95,209.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,73-97,High_D,0.95,219.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_D,0.95,231.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,73-97,High_E,0.95,250.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_E,0.95,273.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,73-97,High_F,0.95,306.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_F,0.95,343.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,73-97,High_G,0.95,393.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_G,0.95,448.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,73-97,High_B,0.95,155,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_B,0.95,155.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,73-97,High_C,0.95,157.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_C,0.95,161.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,73-97,High_D,0.95,169.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_D,0.95,179,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,73-97,High_E,0.95,194.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_E,0.95,212.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,73-97,High_F,0.95,238.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_F,0.95,267.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,73-97,High_G,0.95,307.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_G,0.95,350.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,73-97,High_B,0.95,78.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_B,0.95,78.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,73-97,High_C,0.95,79.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_C,0.95,81.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,73-97,High_D,0.95,85.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_D,0.95,90.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,73-97,High_E,0.95,97.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_E,0.95,106.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,73-97,High_F,0.95,119.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_F,0.95,134.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,73-97,High_G,0.95,153.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_G,0.95,175.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,73-97,High_B,0.95,101.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_B,0.95,101.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,73-97,High_C,0.95,102.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_C,0.95,104.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,73-97,High_D,0.95,109.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_D,0.95,115.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,73-97,High_E,0.95,125.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_E,0.95,136.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,73-97,High_F,0.95,153,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_F,0.95,171.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,73-97,High_G,0.95,196.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_G,0.95,223.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,73-97,High_B,0.95,56.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_B,0.95,56.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,73-97,High_C,0.95,57.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_C,0.95,58.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,73-97,High_D,0.95,61.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_D,0.95,65.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,73-97,High_E,0.95,70.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_E,0.95,77.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,73-97,High_F,0.95,86.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_F,0.95,97.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,73-97,High_G,0.95,111.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_G,0.95,127.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,73-97,High_B,0.95,52.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_B,0.95,52.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,73-97,High_C,0.95,53,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_C,0.95,54.2,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,73-97,High_D,0.95,56.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_D,0.95,59.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,73-97,High_E,0.95,64.4,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_E,0.95,70.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,73-97,High_F,0.95,78.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_F,0.95,87.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,73-97,High_G,0.95,100.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_G,0.95,114.7,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,73-97,High_B,0.95,43.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_B,0.95,43.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,73-97,High_C,0.95,44,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_C,0.95,45,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,73-97,High_D,0.95,46.9,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_D,0.95,49.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,73-97,High_E,0.95,53.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_E,0.95,58.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,73-97,High_F,0.95,65.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_F,0.95,73.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,73-97,High_G,0.95,83.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_G,0.95,95.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,73-97,High_B,0.95,35.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_B,0.95,35.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,73-97,High_C,0.95,35.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_C,0.95,36.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,73-97,High_D,0.95,37.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_D,0.95,39.7,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,73-97,High_E,0.95,42.9,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_E,0.95,46.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,73-97,High_F,0.95,52.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_F,0.95,58.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,73-97,High_G,0.95,66.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_G,0.95,76.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,73-97,High_B,0.95,195.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_B,0.95,196.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,73-97,High_C,0.95,199.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_C,0.95,205.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,73-97,High_D,0.95,215.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_D,0.95,228.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,73-97,High_E,0.95,248.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_E,0.95,271.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,73-97,High_F,0.95,304.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_F,0.95,341.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,73-97,High_G,0.95,392.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_G,0.95,446.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,73-97,High_B,0.95,234.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_B,0.95,235.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,73-97,High_C,0.95,239.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_C,0.95,245.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,73-97,High_D,0.95,257.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_D,0.95,272.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,73-97,High_E,0.95,296.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_E,0.95,323.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,73-97,High_F,0.95,362.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_F,0.95,405.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,73-97,High_G,0.95,464.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_G,0.95,528.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,73-97,High_B,0.95,250.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_B,0.95,251.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,73-97,High_C,0.95,255.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_C,0.95,262.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,73-97,High_D,0.95,275.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_D,0.95,290.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,73-97,High_E,0.95,315.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_E,0.95,344.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,73-97,High_F,0.95,385.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_F,0.95,431.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,73-97,High_G,0.95,494.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_G,0.95,562.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,73-97,High_B,0.95,242.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_B,0.95,243.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,73-97,High_C,0.95,247.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_C,0.95,254.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,73-97,High_D,0.95,266.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_D,0.95,281.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,73-97,High_E,0.95,305.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_E,0.95,333.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,73-97,High_F,0.95,373.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_F,0.95,418.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,73-97,High_G,0.95,479.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_G,0.95,545.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,73-97,High_B,0.95,162.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_B,0.95,162.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,73-97,High_C,0.95,165.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_C,0.95,169.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,73-97,High_D,0.95,177.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_D,0.95,187.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,73-97,High_E,0.95,203.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_E,0.95,222.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,73-97,High_F,0.95,249.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_F,0.95,280.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,73-97,High_G,0.95,321.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_G,0.95,367.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,73-97,High_B,0.95,212.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_B,0.95,213,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,73-97,High_C,0.95,215.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_C,0.95,221,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,73-97,High_D,0.95,231.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_D,0.95,243.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,73-97,High_E,0.95,264.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_E,0.95,288.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,73-97,High_F,0.95,322.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_F,0.95,361.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,73-97,High_G,0.95,414.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_G,0.95,471.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,73-97,High_B,0.95,201.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_B,0.95,201.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,73-97,High_C,0.95,204.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_C,0.95,209.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,73-97,High_D,0.95,219.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_D,0.95,231.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,73-97,High_E,0.95,250.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_E,0.95,273.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,73-97,High_F,0.95,306.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_F,0.95,343.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,73-97,High_G,0.95,393.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_G,0.95,448.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,73-97,High_B,0.95,155,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_B,0.95,155.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,73-97,High_C,0.95,157.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_C,0.95,161.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,73-97,High_D,0.95,169.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_D,0.95,179,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,73-97,High_E,0.95,194.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_E,0.95,212.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,73-97,High_F,0.95,238.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_F,0.95,267.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,73-97,High_G,0.95,307.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_G,0.95,350.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,73-97,High_B,0.95,78.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_B,0.95,78.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,73-97,High_C,0.95,79.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_C,0.95,81.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,73-97,High_D,0.95,85.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_D,0.95,90.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,73-97,High_E,0.95,97.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_E,0.95,106.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,73-97,High_F,0.95,119.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_F,0.95,134.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,73-97,High_G,0.95,153.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_G,0.95,175.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,73-97,High_B,0.95,101.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_B,0.95,101.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,73-97,High_C,0.95,102.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_C,0.95,104.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,73-97,High_D,0.95,109.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_D,0.95,115.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,73-97,High_E,0.95,125.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_E,0.95,136.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,73-97,High_F,0.95,153,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_F,0.95,171.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,73-97,High_G,0.95,196.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_G,0.95,223.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,73-97,High_B,0.95,56.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_B,0.95,56.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,73-97,High_C,0.95,57.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_C,0.95,58.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,73-97,High_D,0.95,61.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_D,0.95,65.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,73-97,High_E,0.95,70.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_E,0.95,77.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,73-97,High_F,0.95,86.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_F,0.95,97.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,73-97,High_G,0.95,111.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_G,0.95,127.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,73-97,High_B,0.95,52.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_B,0.95,52.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,73-97,High_C,0.95,53,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_C,0.95,54.2,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,73-97,High_D,0.95,56.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_D,0.95,59.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,73-97,High_E,0.95,64.4,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_E,0.95,70.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,73-97,High_F,0.95,78.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_F,0.95,87.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,73-97,High_G,0.95,100.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_G,0.95,114.7,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,73-97,High_B,0.95,43.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_B,0.95,43.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,73-97,High_C,0.95,44,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_C,0.95,45,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,73-97,High_D,0.95,46.9,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_D,0.95,49.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,73-97,High_E,0.95,53.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_E,0.95,58.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,73-97,High_F,0.95,65.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_F,0.95,73.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,73-97,High_G,0.95,83.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_G,0.95,95.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,73-97,High_B,0.95,35.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_B,0.95,35.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,73-97,High_C,0.95,35.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_C,0.95,36.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,73-97,High_D,0.95,37.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_D,0.95,39.7,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,73-97,High_E,0.95,42.9,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_E,0.95,46.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,73-97,High_F,0.95,52.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_F,0.95,58.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,73-97,High_G,0.95,66.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_G,0.95,76.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,73-97,High_B,0.95,195.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_B,0.95,196.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,73-97,High_C,0.95,199.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_C,0.95,205.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,73-97,High_D,0.95,215.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_D,0.95,228.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,73-97,High_E,0.95,248.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_E,0.95,271.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,73-97,High_F,0.95,304.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_F,0.95,341.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,73-97,High_G,0.95,392.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_G,0.95,446.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,73-97,High_B,0.95,234.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_B,0.95,235.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,73-97,High_C,0.95,239.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_C,0.95,245.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,73-97,High_D,0.95,257.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_D,0.95,272.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,73-97,High_E,0.95,296.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_E,0.95,323.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,73-97,High_F,0.95,362.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_F,0.95,405.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,73-97,High_G,0.95,464.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_G,0.95,528.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,73-97,High_B,0.95,250.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_B,0.95,251.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,73-97,High_C,0.95,255.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_C,0.95,262.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,73-97,High_D,0.95,275.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_D,0.95,290.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,73-97,High_E,0.95,315.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_E,0.95,344.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,73-97,High_F,0.95,385.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_F,0.95,431.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,73-97,High_G,0.95,494.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_G,0.95,562.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,73-97,High_B,0.95,242.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_B,0.95,243.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,73-97,High_C,0.95,247.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_C,0.95,254.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,73-97,High_D,0.95,266.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_D,0.95,281.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,73-97,High_E,0.95,305.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_E,0.95,333.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,73-97,High_F,0.95,373.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_F,0.95,418.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,73-97,High_G,0.95,479.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_G,0.95,545.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,73-97,High_B,0.95,162.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,73-97,Low_B,0.95,162.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,73-97,High_C,0.95,165.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,73-97,Low_C,0.95,169.4,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,73-97,High_D,0.95,177.4,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,73-97,Low_D,0.95,187.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,73-97,High_E,0.95,203.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,73-97,Low_E,0.95,222.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,73-97,High_F,0.95,249.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,73-97,Low_F,0.95,280.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,73-97,High_G,0.95,321.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,73-97,Low_G,0.95,367.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,73-97,High_B,0.95,212.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,73-97,Low_B,0.95,213,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,73-97,High_C,0.95,215.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,73-97,Low_C,0.95,221,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,73-97,High_D,0.95,231.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,73-97,Low_D,0.95,243.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,73-97,High_E,0.95,264.4,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,73-97,Low_E,0.95,288.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,73-97,High_F,0.95,322.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,73-97,Low_F,0.95,361.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,73-97,High_G,0.95,414.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,73-97,Low_G,0.95,471.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,73-97,High_B,0.95,201.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,73-97,Low_B,0.95,201.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,73-97,High_C,0.95,204.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,73-97,Low_C,0.95,209.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,73-97,High_D,0.95,219.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,73-97,Low_D,0.95,231.4,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,73-97,High_E,0.95,250.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,73-97,Low_E,0.95,273.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,73-97,High_F,0.95,306.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,73-97,Low_F,0.95,343.4,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,73-97,High_G,0.95,393.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,73-97,Low_G,0.95,448.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,73-97,High_B,0.95,155,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,73-97,Low_B,0.95,155.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,73-97,High_C,0.95,157.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,73-97,Low_C,0.95,161.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,73-97,High_D,0.95,169.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,73-97,Low_D,0.95,179,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,73-97,High_E,0.95,194.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,73-97,Low_E,0.95,212.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,73-97,High_F,0.95,238.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,73-97,Low_F,0.95,267.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,73-97,High_G,0.95,307.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,73-97,Low_G,0.95,350.9,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,73-97,High_B,0.95,78.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,73-97,Low_B,0.95,78.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,73-97,High_C,0.95,79.7,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,73-97,Low_C,0.95,81.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,73-97,High_D,0.95,85.3,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,73-97,Low_D,0.95,90.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,73-97,High_E,0.95,97.7,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,73-97,Low_E,0.95,106.7,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,73-97,High_F,0.95,119.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,73-97,Low_F,0.95,134.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,73-97,High_G,0.95,153.9,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,73-97,Low_G,0.95,175.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,73-97,High_B,0.95,101.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,73-97,Low_B,0.95,101.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,73-97,High_C,0.95,102.4,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,73-97,Low_C,0.95,104.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,73-97,High_D,0.95,109.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,73-97,Low_D,0.95,115.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,73-97,High_E,0.95,125.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,73-97,Low_E,0.95,136.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,73-97,High_F,0.95,153,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,73-97,Low_F,0.95,171.3,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,73-97,High_G,0.95,196.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,73-97,Low_G,0.95,223.9,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,73-97,High_B,0.95,56.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,73-97,Low_B,0.95,56.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,73-97,High_C,0.95,57.4,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,73-97,Low_C,0.95,58.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,73-97,High_D,0.95,61.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,73-97,Low_D,0.95,65.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,73-97,High_E,0.95,70.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,73-97,Low_E,0.95,77.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,73-97,High_F,0.95,86.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,73-97,Low_F,0.95,97.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,73-97,High_G,0.95,111.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,73-97,Low_G,0.95,127.3,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,73-97,High_B,0.95,52.6,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,73-97,Low_B,0.95,52.5,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,73-97,High_C,0.95,53,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,73-97,Low_C,0.95,54.2,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,73-97,High_D,0.95,56.5,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,73-97,Low_D,0.95,59.5,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,73-97,High_E,0.95,64.4,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,73-97,Low_E,0.95,70.1,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,73-97,High_F,0.95,78.5,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,73-97,Low_F,0.95,87.8,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,73-97,High_G,0.95,100.6,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,73-97,Low_G,0.95,114.7,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,73-97,High_B,0.95,43.6,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,73-97,Low_B,0.95,43.5,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,73-97,High_C,0.95,44,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,73-97,Low_C,0.95,45,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,73-97,High_D,0.95,46.9,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,73-97,Low_D,0.95,49.5,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,73-97,High_E,0.95,53.5,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,73-97,Low_E,0.95,58.3,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,73-97,High_F,0.95,65.3,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,73-97,Low_F,0.95,73.1,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,73-97,High_G,0.95,83.8,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,73-97,Low_G,0.95,95.5,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,73-97,High_B,0.95,35.5,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,73-97,Low_B,0.95,35.3,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,73-97,High_C,0.95,35.6,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,73-97,Low_C,0.95,36.3,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,73-97,High_D,0.95,37.8,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,73-97,Low_D,0.95,39.7,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,73-97,High_E,0.95,42.9,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,73-97,Low_E,0.95,46.6,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,73-97,High_F,0.95,52.1,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,73-97,Low_F,0.95,58.3,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,73-97,High_G,0.95,66.8,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,73-97,Low_G,0.95,76.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,73-97,High_B,0.95,195.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,73-97,Low_B,0.95,196.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,73-97,High_C,0.95,199.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,73-97,Low_C,0.95,205.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,73-97,High_D,0.95,215.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,73-97,Low_D,0.95,228.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,73-97,High_E,0.95,248.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,73-97,Low_E,0.95,271.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,73-97,High_F,0.95,304.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,73-97,Low_F,0.95,341.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,73-97,High_G,0.95,392.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,73-97,Low_G,0.95,446.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,73-97,High_B,0.95,234.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,73-97,Low_B,0.95,235.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,73-97,High_C,0.95,239.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,73-97,Low_C,0.95,245.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,73-97,High_D,0.95,257.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,73-97,Low_D,0.95,272.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,73-97,High_E,0.95,296.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,73-97,Low_E,0.95,323.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,73-97,High_F,0.95,362.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,73-97,Low_F,0.95,405.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,73-97,High_G,0.95,464.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,73-97,Low_G,0.95,528.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,73-97,High_B,0.95,250.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,73-97,Low_B,0.95,251.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,73-97,High_C,0.95,255.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,73-97,Low_C,0.95,262.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,73-97,High_D,0.95,275.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,73-97,Low_D,0.95,290.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,73-97,High_E,0.95,315.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,73-97,Low_E,0.95,344.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,73-97,High_F,0.95,385.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,73-97,Low_F,0.95,431.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,73-97,High_G,0.95,494.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,73-97,Low_G,0.95,562.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,73-97,High_B,0.95,242.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,73-97,Low_B,0.95,243.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,73-97,High_C,0.95,247.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,73-97,Low_C,0.95,254.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,73-97,High_D,0.95,266.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,73-97,Low_D,0.95,281.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,73-97,High_E,0.95,305.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,73-97,Low_E,0.95,333.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,73-97,High_F,0.95,373.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,73-97,Low_F,0.95,418.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,73-97,High_G,0.95,479.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,73-97,Low_G,0.95,545.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,73-97,High_B,0.95,162.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_B,0.95,162.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,73-97,High_C,0.95,165.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_C,0.95,169.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,73-97,High_D,0.95,177.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_D,0.95,187.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,73-97,High_E,0.95,203.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_E,0.95,222.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,73-97,High_F,0.95,249.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_F,0.95,280.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,73-97,High_G,0.95,321.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,73-97,Low_G,0.95,367.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,73-97,High_B,0.95,212.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_B,0.95,213,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,73-97,High_C,0.95,215.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_C,0.95,221,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,73-97,High_D,0.95,231.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_D,0.95,243.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,73-97,High_E,0.95,264.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_E,0.95,288.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,73-97,High_F,0.95,322.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_F,0.95,361.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,73-97,High_G,0.95,414.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,73-97,Low_G,0.95,471.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,73-97,High_B,0.95,201.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_B,0.95,201.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,73-97,High_C,0.95,204.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_C,0.95,209.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,73-97,High_D,0.95,219.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_D,0.95,231.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,73-97,High_E,0.95,250.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_E,0.95,273.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,73-97,High_F,0.95,306.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_F,0.95,343.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,73-97,High_G,0.95,393.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,73-97,Low_G,0.95,448.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,73-97,High_B,0.95,155,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_B,0.95,155.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,73-97,High_C,0.95,157.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_C,0.95,161.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,73-97,High_D,0.95,169.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_D,0.95,179,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,73-97,High_E,0.95,194.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_E,0.95,212.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,73-97,High_F,0.95,238.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_F,0.95,267.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,73-97,High_G,0.95,307.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,73-97,Low_G,0.95,350.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,73-97,High_B,0.95,78.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_B,0.95,78.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,73-97,High_C,0.95,79.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_C,0.95,81.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,73-97,High_D,0.95,85.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_D,0.95,90.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,73-97,High_E,0.95,97.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_E,0.95,106.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,73-97,High_F,0.95,119.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_F,0.95,134.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,73-97,High_G,0.95,153.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,73-97,Low_G,0.95,175.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,73-97,High_B,0.95,101.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_B,0.95,101.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,73-97,High_C,0.95,102.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_C,0.95,104.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,73-97,High_D,0.95,109.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_D,0.95,115.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,73-97,High_E,0.95,125.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_E,0.95,136.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,73-97,High_F,0.95,153,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_F,0.95,171.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,73-97,High_G,0.95,196.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,73-97,Low_G,0.95,223.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,73-97,High_B,0.95,56.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_B,0.95,56.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,73-97,High_C,0.95,57.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_C,0.95,58.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,73-97,High_D,0.95,61.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_D,0.95,65.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,73-97,High_E,0.95,70.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_E,0.95,77.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,73-97,High_F,0.95,86.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_F,0.95,97.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,73-97,High_G,0.95,111.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,73-97,Low_G,0.95,127.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,73-97,High_B,0.95,52.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_B,0.95,52.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,73-97,High_C,0.95,53,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_C,0.95,54.2,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,73-97,High_D,0.95,56.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_D,0.95,59.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,73-97,High_E,0.95,64.4,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_E,0.95,70.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,73-97,High_F,0.95,78.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_F,0.95,87.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,73-97,High_G,0.95,100.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,73-97,Low_G,0.95,114.7,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,73-97,High_B,0.95,43.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_B,0.95,43.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,73-97,High_C,0.95,44,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_C,0.95,45,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,73-97,High_D,0.95,46.9,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_D,0.95,49.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,73-97,High_E,0.95,53.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_E,0.95,58.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,73-97,High_F,0.95,65.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_F,0.95,73.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,73-97,High_G,0.95,83.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,73-97,Low_G,0.95,95.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,73-97,High_B,0.95,35.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_B,0.95,35.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,73-97,High_C,0.95,35.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_C,0.95,36.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,73-97,High_D,0.95,37.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_D,0.95,39.7,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,73-97,High_E,0.95,42.9,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_E,0.95,46.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,73-97,High_F,0.95,52.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_F,0.95,58.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,73-97,High_G,0.95,66.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,73-97,Low_G,0.95,76.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,73-97,High_B,0.95,195.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_B,0.95,196.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,73-97,High_C,0.95,199.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_C,0.95,205.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,73-97,High_D,0.95,215.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_D,0.95,228.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,73-97,High_E,0.95,248.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_E,0.95,271.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,73-97,High_F,0.95,304.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_F,0.95,341.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,73-97,High_G,0.95,392.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,73-97,Low_G,0.95,446.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,73-97,High_B,0.95,234.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_B,0.95,235.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,73-97,High_C,0.95,239.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_C,0.95,245.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,73-97,High_D,0.95,257.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_D,0.95,272.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,73-97,High_E,0.95,296.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_E,0.95,323.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,73-97,High_F,0.95,362.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_F,0.95,405.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,73-97,High_G,0.95,464.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,73-97,Low_G,0.95,528.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,73-97,High_B,0.95,250.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_B,0.95,251.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,73-97,High_C,0.95,255.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_C,0.95,262.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,73-97,High_D,0.95,275.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_D,0.95,290.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,73-97,High_E,0.95,315.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_E,0.95,344.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,73-97,High_F,0.95,385.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_F,0.95,431.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,73-97,High_G,0.95,494.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,73-97,Low_G,0.95,562.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,73-97,High_B,0.95,242.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_B,0.95,243.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,73-97,High_C,0.95,247.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_C,0.95,254.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,73-97,High_D,0.95,266.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_D,0.95,281.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,73-97,High_E,0.95,305.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_E,0.95,333.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,73-97,High_F,0.95,373.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_F,0.95,418.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,73-97,High_G,0.95,479.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,73-97,Low_G,0.95,545.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,98-199,High_B,0.95,186.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,98-199,Low_B,0.95,187.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,98-199,High_C,0.95,191.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,98-199,Low_C,0.95,196.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,98-199,High_D,0.95,206.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,98-199,Low_D,0.95,218.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,98-199,High_E,0.95,237.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,98-199,Low_E,0.95,259.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,98-199,High_F,0.95,291.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,98-199,Low_F,0.95,325.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,98-199,High_G,0.95,373.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,98-199,Low_G,0.95,424.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,98-199,High_B,0.95,244.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,98-199,Low_B,0.95,245.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,98-199,High_C,0.95,250.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,98-199,Low_C,0.95,257,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,98-199,High_D,0.95,269.4,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,98-199,Low_D,0.95,284.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,98-199,High_E,0.95,308.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,98-199,Low_E,0.95,336.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,98-199,High_F,0.95,376.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,98-199,Low_F,0.95,421.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,98-199,High_G,0.95,481.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,98-199,Low_G,0.95,547.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,98-199,High_B,0.95,232,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,98-199,Low_B,0.95,232.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,98-199,High_C,0.95,237.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,98-199,Low_C,0.95,243.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,98-199,High_D,0.95,255.4,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,98-199,Low_D,0.95,270.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,98-199,High_E,0.95,293.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,98-199,Low_E,0.95,319.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,98-199,High_F,0.95,357.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,98-199,Low_F,0.95,400,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,98-199,High_G,0.95,457.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,98-199,Low_G,0.95,520,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,98-199,High_B,0.95,178,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,98-199,Low_B,0.95,178.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,98-199,High_C,0.95,182.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,98-199,Low_C,0.95,187.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,98-199,High_D,0.95,197,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,98-199,Low_D,0.95,208.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,98-199,High_E,0.95,226.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,98-199,Low_E,0.95,247.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,98-199,High_F,0.95,278,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,98-199,Low_F,0.95,311.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,98-199,High_G,0.95,356.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,98-199,Low_G,0.95,405.9,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,98-199,High_B,0.95,90.3,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,98-199,Low_B,0.95,90.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,98-199,High_C,0.95,92.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,98-199,Low_C,0.95,94.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,98-199,High_D,0.95,99,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,98-199,Low_D,0.95,104.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,98-199,High_E,0.95,113.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,98-199,Low_E,0.95,124.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,98-199,High_F,0.95,139.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,98-199,Low_F,0.95,155.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,98-199,High_G,0.95,178.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,98-199,Low_G,0.95,203.3,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,98-199,High_B,0.95,116.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,98-199,Low_B,0.95,116.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,98-199,High_C,0.95,118.4,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,98-199,Low_C,0.95,121.4,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,98-199,High_D,0.95,127.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,98-199,Low_D,0.95,134.4,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,98-199,High_E,0.95,145.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,98-199,Low_E,0.95,159,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,98-199,High_F,0.95,178.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,98-199,Low_F,0.95,199.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,98-199,High_G,0.95,228.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,98-199,Low_G,0.95,259.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,98-199,High_B,0.95,64.9,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,98-199,Low_B,0.95,65.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,98-199,High_C,0.95,66.3,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,98-199,Low_C,0.95,68.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,98-199,High_D,0.95,71.4,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,98-199,Low_D,0.95,75.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,98-199,High_E,0.95,82.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,98-199,Low_E,0.95,89.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,98-199,High_F,0.95,100.7,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,98-199,Low_F,0.95,112.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,98-199,High_G,0.95,129.4,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,98-199,Low_G,0.95,147.4,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,98-199,High_B,0.95,60.3,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,98-199,Low_B,0.95,60.3,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,98-199,High_C,0.95,61.1,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,98-199,Low_C,0.95,62.6,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,98-199,High_D,0.95,65.4,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,98-199,Low_D,0.95,69.1,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,98-199,High_E,0.95,74.9,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,98-199,Low_E,0.95,81.7,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,98-199,High_F,0.95,91.6,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,98-199,Low_F,0.95,102.6,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,98-199,High_G,0.95,117.7,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,98-199,Low_G,0.95,134.1,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,98-199,High_B,0.95,51.4,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,98-199,Low_B,0.95,51.1,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,98-199,High_C,0.95,51.5,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,98-199,Low_C,0.95,52.5,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,98-199,High_D,0.95,54.7,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,98-199,Low_D,0.95,57.5,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,98-199,High_E,0.95,62.2,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,98-199,Low_E,0.95,67.8,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,98-199,High_F,0.95,76,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,98-199,Low_F,0.95,85.2,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,98-199,High_G,0.95,97.9,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,98-199,Low_G,0.95,111.8,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,98-199,High_B,0.95,40.8,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,98-199,Low_B,0.95,40.7,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,98-199,High_C,0.95,41.1,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,98-199,Low_C,0.95,42,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,98-199,High_D,0.95,43.8,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,98-199,Low_D,0.95,46.2,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,98-199,High_E,0.95,50,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,98-199,Low_E,0.95,54.5,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,98-199,High_F,0.95,61.1,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,98-199,Low_F,0.95,68.5,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,98-199,High_G,0.95,78.6,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,98-199,Low_G,0.95,89.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,98-199,High_B,0.95,222.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,98-199,Low_B,0.95,224.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,98-199,High_C,0.95,229.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,98-199,Low_C,0.95,237,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,98-199,High_D,0.95,250,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,98-199,Low_D,0.95,265.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,98-199,High_E,0.95,289.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,98-199,Low_E,0.95,316.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,98-199,High_F,0.95,355.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,98-199,Low_F,0.95,398.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,98-199,High_G,0.95,456.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,98-199,Low_G,0.95,518.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,98-199,High_B,0.95,267,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,98-199,Low_B,0.95,269.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,98-199,High_C,0.95,275.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,98-199,Low_C,0.95,284,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,98-199,High_D,0.95,299.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,98-199,Low_D,0.95,317.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,98-199,High_E,0.95,345.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,98-199,Low_E,0.95,377.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,98-199,High_F,0.95,423.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,98-199,Low_F,0.95,473.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,98-199,High_G,0.95,541.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,98-199,Low_G,0.95,614.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,98-199,High_B,0.95,285.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,98-199,Low_B,0.95,287.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,98-199,High_C,0.95,294.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,98-199,Low_C,0.95,303.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,98-199,High_D,0.95,319.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,98-199,Low_D,0.95,338.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,98-199,High_E,0.95,368.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,98-199,Low_E,0.95,402.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,98-199,High_F,0.95,450.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,98-199,Low_F,0.95,503.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,98-199,High_G,0.95,575.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,98-199,Low_G,0.95,653.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,98-199,High_B,0.95,276.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,98-199,Low_B,0.95,278.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,98-199,High_C,0.95,284.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,98-199,Low_C,0.95,293.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,98-199,High_D,0.95,309.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,98-199,Low_D,0.95,328,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,98-199,High_E,0.95,357,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,98-199,Low_E,0.95,389.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,98-199,High_F,0.95,436.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,98-199,Low_F,0.95,488.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,98-199,High_G,0.95,558.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,98-199,Low_G,0.95,634.3,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,98-199,High_B,0.95,135.7,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,98-199,Low_B,0.95,135.8,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,98-199,High_C,0.95,137.8,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,98-199,Low_C,0.95,141.3,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,98-199,High_D,0.95,147.9,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,98-199,Low_D,0.95,156.3,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,98-199,High_E,0.95,169.7,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,98-199,Low_E,0.95,185.2,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,98-199,High_F,0.95,207.7,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,98-199,Low_F,0.95,232.7,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,98-199,High_G,0.95,267,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,98-199,Low_G,0.95,304.3,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,98-199,High_B,0.95,145.9,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,98-199,Low_B,0.95,146.1,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,98-199,High_C,0.95,148.2,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,98-199,Low_C,0.95,151.8,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,98-199,High_D,0.95,158.9,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,98-199,Low_D,0.95,167.9,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,98-199,High_E,0.95,182.2,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,98-199,Low_E,0.95,198.8,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,98-199,High_F,0.95,222.8,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,98-199,Low_F,0.95,249.6,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,98-199,High_G,0.95,286.3,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,98-199,Low_G,0.95,326.2,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,98-199,High_B,0.95,155.7,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,98-199,Low_B,0.95,155.9,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,98-199,High_C,0.95,158.1,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,98-199,Low_C,0.95,161.9,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,98-199,High_D,0.95,169.4,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,98-199,Low_D,0.95,178.9,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,98-199,High_E,0.95,194.1,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,98-199,Low_E,0.95,211.7,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,98-199,High_F,0.95,237.2,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,98-199,Low_F,0.95,265.7,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,98-199,High_G,0.95,304.6,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,98-199,Low_G,0.95,347.1,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,98-199,High_B,0.95,19.3,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,98-199,Low_B,0.95,19.1,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,98-199,High_C,0.95,19.2,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,98-199,Low_C,0.95,19.6,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,98-199,High_D,0.95,20.4,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,98-199,Low_D,0.95,21.6,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,98-199,High_E,0.95,23.5,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,98-199,Low_E,0.95,25.8,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,98-199,High_F,0.95,29.3,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,98-199,Low_F,0.95,33.1,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,98-199,High_G,0.95,38.4,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,98-199,Low_G,0.95,44.3,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,98-199,High_B,0.95,28.8,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,98-199,Low_B,0.95,28.7,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,98-199,High_C,0.95,29,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,98-199,Low_C,0.95,29.6,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,98-199,High_D,0.95,30.9,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,98-199,Low_D,0.95,32.6,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,98-199,High_E,0.95,35.3,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,98-199,Low_E,0.95,38.5,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,98-199,High_F,0.95,43.2,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,98-199,Low_F,0.95,48.4,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,98-199,High_G,0.95,55.6,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,98-199,Low_G,0.95,63.5,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,98-199,High_D,0.97,49.4,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,98-199,Low_D,0.97,52.2,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,98-199,High_E,0.97,56.7,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,98-199,Low_E,0.97,62,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,98-199,High_F,0.97,69.6,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,98-199,Low_F,0.97,78.2,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,98-199,High_G,0.97,89.9,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,98-199,Low_G,0.97,102.8,N/A +Loft Insulation,LI_greater100,N/A,N/A,98-199,High_D,0.97,12,N/A +Loft Insulation,LI_greater100,N/A,N/A,98-199,Low_D,0.97,12.7,N/A +Loft Insulation,LI_greater100,N/A,N/A,98-199,High_E,0.97,13.7,N/A +Loft Insulation,LI_greater100,N/A,N/A,98-199,Low_E,0.97,15,N/A +Loft Insulation,LI_greater100,N/A,N/A,98-199,High_F,0.97,16.9,N/A +Loft Insulation,LI_greater100,N/A,N/A,98-199,Low_F,0.97,19,N/A +Loft Insulation,LI_greater100,N/A,N/A,98-199,High_G,0.97,21.9,N/A +Loft Insulation,LI_greater100,N/A,N/A,98-199,Low_G,0.97,25,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,98-199,High_D,0.86,185.2,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,98-199,Low_D,0.86,192.4,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,98-199,High_E,0.86,205.6,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,98-199,Low_E,0.86,222.2,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,98-199,High_F,0.86,247.6,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,98-199,Low_F,0.86,277,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,98-199,High_G,0.86,318.3,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,98-199,Low_G,0.86,364.4,N/A +Other Insulation,RIRI_res_in,N/A,N/A,98-199,High_D,0.86,191.9,N/A +Other Insulation,RIRI_res_in,N/A,N/A,98-199,Low_D,0.86,199.4,N/A +Other Insulation,RIRI_res_in,N/A,N/A,98-199,High_E,0.86,213,N/A +Other Insulation,RIRI_res_in,N/A,N/A,98-199,Low_E,0.86,230.1,N/A +Other Insulation,RIRI_res_in,N/A,N/A,98-199,High_F,0.86,256.3,N/A +Other Insulation,RIRI_res_in,N/A,N/A,98-199,Low_F,0.86,286.7,N/A +Other Insulation,RIRI_res_in,N/A,N/A,98-199,High_G,0.86,329.5,N/A +Other Insulation,RIRI_res_in,N/A,N/A,98-199,Low_G,0.86,377.1,N/A +Other Insulation,FRI,N/A,N/A,98-199,High_D,0.99,199,N/A +Other Insulation,FRI,N/A,N/A,98-199,Low_D,0.99,210.3,N/A +Other Insulation,FRI,N/A,N/A,98-199,High_E,0.99,228.5,N/A +Other Insulation,FRI,N/A,N/A,98-199,Low_E,0.99,249.7,N/A +Other Insulation,FRI,N/A,N/A,98-199,High_F,0.99,280.5,N/A +Other Insulation,FRI,N/A,N/A,98-199,Low_F,0.99,315,N/A +Other Insulation,FRI,N/A,N/A,98-199,High_G,0.99,362.3,N/A +Other Insulation,FRI,N/A,N/A,98-199,Low_G,0.99,414,N/A +Other Insulation,UFI,N/A,N/A,98-199,High_D,0.97,48.2,N/A +Other Insulation,UFI,N/A,N/A,98-199,Low_D,0.97,51.2,N/A +Other Insulation,UFI,N/A,N/A,98-199,High_E,0.97,56.2,N/A +Other Insulation,UFI,N/A,N/A,98-199,Low_E,0.97,62,N/A +Other Insulation,UFI,N/A,N/A,98-199,High_F,0.97,70.6,N/A +Other Insulation,UFI,N/A,N/A,98-199,Low_F,0.97,80.3,N/A +Other Insulation,UFI,N/A,N/A,98-199,High_G,0.97,93.7,N/A +Other Insulation,UFI,N/A,N/A,98-199,Low_G,0.97,108.4,N/A +Other Insulation,SFI,N/A,N/A,98-199,High_D,0.98,31.6,N/A +Other Insulation,SFI,N/A,N/A,98-199,Low_D,0.98,33.4,N/A +Other Insulation,SFI,N/A,N/A,98-199,High_E,0.98,36.3,N/A +Other Insulation,SFI,N/A,N/A,98-199,Low_E,0.98,39.9,N/A +Other Insulation,SFI,N/A,N/A,98-199,High_F,0.98,45,N/A +Other Insulation,SFI,N/A,N/A,98-199,Low_F,0.98,50.8,N/A +Other Insulation,SFI,N/A,N/A,98-199,High_G,0.98,58.9,N/A +Other Insulation,SFI,N/A,N/A,98-199,Low_G,0.98,67.7,N/A +Other Insulation,DP,N/A,N/A,98-199,High_D,1,24.4,N/A +Other Insulation,DP,N/A,N/A,98-199,Low_D,1,25.8,N/A +Other Insulation,DP,N/A,N/A,98-199,High_E,1,28.2,N/A +Other Insulation,DP,N/A,N/A,98-199,Low_E,1,31,N/A +Other Insulation,DP,N/A,N/A,98-199,High_F,1,35.1,N/A +Other Insulation,DP,N/A,N/A,98-199,Low_F,1,39.7,N/A +Other Insulation,DP,N/A,N/A,98-199,High_G,1,46,N/A +Other Insulation,DP,N/A,N/A,98-199,Low_G,1,52.9,N/A +Other Insulation,WG_singletodouble,N/A,N/A,98-199,High_D,1,81.1,N/A +Other Insulation,WG_singletodouble,N/A,N/A,98-199,Low_D,1,86,N/A +Other Insulation,WG_singletodouble,N/A,N/A,98-199,High_E,1,93.8,N/A +Other Insulation,WG_singletodouble,N/A,N/A,98-199,Low_E,1,103,N/A +Other Insulation,WG_singletodouble,N/A,N/A,98-199,High_F,1,116.4,N/A +Other Insulation,WG_singletodouble,N/A,N/A,98-199,Low_F,1,131.4,N/A +Other Insulation,WG_singletodouble,N/A,N/A,98-199,High_G,1,152.1,N/A +Other Insulation,WG_singletodouble,N/A,N/A,98-199,Low_G,1,174.7,N/A +Other Insulation,WG_improveddouble,N/A,N/A,98-199,High_D,1,15.1,N/A +Other Insulation,WG_improveddouble,N/A,N/A,98-199,Low_D,1,16,N/A +Other Insulation,WG_improveddouble,N/A,N/A,98-199,High_E,1,17.4,N/A +Other Insulation,WG_improveddouble,N/A,N/A,98-199,Low_E,1,19.1,N/A +Other Insulation,WG_improveddouble,N/A,N/A,98-199,High_F,1,21.5,N/A +Other Insulation,WG_improveddouble,N/A,N/A,98-199,Low_F,1,24.2,N/A +Other Insulation,WG_improveddouble,N/A,N/A,98-199,High_G,1,28,N/A +Other Insulation,WG_improveddouble,N/A,N/A,98-199,Low_G,1,32.1,N/A +Other Insulation,HPED,N/A,N/A,98-199,High_D,1,7.9,N/A +Other Insulation,HPED,N/A,N/A,98-199,Low_D,1,8.4,N/A +Other Insulation,HPED,N/A,N/A,98-199,High_E,1,9.1,N/A +Other Insulation,HPED,N/A,N/A,98-199,Low_E,1,10,N/A +Other Insulation,HPED,N/A,N/A,98-199,High_F,1,11.3,N/A +Other Insulation,HPED,N/A,N/A,98-199,Low_F,1,12.8,N/A +Other Insulation,HPED,N/A,N/A,98-199,High_G,1,14.9,N/A +Other Insulation,HPED,N/A,N/A,98-199,Low_G,1,17.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,98-199,High_B,0.95,186.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,98-199,Low_B,0.95,187.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,98-199,High_C,0.95,191.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,98-199,Low_C,0.95,196.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,98-199,High_D,0.95,206.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,98-199,Low_D,0.95,218.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,98-199,High_E,0.95,237.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,98-199,Low_E,0.95,259.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,98-199,High_F,0.95,291.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,98-199,Low_F,0.95,325.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,98-199,High_G,0.95,373.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,98-199,Low_G,0.95,424.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,98-199,High_B,0.95,244.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,98-199,Low_B,0.95,245.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,98-199,High_C,0.95,250.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,98-199,Low_C,0.95,257,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,98-199,High_D,0.95,269.4,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,98-199,Low_D,0.95,284.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,98-199,High_E,0.95,308.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,98-199,Low_E,0.95,336.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,98-199,High_F,0.95,376.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,98-199,Low_F,0.95,421.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,98-199,High_G,0.95,481.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,98-199,Low_G,0.95,547.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,98-199,High_B,0.95,232,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,98-199,Low_B,0.95,232.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,98-199,High_C,0.95,237.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,98-199,Low_C,0.95,243.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,98-199,High_D,0.95,255.4,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,98-199,Low_D,0.95,270.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,98-199,High_E,0.95,293.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,98-199,Low_E,0.95,319.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,98-199,High_F,0.95,357.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,98-199,Low_F,0.95,400,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,98-199,High_G,0.95,457.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,98-199,Low_G,0.95,520,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,98-199,High_B,0.95,178,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,98-199,Low_B,0.95,178.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,98-199,High_C,0.95,182.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,98-199,Low_C,0.95,187.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,98-199,High_D,0.95,197,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,98-199,Low_D,0.95,208.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,98-199,High_E,0.95,226.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,98-199,Low_E,0.95,247.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,98-199,High_F,0.95,278,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,98-199,Low_F,0.95,311.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,98-199,High_G,0.95,356.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,98-199,Low_G,0.95,405.9,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,98-199,High_B,0.95,90.3,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,98-199,Low_B,0.95,90.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,98-199,High_C,0.95,92.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,98-199,Low_C,0.95,94.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,98-199,High_D,0.95,99,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,98-199,Low_D,0.95,104.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,98-199,High_E,0.95,113.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,98-199,Low_E,0.95,124.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,98-199,High_F,0.95,139.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,98-199,Low_F,0.95,155.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,98-199,High_G,0.95,178.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,98-199,Low_G,0.95,203.3,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,98-199,High_B,0.95,116.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,98-199,Low_B,0.95,116.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,98-199,High_C,0.95,118.4,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,98-199,Low_C,0.95,121.4,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,98-199,High_D,0.95,127.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,98-199,Low_D,0.95,134.4,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,98-199,High_E,0.95,145.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,98-199,Low_E,0.95,159,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,98-199,High_F,0.95,178.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,98-199,Low_F,0.95,199.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,98-199,High_G,0.95,228.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,98-199,Low_G,0.95,259.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,98-199,High_B,0.95,64.9,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,98-199,Low_B,0.95,65.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,98-199,High_C,0.95,66.3,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,98-199,Low_C,0.95,68.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,98-199,High_D,0.95,71.4,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,98-199,Low_D,0.95,75.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,98-199,High_E,0.95,82.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,98-199,Low_E,0.95,89.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,98-199,High_F,0.95,100.7,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,98-199,Low_F,0.95,112.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,98-199,High_G,0.95,129.4,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,98-199,Low_G,0.95,147.4,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,98-199,High_B,0.95,60.3,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,98-199,Low_B,0.95,60.3,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,98-199,High_C,0.95,61.1,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,98-199,Low_C,0.95,62.6,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,98-199,High_D,0.95,65.4,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,98-199,Low_D,0.95,69.1,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,98-199,High_E,0.95,74.9,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,98-199,Low_E,0.95,81.7,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,98-199,High_F,0.95,91.6,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,98-199,Low_F,0.95,102.6,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,98-199,High_G,0.95,117.7,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,98-199,Low_G,0.95,134.1,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,98-199,High_B,0.95,51.4,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,98-199,Low_B,0.95,51.1,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,98-199,High_C,0.95,51.5,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,98-199,Low_C,0.95,52.5,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,98-199,High_D,0.95,54.7,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,98-199,Low_D,0.95,57.5,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,98-199,High_E,0.95,62.2,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,98-199,Low_E,0.95,67.8,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,98-199,High_F,0.95,76,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,98-199,Low_F,0.95,85.2,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,98-199,High_G,0.95,97.9,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,98-199,Low_G,0.95,111.8,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,98-199,High_B,0.95,40.8,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,98-199,Low_B,0.95,40.7,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,98-199,High_C,0.95,41.1,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,98-199,Low_C,0.95,42,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,98-199,High_D,0.95,43.8,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,98-199,Low_D,0.95,46.2,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,98-199,High_E,0.95,50,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,98-199,Low_E,0.95,54.5,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,98-199,High_F,0.95,61.1,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,98-199,Low_F,0.95,68.5,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,98-199,High_G,0.95,78.6,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,98-199,Low_G,0.95,89.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,98-199,High_B,0.95,222.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,98-199,Low_B,0.95,224.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,98-199,High_C,0.95,229.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,98-199,Low_C,0.95,237,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,98-199,High_D,0.95,250,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,98-199,Low_D,0.95,265.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,98-199,High_E,0.95,289.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,98-199,Low_E,0.95,316.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,98-199,High_F,0.95,355.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,98-199,Low_F,0.95,398.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,98-199,High_G,0.95,456.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,98-199,Low_G,0.95,518.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,98-199,High_B,0.95,267,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,98-199,Low_B,0.95,269.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,98-199,High_C,0.95,275.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,98-199,Low_C,0.95,284,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,98-199,High_D,0.95,299.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,98-199,Low_D,0.95,317.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,98-199,High_E,0.95,345.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,98-199,Low_E,0.95,377.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,98-199,High_F,0.95,423.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,98-199,Low_F,0.95,473.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,98-199,High_G,0.95,541.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,98-199,Low_G,0.95,614.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,98-199,High_B,0.95,285.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,98-199,Low_B,0.95,287.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,98-199,High_C,0.95,294.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,98-199,Low_C,0.95,303.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,98-199,High_D,0.95,319.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,98-199,Low_D,0.95,338.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,98-199,High_E,0.95,368.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,98-199,Low_E,0.95,402.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,98-199,High_F,0.95,450.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,98-199,Low_F,0.95,503.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,98-199,High_G,0.95,575.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,98-199,Low_G,0.95,653.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,98-199,High_B,0.95,276.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,98-199,Low_B,0.95,278.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,98-199,High_C,0.95,284.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,98-199,Low_C,0.95,293.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,98-199,High_D,0.95,309.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,98-199,Low_D,0.95,328,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,98-199,High_E,0.95,357,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,98-199,Low_E,0.95,389.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,98-199,High_F,0.95,436.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,98-199,Low_F,0.95,488.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,98-199,High_G,0.95,558.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,98-199,Low_G,0.95,634.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,98-199,High_B,0.95,186.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_B,0.95,187.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,98-199,High_C,0.95,191.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_C,0.95,196.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,98-199,High_D,0.95,206.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_D,0.95,218.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,98-199,High_E,0.95,237.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_E,0.95,259.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,98-199,High_F,0.95,291.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_F,0.95,325.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,98-199,High_G,0.95,373.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_G,0.95,424.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,98-199,High_B,0.95,244.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_B,0.95,245.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,98-199,High_C,0.95,250.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_C,0.95,257,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,98-199,High_D,0.95,269.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_D,0.95,284.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,98-199,High_E,0.95,308.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_E,0.95,336.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,98-199,High_F,0.95,376.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_F,0.95,421.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,98-199,High_G,0.95,481.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_G,0.95,547.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,98-199,High_B,0.95,232,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_B,0.95,232.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,98-199,High_C,0.95,237.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_C,0.95,243.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,98-199,High_D,0.95,255.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_D,0.95,270.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,98-199,High_E,0.95,293.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_E,0.95,319.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,98-199,High_F,0.95,357.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_F,0.95,400,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,98-199,High_G,0.95,457.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_G,0.95,520,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,98-199,High_B,0.95,178,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_B,0.95,178.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,98-199,High_C,0.95,182.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_C,0.95,187.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,98-199,High_D,0.95,197,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_D,0.95,208.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,98-199,High_E,0.95,226.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_E,0.95,247.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,98-199,High_F,0.95,278,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_F,0.95,311.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,98-199,High_G,0.95,356.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_G,0.95,405.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,98-199,High_B,0.95,90.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_B,0.95,90.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,98-199,High_C,0.95,92.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_C,0.95,94.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,98-199,High_D,0.95,99,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_D,0.95,104.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,98-199,High_E,0.95,113.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_E,0.95,124.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,98-199,High_F,0.95,139.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_F,0.95,155.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,98-199,High_G,0.95,178.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_G,0.95,203.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,98-199,High_B,0.95,116.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_B,0.95,116.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,98-199,High_C,0.95,118.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_C,0.95,121.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,98-199,High_D,0.95,127.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_D,0.95,134.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,98-199,High_E,0.95,145.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_E,0.95,159,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,98-199,High_F,0.95,178.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_F,0.95,199.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,98-199,High_G,0.95,228.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_G,0.95,259.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,98-199,High_B,0.95,64.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_B,0.95,65.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,98-199,High_C,0.95,66.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_C,0.95,68.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,98-199,High_D,0.95,71.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_D,0.95,75.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,98-199,High_E,0.95,82.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_E,0.95,89.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,98-199,High_F,0.95,100.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_F,0.95,112.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,98-199,High_G,0.95,129.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_G,0.95,147.4,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,98-199,High_B,0.95,60.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_B,0.95,60.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,98-199,High_C,0.95,61.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_C,0.95,62.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,98-199,High_D,0.95,65.4,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_D,0.95,69.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,98-199,High_E,0.95,74.9,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_E,0.95,81.7,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,98-199,High_F,0.95,91.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_F,0.95,102.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,98-199,High_G,0.95,117.7,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_G,0.95,134.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,98-199,High_B,0.95,51.4,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_B,0.95,51.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,98-199,High_C,0.95,51.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_C,0.95,52.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,98-199,High_D,0.95,54.7,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_D,0.95,57.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,98-199,High_E,0.95,62.2,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_E,0.95,67.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,98-199,High_F,0.95,76,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_F,0.95,85.2,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,98-199,High_G,0.95,97.9,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_G,0.95,111.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,98-199,High_B,0.95,40.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_B,0.95,40.7,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,98-199,High_C,0.95,41.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_C,0.95,42,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,98-199,High_D,0.95,43.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_D,0.95,46.2,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,98-199,High_E,0.95,50,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_E,0.95,54.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,98-199,High_F,0.95,61.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_F,0.95,68.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,98-199,High_G,0.95,78.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_G,0.95,89.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,98-199,High_B,0.95,222.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_B,0.95,224.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,98-199,High_C,0.95,229.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_C,0.95,237,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,98-199,High_D,0.95,250,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_D,0.95,265.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,98-199,High_E,0.95,289.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_E,0.95,316.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,98-199,High_F,0.95,355.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_F,0.95,398.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,98-199,High_G,0.95,456.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_G,0.95,518.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,98-199,High_B,0.95,267,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_B,0.95,269.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,98-199,High_C,0.95,275.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_C,0.95,284,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,98-199,High_D,0.95,299.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_D,0.95,317.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,98-199,High_E,0.95,345.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_E,0.95,377.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,98-199,High_F,0.95,423.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_F,0.95,473.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,98-199,High_G,0.95,541.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_G,0.95,614.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,98-199,High_B,0.95,285.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_B,0.95,287.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,98-199,High_C,0.95,294.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_C,0.95,303.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,98-199,High_D,0.95,319.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_D,0.95,338.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,98-199,High_E,0.95,368.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_E,0.95,402.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,98-199,High_F,0.95,450.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_F,0.95,503.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,98-199,High_G,0.95,575.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_G,0.95,653.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,98-199,High_B,0.95,276.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_B,0.95,278.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,98-199,High_C,0.95,284.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_C,0.95,293.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,98-199,High_D,0.95,309.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_D,0.95,328,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,98-199,High_E,0.95,357,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_E,0.95,389.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,98-199,High_F,0.95,436.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_F,0.95,488.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,98-199,High_G,0.95,558.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_G,0.95,634.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,98-199,High_B,0.95,186.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_B,0.95,187.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,98-199,High_C,0.95,191.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_C,0.95,196.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,98-199,High_D,0.95,206.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_D,0.95,218.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,98-199,High_E,0.95,237.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_E,0.95,259.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,98-199,High_F,0.95,291.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_F,0.95,325.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,98-199,High_G,0.95,373.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_G,0.95,424.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,98-199,High_B,0.95,244.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_B,0.95,245.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,98-199,High_C,0.95,250.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_C,0.95,257,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,98-199,High_D,0.95,269.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_D,0.95,284.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,98-199,High_E,0.95,308.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_E,0.95,336.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,98-199,High_F,0.95,376.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_F,0.95,421.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,98-199,High_G,0.95,481.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_G,0.95,547.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,98-199,High_B,0.95,232,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_B,0.95,232.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,98-199,High_C,0.95,237.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_C,0.95,243.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,98-199,High_D,0.95,255.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_D,0.95,270.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,98-199,High_E,0.95,293.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_E,0.95,319.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,98-199,High_F,0.95,357.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_F,0.95,400,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,98-199,High_G,0.95,457.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_G,0.95,520,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,98-199,High_B,0.95,178,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_B,0.95,178.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,98-199,High_C,0.95,182.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_C,0.95,187.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,98-199,High_D,0.95,197,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_D,0.95,208.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,98-199,High_E,0.95,226.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_E,0.95,247.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,98-199,High_F,0.95,278,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_F,0.95,311.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,98-199,High_G,0.95,356.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_G,0.95,405.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,98-199,High_B,0.95,90.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_B,0.95,90.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,98-199,High_C,0.95,92.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_C,0.95,94.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,98-199,High_D,0.95,99,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_D,0.95,104.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,98-199,High_E,0.95,113.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_E,0.95,124.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,98-199,High_F,0.95,139.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_F,0.95,155.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,98-199,High_G,0.95,178.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_G,0.95,203.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,98-199,High_B,0.95,116.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_B,0.95,116.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,98-199,High_C,0.95,118.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_C,0.95,121.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,98-199,High_D,0.95,127.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_D,0.95,134.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,98-199,High_E,0.95,145.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_E,0.95,159,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,98-199,High_F,0.95,178.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_F,0.95,199.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,98-199,High_G,0.95,228.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_G,0.95,259.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,98-199,High_B,0.95,64.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_B,0.95,65.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,98-199,High_C,0.95,66.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_C,0.95,68.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,98-199,High_D,0.95,71.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_D,0.95,75.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,98-199,High_E,0.95,82.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_E,0.95,89.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,98-199,High_F,0.95,100.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_F,0.95,112.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,98-199,High_G,0.95,129.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_G,0.95,147.4,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,98-199,High_B,0.95,60.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_B,0.95,60.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,98-199,High_C,0.95,61.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_C,0.95,62.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,98-199,High_D,0.95,65.4,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_D,0.95,69.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,98-199,High_E,0.95,74.9,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_E,0.95,81.7,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,98-199,High_F,0.95,91.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_F,0.95,102.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,98-199,High_G,0.95,117.7,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_G,0.95,134.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,98-199,High_B,0.95,51.4,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_B,0.95,51.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,98-199,High_C,0.95,51.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_C,0.95,52.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,98-199,High_D,0.95,54.7,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_D,0.95,57.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,98-199,High_E,0.95,62.2,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_E,0.95,67.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,98-199,High_F,0.95,76,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_F,0.95,85.2,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,98-199,High_G,0.95,97.9,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_G,0.95,111.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,98-199,High_B,0.95,40.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_B,0.95,40.7,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,98-199,High_C,0.95,41.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_C,0.95,42,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,98-199,High_D,0.95,43.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_D,0.95,46.2,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,98-199,High_E,0.95,50,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_E,0.95,54.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,98-199,High_F,0.95,61.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_F,0.95,68.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,98-199,High_G,0.95,78.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_G,0.95,89.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,98-199,High_B,0.95,222.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_B,0.95,224.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,98-199,High_C,0.95,229.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_C,0.95,237,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,98-199,High_D,0.95,250,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_D,0.95,265.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,98-199,High_E,0.95,289.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_E,0.95,316.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,98-199,High_F,0.95,355.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_F,0.95,398.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,98-199,High_G,0.95,456.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_G,0.95,518.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,98-199,High_B,0.95,267,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_B,0.95,269.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,98-199,High_C,0.95,275.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_C,0.95,284,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,98-199,High_D,0.95,299.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_D,0.95,317.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,98-199,High_E,0.95,345.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_E,0.95,377.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,98-199,High_F,0.95,423.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_F,0.95,473.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,98-199,High_G,0.95,541.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_G,0.95,614.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,98-199,High_B,0.95,285.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_B,0.95,287.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,98-199,High_C,0.95,294.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_C,0.95,303.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,98-199,High_D,0.95,319.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_D,0.95,338.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,98-199,High_E,0.95,368.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_E,0.95,402.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,98-199,High_F,0.95,450.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_F,0.95,503.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,98-199,High_G,0.95,575.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_G,0.95,653.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,98-199,High_B,0.95,276.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_B,0.95,278.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,98-199,High_C,0.95,284.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_C,0.95,293.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,98-199,High_D,0.95,309.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_D,0.95,328,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,98-199,High_E,0.95,357,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_E,0.95,389.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,98-199,High_F,0.95,436.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_F,0.95,488.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,98-199,High_G,0.95,558.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_G,0.95,634.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,98-199,High_B,0.95,186.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,98-199,Low_B,0.95,187.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,98-199,High_C,0.95,191.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,98-199,Low_C,0.95,196.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,98-199,High_D,0.95,206.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,98-199,Low_D,0.95,218.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,98-199,High_E,0.95,237.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,98-199,Low_E,0.95,259.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,98-199,High_F,0.95,291.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,98-199,Low_F,0.95,325.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,98-199,High_G,0.95,373.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,98-199,Low_G,0.95,424.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,98-199,High_B,0.95,244.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,98-199,Low_B,0.95,245.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,98-199,High_C,0.95,250.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,98-199,Low_C,0.95,257,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,98-199,High_D,0.95,269.4,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,98-199,Low_D,0.95,284.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,98-199,High_E,0.95,308.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,98-199,Low_E,0.95,336.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,98-199,High_F,0.95,376.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,98-199,Low_F,0.95,421.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,98-199,High_G,0.95,481.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,98-199,Low_G,0.95,547.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,98-199,High_B,0.95,232,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,98-199,Low_B,0.95,232.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,98-199,High_C,0.95,237.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,98-199,Low_C,0.95,243.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,98-199,High_D,0.95,255.4,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,98-199,Low_D,0.95,270.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,98-199,High_E,0.95,293.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,98-199,Low_E,0.95,319.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,98-199,High_F,0.95,357.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,98-199,Low_F,0.95,400,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,98-199,High_G,0.95,457.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,98-199,Low_G,0.95,520,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,98-199,High_B,0.95,178,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,98-199,Low_B,0.95,178.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,98-199,High_C,0.95,182.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,98-199,Low_C,0.95,187.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,98-199,High_D,0.95,197,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,98-199,Low_D,0.95,208.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,98-199,High_E,0.95,226.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,98-199,Low_E,0.95,247.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,98-199,High_F,0.95,278,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,98-199,Low_F,0.95,311.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,98-199,High_G,0.95,356.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,98-199,Low_G,0.95,405.9,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,98-199,High_B,0.95,90.3,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,98-199,Low_B,0.95,90.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,98-199,High_C,0.95,92.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,98-199,Low_C,0.95,94.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,98-199,High_D,0.95,99,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,98-199,Low_D,0.95,104.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,98-199,High_E,0.95,113.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,98-199,Low_E,0.95,124.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,98-199,High_F,0.95,139.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,98-199,Low_F,0.95,155.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,98-199,High_G,0.95,178.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,98-199,Low_G,0.95,203.3,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,98-199,High_B,0.95,116.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,98-199,Low_B,0.95,116.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,98-199,High_C,0.95,118.4,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,98-199,Low_C,0.95,121.4,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,98-199,High_D,0.95,127.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,98-199,Low_D,0.95,134.4,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,98-199,High_E,0.95,145.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,98-199,Low_E,0.95,159,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,98-199,High_F,0.95,178.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,98-199,Low_F,0.95,199.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,98-199,High_G,0.95,228.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,98-199,Low_G,0.95,259.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,98-199,High_B,0.95,64.9,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,98-199,Low_B,0.95,65.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,98-199,High_C,0.95,66.3,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,98-199,Low_C,0.95,68.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,98-199,High_D,0.95,71.4,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,98-199,Low_D,0.95,75.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,98-199,High_E,0.95,82.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,98-199,Low_E,0.95,89.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,98-199,High_F,0.95,100.7,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,98-199,Low_F,0.95,112.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,98-199,High_G,0.95,129.4,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,98-199,Low_G,0.95,147.4,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,98-199,High_B,0.95,60.3,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,98-199,Low_B,0.95,60.3,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,98-199,High_C,0.95,61.1,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,98-199,Low_C,0.95,62.6,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,98-199,High_D,0.95,65.4,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,98-199,Low_D,0.95,69.1,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,98-199,High_E,0.95,74.9,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,98-199,Low_E,0.95,81.7,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,98-199,High_F,0.95,91.6,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,98-199,Low_F,0.95,102.6,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,98-199,High_G,0.95,117.7,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,98-199,Low_G,0.95,134.1,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,98-199,High_B,0.95,51.4,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,98-199,Low_B,0.95,51.1,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,98-199,High_C,0.95,51.5,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,98-199,Low_C,0.95,52.5,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,98-199,High_D,0.95,54.7,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,98-199,Low_D,0.95,57.5,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,98-199,High_E,0.95,62.2,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,98-199,Low_E,0.95,67.8,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,98-199,High_F,0.95,76,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,98-199,Low_F,0.95,85.2,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,98-199,High_G,0.95,97.9,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,98-199,Low_G,0.95,111.8,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,98-199,High_B,0.95,40.8,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,98-199,Low_B,0.95,40.7,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,98-199,High_C,0.95,41.1,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,98-199,Low_C,0.95,42,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,98-199,High_D,0.95,43.8,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,98-199,Low_D,0.95,46.2,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,98-199,High_E,0.95,50,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,98-199,Low_E,0.95,54.5,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,98-199,High_F,0.95,61.1,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,98-199,Low_F,0.95,68.5,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,98-199,High_G,0.95,78.6,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,98-199,Low_G,0.95,89.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,98-199,High_B,0.95,222.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,98-199,Low_B,0.95,224.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,98-199,High_C,0.95,229.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,98-199,Low_C,0.95,237,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,98-199,High_D,0.95,250,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,98-199,Low_D,0.95,265.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,98-199,High_E,0.95,289.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,98-199,Low_E,0.95,316.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,98-199,High_F,0.95,355.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,98-199,Low_F,0.95,398.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,98-199,High_G,0.95,456.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,98-199,Low_G,0.95,518.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,98-199,High_B,0.95,267,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,98-199,Low_B,0.95,269.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,98-199,High_C,0.95,275.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,98-199,Low_C,0.95,284,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,98-199,High_D,0.95,299.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,98-199,Low_D,0.95,317.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,98-199,High_E,0.95,345.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,98-199,Low_E,0.95,377.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,98-199,High_F,0.95,423.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,98-199,Low_F,0.95,473.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,98-199,High_G,0.95,541.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,98-199,Low_G,0.95,614.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,98-199,High_B,0.95,285.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,98-199,Low_B,0.95,287.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,98-199,High_C,0.95,294.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,98-199,Low_C,0.95,303.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,98-199,High_D,0.95,319.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,98-199,Low_D,0.95,338.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,98-199,High_E,0.95,368.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,98-199,Low_E,0.95,402.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,98-199,High_F,0.95,450.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,98-199,Low_F,0.95,503.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,98-199,High_G,0.95,575.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,98-199,Low_G,0.95,653.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,98-199,High_B,0.95,276.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,98-199,Low_B,0.95,278.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,98-199,High_C,0.95,284.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,98-199,Low_C,0.95,293.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,98-199,High_D,0.95,309.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,98-199,Low_D,0.95,328,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,98-199,High_E,0.95,357,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,98-199,Low_E,0.95,389.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,98-199,High_F,0.95,436.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,98-199,Low_F,0.95,488.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,98-199,High_G,0.95,558.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,98-199,Low_G,0.95,634.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,98-199,High_B,0.95,186.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_B,0.95,187.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,98-199,High_C,0.95,191.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_C,0.95,196.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,98-199,High_D,0.95,206.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_D,0.95,218.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,98-199,High_E,0.95,237.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_E,0.95,259.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,98-199,High_F,0.95,291.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_F,0.95,325.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,98-199,High_G,0.95,373.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,98-199,Low_G,0.95,424.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,98-199,High_B,0.95,244.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_B,0.95,245.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,98-199,High_C,0.95,250.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_C,0.95,257,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,98-199,High_D,0.95,269.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_D,0.95,284.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,98-199,High_E,0.95,308.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_E,0.95,336.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,98-199,High_F,0.95,376.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_F,0.95,421.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,98-199,High_G,0.95,481.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,98-199,Low_G,0.95,547.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,98-199,High_B,0.95,232,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_B,0.95,232.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,98-199,High_C,0.95,237.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_C,0.95,243.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,98-199,High_D,0.95,255.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_D,0.95,270.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,98-199,High_E,0.95,293.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_E,0.95,319.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,98-199,High_F,0.95,357.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_F,0.95,400,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,98-199,High_G,0.95,457.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,98-199,Low_G,0.95,520,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,98-199,High_B,0.95,178,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_B,0.95,178.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,98-199,High_C,0.95,182.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_C,0.95,187.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,98-199,High_D,0.95,197,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_D,0.95,208.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,98-199,High_E,0.95,226.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_E,0.95,247.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,98-199,High_F,0.95,278,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_F,0.95,311.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,98-199,High_G,0.95,356.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,98-199,Low_G,0.95,405.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,98-199,High_B,0.95,90.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_B,0.95,90.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,98-199,High_C,0.95,92.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_C,0.95,94.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,98-199,High_D,0.95,99,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_D,0.95,104.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,98-199,High_E,0.95,113.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_E,0.95,124.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,98-199,High_F,0.95,139.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_F,0.95,155.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,98-199,High_G,0.95,178.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,98-199,Low_G,0.95,203.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,98-199,High_B,0.95,116.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_B,0.95,116.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,98-199,High_C,0.95,118.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_C,0.95,121.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,98-199,High_D,0.95,127.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_D,0.95,134.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,98-199,High_E,0.95,145.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_E,0.95,159,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,98-199,High_F,0.95,178.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_F,0.95,199.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,98-199,High_G,0.95,228.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,98-199,Low_G,0.95,259.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,98-199,High_B,0.95,64.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_B,0.95,65.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,98-199,High_C,0.95,66.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_C,0.95,68.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,98-199,High_D,0.95,71.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_D,0.95,75.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,98-199,High_E,0.95,82.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_E,0.95,89.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,98-199,High_F,0.95,100.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_F,0.95,112.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,98-199,High_G,0.95,129.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,98-199,Low_G,0.95,147.4,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,98-199,High_B,0.95,60.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_B,0.95,60.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,98-199,High_C,0.95,61.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_C,0.95,62.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,98-199,High_D,0.95,65.4,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_D,0.95,69.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,98-199,High_E,0.95,74.9,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_E,0.95,81.7,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,98-199,High_F,0.95,91.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_F,0.95,102.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,98-199,High_G,0.95,117.7,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,98-199,Low_G,0.95,134.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,98-199,High_B,0.95,51.4,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_B,0.95,51.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,98-199,High_C,0.95,51.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_C,0.95,52.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,98-199,High_D,0.95,54.7,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_D,0.95,57.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,98-199,High_E,0.95,62.2,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_E,0.95,67.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,98-199,High_F,0.95,76,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_F,0.95,85.2,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,98-199,High_G,0.95,97.9,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,98-199,Low_G,0.95,111.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,98-199,High_B,0.95,40.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_B,0.95,40.7,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,98-199,High_C,0.95,41.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_C,0.95,42,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,98-199,High_D,0.95,43.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_D,0.95,46.2,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,98-199,High_E,0.95,50,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_E,0.95,54.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,98-199,High_F,0.95,61.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_F,0.95,68.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,98-199,High_G,0.95,78.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,98-199,Low_G,0.95,89.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,98-199,High_B,0.95,222.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_B,0.95,224.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,98-199,High_C,0.95,229.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_C,0.95,237,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,98-199,High_D,0.95,250,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_D,0.95,265.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,98-199,High_E,0.95,289.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_E,0.95,316.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,98-199,High_F,0.95,355.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_F,0.95,398.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,98-199,High_G,0.95,456.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,98-199,Low_G,0.95,518.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,98-199,High_B,0.95,267,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_B,0.95,269.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,98-199,High_C,0.95,275.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_C,0.95,284,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,98-199,High_D,0.95,299.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_D,0.95,317.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,98-199,High_E,0.95,345.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_E,0.95,377.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,98-199,High_F,0.95,423.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_F,0.95,473.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,98-199,High_G,0.95,541.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,98-199,Low_G,0.95,614.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,98-199,High_B,0.95,285.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_B,0.95,287.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,98-199,High_C,0.95,294.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_C,0.95,303.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,98-199,High_D,0.95,319.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_D,0.95,338.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,98-199,High_E,0.95,368.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_E,0.95,402.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,98-199,High_F,0.95,450.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_F,0.95,503.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,98-199,High_G,0.95,575.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,98-199,Low_G,0.95,653.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,98-199,High_B,0.95,276.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_B,0.95,278.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,98-199,High_C,0.95,284.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_C,0.95,293.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,98-199,High_D,0.95,309.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_D,0.95,328,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,98-199,High_E,0.95,357,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_E,0.95,389.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,98-199,High_F,0.95,436.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_F,0.95,488.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,98-199,High_G,0.95,558.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,98-199,Low_G,0.95,634.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,200,High_B,0.95,293.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,200,Low_B,0.95,297.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,200,High_C,0.95,306.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,200,Low_C,0.95,317.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,200,High_D,0.95,335.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,200,Low_D,0.95,357.4,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,200,High_E,0.95,389.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,200,Low_E,0.95,426.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,200,High_F,0.95,477.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,200,Low_F,0.95,533,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,200,High_G,0.95,608.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.55,N/A,N/A,200,Low_G,0.95,688.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,200,High_B,0.95,385.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,200,Low_B,0.95,390.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,200,High_C,0.95,401.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,200,Low_C,0.95,415.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,200,High_D,0.95,438.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,200,Low_D,0.95,465.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,200,High_E,0.95,507.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,200,Low_E,0.95,553.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,200,High_F,0.95,618.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,200,Low_F,0.95,689.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,200,High_G,0.95,784.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.23,N/A,N/A,200,Low_G,0.95,887.4,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,200,High_B,0.95,364.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,200,Low_B,0.95,369.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,200,High_C,0.95,380.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,200,Low_C,0.95,393.4,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,200,High_D,0.95,415.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,200,Low_D,0.95,441.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,200,High_E,0.95,481,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,200,Low_E,0.95,524.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,200,High_F,0.95,586.8,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,200,Low_F,0.95,654.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,200,High_G,0.95,745.5,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.3,N/A,N/A,200,Low_G,0.95,843.4,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,200,High_B,0.95,280,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,200,Low_B,0.95,283.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,200,High_C,0.95,292.2,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,200,Low_C,0.95,302.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,200,High_D,0.95,320.3,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,200,Low_D,0.95,340.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,200,High_E,0.95,371.9,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,200,Low_E,0.95,406.7,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,200,High_F,0.95,455.6,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,200,Low_F,0.95,509.1,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,200,High_G,0.95,581,N/A +External / Internal Wall Insulation,IWI_solid_1.7_0.6,N/A,N/A,200,Low_G,0.95,658.4,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,200,High_B,0.95,142,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,200,Low_B,0.95,143.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,200,High_C,0.95,147.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,200,Low_C,0.95,151.9,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,200,High_D,0.95,160.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,200,Low_D,0.95,170.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,200,High_E,0.95,185.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,200,Low_E,0.95,202.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,200,High_F,0.95,226.3,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,200,Low_F,0.95,252.7,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,200,High_G,0.95,288.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.45,N/A,N/A,200,Low_G,0.95,327.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,200,High_B,0.95,182.9,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,200,Low_B,0.95,184.7,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,200,High_C,0.95,189.3,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,200,Low_C,0.95,195.3,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,200,High_D,0.95,205.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,200,Low_D,0.95,218.3,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,200,High_E,0.95,237.4,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,200,Low_E,0.95,258.9,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,200,High_F,0.95,289.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,200,Low_F,0.95,323.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,200,High_G,0.95,368.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.3,N/A,N/A,200,Low_G,0.95,417.6,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,200,High_B,0.95,102.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,200,Low_B,0.95,103.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,200,High_C,0.95,105.9,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,200,Low_C,0.95,109.4,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,200,High_D,0.95,115.5,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,200,Low_D,0.95,122.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,200,High_E,0.95,133.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,200,Low_E,0.95,146.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,200,High_F,0.95,163.8,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,200,Low_F,0.95,183.1,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,200,High_G,0.95,209.2,N/A +External / Internal Wall Insulation,IWI_solid_1.0_0.6,N/A,N/A,200,Low_G,0.95,237.4,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,200,High_B,0.95,95.1,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,200,Low_B,0.95,95.8,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,200,High_C,0.95,97.8,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,200,Low_C,0.95,100.7,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,200,High_D,0.95,105.9,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,200,Low_D,0.95,112.1,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,200,High_E,0.95,121.7,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,200,Low_E,0.95,132.7,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,200,High_F,0.95,148.3,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,200,Low_F,0.95,165.5,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,200,High_G,0.95,188.9,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.24,N/A,N/A,200,Low_G,0.95,214.1,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,200,High_B,0.95,78.8,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,200,Low_B,0.95,79.4,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,200,High_C,0.95,81.2,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,200,Low_C,0.95,83.6,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,200,High_D,0.95,87.9,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,200,Low_D,0.95,93.1,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,200,High_E,0.95,101.1,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,200,Low_E,0.95,110.3,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,200,High_F,0.95,123.3,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,200,Low_F,0.95,137.7,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,200,High_G,0.95,157.1,N/A +External / Internal Wall Insulation,IWI_solid_0.6_0.3,N/A,N/A,200,Low_G,0.95,178.2,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,200,High_B,0.95,63.5,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,200,Low_B,0.95,64,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,200,High_C,0.95,65.4,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,200,Low_C,0.95,67.3,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,200,High_D,0.95,70.7,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,200,Low_D,0.95,74.9,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,200,High_E,0.95,81.3,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,200,Low_E,0.95,88.6,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,200,High_F,0.95,99.1,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,200,Low_F,0.95,110.7,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,200,High_G,0.95,126.3,N/A +External / Internal Wall Insulation,IWI_solid_0.45_0.21,N/A,N/A,200,Low_G,0.95,143.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,200,High_B,0.95,353.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,200,Low_B,0.95,359.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,200,High_C,0.95,370.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,200,Low_C,0.95,383.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,200,High_D,0.95,406.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,200,Low_D,0.95,433.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,200,High_E,0.95,473.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,200,Low_E,0.95,518.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,200,High_F,0.95,581.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,200,Low_F,0.95,649.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,200,High_G,0.95,742,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.6,N/A,N/A,200,Low_G,0.95,841.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,200,High_B,0.95,425.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,200,Low_B,0.95,431.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,200,High_C,0.95,444.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,200,Low_C,0.95,460.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,200,High_D,0.95,486.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,200,Low_D,0.95,518.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,200,High_E,0.95,565.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,200,Low_E,0.95,617.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,200,High_F,0.95,691.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,200,Low_F,0.95,772.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,200,High_G,0.95,880.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.35,N/A,N/A,200,Low_G,0.95,997.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,200,High_B,0.95,454.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,200,Low_B,0.95,461.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,200,High_C,0.95,474.7,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,200,Low_C,0.95,491.6,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,200,High_D,0.95,519.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,200,Low_D,0.95,553,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,200,High_E,0.95,602.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,200,Low_E,0.95,658.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,200,High_F,0.95,736.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,200,Low_F,0.95,822.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,200,High_G,0.95,937.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.25,N/A,N/A,200,Low_G,0.95,1061.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,200,High_B,0.95,439.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,200,Low_B,0.95,446.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,200,High_C,0.95,459.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,200,Low_C,0.95,475.8,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,200,High_D,0.95,503.4,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,200,Low_D,0.95,535.5,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,200,High_E,0.95,583.9,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,200,Low_E,0.95,638,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,200,High_F,0.95,714.2,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,200,Low_F,0.95,797.3,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,200,High_G,0.95,909.1,N/A +External / Internal Wall Insulation,IWI_solid_2.0_0.3,N/A,N/A,200,Low_G,0.95,1029.2,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,200,High_B,0.95,211.6,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,200,Low_B,0.95,214.1,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,200,High_C,0.95,219.8,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,200,Low_C,0.95,227.2,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,200,High_D,0.95,239.9,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,200,Low_D,0.95,254.8,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,200,High_E,0.95,277.4,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,200,Low_E,0.95,302.9,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,200,High_F,0.95,338.9,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,200,Low_F,0.95,378.3,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,200,High_G,0.95,431.5,N/A +Cavity Wall Insulation,CWI_0.040,N/A,N/A,200,Low_G,0.95,488.7,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,200,High_B,0.95,227.6,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,200,Low_B,0.95,230.2,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,200,High_C,0.95,236.3,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,200,Low_C,0.95,244.2,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,200,High_D,0.95,257.7,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,200,Low_D,0.95,273.7,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,200,High_E,0.95,297.9,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,200,Low_E,0.95,325.1,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,200,High_F,0.95,363.6,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,200,Low_F,0.95,405.7,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,200,High_G,0.95,462.6,N/A +Cavity Wall Insulation,CWI_0.033,N/A,N/A,200,Low_G,0.95,523.8,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,200,High_B,0.95,242.9,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,200,Low_B,0.95,245.7,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,200,High_C,0.95,252.1,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,200,Low_C,0.95,260.5,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,200,High_D,0.95,274.8,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,200,Low_D,0.95,291.7,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,200,High_E,0.95,317.4,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,200,Low_E,0.95,346.3,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,200,High_F,0.95,387.1,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,200,Low_F,0.95,431.9,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,200,High_G,0.95,492.2,N/A +Cavity Wall Insulation,CWI_0.027,N/A,N/A,200,Low_G,0.95,557.3,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,200,High_B,0.95,30.1,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,200,Low_B,0.95,30.1,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,200,High_C,0.95,30.6,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,200,Low_C,0.95,31.4,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,200,High_D,0.95,33.1,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,200,Low_D,0.95,35.1,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,200,High_E,0.95,38.4,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,200,Low_E,0.95,42.2,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,200,High_F,0.95,47.6,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,200,Low_F,0.95,53.8,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,200,High_G,0.95,62.1,N/A +Cavity Wall Insulation,PWI_Cavity,N/A,N/A,200,Low_G,0.95,71.2,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,200,High_B,0.95,44.8,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,200,Low_B,0.95,45.1,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,200,High_C,0.95,46.1,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,200,Low_C,0.95,47.4,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,200,High_D,0.95,49.9,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,200,Low_D,0.95,52.8,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,200,High_E,0.95,57.4,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,200,Low_E,0.95,62.6,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,200,High_F,0.95,70,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,200,Low_F,0.95,78.2,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,200,High_G,0.95,89.3,N/A +Cavity Wall Insulation,CWI_partial_fill,N/A,N/A,200,Low_G,0.95,101.3,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,200,High_D,0.97,76.6,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,200,Low_D,0.97,81.2,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,200,High_E,0.97,88.5,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,200,Low_E,0.97,96.9,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,200,High_F,0.97,109,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,200,Low_F,0.97,122.4,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,200,High_G,0.97,140.8,N/A +Loft Insulation,LI_lessequal100,N/A,N/A,200,Low_G,0.97,160.8,N/A +Loft Insulation,LI_greater100,N/A,N/A,200,High_D,0.97,18.7,N/A +Loft Insulation,LI_greater100,N/A,N/A,200,Low_D,0.97,19.8,N/A +Loft Insulation,LI_greater100,N/A,N/A,200,High_E,0.97,21.6,N/A +Loft Insulation,LI_greater100,N/A,N/A,200,Low_E,0.97,23.6,N/A +Loft Insulation,LI_greater100,N/A,N/A,200,High_F,0.97,26.5,N/A +Loft Insulation,LI_greater100,N/A,N/A,200,Low_F,0.97,29.8,N/A +Loft Insulation,LI_greater100,N/A,N/A,200,High_G,0.97,34.2,N/A +Loft Insulation,LI_greater100,N/A,N/A,200,Low_G,0.97,39,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,200,High_D,0.86,265.2,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,200,Low_D,0.86,276.4,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,200,High_E,0.86,295.9,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,200,Low_E,0.86,319.9,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,200,High_F,0.86,355.9,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,200,Low_F,0.86,397.3,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,200,High_G,0.86,455,N/A +Other Insulation,RIRI_res_unin,N/A,N/A,200,Low_G,0.86,519,N/A +Other Insulation,RIRI_res_in,N/A,N/A,200,High_D,0.86,275.8,N/A +Other Insulation,RIRI_res_in,N/A,N/A,200,Low_D,0.86,287.3,N/A +Other Insulation,RIRI_res_in,N/A,N/A,200,High_E,0.86,307.5,N/A +Other Insulation,RIRI_res_in,N/A,N/A,200,Low_E,0.86,332.3,N/A +Other Insulation,RIRI_res_in,N/A,N/A,200,High_F,0.86,369.7,N/A +Other Insulation,RIRI_res_in,N/A,N/A,200,Low_F,0.86,412.6,N/A +Other Insulation,RIRI_res_in,N/A,N/A,200,High_G,0.86,472.5,N/A +Other Insulation,RIRI_res_in,N/A,N/A,200,Low_G,0.86,538.8,N/A +Other Insulation,FRI,N/A,N/A,200,High_D,0.99,309.2,N/A +Other Insulation,FRI,N/A,N/A,200,Low_D,0.99,328.2,N/A +Other Insulation,FRI,N/A,N/A,200,High_E,0.99,357.7,N/A +Other Insulation,FRI,N/A,N/A,200,Low_E,0.99,391.6,N/A +Other Insulation,FRI,N/A,N/A,200,High_F,0.99,440.2,N/A +Other Insulation,FRI,N/A,N/A,200,Low_F,0.99,494.1,N/A +Other Insulation,FRI,N/A,N/A,200,High_G,0.99,567.4,N/A +Other Insulation,FRI,N/A,N/A,200,Low_G,0.99,646.9,N/A +Other Insulation,UFI,N/A,N/A,200,High_D,0.97,77.2,N/A +Other Insulation,UFI,N/A,N/A,200,Low_D,0.97,82.2,N/A +Other Insulation,UFI,N/A,N/A,200,High_E,0.97,90.3,N/A +Other Insulation,UFI,N/A,N/A,200,Low_E,0.97,99.8,N/A +Other Insulation,UFI,N/A,N/A,200,High_F,0.97,113.7,N/A +Other Insulation,UFI,N/A,N/A,200,Low_F,0.97,129.3,N/A +Other Insulation,UFI,N/A,N/A,200,High_G,0.97,150.8,N/A +Other Insulation,UFI,N/A,N/A,200,Low_G,0.97,174.3,N/A +Other Insulation,SFI,N/A,N/A,200,High_D,0.98,45.5,N/A +Other Insulation,SFI,N/A,N/A,200,Low_D,0.98,48.3,N/A +Other Insulation,SFI,N/A,N/A,200,High_E,0.98,52.7,N/A +Other Insulation,SFI,N/A,N/A,200,Low_E,0.98,57.8,N/A +Other Insulation,SFI,N/A,N/A,200,High_F,0.98,65.3,N/A +Other Insulation,SFI,N/A,N/A,200,Low_F,0.98,73.6,N/A +Other Insulation,SFI,N/A,N/A,200,High_G,0.98,84.9,N/A +Other Insulation,SFI,N/A,N/A,200,Low_G,0.98,97.2,N/A +Other Insulation,DP,N/A,N/A,200,High_D,1,48.6,N/A +Other Insulation,DP,N/A,N/A,200,Low_D,1,51.7,N/A +Other Insulation,DP,N/A,N/A,200,High_E,1,56.5,N/A +Other Insulation,DP,N/A,N/A,200,Low_E,1,62.1,N/A +Other Insulation,DP,N/A,N/A,200,High_F,1,70.2,N/A +Other Insulation,DP,N/A,N/A,200,Low_F,1,79.2,N/A +Other Insulation,DP,N/A,N/A,200,High_G,1,91.4,N/A +Other Insulation,DP,N/A,N/A,200,Low_G,1,104.7,N/A +Other Insulation,WG_singletodouble,N/A,N/A,200,High_D,1,147.4,N/A +Other Insulation,WG_singletodouble,N/A,N/A,200,Low_D,1,156.8,N/A +Other Insulation,WG_singletodouble,N/A,N/A,200,High_E,1,171.4,N/A +Other Insulation,WG_singletodouble,N/A,N/A,200,Low_E,1,188.2,N/A +Other Insulation,WG_singletodouble,N/A,N/A,200,High_F,1,212.3,N/A +Other Insulation,WG_singletodouble,N/A,N/A,200,Low_F,1,239.1,N/A +Other Insulation,WG_singletodouble,N/A,N/A,200,High_G,1,275.6,N/A +Other Insulation,WG_singletodouble,N/A,N/A,200,Low_G,1,315.2,N/A +Other Insulation,WG_improveddouble,N/A,N/A,200,High_D,1,26.4,N/A +Other Insulation,WG_improveddouble,N/A,N/A,200,Low_D,1,28,N/A +Other Insulation,WG_improveddouble,N/A,N/A,200,High_E,1,30.6,N/A +Other Insulation,WG_improveddouble,N/A,N/A,200,Low_E,1,33.6,N/A +Other Insulation,WG_improveddouble,N/A,N/A,200,High_F,1,37.8,N/A +Other Insulation,WG_improveddouble,N/A,N/A,200,Low_F,1,42.5,N/A +Other Insulation,WG_improveddouble,N/A,N/A,200,High_G,1,48.9,N/A +Other Insulation,WG_improveddouble,N/A,N/A,200,Low_G,1,55.9,N/A +Other Insulation,HPED,N/A,N/A,200,High_D,1,7.7,N/A +Other Insulation,HPED,N/A,N/A,200,Low_D,1,8.2,N/A +Other Insulation,HPED,N/A,N/A,200,High_E,1,9,N/A +Other Insulation,HPED,N/A,N/A,200,Low_E,1,9.8,N/A +Other Insulation,HPED,N/A,N/A,200,High_F,1,11.1,N/A +Other Insulation,HPED,N/A,N/A,200,Low_F,1,12.5,N/A +Other Insulation,HPED,N/A,N/A,200,High_G,1,14.5,N/A +Other Insulation,HPED,N/A,N/A,200,Low_G,1,16.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,200,High_B,0.95,293.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,200,Low_B,0.95,297.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,200,High_C,0.95,306.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,200,Low_C,0.95,317.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,200,High_D,0.95,335.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,200,Low_D,0.95,357.4,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,200,High_E,0.95,389.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,200,Low_E,0.95,426.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,200,High_F,0.95,477.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,200,Low_F,0.95,533,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,200,High_G,0.95,608.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.55,N/A,N/A,200,Low_G,0.95,688.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,200,High_B,0.95,385.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,200,Low_B,0.95,390.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,200,High_C,0.95,401.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,200,Low_C,0.95,415.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,200,High_D,0.95,438.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,200,Low_D,0.95,465.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,200,High_E,0.95,507.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,200,Low_E,0.95,553.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,200,High_F,0.95,618.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,200,Low_F,0.95,689.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,200,High_G,0.95,784.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.23,N/A,N/A,200,Low_G,0.95,887.4,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,200,High_B,0.95,364.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,200,Low_B,0.95,369.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,200,High_C,0.95,380.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,200,Low_C,0.95,393.4,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,200,High_D,0.95,415.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,200,Low_D,0.95,441.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,200,High_E,0.95,481,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,200,Low_E,0.95,524.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,200,High_F,0.95,586.8,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,200,Low_F,0.95,654.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,200,High_G,0.95,745.5,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.3,N/A,N/A,200,Low_G,0.95,843.4,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,200,High_B,0.95,280,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,200,Low_B,0.95,283.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,200,High_C,0.95,292.2,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,200,Low_C,0.95,302.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,200,High_D,0.95,320.3,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,200,Low_D,0.95,340.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,200,High_E,0.95,371.9,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,200,Low_E,0.95,406.7,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,200,High_F,0.95,455.6,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,200,Low_F,0.95,509.1,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,200,High_G,0.95,581,N/A +External / Internal Wall Insulation,EWI_solid_1.7_0.6,N/A,N/A,200,Low_G,0.95,658.4,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,200,High_B,0.95,142,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,200,Low_B,0.95,143.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,200,High_C,0.95,147.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,200,Low_C,0.95,151.9,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,200,High_D,0.95,160.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,200,Low_D,0.95,170.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,200,High_E,0.95,185.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,200,Low_E,0.95,202.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,200,High_F,0.95,226.3,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,200,Low_F,0.95,252.7,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,200,High_G,0.95,288.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.45,N/A,N/A,200,Low_G,0.95,327.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,200,High_B,0.95,182.9,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,200,Low_B,0.95,184.7,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,200,High_C,0.95,189.3,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,200,Low_C,0.95,195.3,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,200,High_D,0.95,205.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,200,Low_D,0.95,218.3,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,200,High_E,0.95,237.4,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,200,Low_E,0.95,258.9,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,200,High_F,0.95,289.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,200,Low_F,0.95,323.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,200,High_G,0.95,368.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.3,N/A,N/A,200,Low_G,0.95,417.6,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,200,High_B,0.95,102.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,200,Low_B,0.95,103.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,200,High_C,0.95,105.9,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,200,Low_C,0.95,109.4,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,200,High_D,0.95,115.5,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,200,Low_D,0.95,122.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,200,High_E,0.95,133.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,200,Low_E,0.95,146.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,200,High_F,0.95,163.8,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,200,Low_F,0.95,183.1,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,200,High_G,0.95,209.2,N/A +External / Internal Wall Insulation,EWI_solid_1.0_0.6,N/A,N/A,200,Low_G,0.95,237.4,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,200,High_B,0.95,95.1,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,200,Low_B,0.95,95.8,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,200,High_C,0.95,97.8,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,200,Low_C,0.95,100.7,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,200,High_D,0.95,105.9,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,200,Low_D,0.95,112.1,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,200,High_E,0.95,121.7,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,200,Low_E,0.95,132.7,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,200,High_F,0.95,148.3,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,200,Low_F,0.95,165.5,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,200,High_G,0.95,188.9,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.24,N/A,N/A,200,Low_G,0.95,214.1,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,200,High_B,0.95,78.8,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,200,Low_B,0.95,79.4,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,200,High_C,0.95,81.2,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,200,Low_C,0.95,83.6,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,200,High_D,0.95,87.9,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,200,Low_D,0.95,93.1,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,200,High_E,0.95,101.1,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,200,Low_E,0.95,110.3,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,200,High_F,0.95,123.3,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,200,Low_F,0.95,137.7,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,200,High_G,0.95,157.1,N/A +External / Internal Wall Insulation,EWI_solid_0.6_0.3,N/A,N/A,200,Low_G,0.95,178.2,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,200,High_B,0.95,63.5,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,200,Low_B,0.95,64,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,200,High_C,0.95,65.4,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,200,Low_C,0.95,67.3,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,200,High_D,0.95,70.7,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,200,Low_D,0.95,74.9,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,200,High_E,0.95,81.3,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,200,Low_E,0.95,88.6,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,200,High_F,0.95,99.1,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,200,Low_F,0.95,110.7,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,200,High_G,0.95,126.3,N/A +External / Internal Wall Insulation,EWI_solid_0.45_0.21,N/A,N/A,200,Low_G,0.95,143.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,200,High_B,0.95,353.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,200,Low_B,0.95,359.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,200,High_C,0.95,370.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,200,Low_C,0.95,383.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,200,High_D,0.95,406.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,200,Low_D,0.95,433.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,200,High_E,0.95,473.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,200,Low_E,0.95,518.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,200,High_F,0.95,581.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,200,Low_F,0.95,649.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,200,High_G,0.95,742,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.6,N/A,N/A,200,Low_G,0.95,841.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,200,High_B,0.95,425.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,200,Low_B,0.95,431.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,200,High_C,0.95,444.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,200,Low_C,0.95,460.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,200,High_D,0.95,486.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,200,Low_D,0.95,518.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,200,High_E,0.95,565.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,200,Low_E,0.95,617.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,200,High_F,0.95,691.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,200,Low_F,0.95,772.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,200,High_G,0.95,880.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.35,N/A,N/A,200,Low_G,0.95,997.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,200,High_B,0.95,454.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,200,Low_B,0.95,461.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,200,High_C,0.95,474.7,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,200,Low_C,0.95,491.6,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,200,High_D,0.95,519.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,200,Low_D,0.95,553,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,200,High_E,0.95,602.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,200,Low_E,0.95,658.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,200,High_F,0.95,736.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,200,Low_F,0.95,822.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,200,High_G,0.95,937.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.25,N/A,N/A,200,Low_G,0.95,1061.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,200,High_B,0.95,439.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,200,Low_B,0.95,446.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,200,High_C,0.95,459.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,200,Low_C,0.95,475.8,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,200,High_D,0.95,503.4,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,200,Low_D,0.95,535.5,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,200,High_E,0.95,583.9,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,200,Low_E,0.95,638,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,200,High_F,0.95,714.2,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,200,Low_F,0.95,797.3,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,200,High_G,0.95,909.1,N/A +External / Internal Wall Insulation,EWI_solid_2.0_0.3,N/A,N/A,200,Low_G,0.95,1029.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,200,High_B,0.95,293.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,200,Low_B,0.95,297.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,200,High_C,0.95,306.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,200,Low_C,0.95,317.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,200,High_D,0.95,335.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,200,Low_D,0.95,357.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,200,High_E,0.95,389.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,200,Low_E,0.95,426.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,200,High_F,0.95,477.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,200,Low_F,0.95,533,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,200,High_G,0.95,608.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.55,N/A,N/A,200,Low_G,0.95,688.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,200,High_B,0.95,385.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,200,Low_B,0.95,390.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,200,High_C,0.95,401.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,200,Low_C,0.95,415.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,200,High_D,0.95,438.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,200,Low_D,0.95,465.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,200,High_E,0.95,507.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,200,Low_E,0.95,553.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,200,High_F,0.95,618.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,200,Low_F,0.95,689.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,200,High_G,0.95,784.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.23,N/A,N/A,200,Low_G,0.95,887.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,200,High_B,0.95,364.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,200,Low_B,0.95,369.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,200,High_C,0.95,380.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,200,Low_C,0.95,393.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,200,High_D,0.95,415.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,200,Low_D,0.95,441.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,200,High_E,0.95,481,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,200,Low_E,0.95,524.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,200,High_F,0.95,586.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,200,Low_F,0.95,654.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,200,High_G,0.95,745.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.3,N/A,N/A,200,Low_G,0.95,843.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,200,High_B,0.95,280,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,200,Low_B,0.95,283.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,200,High_C,0.95,292.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,200,Low_C,0.95,302.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,200,High_D,0.95,320.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,200,Low_D,0.95,340.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,200,High_E,0.95,371.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,200,Low_E,0.95,406.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,200,High_F,0.95,455.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,200,Low_F,0.95,509.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,200,High_G,0.95,581,N/A +External / Internal Wall Insulation,EWI_cavity_1.7_0.6,N/A,N/A,200,Low_G,0.95,658.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,200,High_B,0.95,142,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,200,Low_B,0.95,143.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,200,High_C,0.95,147.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,200,Low_C,0.95,151.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,200,High_D,0.95,160.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,200,Low_D,0.95,170.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,200,High_E,0.95,185.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,200,Low_E,0.95,202.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,200,High_F,0.95,226.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,200,Low_F,0.95,252.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,200,High_G,0.95,288.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.45,N/A,N/A,200,Low_G,0.95,327.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,200,High_B,0.95,182.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,200,Low_B,0.95,184.7,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,200,High_C,0.95,189.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,200,Low_C,0.95,195.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,200,High_D,0.95,205.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,200,Low_D,0.95,218.3,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,200,High_E,0.95,237.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,200,Low_E,0.95,258.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,200,High_F,0.95,289.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,200,Low_F,0.95,323.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,200,High_G,0.95,368.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.3,N/A,N/A,200,Low_G,0.95,417.6,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,200,High_B,0.95,102.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,200,Low_B,0.95,103.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,200,High_C,0.95,105.9,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,200,Low_C,0.95,109.4,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,200,High_D,0.95,115.5,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,200,Low_D,0.95,122.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,200,High_E,0.95,133.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,200,Low_E,0.95,146.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,200,High_F,0.95,163.8,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,200,Low_F,0.95,183.1,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,200,High_G,0.95,209.2,N/A +External / Internal Wall Insulation,EWI_cavity_1.0_0.6,N/A,N/A,200,Low_G,0.95,237.4,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,200,High_B,0.95,95.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,200,Low_B,0.95,95.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,200,High_C,0.95,97.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,200,Low_C,0.95,100.7,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,200,High_D,0.95,105.9,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,200,Low_D,0.95,112.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,200,High_E,0.95,121.7,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,200,Low_E,0.95,132.7,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,200,High_F,0.95,148.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,200,Low_F,0.95,165.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,200,High_G,0.95,188.9,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.24,N/A,N/A,200,Low_G,0.95,214.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,200,High_B,0.95,78.8,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,200,Low_B,0.95,79.4,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,200,High_C,0.95,81.2,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,200,Low_C,0.95,83.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,200,High_D,0.95,87.9,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,200,Low_D,0.95,93.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,200,High_E,0.95,101.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,200,Low_E,0.95,110.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,200,High_F,0.95,123.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,200,Low_F,0.95,137.7,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,200,High_G,0.95,157.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.6_0.3,N/A,N/A,200,Low_G,0.95,178.2,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,200,High_B,0.95,63.5,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,200,Low_B,0.95,64,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,200,High_C,0.95,65.4,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,200,Low_C,0.95,67.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,200,High_D,0.95,70.7,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,200,Low_D,0.95,74.9,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,200,High_E,0.95,81.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,200,Low_E,0.95,88.6,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,200,High_F,0.95,99.1,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,200,Low_F,0.95,110.7,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,200,High_G,0.95,126.3,N/A +External / Internal Wall Insulation,EWI_cavity_0.45_0.21,N/A,N/A,200,Low_G,0.95,143.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,200,High_B,0.95,353.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,200,Low_B,0.95,359.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,200,High_C,0.95,370.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,200,Low_C,0.95,383.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,200,High_D,0.95,406.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,200,Low_D,0.95,433.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,200,High_E,0.95,473.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,200,Low_E,0.95,518.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,200,High_F,0.95,581.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,200,Low_F,0.95,649.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,200,High_G,0.95,742,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.6,N/A,N/A,200,Low_G,0.95,841.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,200,High_B,0.95,425.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,200,Low_B,0.95,431.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,200,High_C,0.95,444.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,200,Low_C,0.95,460.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,200,High_D,0.95,486.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,200,Low_D,0.95,518.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,200,High_E,0.95,565.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,200,Low_E,0.95,617.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,200,High_F,0.95,691.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,200,Low_F,0.95,772.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,200,High_G,0.95,880.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.35,N/A,N/A,200,Low_G,0.95,997.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,200,High_B,0.95,454.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,200,Low_B,0.95,461.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,200,High_C,0.95,474.7,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,200,Low_C,0.95,491.6,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,200,High_D,0.95,519.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,200,Low_D,0.95,553,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,200,High_E,0.95,602.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,200,Low_E,0.95,658.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,200,High_F,0.95,736.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,200,Low_F,0.95,822.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,200,High_G,0.95,937.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.25,N/A,N/A,200,Low_G,0.95,1061.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,200,High_B,0.95,439.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,200,Low_B,0.95,446.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,200,High_C,0.95,459.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,200,Low_C,0.95,475.8,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,200,High_D,0.95,503.4,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,200,Low_D,0.95,535.5,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,200,High_E,0.95,583.9,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,200,Low_E,0.95,638,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,200,High_F,0.95,714.2,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,200,Low_F,0.95,797.3,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,200,High_G,0.95,909.1,N/A +External / Internal Wall Insulation,EWI_cavity_2.0_0.3,N/A,N/A,200,Low_G,0.95,1029.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,200,High_B,0.95,293.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,200,Low_B,0.95,297.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,200,High_C,0.95,306.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,200,Low_C,0.95,317.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,200,High_D,0.95,335.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,200,Low_D,0.95,357.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,200,High_E,0.95,389.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,200,Low_E,0.95,426.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,200,High_F,0.95,477.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,200,Low_F,0.95,533,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,200,High_G,0.95,608.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.55,N/A,N/A,200,Low_G,0.95,688.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,200,High_B,0.95,385.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,200,Low_B,0.95,390.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,200,High_C,0.95,401.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,200,Low_C,0.95,415.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,200,High_D,0.95,438.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,200,Low_D,0.95,465.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,200,High_E,0.95,507.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,200,Low_E,0.95,553.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,200,High_F,0.95,618.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,200,Low_F,0.95,689.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,200,High_G,0.95,784.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.23,N/A,N/A,200,Low_G,0.95,887.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,200,High_B,0.95,364.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,200,Low_B,0.95,369.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,200,High_C,0.95,380.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,200,Low_C,0.95,393.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,200,High_D,0.95,415.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,200,Low_D,0.95,441.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,200,High_E,0.95,481,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,200,Low_E,0.95,524.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,200,High_F,0.95,586.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,200,Low_F,0.95,654.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,200,High_G,0.95,745.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.3,N/A,N/A,200,Low_G,0.95,843.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,200,High_B,0.95,280,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,200,Low_B,0.95,283.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,200,High_C,0.95,292.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,200,Low_C,0.95,302.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,200,High_D,0.95,320.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,200,Low_D,0.95,340.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,200,High_E,0.95,371.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,200,Low_E,0.95,406.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,200,High_F,0.95,455.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,200,Low_F,0.95,509.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,200,High_G,0.95,581,N/A +External / Internal Wall Insulation,IWI_cavity_1.7_0.6,N/A,N/A,200,Low_G,0.95,658.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,200,High_B,0.95,142,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,200,Low_B,0.95,143.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,200,High_C,0.95,147.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,200,Low_C,0.95,151.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,200,High_D,0.95,160.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,200,Low_D,0.95,170.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,200,High_E,0.95,185.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,200,Low_E,0.95,202.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,200,High_F,0.95,226.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,200,Low_F,0.95,252.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,200,High_G,0.95,288.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.45,N/A,N/A,200,Low_G,0.95,327.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,200,High_B,0.95,182.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,200,Low_B,0.95,184.7,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,200,High_C,0.95,189.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,200,Low_C,0.95,195.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,200,High_D,0.95,205.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,200,Low_D,0.95,218.3,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,200,High_E,0.95,237.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,200,Low_E,0.95,258.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,200,High_F,0.95,289.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,200,Low_F,0.95,323.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,200,High_G,0.95,368.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.3,N/A,N/A,200,Low_G,0.95,417.6,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,200,High_B,0.95,102.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,200,Low_B,0.95,103.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,200,High_C,0.95,105.9,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,200,Low_C,0.95,109.4,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,200,High_D,0.95,115.5,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,200,Low_D,0.95,122.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,200,High_E,0.95,133.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,200,Low_E,0.95,146.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,200,High_F,0.95,163.8,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,200,Low_F,0.95,183.1,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,200,High_G,0.95,209.2,N/A +External / Internal Wall Insulation,IWI_cavity_1.0_0.6,N/A,N/A,200,Low_G,0.95,237.4,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,200,High_B,0.95,95.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,200,Low_B,0.95,95.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,200,High_C,0.95,97.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,200,Low_C,0.95,100.7,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,200,High_D,0.95,105.9,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,200,Low_D,0.95,112.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,200,High_E,0.95,121.7,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,200,Low_E,0.95,132.7,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,200,High_F,0.95,148.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,200,Low_F,0.95,165.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,200,High_G,0.95,188.9,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.24,N/A,N/A,200,Low_G,0.95,214.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,200,High_B,0.95,78.8,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,200,Low_B,0.95,79.4,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,200,High_C,0.95,81.2,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,200,Low_C,0.95,83.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,200,High_D,0.95,87.9,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,200,Low_D,0.95,93.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,200,High_E,0.95,101.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,200,Low_E,0.95,110.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,200,High_F,0.95,123.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,200,Low_F,0.95,137.7,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,200,High_G,0.95,157.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.6_0.3,N/A,N/A,200,Low_G,0.95,178.2,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,200,High_B,0.95,63.5,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,200,Low_B,0.95,64,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,200,High_C,0.95,65.4,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,200,Low_C,0.95,67.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,200,High_D,0.95,70.7,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,200,Low_D,0.95,74.9,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,200,High_E,0.95,81.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,200,Low_E,0.95,88.6,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,200,High_F,0.95,99.1,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,200,Low_F,0.95,110.7,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,200,High_G,0.95,126.3,N/A +External / Internal Wall Insulation,IWI_cavity_0.45_0.21,N/A,N/A,200,Low_G,0.95,143.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,200,High_B,0.95,353.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,200,Low_B,0.95,359.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,200,High_C,0.95,370.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,200,Low_C,0.95,383.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,200,High_D,0.95,406.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,200,Low_D,0.95,433.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,200,High_E,0.95,473.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,200,Low_E,0.95,518.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,200,High_F,0.95,581.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,200,Low_F,0.95,649.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,200,High_G,0.95,742,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.6,N/A,N/A,200,Low_G,0.95,841.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,200,High_B,0.95,425.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,200,Low_B,0.95,431.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,200,High_C,0.95,444.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,200,Low_C,0.95,460.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,200,High_D,0.95,486.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,200,Low_D,0.95,518.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,200,High_E,0.95,565.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,200,Low_E,0.95,617.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,200,High_F,0.95,691.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,200,Low_F,0.95,772.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,200,High_G,0.95,880.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.35,N/A,N/A,200,Low_G,0.95,997.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,200,High_B,0.95,454.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,200,Low_B,0.95,461.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,200,High_C,0.95,474.7,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,200,Low_C,0.95,491.6,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,200,High_D,0.95,519.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,200,Low_D,0.95,553,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,200,High_E,0.95,602.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,200,Low_E,0.95,658.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,200,High_F,0.95,736.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,200,Low_F,0.95,822.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,200,High_G,0.95,937.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.25,N/A,N/A,200,Low_G,0.95,1061.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,200,High_B,0.95,439.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,200,Low_B,0.95,446.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,200,High_C,0.95,459.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,200,Low_C,0.95,475.8,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,200,High_D,0.95,503.4,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,200,Low_D,0.95,535.5,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,200,High_E,0.95,583.9,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,200,Low_E,0.95,638,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,200,High_F,0.95,714.2,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,200,Low_F,0.95,797.3,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,200,High_G,0.95,909.1,N/A +External / Internal Wall Insulation,IWI_cavity_2.0_0.3,N/A,N/A,200,Low_G,0.95,1029.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,200,High_B,0.95,293.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,200,Low_B,0.95,297.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,200,High_C,0.95,306.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,200,Low_C,0.95,317.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,200,High_D,0.95,335.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,200,Low_D,0.95,357.4,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,200,High_E,0.95,389.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,200,Low_E,0.95,426.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,200,High_F,0.95,477.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,200,Low_F,0.95,533,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,200,High_G,0.95,608.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.55,N/A,N/A,200,Low_G,0.95,688.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,200,High_B,0.95,385.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,200,Low_B,0.95,390.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,200,High_C,0.95,401.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,200,Low_C,0.95,415.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,200,High_D,0.95,438.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,200,Low_D,0.95,465.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,200,High_E,0.95,507.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,200,Low_E,0.95,553.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,200,High_F,0.95,618.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,200,Low_F,0.95,689.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,200,High_G,0.95,784.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.23,N/A,N/A,200,Low_G,0.95,887.4,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,200,High_B,0.95,364.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,200,Low_B,0.95,369.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,200,High_C,0.95,380.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,200,Low_C,0.95,393.4,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,200,High_D,0.95,415.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,200,Low_D,0.95,441.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,200,High_E,0.95,481,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,200,Low_E,0.95,524.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,200,High_F,0.95,586.8,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,200,Low_F,0.95,654.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,200,High_G,0.95,745.5,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.3,N/A,N/A,200,Low_G,0.95,843.4,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,200,High_B,0.95,280,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,200,Low_B,0.95,283.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,200,High_C,0.95,292.2,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,200,Low_C,0.95,302.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,200,High_D,0.95,320.3,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,200,Low_D,0.95,340.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,200,High_E,0.95,371.9,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,200,Low_E,0.95,406.7,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,200,High_F,0.95,455.6,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,200,Low_F,0.95,509.1,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,200,High_G,0.95,581,N/A +External / Internal Wall Insulation,HWI_solid_1.7_0.6,N/A,N/A,200,Low_G,0.95,658.4,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,200,High_B,0.95,142,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,200,Low_B,0.95,143.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,200,High_C,0.95,147.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,200,Low_C,0.95,151.9,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,200,High_D,0.95,160.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,200,Low_D,0.95,170.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,200,High_E,0.95,185.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,200,Low_E,0.95,202.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,200,High_F,0.95,226.3,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,200,Low_F,0.95,252.7,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,200,High_G,0.95,288.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.45,N/A,N/A,200,Low_G,0.95,327.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,200,High_B,0.95,182.9,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,200,Low_B,0.95,184.7,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,200,High_C,0.95,189.3,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,200,Low_C,0.95,195.3,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,200,High_D,0.95,205.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,200,Low_D,0.95,218.3,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,200,High_E,0.95,237.4,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,200,Low_E,0.95,258.9,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,200,High_F,0.95,289.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,200,Low_F,0.95,323.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,200,High_G,0.95,368.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.3,N/A,N/A,200,Low_G,0.95,417.6,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,200,High_B,0.95,102.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,200,Low_B,0.95,103.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,200,High_C,0.95,105.9,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,200,Low_C,0.95,109.4,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,200,High_D,0.95,115.5,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,200,Low_D,0.95,122.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,200,High_E,0.95,133.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,200,Low_E,0.95,146.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,200,High_F,0.95,163.8,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,200,Low_F,0.95,183.1,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,200,High_G,0.95,209.2,N/A +External / Internal Wall Insulation,HWI_solid_1.0_0.6,N/A,N/A,200,Low_G,0.95,237.4,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,200,High_B,0.95,95.1,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,200,Low_B,0.95,95.8,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,200,High_C,0.95,97.8,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,200,Low_C,0.95,100.7,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,200,High_D,0.95,105.9,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,200,Low_D,0.95,112.1,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,200,High_E,0.95,121.7,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,200,Low_E,0.95,132.7,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,200,High_F,0.95,148.3,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,200,Low_F,0.95,165.5,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,200,High_G,0.95,188.9,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.24,N/A,N/A,200,Low_G,0.95,214.1,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,200,High_B,0.95,78.8,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,200,Low_B,0.95,79.4,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,200,High_C,0.95,81.2,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,200,Low_C,0.95,83.6,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,200,High_D,0.95,87.9,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,200,Low_D,0.95,93.1,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,200,High_E,0.95,101.1,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,200,Low_E,0.95,110.3,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,200,High_F,0.95,123.3,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,200,Low_F,0.95,137.7,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,200,High_G,0.95,157.1,N/A +External / Internal Wall Insulation,HWI_solid_0.6_0.3,N/A,N/A,200,Low_G,0.95,178.2,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,200,High_B,0.95,63.5,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,200,Low_B,0.95,64,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,200,High_C,0.95,65.4,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,200,Low_C,0.95,67.3,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,200,High_D,0.95,70.7,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,200,Low_D,0.95,74.9,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,200,High_E,0.95,81.3,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,200,Low_E,0.95,88.6,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,200,High_F,0.95,99.1,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,200,Low_F,0.95,110.7,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,200,High_G,0.95,126.3,N/A +External / Internal Wall Insulation,HWI_solid_0.45_0.21,N/A,N/A,200,Low_G,0.95,143.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,200,High_B,0.95,353.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,200,Low_B,0.95,359.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,200,High_C,0.95,370.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,200,Low_C,0.95,383.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,200,High_D,0.95,406.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,200,Low_D,0.95,433.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,200,High_E,0.95,473.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,200,Low_E,0.95,518.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,200,High_F,0.95,581.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,200,Low_F,0.95,649.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,200,High_G,0.95,742,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.6,N/A,N/A,200,Low_G,0.95,841.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,200,High_B,0.95,425.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,200,Low_B,0.95,431.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,200,High_C,0.95,444.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,200,Low_C,0.95,460.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,200,High_D,0.95,486.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,200,Low_D,0.95,518.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,200,High_E,0.95,565.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,200,Low_E,0.95,617.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,200,High_F,0.95,691.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,200,Low_F,0.95,772.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,200,High_G,0.95,880.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.35,N/A,N/A,200,Low_G,0.95,997.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,200,High_B,0.95,454.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,200,Low_B,0.95,461.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,200,High_C,0.95,474.7,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,200,Low_C,0.95,491.6,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,200,High_D,0.95,519.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,200,Low_D,0.95,553,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,200,High_E,0.95,602.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,200,Low_E,0.95,658.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,200,High_F,0.95,736.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,200,Low_F,0.95,822.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,200,High_G,0.95,937.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.25,N/A,N/A,200,Low_G,0.95,1061.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,200,High_B,0.95,439.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,200,Low_B,0.95,446.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,200,High_C,0.95,459.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,200,Low_C,0.95,475.8,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,200,High_D,0.95,503.4,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,200,Low_D,0.95,535.5,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,200,High_E,0.95,583.9,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,200,Low_E,0.95,638,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,200,High_F,0.95,714.2,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,200,Low_F,0.95,797.3,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,200,High_G,0.95,909.1,N/A +External / Internal Wall Insulation,HWI_solid_2.0_0.3,N/A,N/A,200,Low_G,0.95,1029.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,200,High_B,0.95,293.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,200,Low_B,0.95,297.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,200,High_C,0.95,306.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,200,Low_C,0.95,317.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,200,High_D,0.95,335.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,200,Low_D,0.95,357.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,200,High_E,0.95,389.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,200,Low_E,0.95,426.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,200,High_F,0.95,477.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,200,Low_F,0.95,533,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,200,High_G,0.95,608.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.55,N/A,N/A,200,Low_G,0.95,688.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,200,High_B,0.95,385.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,200,Low_B,0.95,390.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,200,High_C,0.95,401.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,200,Low_C,0.95,415.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,200,High_D,0.95,438.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,200,Low_D,0.95,465.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,200,High_E,0.95,507.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,200,Low_E,0.95,553.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,200,High_F,0.95,618.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,200,Low_F,0.95,689.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,200,High_G,0.95,784.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.23,N/A,N/A,200,Low_G,0.95,887.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,200,High_B,0.95,364.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,200,Low_B,0.95,369.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,200,High_C,0.95,380.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,200,Low_C,0.95,393.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,200,High_D,0.95,415.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,200,Low_D,0.95,441.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,200,High_E,0.95,481,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,200,Low_E,0.95,524.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,200,High_F,0.95,586.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,200,Low_F,0.95,654.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,200,High_G,0.95,745.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.3,N/A,N/A,200,Low_G,0.95,843.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,200,High_B,0.95,280,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,200,Low_B,0.95,283.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,200,High_C,0.95,292.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,200,Low_C,0.95,302.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,200,High_D,0.95,320.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,200,Low_D,0.95,340.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,200,High_E,0.95,371.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,200,Low_E,0.95,406.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,200,High_F,0.95,455.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,200,Low_F,0.95,509.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,200,High_G,0.95,581,N/A +External / Internal Wall Insulation,HWI_cavity_1.7_0.6,N/A,N/A,200,Low_G,0.95,658.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,200,High_B,0.95,142,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,200,Low_B,0.95,143.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,200,High_C,0.95,147.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,200,Low_C,0.95,151.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,200,High_D,0.95,160.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,200,Low_D,0.95,170.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,200,High_E,0.95,185.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,200,Low_E,0.95,202.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,200,High_F,0.95,226.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,200,Low_F,0.95,252.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,200,High_G,0.95,288.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.45,N/A,N/A,200,Low_G,0.95,327.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,200,High_B,0.95,182.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,200,Low_B,0.95,184.7,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,200,High_C,0.95,189.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,200,Low_C,0.95,195.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,200,High_D,0.95,205.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,200,Low_D,0.95,218.3,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,200,High_E,0.95,237.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,200,Low_E,0.95,258.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,200,High_F,0.95,289.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,200,Low_F,0.95,323.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,200,High_G,0.95,368.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.3,N/A,N/A,200,Low_G,0.95,417.6,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,200,High_B,0.95,102.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,200,Low_B,0.95,103.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,200,High_C,0.95,105.9,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,200,Low_C,0.95,109.4,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,200,High_D,0.95,115.5,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,200,Low_D,0.95,122.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,200,High_E,0.95,133.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,200,Low_E,0.95,146.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,200,High_F,0.95,163.8,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,200,Low_F,0.95,183.1,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,200,High_G,0.95,209.2,N/A +External / Internal Wall Insulation,HWI_cavity_1.0_0.6,N/A,N/A,200,Low_G,0.95,237.4,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,200,High_B,0.95,95.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,200,Low_B,0.95,95.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,200,High_C,0.95,97.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,200,Low_C,0.95,100.7,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,200,High_D,0.95,105.9,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,200,Low_D,0.95,112.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,200,High_E,0.95,121.7,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,200,Low_E,0.95,132.7,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,200,High_F,0.95,148.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,200,Low_F,0.95,165.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,200,High_G,0.95,188.9,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.24,N/A,N/A,200,Low_G,0.95,214.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,200,High_B,0.95,78.8,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,200,Low_B,0.95,79.4,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,200,High_C,0.95,81.2,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,200,Low_C,0.95,83.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,200,High_D,0.95,87.9,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,200,Low_D,0.95,93.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,200,High_E,0.95,101.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,200,Low_E,0.95,110.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,200,High_F,0.95,123.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,200,Low_F,0.95,137.7,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,200,High_G,0.95,157.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.6_0.3,N/A,N/A,200,Low_G,0.95,178.2,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,200,High_B,0.95,63.5,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,200,Low_B,0.95,64,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,200,High_C,0.95,65.4,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,200,Low_C,0.95,67.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,200,High_D,0.95,70.7,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,200,Low_D,0.95,74.9,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,200,High_E,0.95,81.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,200,Low_E,0.95,88.6,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,200,High_F,0.95,99.1,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,200,Low_F,0.95,110.7,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,200,High_G,0.95,126.3,N/A +External / Internal Wall Insulation,HWI_cavity_0.45_0.21,N/A,N/A,200,Low_G,0.95,143.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,200,High_B,0.95,353.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,200,Low_B,0.95,359.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,200,High_C,0.95,370.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,200,Low_C,0.95,383.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,200,High_D,0.95,406.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,200,Low_D,0.95,433.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,200,High_E,0.95,473.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,200,Low_E,0.95,518.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,200,High_F,0.95,581.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,200,Low_F,0.95,649.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,200,High_G,0.95,742,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.6,N/A,N/A,200,Low_G,0.95,841.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,200,High_B,0.95,425.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,200,Low_B,0.95,431.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,200,High_C,0.95,444.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,200,Low_C,0.95,460.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,200,High_D,0.95,486.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,200,Low_D,0.95,518.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,200,High_E,0.95,565.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,200,Low_E,0.95,617.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,200,High_F,0.95,691.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,200,Low_F,0.95,772.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,200,High_G,0.95,880.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.35,N/A,N/A,200,Low_G,0.95,997.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,200,High_B,0.95,454.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,200,Low_B,0.95,461.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,200,High_C,0.95,474.7,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,200,Low_C,0.95,491.6,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,200,High_D,0.95,519.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,200,Low_D,0.95,553,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,200,High_E,0.95,602.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,200,Low_E,0.95,658.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,200,High_F,0.95,736.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,200,Low_F,0.95,822.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,200,High_G,0.95,937.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.25,N/A,N/A,200,Low_G,0.95,1061.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,200,High_B,0.95,439.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,200,Low_B,0.95,446.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,200,High_C,0.95,459.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,200,Low_C,0.95,475.8,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,200,High_D,0.95,503.4,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,200,Low_D,0.95,535.5,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,200,High_E,0.95,583.9,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,200,Low_E,0.95,638,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,200,High_F,0.95,714.2,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,200,Low_F,0.95,797.3,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,200,High_G,0.95,909.1,N/A +External / Internal Wall Insulation,HWI_cavity_2.0_0.3,N/A,N/A,200,Low_G,0.95,1029.2,N/A +Fixed Value Increase,B_Broken_Repair,N/A,N/A,0-72,N/A,1,168,N/A +Fixed Value Increase,B_Broken_Repair,N/A,N/A,73-97,N/A,1,154,N/A +Fixed Value Increase,B_Broken_Repair,N/A,N/A,98-199,N/A,1,140,N/A +Fixed Value Increase,B_Broken_Repair,N/A,N/A,200,N/A,1,140,N/A +Fixed Value Increase,B_Broken_Replace,N/A,N/A,0-72,N/A,1,169,N/A +Fixed Value Increase,B_Broken_Replace,N/A,N/A,73-97,N/A,1,154,N/A +Fixed Value Increase,B_Broken_Replace,N/A,N/A,98-199,N/A,1,140,N/A +Fixed Value Increase,B_Broken_Replace,N/A,N/A,200,N/A,1,140,N/A +Fixed Value Increase,BFR_High,N/A,N/A,0-72,N/A,1,42.1,N/A +Fixed Value Increase,BFR_High,N/A,N/A,73-97,N/A,1,42.1,N/A +Fixed Value Increase,BFR_High,N/A,N/A,98-199,N/A,1,42.1,N/A +Fixed Value Increase,BFR_High,N/A,N/A,200,N/A,1,42.1,N/A +Fixed Value Increase,BFR_Highest,N/A,N/A,0-72,N/A,1,70.2,N/A +Fixed Value Increase,BFR_Highest,N/A,N/A,73-97,N/A,1,70.2,N/A +Fixed Value Increase,BFR_Highest,N/A,N/A,98-199,N/A,1,70.2,N/A +Fixed Value Increase,BFR_Highest,N/A,N/A,200,N/A,1,70.2,N/A +Fixed Value Increase,BFR_Low,N/A,N/A,0-72,N/A,1,7,N/A +Fixed Value Increase,BFR_Low,N/A,N/A,73-97,N/A,1,7,N/A +Fixed Value Increase,BFR_Low,N/A,N/A,98-199,N/A,1,7,N/A +Fixed Value Increase,BFR_Low,N/A,N/A,200,N/A,1,7,N/A +Fixed Value Increase,BFR_Medium,N/A,N/A,0-72,N/A,1,19.7,N/A +Fixed Value Increase,BFR_Medium,N/A,N/A,73-97,N/A,1,19.7,N/A +Fixed Value Increase,BFR_Medium,N/A,N/A,98-199,N/A,1,19.7,N/A +Fixed Value Increase,BFR_Medium,N/A,N/A,200,N/A,1,19.7,N/A +Fixed Value Increase,ESH_Broken_Repair,N/A,N/A,0-72,N/A,1,48,N/A +Fixed Value Increase,ESH_Broken_Repair,N/A,N/A,73-97,N/A,1,44,N/A +Fixed Value Increase,ESH_Broken_Repair,N/A,N/A,98-199,N/A,1,40,N/A +Fixed Value Increase,ESH_Broken_Repair,N/A,N/A,200,N/A,1,40,N/A +Fixed Value Increase,ESH_Broken_Replace,N/A,N/A,0-72,N/A,1,48,N/A +Fixed Value Increase,ESH_Broken_Replace,N/A,N/A,73-97,N/A,1,44,N/A +Fixed Value Increase,ESH_Broken_Replace,N/A,N/A,98-199,N/A,1,40,N/A +Fixed Value Increase,ESH_Broken_Replace,N/A,N/A,200,N/A,1,40,N/A +Other Insulation,PRI,N/A,N/A,0-72,High_D,0.95,157.9,N/A +Other Insulation,PRI,N/A,N/A,0-72,Low_D,0.95,166.3,N/A +Other Insulation,PRI,N/A,N/A,0-72,High_E,0.95,179.3,N/A +Other Insulation,PRI,N/A,N/A,0-72,Low_E,0.95,194,N/A +Other Insulation,PRI,N/A,N/A,0-72,High_F,0.95,215,N/A +Other Insulation,PRI,N/A,N/A,0-72,Low_F,0.95,238.2,N/A +Other Insulation,PRI,N/A,N/A,0-72,High_G,0.95,269.6,N/A +Other Insulation,PRI,N/A,N/A,0-72,Low_G,0.95,303.6,N/A +Other Insulation,PRI,N/A,N/A,73-97,High_D,0.95,81.8,N/A +Other Insulation,PRI,N/A,N/A,73-97,Low_D,0.95,86.7,N/A +Other Insulation,PRI,N/A,N/A,73-97,High_E,0.95,94.6,N/A +Other Insulation,PRI,N/A,N/A,73-97,Low_E,0.95,103.7,N/A +Other Insulation,PRI,N/A,N/A,73-97,High_F,0.95,116.9,N/A +Other Insulation,PRI,N/A,N/A,73-97,Low_F,0.95,131.7,N/A +Other Insulation,PRI,N/A,N/A,73-97,High_G,0.95,151.8,N/A +Other Insulation,PRI,N/A,N/A,73-97,Low_G,0.95,173.8,N/A +Other Insulation,PRI,N/A,N/A,98-199,High_D,0.95,92.8,N/A +Other Insulation,PRI,N/A,N/A,98-199,Low_D,0.95,98.5,N/A +Other Insulation,PRI,N/A,N/A,98-199,High_E,0.95,107.5,N/A +Other Insulation,PRI,N/A,N/A,98-199,Low_E,0.95,117.9,N/A +Other Insulation,PRI,N/A,N/A,98-199,High_F,0.95,132.9,N/A +Other Insulation,PRI,N/A,N/A,98-199,Low_F,0.95,149.5,N/A +Other Insulation,PRI,N/A,N/A,98-199,High_G,0.95,172.1,N/A +Other Insulation,PRI,N/A,N/A,98-199,Low_G,0.95,196.7,N/A +Other Insulation,PRI,N/A,N/A,200,High_D,0.95,144,N/A +Other Insulation,PRI,N/A,N/A,200,Low_D,0.95,153.3,N/A +Other Insulation,PRI,N/A,N/A,200,High_E,0.95,167.8,N/A +Other Insulation,PRI,N/A,N/A,200,Low_E,0.95,184.3,N/A +Other Insulation,PRI,N/A,N/A,200,High_F,0.95,207.8,N/A +Other Insulation,PRI,N/A,N/A,200,Low_F,0.95,233.8,N/A +Other Insulation,PRI,N/A,N/A,200,High_G,0.95,269,N/A +Other Insulation,PRI,N/A,N/A,200,Low_G,0.95,307.1,N/A +Other Insulation,PHI,N/A,N/A,98-199,High_B,1,66.4,N/A +Other Insulation,PHI,N/A,N/A,98-199,Low_B,1,70.5,N/A +Other Insulation,PHI,N/A,N/A,98-199,High_C,1,76.7,N/A +Other Insulation,PHI,N/A,N/A,98-199,Low_C,1,82.9,N/A +Other Insulation,PHI,N/A,N/A,98-199,High_D,1,92.1,N/A +Other Insulation,PHI,N/A,N/A,98-199,Low_D,1,101.8,N/A +Other Insulation,PHI,N/A,N/A,98-199,High_E,1,115.3,N/A +Other Insulation,PHI,N/A,N/A,98-199,Low_E,1,129.5,N/A +Other Insulation,PHI,N/A,N/A,98-199,High_F,1,148.6,N/A +Other Insulation,PHI,N/A,N/A,98-199,Low_F,1,168.7,N/A +Other Insulation,PHI,N/A,N/A,98-199,High_G,1,194.8,N/A +Other Insulation,PHI,N/A,N/A,98-199,Low_G,1,222.1,N/A +Other Insulation,PHI,N/A,N/A,73-97,High_B,1,80.2,N/A +Other Insulation,PHI,N/A,N/A,73-97,Low_B,1,85.2,N/A +Other Insulation,PHI,N/A,N/A,73-97,High_C,1,92.6,N/A +Other Insulation,PHI,N/A,N/A,73-97,Low_C,1,100.2,N/A +Other Insulation,PHI,N/A,N/A,73-97,High_D,1,111.2,N/A +Other Insulation,PHI,N/A,N/A,73-97,Low_D,1,122.8,N/A +Other Insulation,PHI,N/A,N/A,73-97,High_E,1,138.9,N/A +Other Insulation,PHI,N/A,N/A,73-97,Low_E,1,155.9,N/A +Other Insulation,PHI,N/A,N/A,73-97,High_F,1,178.6,N/A +Other Insulation,PHI,N/A,N/A,73-97,Low_F,1,202.4,N/A +Other Insulation,PHI,N/A,N/A,73-97,High_G,1,233.5,N/A +Other Insulation,PHI,N/A,N/A,73-97,Low_G,1,265.9,N/A +Other Insulation,PHI,N/A,N/A,0-72,High_B,1,88.3,N/A +Other Insulation,PHI,N/A,N/A,0-72,Low_B,1,93.8,N/A +Other Insulation,PHI,N/A,N/A,0-72,High_C,1,101.9,N/A +Other Insulation,PHI,N/A,N/A,0-72,Low_C,1,110.2,N/A +Other Insulation,PHI,N/A,N/A,0-72,High_D,1,122.3,N/A +Other Insulation,PHI,N/A,N/A,0-72,Low_D,1,135,N/A +Other Insulation,PHI,N/A,N/A,0-72,High_E,1,152.8,N/A +Other Insulation,PHI,N/A,N/A,0-72,Low_E,1,171.4,N/A +Other Insulation,PHI,N/A,N/A,0-72,High_F,1,196.5,N/A +Other Insulation,PHI,N/A,N/A,0-72,Low_F,1,222.7,N/A +Other Insulation,PHI,N/A,N/A,0-72,High_G,1,256.8,N/A +Other Insulation,PHI,N/A,N/A,0-72,Low_G,1,292.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,High_D,0.96,380.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,Low_D,0.96,486,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,High_E,0.96,615.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,Low_E,0.96,739.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,High_F,0.96,913.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,Low_F,0.96,1107.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,High_G,0.96,1380.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,0-72,Low_G,0.96,1691.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,High_D,0.96,399.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,Low_D,0.96,504.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,High_E,0.96,633.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,Low_E,0.96,757.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,High_F,0.96,931.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,Low_F,0.96,1125.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,High_G,0.96,1398.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,73-97,Low_G,0.96,1709.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,High_D,0.96,438,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,Low_D,0.96,547.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,High_E,0.96,680.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,Low_E,0.96,808.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,High_F,0.96,988.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,Low_F,0.96,1188.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,High_G,0.96,1470.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,98-199,Low_G,0.96,1792.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,High_D,0.96,818.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,Low_D,0.96,996.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,High_E,0.96,1217.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,Low_E,0.96,1430.6,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,High_F,0.96,1729.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,Low_F,0.96,2062.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,High_G,0.96,2530.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Fuel Cell mCHP,200,Low_G,0.96,3064.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,High_D,0.96,189.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,Low_D,0.96,225.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,High_E,0.96,269.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,Low_E,0.96,312.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,High_F,0.96,371.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,Low_F,0.96,437.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,High_G,0.96,530.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,0-72,Low_G,0.96,637.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,High_D,0.96,204.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,Low_D,0.96,243.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,High_E,0.96,291,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,Low_E,0.96,336.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,High_F,0.96,401,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,Low_F,0.96,472.6,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,High_G,0.96,573.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,73-97,Low_G,0.96,688.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,High_D,0.96,234.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,Low_D,0.96,279.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,High_E,0.96,334.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,Low_E,0.96,387.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,High_F,0.96,461,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,Low_F,0.96,543.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,High_G,0.96,659.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,98-199,Low_G,0.96,791.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,High_D,0.96,418.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,Low_D,0.96,496.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,High_E,0.96,594.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,Low_E,0.96,688.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,High_F,0.96,819.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,Low_F,0.96,966.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,High_G,0.96,1173,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,GSHP,200,Low_G,0.96,1408.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,High_D,0.96,133.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,Low_D,0.96,157.6,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,High_E,0.96,186.6,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,Low_E,0.96,214.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,High_F,0.96,253.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,Low_F,0.96,297.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,High_G,0.96,358.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,0-72,Low_G,0.96,429,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,High_D,0.96,142.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,Low_D,0.96,168.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,High_E,0.96,199.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,Low_E,0.96,230,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,High_F,0.96,272.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,Low_F,0.96,319.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,High_G,0.96,386,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,73-97,Low_G,0.96,461.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,High_D,0.96,162,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,Low_D,0.96,191.6,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,High_E,0.96,227.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,Low_E,0.96,262.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,High_F,0.96,311.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,Low_F,0.96,365.6,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,High_G,0.96,442,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,98-199,Low_G,0.96,529.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,High_D,0.96,283,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,Low_D,0.96,334.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,High_E,0.96,399.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,Low_E,0.96,461,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,High_F,0.96,547.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,Low_F,0.96,644.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,High_G,0.96,780.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Air to Water ASHP,200,Low_G,0.96,936.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,High_D,0.96,181.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,Low_D,0.96,215.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,High_E,0.96,257.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,Low_E,0.96,297.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,High_F,0.96,353.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,Low_F,0.96,416.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,High_G,0.96,504.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,0-72,Low_G,0.96,605.6,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,High_D,0.96,195.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,Low_D,0.96,232.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,High_E,0.96,277.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,Low_E,0.96,320.6,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,High_F,0.96,381.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,Low_F,0.96,449.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,High_G,0.96,544.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,73-97,Low_G,0.96,653.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,High_D,0.96,223.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,Low_D,0.96,266.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,High_E,0.96,318.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,Low_E,0.96,368.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,High_F,0.96,438.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,Low_F,0.96,516.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,High_G,0.96,626.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,98-199,Low_G,0.96,751.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,High_D,0.96,397.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,Low_D,0.96,472.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,High_E,0.96,564.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,Low_E,0.96,653.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,High_F,0.96,778.6,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,Low_F,0.96,918,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,High_G,0.96,1113.6,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Biomass Boiler,200,Low_G,0.96,1397.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,High_D,0.96,123,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,Low_D,0.96,172.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,High_E,0.96,232.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,Low_E,0.96,290.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,High_F,0.96,371.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,Low_F,0.96,461.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,High_G,0.96,588.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,0-72,Low_G,0.96,734.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,High_D,0.96,155.6,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,Low_D,0.96,208.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,High_E,0.96,273.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,Low_E,0.96,336.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,High_F,0.96,423.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,Low_F,0.96,521.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,High_G,0.96,659.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,73-97,Low_G,0.96,816.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,High_D,0.96,209.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,Low_D,0.96,270.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,High_E,0.96,345.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,Low_E,0.96,417.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,High_F,0.96,518.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,Low_F,0.96,630.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,High_G,0.96,788.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,98-199,Low_G,0.96,969.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,High_D,0.96,460,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,Low_D,0.96,567,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,High_E,0.96,700.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,Low_E,0.96,828.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,High_F,0.96,1008.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,Low_F,0.96,1208.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,High_G,0.96,1490.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,Condensing Gas Boiler,200,Low_G,0.96,1812.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,High_D,0.96,499,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,Low_D,0.96,557,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,High_E,0.96,702,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,Low_E,0.96,841.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,High_F,0.96,1037,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,Low_F,0.96,1255.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,High_G,0.96,1561.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,0-72,Low_G,0.96,1911.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,High_D,0.96,488,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,Low_D,0.96,613.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,High_E,0.96,765.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,Low_E,0.96,912.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,High_F,0.96,1118.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,Low_F,0.96,1348.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,High_G,0.96,1671.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,73-97,Low_G,0.96,2040.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,High_D,0.96,579.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,Low_D,0.96,718.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,High_E,0.96,889,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,Low_E,0.96,1052.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,High_F,0.96,1281.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,Low_F,0.96,1537.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,High_G,0.96,1897.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,98-199,Low_G,0.96,2308,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,200,High_D,0.96,1124.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,200,Low_D,0.96,1362.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,200,High_E,0.96,1659.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,200,Low_E,0.96,1945.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,200,High_F,0.96,2345.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,200,Low_F,0.96,2793,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,200,High_G,0.96,3420.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Fuel Cell mCHP,200,Low_G,0.96,4138,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,High_D,0.96,387.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,Low_D,0.96,496.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,High_E,0.96,628.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,Low_E,0.96,755.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,High_F,0.96,933.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,Low_F,0.96,1132.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,High_G,0.96,1411.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,0-72,Low_G,0.96,1730.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,High_D,0.96,411.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,Low_D,0.96,521.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,High_E,0.96,654.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,Low_E,0.96,782.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,High_F,0.96,963,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,Low_F,0.96,1163.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,High_G,0.96,1445.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,73-97,Low_G,0.96,1768.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,High_D,0.96,459.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,Low_D,0.96,574.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,High_E,0.96,715,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,Low_E,0.96,849.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,High_F,0.96,1039,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,Low_F,0.96,1250.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,High_G,0.96,1546.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,98-199,Low_G,0.96,1885.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,200,High_D,0.96,870.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,200,Low_D,0.96,1060.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,200,High_E,0.96,1295.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,200,Low_E,0.96,1522.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,200,High_F,0.96,1840.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,200,Low_F,0.96,2195.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,200,High_G,0.96,2693.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Fuel Cell mCHP,200,Low_G,0.96,3263,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,High_D,0.96,402.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,509.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,High_E,0.96,640.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,766.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,High_F,0.96,943,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,1139.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1416.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1732.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,High_D,0.96,429.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,536.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,High_E,0.96,668.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,795,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,High_F,0.96,972.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,1170.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1448.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1766.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,High_D,0.96,478,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,590.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,High_E,0.96,728,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,860,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,High_F,0.96,1045.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1252.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1542.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,1874.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,200,High_D,0.96,880.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,200,Low_D,0.96,1065.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,200,High_E,0.96,1295.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,200,Low_E,0.96,1516.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,200,High_F,0.96,1826.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,200,Low_F,0.96,2172.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,200,High_G,0.96,2658.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Fuel Cell mCHP,200,Low_G,0.96,3213.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,0-72,High_D,0.96,388,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,0-72,Low_D,0.96,491.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,0-72,High_E,0.96,617.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,0-72,Low_E,0.96,738.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,0-72,High_F,0.96,908.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,0-72,Low_F,0.96,1098.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,0-72,High_G,0.96,1364.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,0-72,Low_G,0.96,1669.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,73-97,High_D,0.96,405.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,73-97,Low_D,0.96,507.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,73-97,High_E,0.96,632.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,73-97,Low_E,0.96,752.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,73-97,High_F,0.96,920.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,73-97,Low_F,0.96,1107.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,73-97,High_G,0.96,1370.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,73-97,Low_G,0.96,1671.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,98-199,High_D,0.96,439.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,98-199,Low_D,0.96,543.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,98-199,High_E,0.96,669.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,98-199,Low_E,0.96,791.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,98-199,High_F,0.96,961.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,98-199,Low_F,0.96,1152.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,98-199,High_G,0.96,1419.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,98-199,Low_G,0.96,1724.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,200,High_D,0.96,794.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,200,Low_D,0.96,960.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,200,High_E,0.96,1168.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,200,Low_E,0.96,1367.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,200,High_F,0.96,1647.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,200,Low_F,0.96,1959.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,200,High_G,0.96,2397.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Fuel Cell mCHP,200,Low_G,0.96,2898.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,0-72,High_D,0.96,426.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,0-72,Low_D,0.96,543.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,0-72,High_E,0.96,685.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,0-72,Low_E,0.96,821.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,0-72,High_F,0.96,1013.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,0-72,Low_F,0.96,1227.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,0-72,High_G,0.96,1527.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,0-72,Low_G,0.96,1870.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,73-97,High_D,0.96,470.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,73-97,Low_D,0.96,592.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,73-97,High_E,0.96,740.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,73-97,Low_E,0.96,883.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,73-97,High_F,0.96,1083.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,73-97,Low_F,0.96,1307,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,73-97,High_G,0.96,1620.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,73-97,Low_G,0.96,1979,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,98-199,High_D,0.96,552.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,98-199,Low_D,0.96,686.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,98-199,High_E,0.96,849.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,98-199,Low_E,0.96,1006.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,98-199,High_F,0.96,1227.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,98-199,Low_F,0.96,1473.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,98-199,High_G,0.96,1818.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,98-199,Low_G,0.96,2212.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,200,High_D,0.96,1067.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,200,Low_D,0.96,1294.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,200,High_E,0.96,1577.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,200,Low_E,0.96,1849.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,200,High_F,0.96,2232.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,200,Low_F,0.96,2658.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,200,High_G,0.96,3256.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Fuel Cell mCHP,200,Low_G,0.96,3941,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,0-72,High_D,0.96,487.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,0-72,Low_D,0.96,532.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,0-72,High_E,0.96,645.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,0-72,Low_E,0.96,754.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,0-72,High_F,0.96,906.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,0-72,Low_F,0.96,1076.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,0-72,High_G,0.96,1315.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,0-72,Low_G,0.96,1587.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,73-97,High_D,0.96,591.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,73-97,Low_D,0.96,591.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,73-97,High_E,0.96,704.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,73-97,Low_E,0.96,821.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,73-97,High_F,0.96,986.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,73-97,Low_F,0.96,1170,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,73-97,High_G,0.96,1427.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,73-97,Low_G,0.96,1722.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,98-199,High_D,0.96,705,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,98-199,Low_D,0.96,705,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,98-199,High_E,0.96,820,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,98-199,Low_E,0.96,955,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,98-199,High_F,0.96,1144.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,98-199,Low_F,0.96,1356,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,98-199,High_G,0.96,1652.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,98-199,Low_G,0.96,1992.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,200,High_D,0.96,1314,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,200,Low_D,0.96,1314,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,200,High_E,0.96,1486.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,200,Low_E,0.96,1727,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,200,High_F,0.96,2064.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,200,Low_F,0.96,2441.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,200,High_G,0.96,2970.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,GSHP,200,Low_G,0.96,3575.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,0-72,High_D,0.96,222.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,0-72,Low_D,0.96,269.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,0-72,High_E,0.96,326.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,0-72,Low_E,0.96,381.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,0-72,High_F,0.96,458.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,0-72,Low_F,0.96,544.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,0-72,High_G,0.96,665.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,0-72,Low_G,0.96,803.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,73-97,High_D,0.96,243.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,73-97,Low_D,0.96,294.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,73-97,High_E,0.96,356.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,73-97,Low_E,0.96,415.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,73-97,High_F,0.96,498.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,73-97,Low_F,0.96,591.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,73-97,High_G,0.96,722.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,73-97,Low_G,0.96,871.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,98-199,High_D,0.96,285.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,98-199,Low_D,0.96,343.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,98-199,High_E,0.96,414.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,98-199,Low_E,0.96,483.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,98-199,High_F,0.96,579,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,98-199,Low_F,0.96,685.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,98-199,High_G,0.96,836.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,98-199,Low_G,0.96,1007.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,200,High_D,0.96,523.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,200,Low_D,0.96,625.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,200,High_E,0.96,751.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,200,Low_E,0.96,873.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,200,High_F,0.96,1044.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,200,Low_F,0.96,1235.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,200,High_G,0.96,1502.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,GSHP,200,Low_G,0.96,1808.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,0-72,High_D,0.96,286.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,0-72,Low_D,0.96,328.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,0-72,High_E,0.96,380.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,0-72,Low_E,0.96,430.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,0-72,High_F,0.96,500.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,0-72,Low_F,0.96,578.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,0-72,High_G,0.96,687.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,0-72,Low_G,0.96,812.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,73-97,High_D,0.96,297.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,73-97,Low_D,0.96,343.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,73-97,High_E,0.96,399.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,73-97,Low_E,0.96,453.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,73-97,High_F,0.96,529,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,73-97,Low_F,0.96,613.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,73-97,High_G,0.96,731.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,73-97,Low_G,0.96,866.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,98-199,High_D,0.96,327.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,98-199,Low_D,0.96,380.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,98-199,High_E,0.96,445.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,98-199,Low_E,0.96,507,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,98-199,High_F,0.96,594,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,98-199,Low_F,0.96,691,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,98-199,High_G,0.96,827.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,98-199,Low_G,0.96,982.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,200,High_D,0.96,543.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,200,Low_D,0.96,635.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,200,High_E,0.96,750.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,200,Low_E,0.96,861.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,200,High_F,0.96,1016.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,200,Low_F,0.96,1189,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,200,High_G,0.96,1431.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,GSHP,200,Low_G,0.96,1709.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,0-72,High_D,0.96,222.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,0-72,Low_D,0.96,248.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,0-72,High_E,0.96,279.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,0-72,Low_E,0.96,309.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,0-72,High_F,0.96,351.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,0-72,Low_F,0.96,398.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,0-72,High_G,0.96,464.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,0-72,Low_G,0.96,540.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,73-97,High_D,0.96,225.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,73-97,Low_D,0.96,253,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,73-97,High_E,0.96,286.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,73-97,Low_E,0.96,319.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,73-97,High_F,0.96,364.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,73-97,Low_F,0.96,415.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,73-97,High_G,0.96,486.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,73-97,Low_G,0.96,568.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,98-199,High_D,0.96,238.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,98-199,Low_D,0.96,270.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,98-199,High_E,0.96,309.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,98-199,Low_E,0.96,346.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,98-199,High_F,0.96,399.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,98-199,Low_F,0.96,457.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,98-199,High_G,0.96,540,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,98-199,Low_G,0.96,633.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,200,High_D,0.96,369,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,200,Low_D,0.96,424.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,200,High_E,0.96,493.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,200,Low_E,0.96,560.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,200,High_F,0.96,654,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,200,Low_F,0.96,758.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,200,High_G,0.96,904.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,GSHP,200,Low_G,0.96,1071.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,0-72,High_D,0.96,391.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,0-72,Low_D,0.96,473.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,0-72,High_E,0.96,573.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,0-72,Low_E,0.96,670.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,0-72,High_F,0.96,805.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,0-72,Low_F,0.96,956.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,0-72,High_G,0.96,1168.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,0-72,Low_G,0.96,1411.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,73-97,High_D,0.96,428.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,73-97,Low_D,0.96,517.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,73-97,High_E,0.96,625.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,73-97,Low_E,0.96,730.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,73-97,High_F,0.96,876.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,73-97,Low_F,0.96,1039.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,73-97,High_G,0.96,1269,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,73-97,Low_G,0.96,1531.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,98-199,High_D,0.96,501.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,98-199,Low_D,0.96,603.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,98-199,High_E,0.96,728.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,98-199,Low_E,0.96,848.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,98-199,High_F,0.96,1017.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,98-199,Low_F,0.96,1205.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,98-199,High_G,0.96,1468.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,98-199,Low_G,0.96,1770.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,200,High_D,0.96,919.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,200,Low_D,0.96,1098.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,200,High_E,0.96,1321,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,200,Low_E,0.96,1534.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,200,High_F,0.96,1835.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,200,Low_F,0.96,2170,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,200,High_G,0.96,2640.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,GSHP,200,Low_G,0.96,3177.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,0-72,High_D,0.96,462.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,0-72,Low_D,0.96,505.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,0-72,High_E,0.96,612.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,0-72,Low_E,0.96,715.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,0-72,High_F,0.96,860.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,0-72,Low_F,0.96,1021.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,0-72,High_G,0.96,1248.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,0-72,Low_G,0.96,1507.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,73-97,High_D,0.96,561.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,73-97,Low_D,0.96,561.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,73-97,High_E,0.96,668.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,73-97,Low_E,0.96,779.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,73-97,High_F,0.96,936.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,73-97,Low_F,0.96,1110.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,73-97,High_G,0.96,1355.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,73-97,Low_G,0.96,1635.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,98-199,High_D,0.96,669.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,98-199,Low_D,0.96,669.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,98-199,High_E,0.96,778.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,98-199,Low_E,0.96,906.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,98-199,High_F,0.96,1086.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,98-199,Low_F,0.96,1287.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,98-199,High_G,0.96,1569,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,98-199,Low_G,0.96,1891.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,200,High_D,0.96,1247.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,200,Low_D,0.96,1247.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,200,High_E,0.96,1411.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,200,Low_E,0.96,1639.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,200,High_F,0.96,1960.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,200,Low_F,0.96,2318,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,200,High_G,0.96,2820.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Air to Water ASHP,200,Low_G,0.96,3394.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,0-72,High_D,0.96,171.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,0-72,Low_D,0.96,207.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,0-72,High_E,0.96,251.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,0-72,Low_E,0.96,293.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,0-72,High_F,0.96,352.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,0-72,Low_F,0.96,418.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,0-72,High_G,0.96,511.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,0-72,Low_G,0.96,617.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,73-97,High_D,0.96,187.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,73-97,Low_D,0.96,226.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,73-97,High_E,0.96,273.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,73-97,Low_E,0.96,319.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,73-97,High_F,0.96,383.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,73-97,Low_F,0.96,455,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,73-97,High_G,0.96,555.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,73-97,Low_G,0.96,670,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,98-199,High_D,0.96,219.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,98-199,Low_D,0.96,264.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,98-199,High_E,0.96,318.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,98-199,Low_E,0.96,371.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,98-199,High_F,0.96,445.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,98-199,Low_F,0.96,527.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,98-199,High_G,0.96,642.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,98-199,Low_G,0.96,774.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,200,High_D,0.96,402.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,200,Low_D,0.96,480.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,200,High_E,0.96,578.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,200,Low_E,0.96,671.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,200,High_F,0.96,803.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,200,Low_F,0.96,949.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,200,High_G,0.96,1155.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Air to Water ASHP,200,Low_G,0.96,1390.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,0-72,High_D,0.96,243.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,0-72,Low_D,0.96,274.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,0-72,High_E,0.96,312.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,0-72,Low_E,0.96,348.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,0-72,High_F,0.96,399.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,0-72,Low_F,0.96,456.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,0-72,High_G,0.96,536.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,0-72,Low_G,0.96,628.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,73-97,High_D,0.96,248.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,73-97,Low_D,0.96,282.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,73-97,High_E,0.96,323.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,73-97,Low_E,0.96,362.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,73-97,High_F,0.96,417.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,73-97,Low_F,0.96,479.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,73-97,High_G,0.96,565.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,73-97,Low_G,0.96,664.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,98-199,High_D,0.96,267.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,98-199,Low_D,0.96,306.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,98-199,High_E,0.96,353.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,98-199,Low_E,0.96,398.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,98-199,High_F,0.96,462.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,98-199,Low_F,0.96,533.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,98-199,High_G,0.96,632.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,98-199,Low_G,0.96,746.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,200,High_D,0.96,425.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,200,Low_D,0.96,492.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,200,High_E,0.96,576.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,200,Low_E,0.96,657.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,200,High_F,0.96,770.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,200,Low_F,0.96,897.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,200,High_G,0.96,1074.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Air to Water ASHP,200,Low_G,0.96,1277.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,0-72,High_D,0.96,171.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,0-72,Low_D,0.96,183.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,0-72,High_E,0.96,197.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,0-72,Low_E,0.96,211.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,0-72,High_F,0.96,231.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,0-72,Low_F,0.96,253.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,0-72,High_G,0.96,284,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,0-72,Low_G,0.96,319.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,73-97,High_D,0.96,166.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,73-97,Low_D,0.96,179.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,73-97,High_E,0.96,195,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,73-97,Low_E,0.96,210.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,73-97,High_F,0.96,231.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,73-97,Low_F,0.96,254.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,73-97,High_G,0.96,288.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,73-97,Low_G,0.96,326,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,98-199,High_D,0.96,166.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,98-199,Low_D,0.96,181.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,98-199,High_E,0.96,199.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,98-199,Low_E,0.96,216.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,98-199,High_F,0.96,241.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,98-199,Low_F,0.96,268.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,98-199,High_G,0.96,306.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,98-199,Low_G,0.96,350.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,200,High_D,0.96,227.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,200,Low_D,0.96,252.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,200,High_E,0.96,285.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,200,Low_E,0.96,316.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,200,High_F,0.96,359.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,200,Low_F,0.96,408.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,200,High_G,0.96,476.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Air to Water ASHP,200,Low_G,0.96,553.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,0-72,High_D,0.96,362.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,0-72,Low_D,0.96,438.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,0-72,High_E,0.96,531.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,0-72,Low_E,0.96,621.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,0-72,High_F,0.96,746.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,0-72,Low_F,0.96,886.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,0-72,High_G,0.96,1083.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,0-72,Low_G,0.96,1307.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,73-97,High_D,0.96,397.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,73-97,Low_D,0.96,479.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,73-97,High_E,0.96,580.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,73-97,Low_E,0.96,676.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,73-97,High_F,0.96,812.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,73-97,Low_F,0.96,963.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,73-97,High_G,0.96,1176.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,73-97,Low_G,0.96,1419,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,98-199,High_D,0.96,464.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,98-199,Low_D,0.96,559.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,98-199,High_E,0.96,675.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,98-199,Low_E,0.96,786.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,98-199,High_F,0.96,942.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,98-199,Low_F,0.96,1116.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,98-199,High_G,0.96,1361.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,98-199,Low_G,0.96,1640.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,200,High_D,0.96,852.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,200,Low_D,0.96,1018,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,200,High_E,0.96,1224.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,200,Low_E,0.96,1422.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,200,High_F,0.96,1700.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,200,Low_F,0.96,2011.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,200,High_G,0.96,2446.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Air to Water ASHP,200,Low_G,0.96,2945,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,0-72,High_D,0.96,483.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,0-72,Low_D,0.96,528.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,0-72,High_E,0.96,640.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,0-72,Low_E,0.96,748.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,0-72,High_F,0.96,899.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,0-72,Low_F,0.96,1068.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,0-72,High_G,0.96,1305.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,0-72,Low_G,0.96,1575.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,73-97,High_D,0.96,587.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,73-97,Low_D,0.96,587.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,73-97,High_E,0.96,698.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,73-97,Low_E,0.96,815.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,73-97,High_F,0.96,978.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,73-97,Low_F,0.96,1161.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,73-97,High_G,0.96,1417.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,73-97,Low_G,0.96,1709.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,98-199,High_D,0.96,699.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,98-199,Low_D,0.96,699.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,98-199,High_E,0.96,813.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,98-199,Low_E,0.96,947.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,98-199,High_F,0.96,1135.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,98-199,Low_F,0.96,1345.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,98-199,High_G,0.96,1640.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,98-199,Low_G,0.96,1977.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,200,High_D,0.96,1304,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,200,Low_D,0.96,1304,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,200,High_E,0.96,1475.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,200,Low_E,0.96,1713.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,200,High_F,0.96,2049.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,200,Low_F,0.96,2423.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,200,High_G,0.96,2948.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Biomass Boiler,200,Low_G,0.96,3548.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,0-72,High_D,0.96,214.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,0-72,Low_D,0.96,260,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,0-72,High_E,0.96,315.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,0-72,Low_E,0.96,368.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,0-72,High_F,0.96,442.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,0-72,Low_F,0.96,525.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,0-72,High_G,0.96,641.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,0-72,Low_G,0.96,775.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,73-97,High_D,0.96,235.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,73-97,Low_D,0.96,284.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,73-97,High_E,0.96,343.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,73-97,Low_E,0.96,401,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,73-97,High_F,0.96,481.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,73-97,Low_F,0.96,571.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,73-97,High_G,0.96,697,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,73-97,Low_G,0.96,841,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,98-199,High_D,0.96,275.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,98-199,Low_D,0.96,331.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,98-199,High_E,0.96,400.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,98-199,Low_E,0.96,466.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,98-199,High_F,0.96,558.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,98-199,Low_F,0.96,661.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,98-199,High_G,0.96,806.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,98-199,Low_G,0.96,972.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,200,High_D,0.96,505.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,200,Low_D,0.96,603.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,200,High_E,0.96,725.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,200,Low_E,0.96,843,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,200,High_F,0.96,1007.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,200,Low_F,0.96,1191.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,200,High_G,0.96,1450.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Biomass Boiler,200,Low_G,0.96,1745.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,0-72,High_D,0.96,279.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,0-72,Low_D,0.96,320.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,0-72,High_E,0.96,370.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,0-72,Low_E,0.96,417.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,0-72,High_F,0.96,484.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,0-72,Low_F,0.96,559.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,0-72,High_G,0.96,664.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,0-72,Low_G,0.96,784.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,73-97,High_D,0.96,290.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,73-97,Low_D,0.96,334.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,73-97,High_E,0.96,388.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,73-97,Low_E,0.96,439.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,73-97,High_F,0.96,512.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,73-97,Low_F,0.96,593,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,73-97,High_G,0.96,706.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,73-97,Low_G,0.96,836.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,98-199,High_D,0.96,318.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,98-199,Low_D,0.96,369.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,98-199,High_E,0.96,431.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,98-199,Low_E,0.96,490.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,98-199,High_F,0.96,574,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,98-199,Low_F,0.96,667,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,98-199,High_G,0.96,797.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,98-199,Low_G,0.96,947,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,200,High_D,0.96,525.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,200,Low_D,0.96,614.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,200,High_E,0.96,724.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,200,Low_E,0.96,830.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,200,High_F,0.96,979,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,200,Low_F,0.96,1144.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,200,High_G,0.96,1377.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Biomass Boiler,200,Low_G,0.96,1643.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,0-72,High_D,0.96,215.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,0-72,Low_D,0.96,238.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,0-72,High_E,0.96,267.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,0-72,Low_E,0.96,294.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,0-72,High_F,0.96,333.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,0-72,Low_F,0.96,376.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,0-72,High_G,0.96,437.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,0-72,Low_G,0.96,506.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,73-97,High_D,0.96,216.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,73-97,Low_D,0.96,241.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,73-97,High_E,0.96,272.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,73-97,Low_E,0.96,302.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,73-97,High_F,0.96,344.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,73-97,Low_F,0.96,391.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,73-97,High_G,0.96,456.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,73-97,Low_G,0.96,531.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,98-199,High_D,0.96,227.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,98-199,Low_D,0.96,257.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,98-199,High_E,0.96,292.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,98-199,Low_E,0.96,327.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,98-199,High_F,0.96,375.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,98-199,Low_F,0.96,429.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,98-199,High_G,0.96,504.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,98-199,Low_G,0.96,590.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,200,High_D,0.96,347.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,200,Low_D,0.96,398.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,200,High_E,0.96,462.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,200,Low_E,0.96,523.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,200,High_F,0.96,609.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,200,Low_F,0.96,705.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,200,High_G,0.96,839.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Biomass Boiler,200,Low_G,0.96,993.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,0-72,High_D,0.96,386.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,0-72,Low_D,0.96,468.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,0-72,High_E,0.96,567.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,0-72,Low_E,0.96,662.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,0-72,High_F,0.96,796.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,0-72,Low_F,0.96,946.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,0-72,High_G,0.96,1155.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,0-72,Low_G,0.96,1395.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,73-97,High_D,0.96,423.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,73-97,Low_D,0.96,511.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,73-97,High_E,0.96,618.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,73-97,Low_E,0.96,722,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,73-97,High_F,0.96,866.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,73-97,Low_F,0.96,1028.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,73-97,High_G,0.96,1254.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,73-97,Low_G,0.96,1514.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,98-199,High_D,0.96,496,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,98-199,Low_D,0.96,597.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,98-199,High_E,0.96,720.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,98-199,Low_E,0.96,839.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,98-199,High_F,0.96,1005.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,98-199,Low_F,0.96,1191.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,98-199,High_G,0.96,1452.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,98-199,Low_G,0.96,1750.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,200,High_D,0.96,909.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,200,Low_D,0.96,1086.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,200,High_E,0.96,1306.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,200,Low_E,0.96,1517.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,200,High_F,0.96,1814.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,200,Low_F,0.96,2146,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,200,High_G,0.96,2610.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Biomass Boiler,200,Low_G,0.96,3142.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,High_D,0.96,386.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,Low_D,0.96,434.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,High_E,0.96,553.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,Low_E,0.96,667.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,High_F,0.96,828.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,Low_F,0.96,1007.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,High_G,0.96,1259,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,0-72,Low_G,0.96,1546.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,High_D,0.96,392.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,Low_D,0.96,498.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,High_E,0.96,626.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,Low_E,0.96,750.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,High_F,0.96,924.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,Low_F,0.96,1117.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,High_G,0.96,1389.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,73-97,Low_G,0.96,1700.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,High_D,0.96,491,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,Low_D,0.96,612.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,High_E,0.96,760.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,Low_E,0.96,902.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,High_F,0.96,1102.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,Low_F,0.96,1325.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,High_G,0.96,1637.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,98-199,Low_G,0.96,1995.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,200,High_D,0.96,986.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,200,Low_D,0.96,1198.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,200,High_E,0.96,1462.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,200,Low_E,0.96,1716.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,200,High_F,0.96,2072.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,200,Low_F,0.96,2469.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,200,High_G,0.96,3026.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,Condensing Gas Boiler,200,Low_G,0.96,3663.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,High_D,0.96,151.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,Low_D,0.96,209.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,High_E,0.96,280.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,Low_E,0.96,349.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,High_F,0.96,445.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,Low_F,0.96,553,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,High_G,0.96,703.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,0-72,Low_G,0.96,876,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,High_D,0.96,189.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,Low_D,0.96,252.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,High_E,0.96,329.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,Low_E,0.96,403.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,High_F,0.96,507.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,Low_F,0.96,623.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,High_G,0.96,786.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,73-97,Low_G,0.96,972.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,High_D,0.96,252.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,Low_D,0.96,325.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,High_E,0.96,414.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,Low_E,0.96,499.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,High_F,0.96,619.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,Low_F,0.96,752.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,High_G,0.96,940,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,98-199,Low_G,0.96,1154.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,200,High_D,0.96,549.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,200,Low_D,0.96,676.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,200,High_E,0.96,835,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,200,Low_E,0.96,986.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,200,High_F,0.96,1200.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,200,Low_F,0.96,1438.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,200,High_G,0.96,1772.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,Condensing Gas Boiler,200,Low_G,0.96,2154.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,0-72,High_D,0.96,295.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,0-72,Low_D,0.96,383.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,0-72,High_E,0.96,492.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,0-72,Low_E,0.96,596.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,0-72,High_F,0.96,742.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,0-72,Low_F,0.96,905.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,0-72,High_G,0.96,1133.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,0-72,Low_G,0.96,1395.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,73-97,High_D,0.96,347,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,73-97,Low_D,0.96,442.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,73-97,High_E,0.96,559.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,73-97,Low_E,0.96,672.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,73-97,High_F,0.96,830.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,73-97,Low_F,0.96,1006.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,73-97,High_G,0.96,1253.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,73-97,Low_G,0.96,1536.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,98-199,High_D,0.96,437.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,98-199,Low_D,0.96,547.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,98-199,High_E,0.96,682.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,98-199,Low_E,0.96,811.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,98-199,High_F,0.96,993.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,98-199,Low_F,0.96,1196.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,98-199,High_G,0.96,1480.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,98-199,Low_G,0.96,1806.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,200,High_D,0.96,888.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,200,Low_D,0.96,1081.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,200,High_E,0.96,1321.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,200,Low_E,0.96,1551.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,200,High_F,0.96,1875.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,200,Low_F,0.96,2237.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,200,High_G,0.96,2744.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,Condensing Gas Boiler,200,Low_G,0.96,3324,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,High_D,0.96,205.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,260.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,High_E,0.96,326.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,391.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,High_F,0.96,481.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,581.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,High_G,0.96,722.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,884,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,High_D,0.96,235.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,294.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,High_E,0.96,366.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,436,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,High_F,0.96,533.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,642,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,High_G,0.96,794.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,968.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,High_D,0.96,288.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,356.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,High_E,0.96,440,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,519.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,High_F,0.96,631.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,756.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,High_G,0.96,932.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,1133,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,200,High_D,0.96,567.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,200,Low_D,0.96,685.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,200,High_E,0.96,834,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,200,Low_E,0.96,976.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,200,High_F,0.96,1176,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,200,Low_F,0.96,1398.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,200,High_G,0.96,1711.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,Condensing Gas Boiler,200,Low_G,0.96,2069.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,0-72,High_D,0.96,151.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,0-72,Low_D,0.96,191.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,0-72,High_E,0.96,240.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,0-72,Low_E,0.96,288.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,0-72,High_F,0.96,354.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,0-72,Low_F,0.96,428.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,0-72,High_G,0.96,532.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,0-72,Low_G,0.96,651.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,73-97,High_D,0.96,173.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,73-97,Low_D,0.96,216.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,73-97,High_E,0.96,270.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,73-97,Low_E,0.96,321.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,73-97,High_F,0.96,393,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,73-97,Low_F,0.96,473,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,73-97,High_G,0.96,585.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,73-97,Low_G,0.96,713.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,98-199,High_D,0.96,212.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,98-199,Low_D,0.96,263,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,98-199,High_E,0.96,324.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,98-199,Low_E,0.96,383,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,98-199,High_F,0.96,465.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,98-199,Low_F,0.96,557.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,98-199,High_G,0.96,687,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,98-199,Low_G,0.96,834.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,200,High_D,0.96,417.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,200,Low_D,0.96,505.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,200,High_E,0.96,614.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,200,Low_E,0.96,719.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,200,High_F,0.96,866.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,200,Low_F,0.96,1030.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,200,High_G,0.96,1261.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,Condensing Gas Boiler,200,Low_G,0.96,1524.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,386.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,434.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,553.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,667.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,828.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,1007.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,1259,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,1546.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,392.8,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,498.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,626.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,750.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,924.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,1117.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,1389.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,1700.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,491,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,612.3,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,760.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,902.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,1102.4,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,1325.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,1637.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1995.5,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,High_D,0.96,986.9,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,1198.7,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,High_E,0.96,1462.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,1716.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,High_F,0.96,2072.1,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,2469.2,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,High_G,0.96,3026.6,N/A +Boiler,B_First_Time_CH,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,3663.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,288.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,375.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,482.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,584.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,728.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,888.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,1113.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,1371.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,339.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,434,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,549.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,659.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,815.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,988.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,1231.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,1510,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,428.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,537.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,669.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,797.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,976,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,1175.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,1455.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1775.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,872.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,1062.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,1298.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,1525.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1844.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,2199.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,2698.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,3269.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,151.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,209.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,280.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,349.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,445.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,553,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,703.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,876,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,189.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,252.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,329.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,403.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,507.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,623.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,786.5,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,972.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,252.7,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,325.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,414.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,499.4,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,619.1,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,752.6,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,940,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1154.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,High_D,0.96,549.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,676.8,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,High_E,0.96,835,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,986.9,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1200.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1438.2,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1772.3,N/A +Boiler,B_First_Time_CH,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,2154.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,86.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,131,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,185.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,238.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,312,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,394.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,509.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,641.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,118.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,166.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,225.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,282.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,362.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,451,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,575.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,718.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,169.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,225.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,293.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,358.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,450.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,552.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,696.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,860.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,397.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,494.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,615.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,732.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,895.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1078,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1334,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,1626.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,123,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,172.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,232.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,290.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,371.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,461.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,588.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,734.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,155.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,208.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,273.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,336.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,423.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,521.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,659.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,816.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,209.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,270.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,345.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,417.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,518.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,630.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,788.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,969.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,High_D,0.96,460,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,567,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,High_E,0.96,700.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,828.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1008.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1208.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1490.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,1812.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,302.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,391.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,499.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,603.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,749.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,912.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,1141.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,1403.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,353.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,449.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,566.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,679.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,837.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,1013.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,1260.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,1543.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,443.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,553.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,688.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,818,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,999.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,1202.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,1486.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1812.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,894.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,1087.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,1327.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,1558.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1882,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,2243.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,2750.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,3330.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,295.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,383.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,492.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,596.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,742.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,905.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,1133.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,1395.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,347,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,442.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,559.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,672.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,830.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,1006.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,1253.6,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,1536.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,437.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,547.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,682.4,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,811.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,993.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,1196.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,1480.7,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1806.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,High_D,0.96,888.5,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,1081.2,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,High_E,0.96,1321.3,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,1551.9,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1875.8,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,2237.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,High_G,0.96,2744.1,N/A +Boiler,B_First_Time_CH,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,3324,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,17.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,41.3,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,75.2,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,113.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,166.2,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,227,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,14.5,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,41.7,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,67.8,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,104.5,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,145.5,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,202.9,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,268.6,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,22.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,47.7,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,79,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,109.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,151.3,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,198.4,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,264.5,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,340.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,126.9,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,171.7,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,227.5,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,281.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,356.3,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,440.3,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,558.1,N/A +Boiler,B_Upgrade_nopreHCs,Biomass Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,692.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,205.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,260.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,326.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,391.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,481.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,581.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,722.7,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,884,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,235.3,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,294.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,366.6,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,436,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,533.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,642,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,794.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,968.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,288.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,356.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,440,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,519.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,631.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,756.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,932.4,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1133,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,567.1,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,685.9,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,834,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,976.2,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1176,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1398.8,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1711.5,N/A +Boiler,B_First_Time_CH,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,2069.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,151.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,191.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,240.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,288.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,354.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,428.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,532.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,651.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,173.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,216.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,270.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,321.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,393,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,473,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,585.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,713.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,212.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,263,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,324.2,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,383,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,465.6,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,557.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,687,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,834.8,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,High_D,0.96,417.9,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,505.4,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,High_E,0.96,614.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,719.3,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,High_F,0.96,866.5,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1030.7,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1261.1,N/A +Boiler,B_First_Time_CH,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,1524.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,118.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,150.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,189.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,226.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,278.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,336.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,418.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,511.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,136.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,170.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,212.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,252.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,308.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,371.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,459.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,560.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,167.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,206.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,254.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,300.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,365.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,438.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,539.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,655.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,High_D,0.96,328.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,397.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,High_E,0.96,482.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,565.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,High_F,0.96,680.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,809.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,High_G,0.96,990.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Back Boiler to Radiators,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,1197.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,125.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,178.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,243.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,305.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,392.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,490,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,626.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,783,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,161,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,218.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,288.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,355.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,449.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,555.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,702.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,871.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,219.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,285.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,366.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,443.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,552,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,673.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,843.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1037.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,489.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,604.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,747.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,885.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1079.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1295.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1598.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,1944.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,81.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,125.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,178.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,230.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,302.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,382.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,495.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,624.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,113,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,160.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,218.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,273.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,351.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,438.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,560.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,700.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,163.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,218,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,284.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,348.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,438.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,538.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,678.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,839.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,386.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,481.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,600,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,713.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,873.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1052.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1302.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,1588.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,269.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,346.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,441.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,531.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,658.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,800.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,999.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,1227.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,313.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,397,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,498.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,596.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,734.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,887.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,1103.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,1349.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,391.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,487.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,604.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,717.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,875.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,1051.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,1299.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1583,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,783.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,951.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,1160.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,1361.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1643.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1958.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,2399.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,2904.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,233.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,302.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,386.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,466.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,579.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,706.1,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,883.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,1085.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,273.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,347.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,438.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,525.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,647.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,784,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,975.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,1194.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,342.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,428.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,532.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,632.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,773.5,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,930.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,1150.7,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1402.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,692.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,841.4,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,1027.2,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,1205.8,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1456.6,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1736.3,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,2128.9,N/A +Boiler,B_Upgrade_nopreHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,2577.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,70.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,89,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,111.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,133.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,164.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,199,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,247.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,302.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,80.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,100.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,125.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,149.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,182.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,219.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,271.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,331.4,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,98.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,122.1,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,150.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,177.8,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,216.2,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,258.9,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,319,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,387.6,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,194,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,234.7,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,285.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,334,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,402.3,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,478.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,585.5,N/A +Boiler,B_Upgrade_nopreHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,707.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,122.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,178.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,245.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,310.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,403.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,510.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,664.7,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,844.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,152.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,212.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,284.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,351.6,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,448.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,557.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,715,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,898.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,203.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,273.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,357.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,436.8,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,549.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,677,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,859.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1072.2,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,427.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,547.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,693.5,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,830.3,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1025.4,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1246.9,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1564.1,N/A +Boiler,B_Upgrade_preHCs,Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,1934.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,0.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,36.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,71.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,124.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,185.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,276.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,383.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,23.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,61.5,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,98.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,152.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,216.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,309.6,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,420.9,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,32.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,71.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,117.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,160.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,224.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,297.8,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,405.2,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,532.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,132.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,196.9,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,276.1,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,351.4,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,463,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,593.7,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,785.3,N/A +Boiler,B_Upgrade_preHCs,Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,1013.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,244.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,326.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,427.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,525.7,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,666.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,825.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,1051.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,1311.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,286.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,374.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,482,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,585.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,734.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,901.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,1139.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,1414.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,362.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,464.3,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,588.8,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,709.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,880.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,1074.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,1350.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1667.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,734.4,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,907.2,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,1122.9,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,1330.6,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1627.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1962.5,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,2439.1,N/A +Boiler,B_Upgrade_preHCs,Electric Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,2990.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,10.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,28.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,56.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,93.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,12.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,35.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,66.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,16.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,33.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,62.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,100.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,0,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,16.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,47.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,99.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Gas Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,167.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,152.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,215.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,290.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,361,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,461.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,574.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,736.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,925.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,183.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,252.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,334.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,409.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,516.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,635.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,806.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,1004.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,239,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,319.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,414.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,501.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,624.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,763.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,959.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1188,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,504,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,643,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,807.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,957.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1167.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1401.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1734.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,2122.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,7.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,46.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,95,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,141.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,210.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,291,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,407.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,545.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,31.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,73.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,123.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,171.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,242.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,324.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,444.1,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,585,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,78.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,128.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,187.8,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,243.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,324.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,417.4,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,551.7,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,709.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,224,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,307.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,409.6,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,505.9,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,646.3,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,808.5,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1044.2,N/A +Boiler,B_Upgrade_preHCs,Non Condensing Oil Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,1322.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,12.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,50.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,97.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,143.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,211.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,290.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,404.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,536.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,35.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,75.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,124,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,171.7,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,241.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,322.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,438.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,573.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,76.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,122.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,179.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,234.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,315.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,408.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,541.9,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,697.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,217.5,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,294.6,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,392,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,487.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,626.4,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,787.1,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1019.2,N/A +Boiler,B_Upgrade_preHCs,Solid Fossil Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,1290.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,123,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,172.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,232.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,290.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,371.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,461.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,588.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,734.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,155.6,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,208.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,273.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,336.2,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,423.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,521.8,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,659.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,816.1,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,209.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,270.7,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,345.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,417.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,518.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,630.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,788.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,969.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,High_D,0.96,460,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,567,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,High_E,0.96,700.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,828.4,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1008.3,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1208.9,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1490.5,N/A +Boiler,B_First_Time_CH,Electric Storage Heaters Responsiveness <=0.2,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,1812.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,386.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,434.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,553.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,667.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,828.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,1007.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,1259,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,1546.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,392.8,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,498.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,626.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,750.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,924.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,1117.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,1389.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,1700.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,491,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,612.3,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,760.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,902.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,1102.4,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,1325.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,1637.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1995.5,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,High_D,0.96,986.9,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,1198.7,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,High_E,0.96,1462.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,1716.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,High_F,0.96,2072.1,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,2469.2,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,High_G,0.96,3026.6,N/A +Boiler,B_Upgrade_nopreHCs,Bottled LPG Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,3663.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,151.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,209.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,280.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,349.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,445.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,553,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,703.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,876,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,189.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,252.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,329.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,403.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,507.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,623.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,786.5,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,972.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,252.7,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,325.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,414.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,499.4,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,619.1,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,752.6,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,940,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1154.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,High_D,0.96,549.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,676.8,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,High_E,0.96,835,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,986.9,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1200.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1438.2,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1772.3,N/A +Boiler,B_Upgrade_nopreHCs,Solid Fossil Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,2154.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,295.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,383.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,492.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,596.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,742.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,905.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,1133.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,1395.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,347,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,442.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,559.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,672.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,830.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,1006.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,1253.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,1536.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,437.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,547.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,682.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,811.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,993.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,1196.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,1480.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1806.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,High_D,0.96,888.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,1081.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,High_E,0.96,1321.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,1551.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1875.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,2237.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,High_G,0.96,2744.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,3324,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,205.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,260.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,326.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,391.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,481.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,581.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,722.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,884,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,235.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,294.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,366.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,436,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,533.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,642,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,794.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,968.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,288.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,356.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,440,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,519.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,631.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,756.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,932.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1133,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,567.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,685.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,834,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,976.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1176,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1398.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1711.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Fire with Back Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,2069.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,151.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,191.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,240.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,288.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,354.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,428.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,532.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,651.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,173.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,216.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,270.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,321.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,393,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,473,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,585.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,713.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,212.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,263,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,324.2,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,383,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,465.6,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,557.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,687,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,834.8,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,High_D,0.96,417.9,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,505.4,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,High_E,0.96,614.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,719.3,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,High_F,0.96,866.5,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1030.7,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,High_G,0.96,1261.1,N/A +Boiler,B_Upgrade_nopreHCs,Gas Room Heaters,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,1524.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,0-72,High_D,0.96,84.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,0-72,Low_D,0.96,101.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,0-72,High_E,0.96,123.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,0-72,Low_E,0.96,144,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,0-72,High_F,0.96,173.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,0-72,Low_F,0.96,205.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,0-72,High_G,0.96,251.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,0-72,Low_G,0.96,303.3,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,73-97,High_D,0.96,92.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,73-97,Low_D,0.96,111.2,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,73-97,High_E,0.96,134.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,73-97,Low_E,0.96,156.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,73-97,High_F,0.96,188.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,73-97,Low_F,0.96,223.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,73-97,High_G,0.96,272.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,73-97,Low_G,0.96,329.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,98-199,High_D,0.96,107.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,98-199,Low_D,0.96,129.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,98-199,High_E,0.96,156.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,98-199,Low_E,0.96,182.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,98-199,High_F,0.96,218.6,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,98-199,Low_F,0.96,259,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,98-199,High_G,0.96,315.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,98-199,Low_G,0.96,380.5,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,200,High_D,0.96,197.7,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,200,Low_D,0.96,236.1,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,200,High_E,0.96,283.9,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,200,Low_E,0.96,329.8,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,200,High_F,0.96,394.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,200,Low_F,0.96,466.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,200,High_G,0.96,567.4,N/A +Boiler,B_Upgrade_nopreHCs,Electric Storage Heaters Responsiveness >0.2,Air to Water ASHP,200,Low_G,0.96,682.9,N/A +Other Heating,Smarttherm,Air to Water ASHP,N/A,0-72,High_D,1,26.3,1.16 +Other Heating,Smarttherm,Air to Water ASHP,N/A,0-72,Low_D,1,31.4,1.39 +Other Heating,Smarttherm,Air to Water ASHP,N/A,0-72,High_E,1,37,1.7 +Other Heating,Smarttherm,Air to Water ASHP,N/A,0-72,Low_E,1,40.7,1.68 +Other Heating,Smarttherm,Air to Water ASHP,N/A,0-72,High_F,1,47,1.64 +Other Heating,Smarttherm,Air to Water ASHP,N/A,0-72,Low_F,1,51.6,1.53 +Other Heating,Smarttherm,Air to Water ASHP,N/A,0-72,High_G,1,56.6,1.38 +Other Heating,Smarttherm,Air to Water ASHP,N/A,0-72,Low_G,1,61.6,1.25 +Other Heating,Smarttherm,Air to Water ASHP,N/A,73-97,High_D,1,29.4,1.2 +Other Heating,Smarttherm,Air to Water ASHP,N/A,73-97,Low_D,1,38.4,1.57 +Other Heating,Smarttherm,Air to Water ASHP,N/A,73-97,High_E,1,44.8,1.89 +Other Heating,Smarttherm,Air to Water ASHP,N/A,73-97,Low_E,1,51.9,2 +Other Heating,Smarttherm,Air to Water ASHP,N/A,73-97,High_F,1,59.3,1.92 +Other Heating,Smarttherm,Air to Water ASHP,N/A,73-97,Low_F,1,70.7,1.95 +Other Heating,Smarttherm,Air to Water ASHP,N/A,73-97,High_G,1,79.4,1.8 +Other Heating,Smarttherm,Air to Water ASHP,N/A,73-97,Low_G,1,88.7,1.68 +Other Heating,Smarttherm,Air to Water ASHP,N/A,98-199,High_D,1,33.6,1.2 +Other Heating,Smarttherm,Air to Water ASHP,N/A,98-199,Low_D,1,41.1,1.47 +Other Heating,Smarttherm,Air to Water ASHP,N/A,98-199,High_E,1,50.1,1.86 +Other Heating,Smarttherm,Air to Water ASHP,N/A,98-199,Low_E,1,56.8,1.88 +Other Heating,Smarttherm,Air to Water ASHP,N/A,98-199,High_F,1,66.7,1.86 +Other Heating,Smarttherm,Air to Water ASHP,N/A,98-199,Low_F,1,76.1,1.8 +Other Heating,Smarttherm,Air to Water ASHP,N/A,98-199,High_G,1,88.6,1.73 +Other Heating,Smarttherm,Air to Water ASHP,N/A,98-199,Low_G,1,99,1.62 +Other Heating,Smarttherm,Air to Water ASHP,N/A,200,High_D,1,71.2,1.42 +Other Heating,Smarttherm,Air to Water ASHP,N/A,200,Low_D,1,86.3,1.73 +Other Heating,Smarttherm,Air to Water ASHP,N/A,200,High_E,1,99.9,2.09 +Other Heating,Smarttherm,Air to Water ASHP,N/A,200,Low_E,1,117.8,2.17 +Other Heating,Smarttherm,Air to Water ASHP,N/A,200,High_F,1,136.5,2.12 +Other Heating,Smarttherm,Air to Water ASHP,N/A,200,Low_F,1,154.6,2.04 +Other Heating,Smarttherm,Air to Water ASHP,N/A,200,High_G,1,181.2,1.98 +Other Heating,Smarttherm,Air to Water ASHP,N/A,200,Low_G,1,202.1,1.84 +Other Heating,P&RT,Bottled LPG Boiler,N/A,0-72,High_D,1,33.3,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,0-72,Low_D,1,38.5,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,0-72,High_E,1,45.4,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,0-72,Low_E,1,52.4,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,0-72,High_F,1,61.3,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,0-72,Low_F,1,70.4,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,0-72,High_G,1,81.8,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,0-72,Low_G,1,93.5,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,73-97,High_D,1,37.3,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,73-97,Low_D,1,43.9,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,73-97,High_E,1,53.1,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,73-97,Low_E,1,62.9,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,73-97,High_F,1,76.1,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,73-97,Low_F,1,90,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,73-97,High_G,1,108.1,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,73-97,Low_G,1,127.2,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,98-199,High_D,1,44.5,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,98-199,Low_D,1,51.9,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,98-199,High_E,1,62.2,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,98-199,Low_E,1,73.1,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,98-199,High_F,1,87.8,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,98-199,Low_F,1,103.4,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,98-199,High_G,1,123.7,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,98-199,Low_G,1,145,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,200,High_D,1,84,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,200,Low_D,1,97.6,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,200,High_E,1,117,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,200,Low_E,1,138,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,200,High_F,1,166.5,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,200,Low_F,1,196.9,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,200,High_G,1,237,N/A +Other Heating,P&RT,Bottled LPG Boiler,N/A,200,Low_G,1,279.4,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,0-72,High_D,1,27.7,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,0-72,Low_D,1,29.4,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,0-72,High_E,1,30,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,0-72,Low_E,1,29,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,0-72,High_F,1,25.7,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,0-72,Low_F,1,20.7,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,0-72,High_G,1,12.3,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,0-72,Low_G,1,1.9,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,73-97,High_D,1,32.6,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,73-97,Low_D,1,34.5,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,73-97,High_E,1,35.3,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,73-97,Low_E,1,34.4,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,73-97,High_F,1,31.3,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,73-97,Low_F,1,26.3,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,73-97,High_G,1,17.8,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,73-97,Low_G,1,7.2,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,98-199,High_D,1,39.7,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,98-199,Low_D,1,41.5,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,98-199,High_E,1,41.8,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,98-199,Low_E,1,40.3,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,98-199,High_F,1,36,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,98-199,Low_F,1,29.5,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,98-199,High_G,1,18.9,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,98-199,Low_G,1,5.8,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,200,High_D,1,83,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,200,Low_D,1,90.1,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,200,High_E,1,96.1,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,200,Low_E,1,99,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,200,High_F,1,99.1,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,200,Low_F,1,95.6,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,200,High_G,1,87.2,N/A +Other Heating,TRV,Bottled LPG Boiler,N/A,200,Low_G,1,74.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,High_D,0.96,364.1,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,Low_D,0.96,473.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,High_E,0.96,607.3,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,Low_E,0.96,737.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,High_F,0.96,922.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,Low_F,0.96,1131.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,High_G,0.96,1428.1,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,0-72,Low_G,0.96,1768.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,High_D,0.96,398.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,Low_D,0.96,510.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,High_E,0.96,648.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,Low_E,0.96,781.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,High_F,0.96,970.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,Low_F,0.96,1184,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,High_G,0.96,1486.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,73-97,Low_G,0.96,1834.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,High_D,0.96,464,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,Low_D,0.96,587.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,High_E,0.96,739.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,Low_E,0.96,886,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,High_F,0.96,1094.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,Low_F,0.96,1329.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,High_G,0.96,1662.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,98-199,Low_G,0.96,2046.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,High_D,0.96,890.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,Low_D,0.96,1095.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,High_E,0.96,1351.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,Low_E,0.96,1597.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,High_F,0.96,1948.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,Low_F,0.96,2344.3,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,High_G,0.96,2906.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Fuel Cell mCHP,200,Low_G,0.96,3555,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,0-72,High_D,0.96,322.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,0-72,Low_D,0.96,395.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,0-72,High_E,0.96,486.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,0-72,Low_E,0.96,575.3,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,0-72,High_F,0.96,702.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,0-72,Low_F,0.96,846.3,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,0-72,High_G,0.96,1051.1,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,0-72,Low_G,0.96,1287.3,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,73-97,High_D,0.96,349.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,73-97,Low_D,0.96,428.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,73-97,High_E,0.96,524.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,73-97,Low_E,0.96,618.1,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,73-97,High_F,0.96,751.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,73-97,Low_F,0.96,902.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,73-97,High_G,0.96,1117.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,73-97,Low_G,0.96,1365.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,98-199,High_D,0.96,407.3,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,98-199,Low_D,0.96,498.3,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,98-199,High_E,0.96,610.1,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,98-199,Low_E,0.96,718.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,98-199,High_F,0.96,872.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,98-199,Low_F,0.96,1047.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,98-199,High_G,0.96,1296.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,98-199,Low_G,0.96,1584,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,200,High_D,0.96,734.3,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,200,Low_D,0.96,888.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,200,High_E,0.96,1081.3,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,200,Low_E,0.96,1266.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,200,High_F,0.96,1532.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,200,Low_F,0.96,1833.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,200,High_G,0.96,2262.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,GSHP,200,Low_G,0.96,2759.3,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,High_D,0.96,292.1,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,Low_D,0.96,359.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,High_E,0.96,442.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,Low_E,0.96,523.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,High_F,0.96,640.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,Low_F,0.96,772.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,High_G,0.96,961.1,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,0-72,Low_G,0.96,1178.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,High_D,0.96,317,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,Low_D,0.96,388.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,High_E,0.96,476.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,Low_E,0.96,561.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,High_F,0.96,684,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,Low_F,0.96,822.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,High_G,0.96,1019.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,73-97,Low_G,0.96,1248,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,High_D,0.96,368.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,Low_D,0.96,451.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,High_E,0.96,554,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,Low_E,0.96,652.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,High_F,0.96,794.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,Low_F,0.96,955.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,High_G,0.96,1183.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,98-199,Low_G,0.96,1447.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,200,High_D,0.96,663.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,200,Low_D,0.96,804.1,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,200,High_E,0.96,979.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,200,Low_E,0.96,1148.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,200,High_F,0.96,1391.3,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,200,Low_F,0.96,1666.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,200,High_G,0.96,2059.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Air to Water ASHP,200,Low_G,0.96,2514.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,0-72,High_D,0.96,317.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,0-72,Low_D,0.96,390.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,0-72,High_E,0.96,480.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,0-72,Low_E,0.96,567.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,0-72,High_F,0.96,693.1,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,0-72,Low_F,0.96,835.3,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,0-72,High_G,0.96,1037.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,0-72,Low_G,0.96,1271.1,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,73-97,High_D,0.96,345,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,73-97,Low_D,0.96,422.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,73-97,High_E,0.96,517.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,73-97,Low_E,0.96,609.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,73-97,High_F,0.96,741.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,73-97,Low_F,0.96,890.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,73-97,High_G,0.96,1102.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,73-97,Low_G,0.96,1348.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,98-199,High_D,0.96,401.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,98-199,Low_D,0.96,491.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,98-199,High_E,0.96,601.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,98-199,Low_E,0.96,708.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,98-199,High_F,0.96,861.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,98-199,Low_F,0.96,1034.1,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,98-199,High_G,0.96,1279.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,98-199,Low_G,0.96,1563.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,200,High_D,0.96,723.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,200,Low_D,0.96,876,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,200,High_E,0.96,1066.1,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,200,Low_E,0.96,1249.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,200,High_F,0.96,1511.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,200,Low_F,0.96,1808.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,200,High_G,0.96,2232.3,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Biomass Boiler,200,Low_G,0.96,2722.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,High_D,0.96,227.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,Low_D,0.96,307.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,High_E,0.96,406.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,Low_E,0.96,503.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,High_F,0.96,641.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,Low_F,0.96,797.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,High_G,0.96,1019.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,0-72,Low_G,0.96,1275.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,High_D,0.96,269.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,Low_D,0.96,355.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,High_E,0.96,460.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,Low_E,0.96,562.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,High_F,0.96,707.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,Low_F,0.96,872.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,High_G,0.96,1105.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,73-97,Low_G,0.96,1375.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,High_D,0.96,344.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,Low_D,0.96,443.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,High_E,0.96,565.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,Low_E,0.96,683.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,High_F,0.96,852.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,Low_F,0.96,1042.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,High_G,0.96,1312.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,98-199,Low_G,0.96,1624.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,High_D,0.96,705.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,Low_D,0.96,874.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,High_E,0.96,1085.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,Low_E,0.96,1288.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,High_F,0.96,1578.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,Low_F,0.96,1907.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,High_G,0.96,2374.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,Condensing Gas Boiler,200,Low_G,0.96,2915,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_D,0.96,227.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_D,0.96,307.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_E,0.96,406.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_E,0.96,503.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_F,0.96,641.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_F,0.96,797.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,High_G,0.96,1019.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,0-72,Low_G,0.96,1275.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_D,0.96,269.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_D,0.96,355.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_E,0.96,460.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_E,0.96,562.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_F,0.96,707.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_F,0.96,872.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,High_G,0.96,1105.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,73-97,Low_G,0.96,1375.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_D,0.96,344.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_D,0.96,443.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_E,0.96,565.9,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_E,0.96,683.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_F,0.96,852.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_F,0.96,1042.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,High_G,0.96,1312.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,98-199,Low_G,0.96,1624.8,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_D,0.96,705.7,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_D,0.96,874.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_E,0.96,1085.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_E,0.96,1288.4,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_F,0.96,1578.6,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_F,0.96,1907.2,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,High_G,0.96,2374.5,N/A +Boiler,B_Upgrade_preHCs,Bottled LPG Boiler,ASHP/Gas Boiler Hybrid,200,Low_G,0.96,2915,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,GSHP,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,0-72,High_D,1,250.6,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,GSHP,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,0-72,Low_D,1,250.6,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,GSHP,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,0-72,High_E,1,250.6,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,GSHP,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,0-72,Low_E,1,250.6,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,GSHP,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,0-72,High_F,1,250.6,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,GSHP,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,0-72,Low_F,1,250.6,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,GSHP,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,0-72,High_G,1,250.6,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,GSHP,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,0-72,Low_G,1,250.6,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,GSHP,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,73-97,High_D,1,227.8,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,GSHP,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,73-97,Low_D,1,227.8,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,GSHP,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,73-97,High_E,1,227.8,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,GSHP,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,73-97,Low_E,1,227.8,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,GSHP,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,73-97,High_F,1,227.8,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,GSHP,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,73-97,Low_F,1,227.8,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,GSHP,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,73-97,High_G,1,227.8,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,GSHP,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,73-97,Low_G,1,227.8,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,GSHP,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,98-199,High_D,1,205.8,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,GSHP,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,98-199,Low_D,1,205.8,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,GSHP,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,98-199,High_E,1,205.8,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,GSHP,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,98-199,Low_E,1,205.9,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,GSHP,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,98-199,High_F,1,206.1,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,GSHP,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,98-199,Low_F,1,206.2,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,GSHP,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,98-199,High_G,1,206.4,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,GSHP,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,98-199,Low_G,1,206.7,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,GSHP,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,200,High_D,1,205,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,GSHP,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,200,Low_D,1,205,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,GSHP,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,200,High_E,1,205,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,GSHP,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,200,Low_E,1,205,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,GSHP,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,200,High_F,1,205,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,GSHP,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,200,Low_F,1,205,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,GSHP,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,200,High_G,1,205,N/A +Micro-Generation,Solar_PV,Air to Water ASHP,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Biomass Boiler,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Boiler,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Bottled LPG Room Heaters,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Condensing Gas Boiler,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Condensing LPG Boiler,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Condensing Oil Boiler,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,DHS CHP,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,DHS non-CHP,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Electric Boiler,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Electric Room Heaters,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness <=0.2,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Electric Storage Heaters Responsiveness >0.2,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Gas Back Boiler to Radiators,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Gas Fire with Back Boiler,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Gas Room Heaters,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,GSHP,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Gas Boiler,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing LPG Boiler,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Non Condensing Oil Boiler,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Boiler,N/A,200,Low_G,1,205,N/A +Micro-Generation,Solar_PV,Solid Fossil Room Heaters,N/A,200,Low_G,1,205,N/A \ No newline at end of file From 1aa6371ff5b41fca72462c05824c343a182043f1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Aug 2025 14:26:12 +0100 Subject: [PATCH 05/73] fixing funding tests --- backend/Funding.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index d3283982..e52b1943 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -297,14 +297,28 @@ class Funding: """ Returns the closest starting U-value and appropriate ending U-value for solid wall insulation. - - If current_uvalue is closest to 0.45, assume the improvement target is 0.21. - - Otherwise, assume the target is 0.30. + - If the closest starting U-value is 0.45, assume an improvement to 0.21. + - Otherwise, assume improvement to 0.30. + - Special formatting rules: + - If closest is 0.45 → return "2" (string) + - If closest is 2.00 → return "2.0" + - Else: format with 2 decimal places """ possible_starting_u_values = [2.00, 1.70, 1.00, 0.60, 0.45] closest_starting = min(possible_starting_u_values, key=lambda x: abs(x - current_uvalue)) - ending_uvalue = 0.21 if closest_starting == 0.45 else 0.30 - return f"{closest_starting:.2f}", f"{ending_uvalue:.2f}" + # Determine the ending U-value + ending_uvalue = "0.21" if closest_starting == 0.45 else "0.3" + + # Format the starting U-value according to special rules + if closest_starting == 0.45: + starting_str = "2" + elif closest_starting == 2.00: + starting_str = "2.0" + else: + starting_str = f"{closest_starting:.2f}" + + return starting_str, ending_uvalue def calculate_partial_project_abs( self, From e2e2e8c71cdf1af1b8b6764d7dcf03ca4c00373e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 6 Aug 2025 20:04:38 +0100 Subject: [PATCH 06/73] added insulation precondition unit tests --- backend/Funding.py | 161 ++++++++- .../ECO4_Partial_Project_Scores_Matrix_v6.csv | 0 backend/tests/test_data/heating_scenarios.py | 104 ++++++ .../test_data/innovation_measure_fixtures.py | 170 +++++++++ backend/tests/test_funding.py | 323 +++++++++++++++++- 5 files changed, 735 insertions(+), 23 deletions(-) rename {recommendations => backend}/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv (100%) create mode 100644 backend/tests/test_data/heating_scenarios.py create mode 100644 backend/tests/test_data/innovation_measure_fixtures.py diff --git a/backend/Funding.py b/backend/Funding.py index e52b1943..74d43e3e 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -1,16 +1,14 @@ from enum import Enum -import pandas as pd -import numpy as np from typing import List -from backend.app.plan.schemas import HousingType, WALL_INSULATION_MEASURES, ROOF_INSULATION_MEASURES +from backend.app.plan.schemas import HousingType, WALL_INSULATION_MEASURES, ROOF_INSULATION_MEASURES, MEASURE_MAP class EligibilityCaveats(Enum): TENANT_ON_BENEFITS_OR_LOW_INCOME = "tenant_on_benefits_or_low_income" INNOVATION_REQUIRED = "innovation_required" SOLAR_NEEDS_HEATING = "solar_needs_heating" - NEEDS_INSULATION_TO_MINIMUM_STANDARDS = "needs_insulation_to_minimum_standards" + MINIMUM_INSULATION_PRECONDITIONS_NOT_MET = "minimum_insulation_preconditions_not_met" class Funding: @@ -97,9 +95,9 @@ class Funding: measures: list of dicts like {"type": "solar_pv", "is_innovation": True} """ measure_types = [m["type"] for m in measures] - has_innovation = any(m.get("is_innovation", False) for m in measures) + innovation_flags = [m.get("is_innovation", False) for m in measures] innovation_measures = [m["type"] for m in measures if m.get("is_innovation", False)] - return measure_types, has_innovation, innovation_measures + return measure_types, innovation_flags, innovation_measures @staticmethod def _meets_upgrade_target(starting_sap: int, ending_sap: int) -> bool: @@ -205,7 +203,8 @@ class Funding: ending_sap: int, has_innovation: bool, has_solar: bool, - solar_eligible: bool + solar_eligible: bool, + solar_meets_mir: bool, ): """ ECO4 Social Housing eligibility. @@ -215,6 +214,11 @@ class Funding: """ if has_solar and not solar_eligible: # The package contins solar PV but it doesn't meet the eligibility requirements + self.eco4_eligible = False + if not solar_meets_mir: + self.eco4_eligibility_caveats.append(EligibilityCaveats.MINIMUM_INSULATION_PRECONDITIONS_NOT_MET) + else: + self.eco4_eligibility_caveats.append(EligibilityCaveats.SOLAR_NEEDS_HEATING) return meets_epc = starting_sap <= 69 @@ -234,6 +238,7 @@ class Funding: self.eco4_eligible = True self.eco4_eligibility_caveats = [] + return self.eco4_eligible = True self.eco4_eligibility_caveats = [] @@ -442,11 +447,14 @@ class Funding: Because of the various pre-requisites for solar, we have a self-contained function to check for eligibility - Returns a tuple of booleans (has_solar, solar_eligible) + Returns a tuple of booleans (has_solar, solar_eligible, meets_mir): corresponding to: + - If the package contains solar PV + - If the package is eligible for solar + - whether the package meets the minimum insulation requirements (MIR) """ if "solar_pv" not in measure_types: - return False, False + return False, False, False # 1) We check if there is an eligible heating system in place has_eligibile_heating = self.check_solar_eligible_heating_system( @@ -457,23 +465,116 @@ class Funding: # We check if there is a recommendation for an ASHP or HHRSH if ("air_source_heat_pump" not in measure_types) and ( "high_heat_retention_storage_heater" not in measure_types): - return True, False + return True, False, True # 2) We check if there is a wall insulation measure for this property. If so, we make sure # we have a wall insulation recommendation in this package if has_wall_insulation_recommendation: # Make sure we have a wall insulation recommendation if not any(m in measure_types for m in WALL_INSULATION_MEASURES): - return True, False + return True, False, False # 3) We check if there is a roof insulation measure for this property. If so, we make sure # we have a roof insulation recommendation in this package if has_roof_insulation_recommendation: # Make sure we have a roof insulation recommendation if not any(m in measure_types for m in ROOF_INSULATION_MEASURES): - return True, False + return True, False, False - return True, True + return True, True, True + + @staticmethod + def meets_innovation_requirement( + starting_sap: int, + measures: List[dict], + has_solar: bool, + solar_meets_mir: bool, + ) -> bool: + """ + Determines if the innovation requirement is met for EPC D social housing. + + - All measures must be innovation, unless: + - solar is present + - solar meets MIR (e.g. enough insulation) + - solar is innovation + - all other measures are insulation (can be non-innovation) + """ + + if not (55 <= starting_sap <= 68): + return True # Only EPC D requires innovation check + + # Case 1: solar + MIR met + if has_solar and solar_meets_mir: + for m in measures: + if m["type"] == "solar_pv": + if not m.get("is_innovation", False): + return False # solar must be innovation + elif m["type"] not in WALL_INSULATION_MEASURES + ROOF_INSULATION_MEASURES + [ + "suspended_floor_insulation", "solid_floor_insulation" + ]: + if not m.get("is_innovation", False): + return False # non-insulation, non-innovation = not eligible + return True + + # Case 2: No solar or MIR not met — all measures must be innovation + return all(m.get("is_innovation", False) for m in measures) + + @staticmethod + def has_heating_measure(measure_types: List[str]) -> bool: + """ + Heating measures include: ASHP, GSHP, FTCH, DHC, HHRSH, other storage heaters, heating controls, solar PV. + """ + heating_measures = MEASURE_MAP["heating"] + MEASURE_MAP["heating_controls"] + [ + "first_time_central_heating", "district_heating_connection", "solar_pv" + ] + return any(m in heating_measures for m in measure_types) + + @staticmethod + def meets_minimum_insulation_preconditions( + starting_sap: int, + measure_types: List[str], + has_wall_insulation_recommendation: bool, + has_roof_insulation_recommendation: bool, + has_ftch: bool = False, + has_dhc: bool = False, + ) -> bool: + """ + Applies ECO4 insulation guidance: + + - **Precondition 1**: + - Applies to EPC D homes WITHOUT FTCH or DHC + - Must have at least one insulation measure IF any are recommended + + - **Precondition 2**: + - Applies to EPC E/F/G or EPC D WITH FTCH or DHC + - Must include ALL *recommended* exterior wall and roof insulation (floor is exempt) + """ + # Normalize insulation types from MEASURE_MAP + wall_measures = MEASURE_MAP["wall_insulation"] + roof_measures = MEASURE_MAP["roof_insulation"] + floor_measures = MEASURE_MAP["floor_insulation"] + + has_any_insulation_recommendation = ( + has_wall_insulation_recommendation or has_roof_insulation_recommendation + # Floor is exempt, so we don't check for a recommendation here + ) + + # EPC D homes with no FTCH/DHC must include at least one insulation measure + if 55 <= starting_sap <= 68 and not has_ftch and not has_dhc: + if not has_any_insulation_recommendation: + return True + return any(m in measure_types for m in wall_measures + roof_measures + floor_measures) + + # EPC EFG or D with FTCH/DHC: all recommended insulation types must be in place + if has_wall_insulation_recommendation and not any(m in measure_types for m in wall_measures): + return False + if has_roof_insulation_recommendation and not any(m in measure_types for m in roof_measures): + return False + # We treat floors are exempt due to payback periods + # if has_floor_insulation_recommendation and not any(m in measure_types for m in floor_measures): + # return False + + return True def check_funding( self, @@ -501,10 +602,30 @@ class Funding: """ # Normalize measures - measure_types, has_innovation, innovation_measures = self._split_measures(measures) + measure_types, innovation_flags, innovation_measures = self._split_measures(measures) + + # If we have a heating measure, we check if we meet the pre conditions + has_ftch = "first_time_central_heating" in measure_types + has_dhc = "district_heating_connection" in measure_types + has_heating = self.has_heating_measure(measure_types) + if has_heating: + meets_mir = self.meets_minimum_insulation_preconditions( + starting_sap, + measure_types, + has_wall_insulation_recommendation, + has_roof_insulation_recommendation, + has_ftch=has_ftch, + has_dhc=has_dhc, + ) + if not meets_mir: + self.eco4_eligible = False + self.eco4_eligibility_caveats.append( + EligibilityCaveats.MINIMUM_INSULATION_PRECONDITIONS_NOT_MET + ) + return # Determine if we have a solar eligible heating system - has_solar, solar_eligible = self.check_solar_eligibility( + has_solar, solar_eligible, solar_meets_mir = self.check_solar_eligibility( measure_types, mainheat_description, heating_control_description, @@ -512,6 +633,10 @@ class Funding: has_roof_insulation_recommendation, ) + meets_innovation = self.meets_innovation_requirement( + starting_sap, measures, has_solar, solar_meets_mir + ) + # Track EPC bands and floor area self.starting_sap_band = self.get_sap_band(starting_sap) self.ending_sap_band = self.get_sap_band(ending_sap) @@ -531,10 +656,12 @@ class Funding: elif self.tenure == "Social": # ECO4 Social - self.eco4_sh_eligibility(starting_sap, ending_sap, has_innovation, has_solar, solar_eligible) + self.eco4_sh_eligibility( + starting_sap, ending_sap, meets_innovation, has_solar, solar_eligible, solar_meets_mir + ) # GBIS Social - self.gbis_sh_eligibility(starting_sap, measure_types, has_innovation) + self.gbis_sh_eligibility(starting_sap, measure_types, meets_innovation) if self.eco4_eligible: # Calculate the full project ABS for ECO4 diff --git a/recommendations/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv b/backend/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv similarity index 100% rename from recommendations/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv rename to backend/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv diff --git a/backend/tests/test_data/heating_scenarios.py b/backend/tests/test_data/heating_scenarios.py new file mode 100644 index 00000000..6144558f --- /dev/null +++ b/backend/tests/test_data/heating_scenarios.py @@ -0,0 +1,104 @@ +from backend.Funding import EligibilityCaveats + +heating_scenarios = [ + { + "description": "EPC D with ASHP and no insulation at all — fails precondition 1", + "measures": [{"type": "air_source_heat_pump"}], + "starting_sap": 60, + "mainheat_description": "air source heat pump", + "heating_control_description": "roomstat_programmer_trvs", + "has_wall_insulation_recommendation": True, + "has_roof_insulation_recommendation": False, + "expected_eligibility": False, + "expected_caveats": [EligibilityCaveats.MINIMUM_INSULATION_PRECONDITIONS_NOT_MET], + }, + { + "description": "EPC D with ASHP and no insulation at all — fails precondition 1", + "measures": [{"type": "air_source_heat_pump"}], + "starting_sap": 60, + "mainheat_description": "air source heat pump", + "heating_control_description": "roomstat_programmer_trvs", + "has_wall_insulation_recommendation": False, + "has_roof_insulation_recommendation": False, + "expected_eligibility": False, + "expected_caveats": [EligibilityCaveats.MINIMUM_INSULATION_PRECONDITIONS_NOT_MET], + }, + { + "description": "EPC D with ASHP and floor insulation — passes precondition 1", + "measures": [ + {"type": "air_source_heat_pump"}, + {"type": "suspended_floor_insulation"} + ], + "starting_sap": 60, + "has_wall_insulation_recommendation": False, + "has_roof_insulation_recommendation": False, + "mainheat_description": "air source heat pump", + "heating_control_description": "roomstat_programmer_trvs", + "expected_eligibility": True, + "expected_caveats": [], + }, + { + "description": "EPC E with ASHP and only floor insulation — fails precondition 2 due to missing wall/roof", + "measures": [ + {"type": "air_source_heat_pump"}, + {"type": "suspended_floor_insulation"} + ], + "starting_sap": 45, + "mainheat_description": "air source heat pump", + "heating_control_description": "roomstat_programmer_trvs", + "has_wall_insulation_recommendation": True, + "has_roof_insulation_recommendation": True, + "expected_eligibility": False, + "expected_caveats": [EligibilityCaveats.MINIMUM_INSULATION_PRECONDITIONS_NOT_MET], + }, + { + "description": "EPC E with ASHP and both wall and roof insulation — passes precondition 2", + "measures": [ + {"type": "air_source_heat_pump"}, + {"type": "external_wall_insulation"}, + {"type": "loft_insulation"} + ], + "starting_sap": 45, + "mainheat_description": "air source heat pump", + "heating_control_description": "roomstat_programmer_trvs", + "has_wall_insulation_recommendation": True, + "has_roof_insulation_recommendation": True, + "expected_eligibility": True, + "expected_caveats": [], + }, + { + "description": "EPC D with FTCH and no insulation — still passes (exempt from precondition 1)", + "measures": [{"type": "first_time_central_heating"}], + "starting_sap": 60, + "mainheat_description": "none", + "heating_control_description": "none", + "expected_eligibility": True, + "expected_caveats": [], + }, + { + "description": "EPC E with FTCH and no insulation — fails precondition 2", + "measures": [{"type": "first_time_central_heating"}], + "starting_sap": 45, + "mainheat_description": "none", + "heating_control_description": "none", + "has_wall_insulation_recommendation": True, + "has_roof_insulation_recommendation": True, + "expected_eligibility": False, + "expected_caveats": [EligibilityCaveats.MINIMUM_INSULATION_PRECONDITIONS_NOT_MET], + }, + { + "description": "EPC E with FTCH and wall/roof insulation — passes precondition 2", + "measures": [ + {"type": "first_time_central_heating"}, + {"type": "external_wall_insulation"}, + {"type": "loft_insulation"}, + ], + "starting_sap": 45, + "mainheat_description": "none", + "heating_control_description": "none", + "has_wall_insulation_recommendation": True, + "has_roof_insulation_recommendation": True, + "expected_eligibility": True, + "expected_caveats": [], + }, +] diff --git a/backend/tests/test_data/innovation_measure_fixtures.py b/backend/tests/test_data/innovation_measure_fixtures.py new file mode 100644 index 00000000..db1ed4ed --- /dev/null +++ b/backend/tests/test_data/innovation_measure_fixtures.py @@ -0,0 +1,170 @@ +from backend.Funding import Funding, EligibilityCaveats + +innovation_scenarios = [ + # 1) Innovation PV, non-eligible heating system in place, EPC D - not eligible + { + "description": "Innovation PV, non-eligible heating system in place, EPC D", + "measures": [{"type": "solar_pv", "is_innovation": True}], + "starting_sap": 60, + "mainheat_description": "Electric storage heaters", + "heating_control_description": "Manual charge control", + "has_wall_insulation_recommendation": False, + "has_roof_insulation_recommendation": False, + "expected_eligibility": False, + "expected_caveats": [EligibilityCaveats.SOLAR_NEEDS_HEATING], + }, + # 2) Innovation PV, eligible heating system in place, EPC D - eligible + { + "description": "Innovation PV, eligible heating system in place, EPC D", + "measures": [{"type": "solar_pv", "is_innovation": True}], + "starting_sap": 60, + "mainheat_description": "Air source heat pump, radiators", + "heating_control_description": "Programmer, room thermostat and TRVs", + "has_wall_insulation_recommendation": False, + "has_roof_insulation_recommendation": False, + "expected_eligibility": True, + "expected_caveats": [], + }, + # 3) Innovation PV, non-eligible heating system, heating upgrade to HHRSH, EPC E - eligible + { + "description": "Innovation PV + HHRSH upgrade, EPC E", + "measures": [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "high_heat_retention_storage_heater", "is_innovation": True} + ], + "starting_sap": 50, + "mainheat_description": "Electric storage heaters", + "heating_control_description": "Manual charge control", + "has_wall_insulation_recommendation": False, + "has_roof_insulation_recommendation": False, + "expected_eligibility": True, + "expected_caveats": [], + }, + # 4) Innovation PV + HHRSH upgrade + { + "description": "Innovation PV + HHRSH upgrade, EPC E", + "measures": [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "high_heat_retention_storage_heater", "is_innovation": True} + ], + "starting_sap": 50, + "mainheat_description": "Electric storage heaters", + "heating_control_description": "Manual charge control", + "has_wall_insulation_recommendation": False, + "has_roof_insulation_recommendation": False, + "expected_eligibility": True, + "expected_caveats": [], + }, + # 5) Innovation PV, needs wall insulation, no wall insulation measure - not eligible + { + "description": "Innovation PV, wall insulation recommended, but not installed", + "measures": [{"type": "solar_pv", "is_innovation": True}], + "starting_sap": 60, + "mainheat_description": "Air source heat pump, radiators", + "heating_control_description": "Programmer, room thermostat and TRVs", + "has_wall_insulation_recommendation": True, + "has_roof_insulation_recommendation": False, + "expected_eligibility": False, + "expected_caveats": [EligibilityCaveats.MINIMUM_INSULATION_PRECONDITIONS_NOT_MET], + }, + # 6) Innovation PV, wall insulation recommended and installed - eligible + { + "description": "Innovation PV, wall insulation recommended and installed", + "measures": [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "internal_wall_insulation", "is_innovation": False} + ], + "starting_sap": 60, + "mainheat_description": "Air source heat pump, radiators", + "heating_control_description": "Programmer, room thermostat and TRVs", + "has_wall_insulation_recommendation": True, + "has_roof_insulation_recommendation": False, + "expected_eligibility": True, + "expected_caveats": [], + }, + # 7) Innovation PV, needs roof insulation, no roof insulation measure - not eligible + { + "description": "Innovation PV, roof insulation recommended, not installed", + "measures": [{"type": "solar_pv", "is_innovation": True}], + "starting_sap": 60, + "mainheat_description": "Air source heat pump, radiators", + "heating_control_description": "Programmer, room thermostat and TRVs", + "has_wall_insulation_recommendation": False, + "has_roof_insulation_recommendation": True, + "expected_eligibility": False, + "expected_caveats": [EligibilityCaveats.MINIMUM_INSULATION_PRECONDITIONS_NOT_MET], + }, + # 8) Innovation PV, roof insulation recommended and installed - eligible + { + "description": "Innovation PV, roof insulation recommended and installed", + "measures": [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "loft_insulation", "is_innovation": False} + ], + "starting_sap": 60, + "mainheat_description": "Air source heat pump, radiators", + "heating_control_description": "Programmer, room thermostat and TRVs", + "has_wall_insulation_recommendation": False, + "has_roof_insulation_recommendation": True, + "expected_eligibility": True, + "expected_caveats": [], + }, + # 9) Innovation PV, needs both roof + wall insulation, no insulation - not eligible + { + "description": "Innovation PV, both insulations recommended, none installed", + "measures": [{"type": "solar_pv", "is_innovation": True}], + "starting_sap": 60, + "mainheat_description": "Air source heat pump, radiators", + "heating_control_description": "Programmer, room thermostat and TRVs", + "has_wall_insulation_recommendation": True, + "has_roof_insulation_recommendation": True, + "expected_eligibility": False, + "expected_caveats": [EligibilityCaveats.MINIMUM_INSULATION_PRECONDITIONS_NOT_MET], + }, + # 10) Innovation PV, both recommended, only wall insulation installed - not eligible + { + "description": "Innovation PV, both insulations recommended, only wall done", + "measures": [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "internal_wall_insulation", "is_innovation": False} + ], + "starting_sap": 60, + "mainheat_description": "Air source heat pump, radiators", + "heating_control_description": "Programmer, room thermostat and TRVs", + "has_wall_insulation_recommendation": True, + "has_roof_insulation_recommendation": True, + "expected_eligibility": False, + "expected_caveats": [EligibilityCaveats.MINIMUM_INSULATION_PRECONDITIONS_NOT_MET], + }, + # 11) Innovation PV, both recommended, only roof insulation installed - not eligible + { + "description": "Innovation PV, both insulations recommended, only roof done", + "measures": [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "loft_insulation", "is_innovation": False} + ], + "starting_sap": 60, + "mainheat_description": "Air source heat pump, radiators", + "heating_control_description": "Programmer, room thermostat and TRVs", + "has_wall_insulation_recommendation": True, + "has_roof_insulation_recommendation": True, + "expected_eligibility": False, + "expected_caveats": [EligibilityCaveats.MINIMUM_INSULATION_PRECONDITIONS_NOT_MET], + }, + # 12) Innovation PV, both recommended, both installed - eligible + { + "description": "Innovation PV, both insulations recommended and installed", + "measures": [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "internal_wall_insulation", "is_innovation": False}, + {"type": "loft_insulation", "is_innovation": False} + ], + "starting_sap": 60, + "mainheat_description": "Air source heat pump, radiators", + "heating_control_description": "Programmer, room thermostat and TRVs", + "has_wall_insulation_recommendation": True, + "has_roof_insulation_recommendation": True, + "expected_eligibility": True, + "expected_caveats": [], + }, +] diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 8df90f23..be59771d 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -1,6 +1,7 @@ import pytest import pandas as pd from backend.Funding import Funding, EligibilityCaveats +from backend.tests.test_data.innovation_measure_fixtures import innovation_scenarios @pytest.fixture @@ -30,7 +31,7 @@ def mock_project_scores_matrix(): @pytest.fixture def mock_partial_scores_matrix(): - df = pd.read_csv("recommendations/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv") + df = pd.read_csv("backend/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv") df.columns = ['Measure category', 'Measure_Type', 'Pre_Main_Heating_Source', 'Post_Main_Heating_Source', 'Total Floor Area Band', 'Starting Band', 'Average Treatable Factor', 'Cost Savings', 'SAP Savings'] @@ -358,8 +359,8 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part existing_li_thickness=0, ) - assert funding5.eco4_eligible - assert not funding5.eco4_eligibility_caveats + assert not funding5.eco4_eligible + assert EligibilityCaveats.INNOVATION_REQUIRED in funding5.eco4_eligibility_caveats # Test with innovation solar, an eligible heating system but a package that excludes the required # fabric upgrades @@ -393,7 +394,39 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part ) assert not funding6.eco4_eligible - assert not funding6.eco4_eligibility_caveats + assert EligibilityCaveats.MINIMUM_INSULATION_PRECONDITIONS_NOT_MET in funding6.eco4_eligibility_caveats + + # Test with innovation solar, an eligible heating system but a package that includes the required + # fabric upgrades + funding7 = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social", + ) + measures7 = [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "cavity_wall_insulation", "is_innovation": False}, + {"type": "loft_insulation", "is_innovation": False} + ] + funding7.check_funding( + measures=measures7, + starting_sap=60, # EPC D + ending_sap=69, + floor_area=80, + mainheat_description="Air source heat pump, radiators", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, + ) + assert funding7.eco4_eligible + assert not funding7.eco4_eligibility_caveats def test_eco4_sh_solar_pv_requires_heating(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): @@ -458,8 +491,8 @@ def test_eco4_sh_solar_pv_with_heating_is_ok(mock_project_scores_matrix, mock_pa existing_li_thickness=0, ) - assert funding.eco4_eligible - assert EligibilityCaveats.SOLAR_NEEDS_HEATING not in funding.eco4_eligibility_caveats + assert not funding.eco4_eligible + assert EligibilityCaveats.INNOVATION_REQUIRED in funding.eco4_eligibility_caveats def test_eco4_upgrade_requirement_e_to_c_pass(mock_project_scores_matrix, mock_partial_scores_matrix, @@ -596,3 +629,281 @@ def test_eco4_upgrade_requirement_f_to_e_fail(mock_project_scores_matrix, mock_p ) assert not funding.eco4_eligible + + +### ------------------------- +### INNOVATION PRODUCTS +### ------------------------- +def test_epc_d_social_no_innovation_no_heating(mock_project_scores_matrix, mock_partial_scores_matrix, + mock_whlg_postcodes): + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social" + ) + + measures = [ + {"type": "solar_pv", "is_innovation": True} + ] + + funding.check_funding( + measures=measures, + starting_sap=61, + ending_sap=69, + floor_area=80, + mainheat_description="Electric storage heaters", + heating_control_description="Manual charge control", + is_cavity=True, + has_wall_insulation_recommendation=False, + has_roof_insulation_recommendation=False, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0 + ) + + assert not funding.eco4_eligible + assert EligibilityCaveats.SOLAR_NEEDS_HEATING in funding.eco4_eligibility_caveats + + +def test_epc_d_social_with_heating_and_insulation(mock_project_scores_matrix, mock_partial_scores_matrix, + mock_whlg_postcodes): + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social" + ) + + # Should NOT be eligible as the ASHP is not an innovation measure + measures = [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "internal_wall_insulation", "is_innovation": False}, + {"type": "loft_insulation", "is_innovation": False}, + {"type": "air_source_heat_pump", "is_innovation": False} + ] + + funding.check_funding( + measures=measures, + starting_sap=61, + ending_sap=69, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + has_wall_insulation_recommendation=True, + has_roof_insulation_recommendation=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0 + ) + + assert not funding.eco4_eligible + assert EligibilityCaveats.INNOVATION_REQUIRED in funding.eco4_eligibility_caveats + + +def test_epc_d_social_solar_with_only_minimum_insulation_should_fail( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes +): + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social" + ) + + # Solar PV innovation with insulation, but no heating system upgrade => not eligible + measures = [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "internal_wall_insulation", "is_innovation": False}, + {"type": "loft_insulation", "is_innovation": False} + ] + + funding.check_funding( + measures=measures, + starting_sap=61, + ending_sap=69, + floor_area=80, + mainheat_description="Electric storage heaters", + heating_control_description="Manual charge control", + is_cavity=True, + has_wall_insulation_recommendation=True, + has_roof_insulation_recommendation=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0 + ) + + assert not funding.eco4_eligible + assert EligibilityCaveats.SOLAR_NEEDS_HEATING in funding.eco4_eligibility_caveats + + +def test_epc_d_social_solar_with_ashp_and_no_insulation_should_fail( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes +): + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social" + ) + + # Solar PV innovation with heating, but no insulation when insulation is recommended => not eligible + measures = [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "air_source_heat_pump", "is_innovation": False} + ] + + funding.check_funding( + measures=measures, + starting_sap=61, + ending_sap=69, + floor_area=80, + mainheat_description="Electric storage heaters", + heating_control_description="Manual charge control", + is_cavity=True, + has_wall_insulation_recommendation=True, + has_roof_insulation_recommendation=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0 + ) + + assert not funding.eco4_eligible + assert EligibilityCaveats.MINIMUM_INSULATION_PRECONDITIONS_NOT_MET in funding.eco4_eligibility_caveats + + +def test_epc_d_social_solar_with_heating_and_minimum_insulation_should_pass( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes +): + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social" + ) + + # Innovation solar + insulation measures + eligible heating upgrade = not valid because the heat pump isn;t + # an innovation measure + measures = [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "internal_wall_insulation", "is_innovation": False}, + {"type": "loft_insulation", "is_innovation": False}, + {"type": "air_source_heat_pump", "is_innovation": False} + ] + + funding.check_funding( + measures=measures, + starting_sap=61, + ending_sap=69, + floor_area=80, + mainheat_description="Electric storage heaters", + heating_control_description="Manual charge control", + is_cavity=True, + has_wall_insulation_recommendation=True, + has_roof_insulation_recommendation=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0 + ) + + assert not funding.eco4_eligible + assert EligibilityCaveats.INNOVATION_REQUIRED in funding.eco4_eligibility_caveats + + funding2 = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social" + ) + + # Innovation solar + insulation measures + eligible heating upgrade = should be valid because the + # heat pump is an innovation measure + measures2 = [ + {"type": "solar_pv", "is_innovation": True}, + {"type": "internal_wall_insulation", "is_innovation": False}, + {"type": "loft_insulation", "is_innovation": False}, + {"type": "air_source_heat_pump", "is_innovation": True} + ] + + funding2.check_funding( + measures=measures2, + starting_sap=61, + ending_sap=69, + floor_area=80, + mainheat_description="Electric storage heaters", + heating_control_description="Manual charge control", + is_cavity=True, + has_wall_insulation_recommendation=True, + has_roof_insulation_recommendation=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0 + ) + + assert funding2.eco4_eligible + assert not funding2.eco4_eligibility_caveats + + +@pytest.mark.parametrize("scenario", innovation_scenarios) +def test_custom_eco4_scenarios( + scenario, + mock_project_scores_matrix, + mock_partial_scores_matrix, + mock_whlg_postcodes +): + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social" + ) + + funding.check_funding( + measures=scenario["measures"], + starting_sap=scenario["starting_sap"], + ending_sap=69, + floor_area=80, + mainheat_description=scenario["mainheat_description"], + heating_control_description=scenario["heating_control_description"], + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, + has_wall_insulation_recommendation=scenario.get("has_wall_insulation_recommendation", False), + has_roof_insulation_recommendation=scenario.get("has_roof_insulation_recommendation", False) + ) + + assert funding.eco4_eligible == scenario["expected_eligibility"], f"Failed: {scenario['description']}" + for caveat in scenario.get("expected_caveats", []): + assert caveat in funding.eco4_eligibility_caveats, f"Missing caveat in: {scenario['description']}" + for caveat in funding.eco4_eligibility_caveats: + assert caveat in scenario.get("expected_caveats", []), f"Unexpected caveat in: {scenario['description']}" From a55d2902ce17b1f75fbb8f7d58ae99145c4ccbf5 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 8 Aug 2025 18:41:02 +0100 Subject: [PATCH 07/73] implmenting innovation uplift --- asset_list/AssetList.py | 16 ++- asset_list/app.py | 33 ++++++ asset_list/mappings/heating_systems.py | 43 +++++++- asset_list/mappings/roof.py | 73 ++++++++++++- asset_list/mappings/walls.py | 9 ++ backend/Funding.py | 144 ++++++++++++++++++++++++- backend/tests/test_funding.py | 81 ++++++++++++++ 7 files changed, 391 insertions(+), 8 deletions(-) diff --git a/asset_list/AssetList.py b/asset_list/AssetList.py index 446ff4d0..3731fc77 100644 --- a/asset_list/AssetList.py +++ b/asset_list/AssetList.py @@ -949,9 +949,19 @@ class AssetList: if self.phase: # We filter on just the properties that have had an inspection - self.standardised_asset_list = self.standardised_asset_list[ - ~self.standardised_asset_list['Surveyors Name'].isin(["YET TO BE SURVEYED"]) - ] + if self.new_format_non_insturives_present_v2: + self.standardised_asset_list = self.standardised_asset_list[ + ~self.standardised_asset_list['NAME OF SURVEYOR'].isin( + ["YET TO BE SURVEYED", "", None] + ) + ] + self.standardised_asset_list = self.standardised_asset_list[ + ~pd.isnull(self.standardised_asset_list["NAME OF SURVEYOR"]) + ] + else: + self.standardised_asset_list = self.standardised_asset_list[ + ~self.standardised_asset_list['Surveyors Name'].isin(["YET TO BE SURVEYED"]) + ] if not self.variable_mappings and not override_empty_mappings: raise ValueError("Please run init_standardise first") diff --git a/asset_list/app.py b/asset_list/app.py index f817dc7f..8af23f38 100644 --- a/asset_list/app.py +++ b/asset_list/app.py @@ -58,6 +58,39 @@ def app(): EPC recommendations Property UPRN """ + # Freebridge + data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Freebridge" + data_filename = "Domna - FCH property data May 25 copy.xlsx" + sheet_name = "EPC Data" + postcode_column = 'Post Code' + address1_column = "Address 1" + address1_method = None + fulladdress_column = None + address_cols_to_concat = ["Address 1", "Address 4"] + missing_postcodes_method = None + landlord_year_built = "Build Date" + landlord_os_uprn = None + landlord_property_type = "Property Type" + landlord_built_form = None + landlord_wall_construction = "Walls Description" + landlord_heating_system = "Heating Type" + landlord_existing_pv = None + landlord_property_id = "Place Ref" + landlord_roof_construction = "Roof Description" + landlord_sap = "Current SAP" + outcomes_filename = [] + outcomes_sheetname = [] + outcomes_postcode = [] + outcomes_houseno = [] + outcomes_address = [] + outcomes_id = [] + master_filepaths = [] + master_to_asset_list_filepath = None + asset_list_header = 0 + landlord_block_reference = None + master_id_colnames = [] + phase = True # Inspections not complete, produce a partial view + ecosurv_landlords = None data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Broadlands" data_filename = "Broadlands Asset List.xlsx" diff --git a/asset_list/mappings/heating_systems.py b/asset_list/mappings/heating_systems.py index b55f13c8..424b9b46 100644 --- a/asset_list/mappings/heating_systems.py +++ b/asset_list/mappings/heating_systems.py @@ -431,6 +431,47 @@ HEATING_MAPPINGS = { 'Mains Electric': 'electric fuel', 'Unvented cylinder': 'other', 'MVHR & Heat Recovery': 'other', - 'Solar': 'other' + 'Solar': 'other', + 'Electric storage heaters, Electric storage heaters': 'electric storage heaters', + 'Room heaters, electric': 'room heaters', + 'Room heaters, mains gas, Room heaters, electric': 'room heaters', + 'Air source heat pump, underfloor, electric': 'air source heat pump', + 'Air source heat pump, radiators, electric': 'air source heat pump', + 'Air source heat pump, Systems with radiators, electric': 'air source heat pump', + 'Electric storage heaters': 'electric storage heaters', + 'Air source heat pump, Underfloor heating and radiators, pipes in screed above insulation, electric': 'air source ' + 'heat pump', + 'Room heaters, coal': 'room heaters', + 'Room heaters, electric, Electric storage heaters': 'electric storage heaters', + 'Air source heat pump, fan coil units, electric': 'air source heat pump', + 'Boiler and radiators, mains gas': 'gas boiler, radiators', + 'Boiler and radiators, mains gas, Electric storage heaters': 'condensing boiler, radiators', + 'Room heaters, mains gas': 'room heaters', + 'Air source heat pump, radiators, electric, Air source heat pump, fan coil units, electric': 'air source heat pump', + 'Air source heat pump, warm air, electric': 'air source heat pump', + 'Electric ceiling heating, electric': 'electric ceiling', + 'Electric storage heaters, Room heaters, electric': 'electric storage heaters', + 'Room heaters, dual fuel (mineral and wood)': 'room heaters', + 'Water source heat pump, radiators, electric': 'other', + 'Warm air, electric': 'warm air heating', + 'Boiler and radiators, wood logs': 'solid fuel', + 'Boiler and radiators, dual fuel (mineral and wood)': 'solid fuel', + 'Boiler & underfloor, mains gas': 'gas boiler, radiators', + 'Boiler and underfloor heating, mains gas': 'gas boiler, radiators', + 'Community scheme': 'communal heating', + 'Warm air, Electricaire': 'warm air heating', + 'Boiler and radiators, smokeless fuel': 'solid fuel', + 'Warm air, mains gas': 'warm air heating', + 'Warm air , electric': 'warm air heating', + 'Boiler and radiators, LPG': 'boiler - other fuel', + 'Boiler & underfloor, oil': 'oil boiler', + 'Boiler and radiators, bottled LPG': 'boiler - other fuel', + 'Boiler and underfloor heating, oil': 'oil boiler', + 'SAP05:Main-Heating': 'unknown', + 'Boiler and radiators, coal': 'solid fuel', + 'Boiler and radiators, oil': 'oil boiler', + 'Boiler and radiators, electric': 'electric boiler', + 'No system present: electric heaters assumed': 'electric radiators', + 'Boiler and radiators, anthracite': 'solid fuel' } diff --git a/asset_list/mappings/roof.py b/asset_list/mappings/roof.py index 66860bec..60f0473c 100644 --- a/asset_list/mappings/roof.py +++ b/asset_list/mappings/roof.py @@ -10,8 +10,12 @@ STANDARD_ROOF_CONSTRUCTIONS = { "another dwelling above", "flat unknown insulation", "flat insulated", + "flat uninsulated", "unknown insulated", "unknown", + "room roof insulated", + "room roof uninsulated", + "average thermal transmittance", } ROOF_CONSTRUCTION_MAPPINGS = { @@ -173,6 +177,73 @@ ROOF_CONSTRUCTION_MAPPINGS = { 'PitchedNormalNoLoftAccess: Unknown': 'pitched no access to loft', 'PitchedNormalLoftAccess: Unknown': 'pitched unknown insulation', - 'AnotherDwellingAbove: Unknown': 'another dwelling above' + 'AnotherDwellingAbove: Unknown': 'another dwelling above', + + 'Flat, insulated': 'flat insulated', + 'Pitched, insulated (assumed)': 'pitched insulated', + 'Flat, insulated (assumed)': 'flat insulated', + '(another dwelling above)': 'another dwelling above', + 'Pitched, insulated at rafters': 'pitched insulated', + '(other premises above)': 'another dwelling above', + 'Average thermal transmittance 0.15 W/m-¦K': 'average thermal transmittance', + 'Pitched, 25 mm loft insulation': 'pitched less than 100mm insulation', + 'Roof room(s), insulated (assumed)': 'room roof insulated', + 'Pitched, limited insulation (assumed)': 'pitched less than 100mm insulation', + 'Pitched, 270 mm loft insulation': 'pitched insulated', + 'Pitched, 250 mm loft insulation': 'pitched insulated', + 'Pitched, 200mm loft insulation': 'pitched insulated', + 'Flat, no insulation': 'flat uninsulated', + + 'Pitched, 75 mm loft insulation': 'pitched less than 100mm insulation', + 'Average thermal transmittance 0.09 W/m-¦K': 'average thermal transmittance', + + 'SAP05:Roof': 'unknown', + 'Pitched, 400 mm loft insulation': 'pitched insulated', + 'Pitched, 150mm loft insulation': 'pitched insulated', + 'Average thermal transmittance 0.11 W/m-¦K': 'unknown', + 'Pitched, 100 mm loft insulation': 'pitched less than 100mm insulation', + 'Pitched, 300 mm loft insulation': 'pitched insulated', + 'Pitched, 75mm loft insulation': 'pitched less than 100mm insulation', + 'Pitched, 300+mm loft insulation': 'pitched insulated', + 'Pitched, 300+ mm loft insulation': 'pitched insulated', + 'Average thermal transmittance 0.11 W/m?K': 'average thermal transmittance', + 'Average thermal transmittance 0.10 W/m?K': 'average thermal transmittance', + 'Pitched, 250mm loft insulation': 'pitched insulated', + 'Pitched, 300+ mm loft insulation': 'pitched insulated', + 'Average thermal transmittance 0.1 W/m-¦K': 'average thermal transmittance', + 'Pitched, *** INVALID INPUT Code : 57 *** loft insulation': 'unknown', + 'Pitched, 100mm loft insulation': 'pitched less than 100mm insulation', + 'Pitched, loft insulation': 'pitched less than 100mm insulation', + 'Average thermal transmittance 0.20 W/m?K': 'average thermal transmittance', + 'Average thermal transmittance 0.1 W/m?K': 'average thermal transmittance', + 'Average thermal transmittance 0.16 W/m-¦K': 'average thermal transmittance', + 'Average thermal transmittance 0.14 W/m?K': 'average thermal transmittance', + 'Pitched, 50 mm loft insulation': 'pitched less than 100mm insulation', + 'Flat, limited insulation': 'flat uninsulated', + 'Average thermal transmittance 0.12 W/m?K': 'average thermal transmittance', + 'Roof room(s), ceiling insulated': 'room roof insulated', + 'Average thermal transmittance 0.18 W/m?K': 'average thermal transmittance', + 'Average thermal transmittance 0.10 W/m-¦K': 'average thermal transmittance', + 'Pitched, 400+ mm loft insulation': 'pitched insulated', + 'Average thermal transmittance 0.14 W/m²K': 'average thermal transmittance', + 'Pitched, no insulation (assumed)': 'pitched less than 100mm insulation', + 'Average thermal transmittance 0.16 W/m?K': 'average thermal transmittance', + 'Average thermal transmittance 0.21 W/m?K': 'average thermal transmittance', + 'Flat, no insulation (assumed)': 'flat uninsulated', + 'Pitched, no insulation': 'pitched less than 100mm insulation', + + 'Average thermal transmittance 0.12 W/m-¦K': 'average thermal transmittance', + 'Pitched, 12 mm loft insulation': 'pitched less than 100mm insulation', + 'Average thermal transmittance 0.07 W/m-¦K': 'average thermal transmittance', + 'Roof room(s), no insulation (assumed)': 'room roof uninsulated', + 'Pitched, no insulation(assumed)': 'pitched less than 100mm insulation', + 'Average thermal transmittance 0.13 W/m-¦K': 'average thermal transmittance', + 'Average thermal transmittance 0.08 W/m-¦K': 'average thermal transmittance', + 'Average thermal transmittance 0.14 W/m-¦K': 'average thermal transmittance', + 'Pitched, 350 mm loft insulation': 'pitched insulated', + 'Average thermal transmittance 0 W/m-¦K': 'average thermal transmittance', + 'Pitched, 200 mm loft insulation': 'pitched insulated', + 'Pitched, 150 mm loft insulation': 'pitched insulated', + 'Flat, limited insulation (assumed)': 'flat uninsulated', } diff --git a/asset_list/mappings/walls.py b/asset_list/mappings/walls.py index 245b7f88..14e4565c 100644 --- a/asset_list/mappings/walls.py +++ b/asset_list/mappings/walls.py @@ -334,4 +334,13 @@ WALL_CONSTRUCTION_MAPPINGS = { 'Cavity: FilledCavity, TimberFrame: AsBuilt': 'filled cavity', 'Cavity: FilledCavity, SolidBrick: AsBuilt, SolidBrick: Internal': 'filled cavity', 'Cavity: Internal, SolidBrick: AsBuilt': 'filled cavity', + + 'Timber frame, filled cavity': 'filled cavity', + 'Cob, as built': 'cob', + 'Cavity wall, filled cavity and internal insulation': 'filled cavity', + 'SAP05:Walls': 'other', + 'Solid brick, as built, partial insulation (assumed)': 'insulated solid brick', + 'Sandstone, as built, no insulation (assumed)': 'uninsulated sandstone or limestone', + 'System built, as built, partial insulation (assumed)': 'system built unknown insulation', + 'Timber frame, with external insulation': 'insulated timber frame' } diff --git a/backend/Funding.py b/backend/Funding.py index 74d43e3e..cab11899 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -96,8 +96,9 @@ class Funding: """ measure_types = [m["type"] for m in measures] innovation_flags = [m.get("is_innovation", False) for m in measures] + uplifts = [m["uplift"] for m in measures] innovation_measures = [m["type"] for m in measures if m.get("is_innovation", False)] - return measure_types, innovation_flags, innovation_measures + return measure_types, uplifts, innovation_flags, innovation_measures @staticmethod def _meets_upgrade_target(starting_sap: int, ending_sap: int) -> bool: @@ -325,9 +326,104 @@ class Funding: return starting_str, ending_uvalue + @staticmethod + def _map_to_pre_main_heating(mainheating, main_fuel, mainheat_energy_eff): + # We check most likely primary heating system. Because mixed systems are hard to break up, we + # check the larger, more prominent heating systems first and then the smaller ones. We aim + # to cover the case where properties have heating systems like + # "boiler radiators, mains gas, electric storage heaters" so mixed systems + if mainheating["has_air_source_heat_pump"]: + return 'Air to Water ASHP' + if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "biomass"): + return 'Biomass Boiler' + if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "lpg"): + return 'Bottled LPG Boiler' + if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "mains gas") and ( + mainheat_energy_eff in ["Good", "Very Good"] + ): + # Assume higher efficiency condensing boiler + return 'Condensing Gas Boiler' + + if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "mains gas") and ( + mainheat_energy_eff in ["Average", "Poor"] + ): + return 'Non Condensing Gas Boiler' + + if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "mains gas") and ( + mainheat_energy_eff in ["Very Poor"] + ) and mainheating["has_radiators"]: + return 'Gas Back Boiler to Radiators' + + if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "mains gas") and ( + mainheat_energy_eff in ["Very Poor"] + ) and not mainheating["has_radiators"]: + # Doesnt have radiators + return 'Gas Fire with Back Boiler' + + if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "oil") and ( + mainheat_energy_eff in ["Good", "Very Good"] + ): + return 'Condensing Oil Boiler' + if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "oil") and ( + mainheat_energy_eff in ["Average", "Very Poor", "Poor"] + ): + return 'Non Condensing Oil Boiler' + + if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "lpg") and ( + mainheat_energy_eff in ["Good", "Very Good"] + ): + return 'Condensing LPG Boiler' + + if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "lpg") and ( + mainheat_energy_eff in ["Average", "Very Poor", "Poor"] + ): + return 'Non Condensing LPG Boiler' + + if mainheating["has_boiler"] and ( + main_fuel["fuel_type"] in ["dual fuel appliance mineral and wood", "manufactured smokeless fuel"] + ) and (mainheat_energy_eff in ["Average", "Very Poor", "Poor"]): + return 'Solid Fossil Boiler' + + if mainheating["has_ground_source_heat_pump"]: + return 'GSHP' + + if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "electric"): + return 'Electric Boiler' + + if mainheating["has_community_scheme"] and mainheat_energy_eff in ["Good", "Very Good"]: + return 'DHS CHP' + if mainheating["has_community_scheme"] and mainheat_energy_eff in ["Average", "Very Poor", "Poor"]: + return 'DHS non-CHP' + + if mainheating["has_electric_storage_heaters"] and mainheat_energy_eff == "Very Poor": + return 'Electric Storage Heaters Responsiveness <=0.2' + if mainheating["has_electric_storage_heaters"] and mainheat_energy_eff in [ + "Poor", "Average", "Good", "Very Good", + ]: + return 'Electric Storage Heaters Responsiveness >0.2' + + if mainheating["has_room_heaters"] and main_fuel["fuel_tye"] == "lpg": + return 'Bottled LPG Room Heaters' + + if mainheating["has_room_heaters"] and main_fuel["fuel_tye"] == "electricity": + return 'Electric Room Heaters' + + if mainheating["has_room_heaters"] and main_fuel["fuel_tye"] == "mains gas": + return 'Gas Room Heaters' + + if mainheating["has_room_heaters"] and main_fuel["fuel_tye"] in [ + "dual fuel appliance mineral and wood", "manufactured smokeless fuel" + ]: + return 'Solid Fossil Room Heaters' + + raise ValueError("Invalid pre heating system") + def calculate_partial_project_abs( self, measure_type: str, + mainheating: dict, + main_fuel: dict, + mainheat_energy_eff: str, current_wall_uvalue: float = None, is_partial: bool = False, existing_li_thickness: float = None, @@ -411,6 +507,23 @@ class Funding: raise ValueError("Invalid SFI category") return pps.squeeze()["Cost Savings"] + if measure_type == "solar_pv": + pre_heating_system = self._map_to_pre_main_heating(mainheating, main_fuel, mainheat_energy_eff) + solar_pps_df = df[ + (df["Measure_Type"] == "Solar_PV") & (df["Pre_Main_Heating_Source"] == pre_heating_system) + ] + return solar_pps_df.squeeze()["Cost Savings"] + + if measure_type == "air_source_heat_pump": + pre_heating_system = self._map_to_pre_main_heating(mainheating, main_fuel, mainheat_energy_eff) + pps = df[ + (df["Pre_Main_Heating_Source"] == pre_heating_system) & + (df["Post_Main_Heating_Source"] == "Air to Water ASHP") + ] + if pps.shape[0] != 1: + raise ValueError("something went wrong, more than one pps for ashp") + return pps.squeeze()["Cost Savings"] + raise ValueError(f"Invalid measure type for partial project ABS calculation: {measure_type}") # ----------------------- @@ -588,6 +701,9 @@ class Funding: current_wall_uvalue: float, is_partial: False, existing_li_thickness: float, + mainheating: dict, + main_fuel: dict, + mainheat_energy_eff: str, council_tax_band: str = None, has_wall_insulation_recommendation: bool = False, has_roof_insulation_recommendation: bool = False, @@ -602,7 +718,7 @@ class Funding: """ # Normalize measures - measure_types, innovation_flags, innovation_measures = self._split_measures(measures) + measure_types, uplifts, innovation_flags, innovation_measures = self._split_measures(measures) # If we have a heating measure, we check if we meet the pre conditions has_ftch = "first_time_central_heating" in measure_types @@ -666,6 +782,22 @@ class Funding: if self.eco4_eligible: # Calculate the full project ABS for ECO4 self.full_project_abs = self.calculate_full_project_abs() + + # We calculate uplift innovation, where required + project_uplifts = [] + for i, measure in enumerate(measure_types): + pps = self.calculate_partial_project_abs( + measure_type=measure, + mainheating=mainheating, + main_fuel=main_fuel, + mainheat_energy_eff=mainheat_energy_eff, + current_wall_uvalue=current_wall_uvalue, + is_partial=is_partial, + existing_li_thickness=existing_li_thickness, + ) + project_uplifts.append(pps * uplifts[i]) + total_uplift = sum(project_uplifts) + self.full_project_abs += total_uplift self.eco4_funding = self.full_project_abs * ( self.social_cavity_abs_rate if is_cavity else self.social_solid_abs_rate ) @@ -673,7 +805,13 @@ class Funding: if self.gbis_eligible: # Calculate the partial project score - this is dependent on the measure self.partial_project_abs = self.calculate_partial_project_abs( - measure_types[0], current_wall_uvalue, is_partial, existing_li_thickness, + measure_type=measure_types[0], + mainheating=mainheating, + main_fuel=main_fuel, + mainheat_energy_eff=mainheat_energy_eff, + current_wall_uvalue=current_wall_uvalue, + is_partial=is_partial, + existing_li_thickness=existing_li_thickness, ) diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index be59771d..45e26dc8 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -907,3 +907,84 @@ def test_custom_eco4_scenarios( assert caveat in funding.eco4_eligibility_caveats, f"Missing caveat in: {scenario['description']}" for caveat in funding.eco4_eligibility_caveats: assert caveat in scenario.get("expected_caveats", []), f"Unexpected caveat in: {scenario['description']}" + + +### ------------------------- +### Innovation uplift scenarios +### ------------------------- + +def test_uplift( + mock_project_scores_matrix, + mock_partial_scores_matrix, + mock_whlg_postcodes +): + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social" + ) + + # # TODO: Add a scenario with multiple measures, where some are innovation, some are not and we have + # TODO: Make sure private works too + measures = [ + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}, + {"type": "loft_insulation", "is_innovation": False, "uplift": 0}, + {"type": "air_source_heat_pump", "is_innovation": False, "uplift": 0}, + {"type": "cavity_wall_insulation", "is_innovation": False, "uplift": 0.25}, + ] + + mainheating = { + 'original_description': 'Electric storage heaters', 'has_radiators': False, + 'has_fan_coil_units': False, + 'has_pipes_in_screed_above_insulation': False, + 'has_pipes_in_insulated_timber_floor': False, + 'has_pipes_in_concrete_slab': False, 'has_boiler': False, + 'has_air_source_heat_pump': False, + 'has_room_heaters': False, 'has_electric_storage_heaters': True, 'has_warm_air': False, + 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, + 'has_community_scheme': False, + 'has_ground_source_heat_pump': False, 'has_no_system_present': False, + 'has_portable_electric_heaters': False, + 'has_water_source_heat_pump': False, 'has_electric': True, 'has_mains_gas': False, + 'has_wood_logs': False, + 'has_coal': False, 'has_oil': False, 'has_wood_pellets': False, 'has_anthracite': + False, + 'has_dual_fuel_mineral_and_wood': False, 'has_smokeless_fuel': False, 'has_lpg': False, + 'has_assumed': False, + 'has_electricaire': False, 'has_assumed_for_most_rooms': False, + 'has_underfloor_heating': False, + "has_electric_heat_pumps": False, + "has_micro-cogeneration": False + } + main_fuel = { + 'original_description': 'Electricity: electricity, unspecified tariff', 'fuel_type': + 'electricity', + 'tariff_type': 'unspecified tariff', 'is_community': False, + 'no_individual_heating_or_community_network': False, + 'complex_fuel_type': None + } + mainheat_energy_eff = "Good" + + funding.check_funding( + measures=measures, + starting_sap=33, + ending_sap=69, + floor_area=71, + mainheat_description="Electic storage heaters", + heating_control_description="Manual charge control", + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, + has_wall_insulation_recommendation=True, + has_roof_insulation_recommendation=True, + mainheating=mainheating, + main_fuel=main_fuel, + mainheat_energy_eff=mainheat_energy_eff, + ) From a9018a541ef598ef9ffdb46de4dc8797204624f7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 17:04:07 +0100 Subject: [PATCH 08/73] debugging innovation uplift --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- asset_list/AssetList.py | 9 +++--- asset_list/app.py | 34 ++++++++++++++++++++ backend/Funding.py | 15 ++++++--- backend/tests/test_funding.py | 59 +++++++++++++++++++++++++++++++++++ 6 files changed, 109 insertions(+), 12 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index c6561970..09f2e496 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 50cad4ca..fb10c6b0 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/asset_list/AssetList.py b/asset_list/AssetList.py index 3731fc77..eca4ae1f 100644 --- a/asset_list/AssetList.py +++ b/asset_list/AssetList.py @@ -860,7 +860,7 @@ class AssetList: return date_str.year # Handle numeric year (float or int) - if isinstance(date_str, (int, float)): + if isinstance(date_str, (int, float, np.int_)): if 1000 <= int(date_str) <= 2100: return int(date_str) @@ -887,9 +887,6 @@ class AssetList: self.landlord_year_built ].apply(extract_year) - for x in self.standardised_asset_list[self.landlord_year_built].values: - extract_year(x) - # We now create standard lookups to_remap = { self.landlord_property_type: { @@ -1346,7 +1343,9 @@ class AssetList: if self.new_format_non_insturives_present_v2: existing_solar_non_intrusives_check = ( - self.standardised_asset_list["non-intrusives: ROOF ORIENTATION"] == "ALREADY HAS SOLAR PV" + self.standardised_asset_list["non-intrusives: ROOF ORIENTATION"].str.strip().isin( + ["ALREADY HAS SOLAR PV"] + ) ) else: existing_solar_non_intrusives_check = ( diff --git a/asset_list/app.py b/asset_list/app.py index 8af23f38..763f245f 100644 --- a/asset_list/app.py +++ b/asset_list/app.py @@ -58,6 +58,40 @@ def app(): EPC recommendations Property UPRN """ + # Abri + data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Abri/Post Inspections" + data_filename = "Desktop ABRI data - Standardised After Programmes (2).xlsx" + sheet_name = "Reviewed List" + postcode_column = 'domna_postcode' + address1_column = "domna_address_1" + address1_method = None + fulladdress_column = "domna_full_address" + address_cols_to_concat = [] + missing_postcodes_method = None + landlord_year_built = "landlord_year_built" + landlord_os_uprn = None + landlord_property_type = "PropertyType_original_from_landlord" + landlord_built_form = "BuildForm_original_from_landlord" + landlord_wall_construction = "Wall Construction_original_from_landlord" + landlord_roof_construction = None + landlord_heating_system = "HeatingType_original_from_landlord" + landlord_existing_pv = None + landlord_property_id = "landlord_property_id" + landlord_sap = None + outcomes_filename = None + outcomes_sheetname = None + outcomes_postcode = None + outcomes_houseno = None + outcomes_id = None + outcomes_address = None + master_filepaths = [] + master_id_colnames = [] + master_to_asset_list_filepath = None + phase = False + ecosurv_landlords = None + asset_list_header = 0 + landlord_block_reference = None + # Freebridge data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Freebridge" data_filename = "Domna - FCH property data May 25 copy.xlsx" diff --git a/backend/Funding.py b/backend/Funding.py index cab11899..18e77713 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -38,6 +38,12 @@ class Funding: self.floor_area_band = None self.project_scores_matrix = project_scores_matrix self.partial_project_scores_matrix = partial_project_scores_matrix + # Filter on the starting band and floor area so we only do this once + self.partial_project_scores_matrix = self.partial_project_scores_matrix[ + (self.partial_project_scores_matrix["Total Floor Area Band"] == self.floor_area_band) & + (self.partial_project_scores_matrix["Starting Band"] == self.starting_sap_band) + ] + self.whlg_eligible_postcodes = whlg_eligible_postcodes self.eco4_eligible = False @@ -432,10 +438,7 @@ class Funding: """ Calculate the partial project ABS score for a single measure. """ - df = self.partial_project_scores_matrix[ - (self.partial_project_scores_matrix["Total Floor Area Band"] == self.floor_area_band) & - (self.partial_project_scores_matrix["Starting Band"] == self.starting_sap_band) - ] + df = self.partial_project_scores_matrix if measure_type == "internal_wall_insulation": if current_wall_uvalue is None: @@ -518,8 +521,10 @@ class Funding: pre_heating_system = self._map_to_pre_main_heating(mainheating, main_fuel, mainheat_energy_eff) pps = df[ (df["Pre_Main_Heating_Source"] == pre_heating_system) & - (df["Post_Main_Heating_Source"] == "Air to Water ASHP") + (df["Post_Main_Heating_Source"] == "Air to Water ASHP") & + (df["Measure_Type"] == "B_Upgrade_nopreHCs") # We assume we'll be making a heating system upgrade ] + if pps.shape[0] != 1: raise ValueError("something went wrong, more than one pps for ashp") return pps.squeeze()["Cost Savings"] diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 45e26dc8..7758de5f 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -988,3 +988,62 @@ def test_uplift( main_fuel=main_fuel, mainheat_energy_eff=mainheat_energy_eff, ) + + +# Large scale testing for various measures +measures = [ + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}, + {"type": "loft_insulation", "is_innovation": False, "uplift": 0}, + {"type": "air_source_heat_pump", "is_innovation": False, "uplift": 0}, + {"type": "cavity_wall_insulation", "is_innovation": True, "uplift": 0.25}, + {"type": "high_heat_retention_storage_heaters", "is_innovation": False, "uplift": 0}, +] +epc_df = pd.read_csv( + "/Users/khalimconn-kowlessar/Downloads/domestic-E08000025-Birmingham/certificates.csv" +) +from tqdm import tqdm +from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes +from etl.epc_clean.epc_attributes.MainFuelAttributes import MainFuelAttributes + +mock_project_scores_matrix = mock_project_scores_matrix() +mock_whlg_postcodes = mock_whlg_postcodes() +mock_partial_scores_matrix = mock_partial_scores_matrix() + +for _, x in tqdm(epc_df.iterrows(), total=len(epc_df)): + # inputs + mainheat_energy_eff = x["MAINHEAT_ENERGY_EFF"] + heating_cleaner = MainHeatAttributes(description=x["MAINHEAT_DESCRIPTION"]) + fuel_cleaner = MainFuelAttributes(description=x["MAIN_FUEL"]) + + h = heating_cleaner.process() + f = fuel_cleaner.process() + + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social" + ) + + funding.check_funding( + measures=measures, + starting_sap=33, + ending_sap=69, + floor_area=71, + mainheat_description=x["MAINHEAT_DESCRIPTION"], + heating_control_description=x["MAINHEATCONT_DESCRIPTION"], + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, + has_wall_insulation_recommendation=True, + has_roof_insulation_recommendation=True, + mainheating=h, + main_fuel=f, + mainheat_energy_eff=mainheat_energy_eff, + ) From 62d92f29e69cea03739b263f2d2c62de0890c24f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 17:35:48 +0100 Subject: [PATCH 09/73] fixed error in reference to fuel type --- backend/Funding.py | 61 +++++++++++++++++++++-------------- backend/tests/test_funding.py | 20 ++++++++++++ 2 files changed, 56 insertions(+), 25 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index 18e77713..3c30ba27 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -1,6 +1,8 @@ from enum import Enum from typing import List +import pandas as pd + from backend.app.plan.schemas import HousingType, WALL_INSULATION_MEASURES, ROOF_INSULATION_MEASURES, MEASURE_MAP @@ -38,11 +40,6 @@ class Funding: self.floor_area_band = None self.project_scores_matrix = project_scores_matrix self.partial_project_scores_matrix = partial_project_scores_matrix - # Filter on the starting band and floor area so we only do this once - self.partial_project_scores_matrix = self.partial_project_scores_matrix[ - (self.partial_project_scores_matrix["Total Floor Area Band"] == self.floor_area_band) & - (self.partial_project_scores_matrix["Starting Band"] == self.starting_sap_band) - ] self.whlg_eligible_postcodes = whlg_eligible_postcodes @@ -408,16 +405,16 @@ class Funding: ]: return 'Electric Storage Heaters Responsiveness >0.2' - if mainheating["has_room_heaters"] and main_fuel["fuel_tye"] == "lpg": + if mainheating["has_room_heaters"] and main_fuel["fuel_type"] == "lpg": return 'Bottled LPG Room Heaters' - if mainheating["has_room_heaters"] and main_fuel["fuel_tye"] == "electricity": + if mainheating["has_room_heaters"] and main_fuel["fuel_type"] == "electricity": return 'Electric Room Heaters' - if mainheating["has_room_heaters"] and main_fuel["fuel_tye"] == "mains gas": + if mainheating["has_room_heaters"] and main_fuel["fuel_type"] == "mains gas": return 'Gas Room Heaters' - if mainheating["has_room_heaters"] and main_fuel["fuel_tye"] in [ + if mainheating["has_room_heaters"] and main_fuel["fuel_type"] in [ "dual fuel appliance mineral and wood", "manufactured smokeless fuel" ]: return 'Solid Fossil Room Heaters' @@ -430,6 +427,7 @@ class Funding: mainheating: dict, main_fuel: dict, mainheat_energy_eff: str, + filtered_pps_matrix: pd.DataFrame, current_wall_uvalue: float = None, is_partial: bool = False, existing_li_thickness: float = None, @@ -438,7 +436,7 @@ class Funding: """ Calculate the partial project ABS score for a single measure. """ - df = self.partial_project_scores_matrix + # Filter on the starting band and floor area so we only do this once if measure_type == "internal_wall_insulation": if current_wall_uvalue is None: @@ -446,7 +444,7 @@ class Funding: starting_str, ending_str = self.get_starting_ending_uvalues(current_wall_uvalue) measure_code = f"IWI_solid_{starting_str}_{ending_str}" - pps = df[df["Measure_Type"] == measure_code] + pps = filtered_pps_matrix[filtered_pps_matrix["Measure_Type"] == measure_code] if pps.shape[0] != 1: raise ValueError(f"Invalid IWI category: {measure_code}") @@ -458,7 +456,7 @@ class Funding: starting_str, ending_str = self.get_starting_ending_uvalues(current_wall_uvalue) measure_code = f"EWI_solid_{starting_str}_{ending_str}" - pps = df[df["Measure_Type"] == measure_code] + pps = filtered_pps_matrix[filtered_pps_matrix["Measure_Type"] == measure_code] if pps.shape[0] != 1: raise ValueError(f"Invalid EWI category: {measure_code}") @@ -466,7 +464,7 @@ class Funding: if measure_type == "cavity_wall_insulation": measure_code = "CWI_partial_fill" if is_partial else "CWI_0.033" - pps = df[df["Measure_Type"] == measure_code] + pps = filtered_pps_matrix[filtered_pps_matrix["Measure_Type"] == measure_code] if pps.shape[0] != 1: raise ValueError(f"Invalid CWI category: {measure_code}") @@ -477,14 +475,14 @@ class Funding: raise ValueError("existing_li_thickness is required for LI") measure_code = "LI_lessequal100" if existing_li_thickness <= 100 else "LI_greater100" - pps = df[df["Measure_Type"] == measure_code] + pps = filtered_pps_matrix[filtered_pps_matrix["Measure_Type"] == measure_code] if pps.shape[0] != 1: raise ValueError(f"Invalid LI category: {measure_code}") return pps.squeeze()["Cost Savings"] if measure_type == "flat_roof_insulation": - pps = df[df["Measure_Type"] == "FRI"] + pps = filtered_pps_matrix[filtered_pps_matrix["Measure_Type"] == "FRI"] if pps.shape[0] != 1: raise ValueError("Invalid FRI category") return pps.squeeze()["Cost Savings"] @@ -493,36 +491,38 @@ class Funding: # Use the more conservative score (unin is usually lower) # code = "RIRI_res_unin" if not is_roof_insulated else "RIRI_res_in" code = "RIRI_res_unin" - pps = df[df["Measure_Type"] == code] + pps = filtered_pps_matrix[filtered_pps_matrix["Measure_Type"] == code] if pps.shape[0] != 1: raise ValueError(f"Invalid RIRI category: {code}") return pps.squeeze()["Cost Savings"] if measure_type == "suspended_floor_insulation": - pps = df[df["Measure_Type"] == "UFI"] + pps = filtered_pps_matrix[filtered_pps_matrix["Measure_Type"] == "UFI"] if pps.shape[0] != 1: raise ValueError("Invalid UFI category") return pps.squeeze()["Cost Savings"] if measure_type == "solid_floor_insulation": - pps = df[df["Measure_Type"] == "SFI"] + pps = filtered_pps_matrix[filtered_pps_matrix["Measure_Type"] == "SFI"] if pps.shape[0] != 1: raise ValueError("Invalid SFI category") return pps.squeeze()["Cost Savings"] if measure_type == "solar_pv": pre_heating_system = self._map_to_pre_main_heating(mainheating, main_fuel, mainheat_energy_eff) - solar_pps_df = df[ - (df["Measure_Type"] == "Solar_PV") & (df["Pre_Main_Heating_Source"] == pre_heating_system) + solar_pps_df = filtered_pps_matrix[ + (filtered_pps_matrix["Measure_Type"] == "Solar_PV") & + (filtered_pps_matrix["Pre_Main_Heating_Source"] == pre_heating_system) ] return solar_pps_df.squeeze()["Cost Savings"] if measure_type == "air_source_heat_pump": pre_heating_system = self._map_to_pre_main_heating(mainheating, main_fuel, mainheat_energy_eff) - pps = df[ - (df["Pre_Main_Heating_Source"] == pre_heating_system) & - (df["Post_Main_Heating_Source"] == "Air to Water ASHP") & - (df["Measure_Type"] == "B_Upgrade_nopreHCs") # We assume we'll be making a heating system upgrade + pps = filtered_pps_matrix[ + (filtered_pps_matrix["Pre_Main_Heating_Source"] == pre_heating_system) & + (filtered_pps_matrix["Post_Main_Heating_Source"] == "Air to Water ASHP") & + (filtered_pps_matrix["Measure_Type"] == "B_Upgrade_nopreHCs") + # We assume we'll be making a heating system upgrade ] if pps.shape[0] != 1: @@ -763,6 +763,11 @@ class Funding: self.ending_sap_band = self.get_sap_band(ending_sap) self.floor_area_band = self.get_floor_area_band(floor_area) + filtered_pps_matrix = self.partial_project_scores_matrix[ + (self.partial_project_scores_matrix["Total Floor Area Band"] == self.floor_area_band) & + (self.partial_project_scores_matrix["Starting Band"] == self.starting_sap_band) + ].copy() + if self.tenure == "Private": # ECO4 PRS self.eco4_prs_eligibility(starting_sap, ending_sap, measure_types, has_solar, solar_eligible) @@ -774,7 +779,6 @@ class Funding: self.eco4_funding = self.full_project_abs * ( self.private_cavity_abs_rate if is_cavity else self.private_solid_abs_rate) - elif self.tenure == "Social": # ECO4 Social self.eco4_sh_eligibility( @@ -791,6 +795,11 @@ class Funding: # We calculate uplift innovation, where required project_uplifts = [] for i, measure in enumerate(measure_types): + if not innovation_flags[i]: + # Capture 0 innovation uplift for debugging + project_uplifts.append(0) + continue + pps = self.calculate_partial_project_abs( measure_type=measure, mainheating=mainheating, @@ -799,6 +808,7 @@ class Funding: current_wall_uvalue=current_wall_uvalue, is_partial=is_partial, existing_li_thickness=existing_li_thickness, + filtered_pps_matrix=filtered_pps_matrix, ) project_uplifts.append(pps * uplifts[i]) total_uplift = sum(project_uplifts) @@ -817,6 +827,7 @@ class Funding: current_wall_uvalue=current_wall_uvalue, is_partial=is_partial, existing_li_thickness=existing_li_thickness, + filtered_pps_matrix=filtered_pps_matrix ) diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 7758de5f..860dd120 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -994,8 +994,11 @@ def test_uplift( measures = [ {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, {"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}, + {"type": "cavity_wall_insulation", "is_innovation": False, "uplift": 0}, + {"type": "external_wall_insulation", "is_innovation": False, "uplift": 0}, {"type": "loft_insulation", "is_innovation": False, "uplift": 0}, {"type": "air_source_heat_pump", "is_innovation": False, "uplift": 0}, + {"type": "double_glazing", "is_innovation": False, "uplift": 0}, {"type": "cavity_wall_insulation", "is_innovation": True, "uplift": 0.25}, {"type": "high_heat_retention_storage_heaters", "is_innovation": False, "uplift": 0}, ] @@ -1030,6 +1033,23 @@ for _, x in tqdm(epc_df.iterrows(), total=len(epc_df)): tenure="Social" ) + self = funding + measures = measures + starting_sap = 33 + ending_sap = 69 + floor_area = 71 + mainheat_description = x["MAINHEAT_DESCRIPTION"] + heating_control_description = x["MAINHEATCONT_DESCRIPTION"] + is_cavity = True + current_wall_uvalue = 2 + is_partial = False + existing_li_thickness = 0 + has_wall_insulation_recommendation = True + has_roof_insulation_recommendation = True + mainheating = h + main_fuel = f + mainheat_energy_eff = mainheat_energy_eff + funding.check_funding( measures=measures, starting_sap=33, From b847b8bdd29b7bcb60caab2e25f9d355fe16ac36 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 17:55:19 +0100 Subject: [PATCH 10/73] handled warm air gas system --- backend/Funding.py | 15 +++++++++++++++ backend/tests/test_funding.py | 2 ++ 2 files changed, 17 insertions(+) diff --git a/backend/Funding.py b/backend/Funding.py index 3c30ba27..1a3b3b67 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -419,6 +419,21 @@ class Funding: ]: return 'Solid Fossil Room Heaters' + # Handle the case of no heating system - electric heaters assumed + if mainheating["has_no_system_present"] or mainheating["has_portable_electric_heaters"]: + return 'Electric Room Heaters' + + if not any(mainheating.values()): + # This means we have an unknown heating system like 'SAP05:Main-Heating' + return 'Electric Room Heaters' + + if mainheating["has_warm_air"] and main_fuel["fuel_type"] == "mains gas": + # Treat warm air gas system as a condensing gas boiler + if mainheat_energy_eff in ["Good", "Very Good"]: + return "Condensing Gas Boiler" + else: + return "Non Condensing Gas Boiler" + raise ValueError("Invalid pre heating system") def calculate_partial_project_abs( diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 860dd120..9e46ea9e 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -1009,6 +1009,8 @@ from tqdm import tqdm from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes from etl.epc_clean.epc_attributes.MainFuelAttributes import MainFuelAttributes +# TODO: Add innovation uplift to private + mock_project_scores_matrix = mock_project_scores_matrix() mock_whlg_postcodes = mock_whlg_postcodes() mock_partial_scores_matrix = mock_partial_scores_matrix() From 20d58aa5d8b762fc895f58124f3a59a069955205 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 18:07:35 +0100 Subject: [PATCH 11/73] handling electricaire system --- backend/Funding.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/backend/Funding.py b/backend/Funding.py index 1a3b3b67..dc4f83c5 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -434,6 +434,14 @@ class Funding: else: return "Non Condensing Gas Boiler" + if mainheating["has_electricaire"]: + # Based on current understanding, electricaire is an electric warm air storage heater, using + # off-peak electricity to heat a thermal store and then a fan blows the heat through ducts + # into rooms + if mainheat_energy_eff == "Very Poor": + return "Electric Storage Heaters Responsiveness <=0.2" + return "Electric Storage Heaters Responsiveness >0.2" + raise ValueError("Invalid pre heating system") def calculate_partial_project_abs( From 8f3c76fde9d83f2430139d27a6a44d82d999eb3f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 18:12:53 +0100 Subject: [PATCH 12/73] fixed bug in mapping electric boiler --- backend/Funding.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/Funding.py b/backend/Funding.py index dc4f83c5..432b6ff6 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -390,7 +390,7 @@ class Funding: if mainheating["has_ground_source_heat_pump"]: return 'GSHP' - if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "electric"): + if mainheating["has_boiler"] and (main_fuel["fuel_type"] in ["electric", "electricity"]): return 'Electric Boiler' if mainheating["has_community_scheme"] and mainheat_energy_eff in ["Good", "Very Good"]: From 8dcb9c11d84b606d050cbd35cd3356eba1713ccb Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 18:15:41 +0100 Subject: [PATCH 13/73] handled ceiling and underfloor --- backend/Funding.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/Funding.py b/backend/Funding.py index 432b6ff6..3cfe14cc 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -442,6 +442,10 @@ class Funding: return "Electric Storage Heaters Responsiveness <=0.2" return "Electric Storage Heaters Responsiveness >0.2" + # direct-acting electric space heating (no storage) + if mainheating["has_electric_underfloor_heating"] or mainheating["has_electric_ceiling_heating"]: + return "Electric Room Heaters" + raise ValueError("Invalid pre heating system") def calculate_partial_project_abs( From 25f4c7f2464e3c0949496dfc67c2b615c1991b08 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 18:43:10 +0100 Subject: [PATCH 14/73] small fixes for multiple heating systems --- backend/Funding.py | 33 ++++++++++++++++++++++++--------- backend/tests/test_funding.py | 2 +- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index 3cfe14cc..9c4022b1 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -383,7 +383,9 @@ class Funding: return 'Non Condensing LPG Boiler' if mainheating["has_boiler"] and ( - main_fuel["fuel_type"] in ["dual fuel appliance mineral and wood", "manufactured smokeless fuel"] + main_fuel["fuel_type"] in [ + "dual fuel appliance mineral and wood", "manufactured smokeless fuel", "dual fuel mineral wood" + ] ) and (mainheat_energy_eff in ["Average", "Very Poor", "Poor"]): return 'Solid Fossil Boiler' @@ -395,7 +397,9 @@ class Funding: if mainheating["has_community_scheme"] and mainheat_energy_eff in ["Good", "Very Good"]: return 'DHS CHP' - if mainheating["has_community_scheme"] and mainheat_energy_eff in ["Average", "Very Poor", "Poor"]: + if mainheating["has_community_scheme"] and ( + mainheat_energy_eff in ["Average", "Very Poor", "Poor"] or pd.isnull(mainheat_energy_eff) + ): return 'DHS non-CHP' if mainheating["has_electric_storage_heaters"] and mainheat_energy_eff == "Very Poor": @@ -414,13 +418,18 @@ class Funding: if mainheating["has_room_heaters"] and main_fuel["fuel_type"] == "mains gas": return 'Gas Room Heaters' - if mainheating["has_room_heaters"] and main_fuel["fuel_type"] in [ - "dual fuel appliance mineral and wood", "manufactured smokeless fuel" - ]: + if mainheating["has_room_heaters"] and ( + main_fuel["fuel_type"] in [ + "dual fuel appliance mineral and wood", "manufactured smokeless fuel", "dual fuel mineral wood", "oil", + 'smokeless coal' + ] or mainheating["has_coal"] + ): return 'Solid Fossil Room Heaters' # Handle the case of no heating system - electric heaters assumed - if mainheating["has_no_system_present"] or mainheating["has_portable_electric_heaters"]: + if mainheating["has_no_system_present"] or mainheating["has_portable_electric_heaters"] or ( + mainheating["has_warm_air"] and mainheating["has_electric"] and not mainheating["has_electricaire"] + ): return 'Electric Room Heaters' if not any(mainheating.values()): @@ -455,6 +464,7 @@ class Funding: main_fuel: dict, mainheat_energy_eff: str, filtered_pps_matrix: pd.DataFrame, + pre_heating_system: str, current_wall_uvalue: float = None, is_partial: bool = False, existing_li_thickness: float = None, @@ -536,7 +546,6 @@ class Funding: return pps.squeeze()["Cost Savings"] if measure_type == "solar_pv": - pre_heating_system = self._map_to_pre_main_heating(mainheating, main_fuel, mainheat_energy_eff) solar_pps_df = filtered_pps_matrix[ (filtered_pps_matrix["Measure_Type"] == "Solar_PV") & (filtered_pps_matrix["Pre_Main_Heating_Source"] == pre_heating_system) @@ -544,7 +553,6 @@ class Funding: return solar_pps_df.squeeze()["Cost Savings"] if measure_type == "air_source_heat_pump": - pre_heating_system = self._map_to_pre_main_heating(mainheating, main_fuel, mainheat_energy_eff) pps = filtered_pps_matrix[ (filtered_pps_matrix["Pre_Main_Heating_Source"] == pre_heating_system) & (filtered_pps_matrix["Post_Main_Heating_Source"] == "Air to Water ASHP") & @@ -795,6 +803,8 @@ class Funding: (self.partial_project_scores_matrix["Starting Band"] == self.starting_sap_band) ].copy() + pre_heating_system = self._map_to_pre_main_heating(mainheating, main_fuel, mainheat_energy_eff) + if self.tenure == "Private": # ECO4 PRS self.eco4_prs_eligibility(starting_sap, ending_sap, measure_types, has_solar, solar_eligible) @@ -806,6 +816,9 @@ class Funding: self.eco4_funding = self.full_project_abs * ( self.private_cavity_abs_rate if is_cavity else self.private_solid_abs_rate) + if self.gbis_eligible: + raise NotImplementedError("FIX ME") + elif self.tenure == "Social": # ECO4 Social self.eco4_sh_eligibility( @@ -836,6 +849,7 @@ class Funding: is_partial=is_partial, existing_li_thickness=existing_li_thickness, filtered_pps_matrix=filtered_pps_matrix, + pre_heating_system=pre_heating_system ) project_uplifts.append(pps * uplifts[i]) total_uplift = sum(project_uplifts) @@ -854,7 +868,8 @@ class Funding: current_wall_uvalue=current_wall_uvalue, is_partial=is_partial, existing_li_thickness=existing_li_thickness, - filtered_pps_matrix=filtered_pps_matrix + filtered_pps_matrix=filtered_pps_matrix, + pre_heating_system=pre_heating_system ) diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 9e46ea9e..21a160bf 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -1019,7 +1019,7 @@ for _, x in tqdm(epc_df.iterrows(), total=len(epc_df)): # inputs mainheat_energy_eff = x["MAINHEAT_ENERGY_EFF"] heating_cleaner = MainHeatAttributes(description=x["MAINHEAT_DESCRIPTION"]) - fuel_cleaner = MainFuelAttributes(description=x["MAIN_FUEL"]) + fuel_cleaner = MainFuelAttributes(description="" if pd.isnull(x["MAIN_FUEL"]) else x["MAIN_FUEL"]) h = heating_cleaner.process() f = fuel_cleaner.process() From 0988fb7d6da8dbb30130b165d7702e9e96f8d005 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 18:53:39 +0100 Subject: [PATCH 15/73] handling uncommon heating systems --- backend/Funding.py | 23 ++++++-- backend/tests/test_funding.py | 104 ++++++++++++++++++---------------- 2 files changed, 72 insertions(+), 55 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index 9c4022b1..0aa86545 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -402,8 +402,11 @@ class Funding: ): return 'DHS non-CHP' - if mainheating["has_electric_storage_heaters"] and mainheat_energy_eff == "Very Poor": + if mainheating["has_electric_storage_heaters"] and ( + (mainheat_energy_eff == "Very Poor") or pd.isnull(mainheat_energy_eff) + ): return 'Electric Storage Heaters Responsiveness <=0.2' + if mainheating["has_electric_storage_heaters"] and mainheat_energy_eff in [ "Poor", "Average", "Good", "Very Good", ]: @@ -421,7 +424,7 @@ class Funding: if mainheating["has_room_heaters"] and ( main_fuel["fuel_type"] in [ "dual fuel appliance mineral and wood", "manufactured smokeless fuel", "dual fuel mineral wood", "oil", - 'smokeless coal' + 'smokeless coal', 'wood logs' ] or mainheating["has_coal"] ): return 'Solid Fossil Room Heaters' @@ -437,11 +440,12 @@ class Funding: return 'Electric Room Heaters' if mainheating["has_warm_air"] and main_fuel["fuel_type"] == "mains gas": - # Treat warm air gas system as a condensing gas boiler if mainheat_energy_eff in ["Good", "Very Good"]: - return "Condensing Gas Boiler" - else: - return "Non Condensing Gas Boiler" + return 'Condensing Gas Boiler' + elif mainheat_energy_eff in ["Average", "Poor"]: + return 'Non Condensing Gas Boiler' + elif mainheat_energy_eff == "Very Poor": + return 'Gas Back Boiler to Radiators' if mainheating["has_electricaire"]: # Based on current understanding, electricaire is an electric warm air storage heater, using @@ -455,6 +459,13 @@ class Funding: if mainheating["has_electric_underfloor_heating"] or mainheating["has_electric_ceiling_heating"]: return "Electric Room Heaters" + # Treat warm air lpg as a direct acting lpg oiler + if mainheating["has_warm_air"] and main_fuel["fuel_type"] == "lpg": + if mainheat_energy_eff in ["Good", "Very Good"]: + return 'Condensing LPG Boiler' + else: # Average, Poor, Very Poor + return 'Non Condensing LPG Boiler' + raise ValueError("Invalid pre heating system") def calculate_partial_project_abs( diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 21a160bf..1608ca39 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -1015,57 +1015,63 @@ mock_project_scores_matrix = mock_project_scores_matrix() mock_whlg_postcodes = mock_whlg_postcodes() mock_partial_scores_matrix = mock_partial_scores_matrix() +errors = [] for _, x in tqdm(epc_df.iterrows(), total=len(epc_df)): - # inputs - mainheat_energy_eff = x["MAINHEAT_ENERGY_EFF"] - heating_cleaner = MainHeatAttributes(description=x["MAINHEAT_DESCRIPTION"]) - fuel_cleaner = MainFuelAttributes(description="" if pd.isnull(x["MAIN_FUEL"]) else x["MAIN_FUEL"]) + try: + # inputs + mainheat_energy_eff = x["MAINHEAT_ENERGY_EFF"] + heating_cleaner = MainHeatAttributes(description=x["MAINHEAT_DESCRIPTION"]) + fuel_cleaner = MainFuelAttributes(description="" if pd.isnull(x["MAIN_FUEL"]) else x["MAIN_FUEL"]) - h = heating_cleaner.process() - f = fuel_cleaner.process() + h = heating_cleaner.process() + f = fuel_cleaner.process() - funding = Funding( - project_scores_matrix=mock_project_scores_matrix, - partial_project_scores_matrix=mock_partial_scores_matrix, - whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, - tenure="Social" - ) + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + social_cavity_abs_rate=13.5, + social_solid_abs_rate=17, + private_cavity_abs_rate=13.5, + private_solid_abs_rate=17, + tenure="Social" + ) - self = funding - measures = measures - starting_sap = 33 - ending_sap = 69 - floor_area = 71 - mainheat_description = x["MAINHEAT_DESCRIPTION"] - heating_control_description = x["MAINHEATCONT_DESCRIPTION"] - is_cavity = True - current_wall_uvalue = 2 - is_partial = False - existing_li_thickness = 0 - has_wall_insulation_recommendation = True - has_roof_insulation_recommendation = True - mainheating = h - main_fuel = f - mainheat_energy_eff = mainheat_energy_eff + self = funding + measures = measures + starting_sap = 33 + ending_sap = 69 + floor_area = 71 + mainheat_description = x["MAINHEAT_DESCRIPTION"] + heating_control_description = x["MAINHEATCONT_DESCRIPTION"] + is_cavity = True + current_wall_uvalue = 2 + is_partial = False + existing_li_thickness = 0 + has_wall_insulation_recommendation = True + has_roof_insulation_recommendation = True + mainheating = h + main_fuel = f + mainheat_energy_eff = mainheat_energy_eff - funding.check_funding( - measures=measures, - starting_sap=33, - ending_sap=69, - floor_area=71, - mainheat_description=x["MAINHEAT_DESCRIPTION"], - heating_control_description=x["MAINHEATCONT_DESCRIPTION"], - is_cavity=True, - current_wall_uvalue=2, - is_partial=False, - existing_li_thickness=0, - has_wall_insulation_recommendation=True, - has_roof_insulation_recommendation=True, - mainheating=h, - main_fuel=f, - mainheat_energy_eff=mainheat_energy_eff, - ) + funding.check_funding( + measures=measures, + starting_sap=33, + ending_sap=69, + floor_area=71, + mainheat_description=x["MAINHEAT_DESCRIPTION"], + heating_control_description=x["MAINHEATCONT_DESCRIPTION"], + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, + has_wall_insulation_recommendation=True, + has_roof_insulation_recommendation=True, + mainheating=h, + main_fuel=f, + mainheat_energy_eff=mainheat_energy_eff, + ) + except Exception as e: + errors.append(x["LMK_KEY"]) + +errored_epcs = epc_df[epc_df["LMK_KEY"].isin(errors)] From b26071e8fcdb752b183a8b5d105a8f3ba00b4ab7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 19:24:16 +0100 Subject: [PATCH 16/73] handle smokeless coal boiler --- backend/Funding.py | 5 +++-- backend/tests/test_funding.py | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index 0aa86545..8ae82d48 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -384,12 +384,13 @@ class Funding: if mainheating["has_boiler"] and ( main_fuel["fuel_type"] in [ - "dual fuel appliance mineral and wood", "manufactured smokeless fuel", "dual fuel mineral wood" + "dual fuel appliance mineral and wood", "manufactured smokeless fuel", "dual fuel mineral wood", + "smokeless coal" ] ) and (mainheat_energy_eff in ["Average", "Very Poor", "Poor"]): return 'Solid Fossil Boiler' - if mainheating["has_ground_source_heat_pump"]: + if mainheating["has_ground_source_heat_pump"] or mainheating["has_water_source_heat_pump"]: return 'GSHP' if mainheating["has_boiler"] and (main_fuel["fuel_type"] in ["electric", "electricity"]): diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 1608ca39..f64089f7 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -1075,3 +1075,10 @@ for _, x in tqdm(epc_df.iterrows(), total=len(epc_df)): errors.append(x["LMK_KEY"]) errored_epcs = epc_df[epc_df["LMK_KEY"].isin(errors)] +unique_combs = errored_epcs[["MAINHEAT_ENERGY_EFF", "MAINHEAT_DESCRIPTION", "MAIN_FUEL"]].drop_duplicates() +i = 0 +x = errored_epcs[ + (errored_epcs["MAINHEAT_ENERGY_EFF"] == unique_combs["MAINHEAT_ENERGY_EFF"].values[i]) & + (errored_epcs["MAINHEAT_DESCRIPTION"] == unique_combs["MAINHEAT_DESCRIPTION"].values[i]) & + (errored_epcs["MAIN_FUEL"] == unique_combs["MAIN_FUEL"].values[i]) + ].head(1).squeeze() From ffc6f434d5aef7cfdfd4a58f1731d5665308c4b6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 19:26:44 +0100 Subject: [PATCH 17/73] handle b30k boiler --- backend/Funding.py | 11 ++++------- backend/tests/test_funding.py | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index 8ae82d48..71499b4d 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -363,13 +363,10 @@ class Funding: # Doesnt have radiators return 'Gas Fire with Back Boiler' - if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "oil") and ( - mainheat_energy_eff in ["Good", "Very Good"] - ): - return 'Condensing Oil Boiler' - if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "oil") and ( - mainheat_energy_eff in ["Average", "Very Poor", "Poor"] - ): + if mainheating["has_boiler"] and (main_fuel["fuel_type"] in ["oil", "b30k"]): + # b30k - kerosene + if mainheat_energy_eff in ["Good", "Very Good"]: + return 'Condensing Oil Boiler' return 'Non Condensing Oil Boiler' if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "lpg") and ( diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index f64089f7..4cfe3b5e 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -1076,7 +1076,7 @@ for _, x in tqdm(epc_df.iterrows(), total=len(epc_df)): errored_epcs = epc_df[epc_df["LMK_KEY"].isin(errors)] unique_combs = errored_epcs[["MAINHEAT_ENERGY_EFF", "MAINHEAT_DESCRIPTION", "MAIN_FUEL"]].drop_duplicates() -i = 0 +i = 1 x = errored_epcs[ (errored_epcs["MAINHEAT_ENERGY_EFF"] == unique_combs["MAINHEAT_ENERGY_EFF"].values[i]) & (errored_epcs["MAINHEAT_DESCRIPTION"] == unique_combs["MAINHEAT_DESCRIPTION"].values[i]) & From eb48b408dc053e57d22b02c0d6d52fc7fab7e9e7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 19:30:15 +0100 Subject: [PATCH 18/73] missing fuel on gas boiler --- backend/Funding.py | 21 ++++++++------------- backend/tests/test_funding.py | 2 +- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index 71499b4d..ce712de4 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -341,20 +341,15 @@ class Funding: return 'Biomass Boiler' if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "lpg"): return 'Bottled LPG Boiler' - if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "mains gas") and ( - mainheat_energy_eff in ["Good", "Very Good"] + if mainheating["has_boiler"] and ( + (main_fuel["fuel_type"] == "mains gas") or ( + (main_fuel["fuel_type"] == "unknown") and (mainheating["has_mains_gas"])) ): - # Assume higher efficiency condensing boiler - return 'Condensing Gas Boiler' - - if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "mains gas") and ( - mainheat_energy_eff in ["Average", "Poor"] - ): - return 'Non Condensing Gas Boiler' - - if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "mains gas") and ( - mainheat_energy_eff in ["Very Poor"] - ) and mainheating["has_radiators"]: + if mainheat_energy_eff in ["Good", "Very Good"]: + # Assume higher efficiency condensing boiler + return 'Condensing Gas Boiler' + if mainheat_energy_eff in ["Average", "Poor"]: + return 'Non Condensing Gas Boiler' return 'Gas Back Boiler to Radiators' if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "mains gas") and ( diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 4cfe3b5e..6c237308 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -1076,7 +1076,7 @@ for _, x in tqdm(epc_df.iterrows(), total=len(epc_df)): errored_epcs = epc_df[epc_df["LMK_KEY"].isin(errors)] unique_combs = errored_epcs[["MAINHEAT_ENERGY_EFF", "MAINHEAT_DESCRIPTION", "MAIN_FUEL"]].drop_duplicates() -i = 1 +i = 2 x = errored_epcs[ (errored_epcs["MAINHEAT_ENERGY_EFF"] == unique_combs["MAINHEAT_ENERGY_EFF"].values[i]) & (errored_epcs["MAINHEAT_DESCRIPTION"] == unique_combs["MAINHEAT_DESCRIPTION"].values[i]) & From 6614f862230b1c072483d67c8c1f963fbf0068e8 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 19:44:52 +0100 Subject: [PATCH 19/73] handling multiple error cases --- backend/Funding.py | 40 ++++++++++++++++++----------------- backend/tests/test_funding.py | 2 +- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index ce712de4..31f89488 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -18,6 +18,11 @@ class Funding: Handles eligibility and funding calculations for ECO4 & GBIS (PRS + Social Housing). """ + SOLID_FUELS = [ + 'wood logs', 'manufactured smokeless fuel', 'house coal', 'smokeless coal', 'oil', 'dual fuel mineral wood', + 'anthracite', 'dual fuel appliance mineral and wood', "bulk wood pellets", "wood chips" + ] + def __init__( self, tenure: str, # 'Private' or 'Social' @@ -329,8 +334,7 @@ class Funding: return starting_str, ending_uvalue - @staticmethod - def _map_to_pre_main_heating(mainheating, main_fuel, mainheat_energy_eff): + def _map_to_pre_main_heating(self, mainheating, main_fuel, mainheat_energy_eff): # We check most likely primary heating system. Because mixed systems are hard to break up, we # check the larger, more prominent heating systems first and then the smaller ones. We aim # to cover the case where properties have heating systems like @@ -342,7 +346,7 @@ class Funding: if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "lpg"): return 'Bottled LPG Boiler' if mainheating["has_boiler"] and ( - (main_fuel["fuel_type"] == "mains gas") or ( + (main_fuel["fuel_type"] in ["mains gas", "biogas"]) or ( (main_fuel["fuel_type"] == "unknown") and (mainheating["has_mains_gas"])) ): if mainheat_energy_eff in ["Good", "Very Good"]: @@ -374,12 +378,7 @@ class Funding: ): return 'Non Condensing LPG Boiler' - if mainheating["has_boiler"] and ( - main_fuel["fuel_type"] in [ - "dual fuel appliance mineral and wood", "manufactured smokeless fuel", "dual fuel mineral wood", - "smokeless coal" - ] - ) and (mainheat_energy_eff in ["Average", "Very Poor", "Poor"]): + if mainheating["has_boiler"] and (main_fuel["fuel_type"] in self.SOLID_FUELS): return 'Solid Fossil Boiler' if mainheating["has_ground_source_heat_pump"] or mainheating["has_water_source_heat_pump"]: @@ -408,17 +407,16 @@ class Funding: if mainheating["has_room_heaters"] and main_fuel["fuel_type"] == "lpg": return 'Bottled LPG Room Heaters' - if mainheating["has_room_heaters"] and main_fuel["fuel_type"] == "electricity": + if mainheating["has_room_heaters"] and ( + (main_fuel["fuel_type"] == "electricity") or mainheating["has_electric"] + ): return 'Electric Room Heaters' if mainheating["has_room_heaters"] and main_fuel["fuel_type"] == "mains gas": return 'Gas Room Heaters' if mainheating["has_room_heaters"] and ( - main_fuel["fuel_type"] in [ - "dual fuel appliance mineral and wood", "manufactured smokeless fuel", "dual fuel mineral wood", "oil", - 'smokeless coal', 'wood logs' - ] or mainheating["has_coal"] + main_fuel["fuel_type"] in self.SOLID_FUELS or mainheating["has_coal"] ): return 'Solid Fossil Room Heaters' @@ -435,10 +433,9 @@ class Funding: if mainheating["has_warm_air"] and main_fuel["fuel_type"] == "mains gas": if mainheat_energy_eff in ["Good", "Very Good"]: return 'Condensing Gas Boiler' - elif mainheat_energy_eff in ["Average", "Poor"]: + if mainheat_energy_eff in ["Average", "Poor"]: return 'Non Condensing Gas Boiler' - elif mainheat_energy_eff == "Very Poor": - return 'Gas Back Boiler to Radiators' + return 'Gas Back Boiler to Radiators' if mainheating["has_electricaire"]: # Based on current understanding, electricaire is an electric warm air storage heater, using @@ -456,8 +453,13 @@ class Funding: if mainheating["has_warm_air"] and main_fuel["fuel_type"] == "lpg": if mainheat_energy_eff in ["Good", "Very Good"]: return 'Condensing LPG Boiler' - else: # Average, Poor, Very Poor - return 'Non Condensing LPG Boiler' + return 'Non Condensing LPG Boiler' + + # Treat warm air oil as a direct acting oil boiler + if mainheating["has_warm_air"] and main_fuel["fuel_type"] == "lpg": + if mainheat_energy_eff in ["Good", "Very Good"]: + return 'Condensing Oil Boiler' + return 'Non Condensing Oil Boiler' raise ValueError("Invalid pre heating system") diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 6c237308..60629383 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -1076,7 +1076,7 @@ for _, x in tqdm(epc_df.iterrows(), total=len(epc_df)): errored_epcs = epc_df[epc_df["LMK_KEY"].isin(errors)] unique_combs = errored_epcs[["MAINHEAT_ENERGY_EFF", "MAINHEAT_DESCRIPTION", "MAIN_FUEL"]].drop_duplicates() -i = 2 +i = 3 x = errored_epcs[ (errored_epcs["MAINHEAT_ENERGY_EFF"] == unique_combs["MAINHEAT_ENERGY_EFF"].values[i]) & (errored_epcs["MAINHEAT_DESCRIPTION"] == unique_combs["MAINHEAT_DESCRIPTION"].values[i]) & From 2093f198e19db77174f4f58aa11f44875a4064f0 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 21:36:53 +0100 Subject: [PATCH 20/73] fixed multiple edge cases --- backend/Funding.py | 29 ++++++++++++++---- backend/tests/test_funding.py | 2 +- .../epc_attributes/MainheatAttributes.py | 4 ++- .../epc_attributes/attribute_utils.py | 6 ++-- .../test_mainheat_attributes_cases.py | 30 +++++++++++++++++++ 5 files changed, 60 insertions(+), 11 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index 31f89488..912c0426 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -3,6 +3,7 @@ from typing import List import pandas as pd +from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes from backend.app.plan.schemas import HousingType, WALL_INSULATION_MEASURES, ROOF_INSULATION_MEASURES, MEASURE_MAP @@ -20,7 +21,7 @@ class Funding: SOLID_FUELS = [ 'wood logs', 'manufactured smokeless fuel', 'house coal', 'smokeless coal', 'oil', 'dual fuel mineral wood', - 'anthracite', 'dual fuel appliance mineral and wood', "bulk wood pellets", "wood chips" + 'anthracite', 'dual fuel appliance mineral and wood', "bulk wood pellets", "wood chips", "wood pellets" ] def __init__( @@ -339,6 +340,16 @@ class Funding: # check the larger, more prominent heating systems first and then the smaller ones. We aim # to cover the case where properties have heating systems like # "boiler radiators, mains gas, electric storage heaters" so mixed systems + + is_solid_fuel = (main_fuel["fuel_type"] in self.SOLID_FUELS) or ( + mainheating["has_dual_fuel_mineral_and_wood"] or + mainheating["has_coal"] or + mainheating["has_anthracite"] or + mainheating["has_smokeless_fuel"] or + mainheating["has_mineral_and_wood"] or + mainheating["has_dual_fuel_appliance"] + ) + if mainheating["has_air_source_heat_pump"]: return 'Air to Water ASHP' if mainheating["has_boiler"] and (main_fuel["fuel_type"] == "biomass"): @@ -378,7 +389,7 @@ class Funding: ): return 'Non Condensing LPG Boiler' - if mainheating["has_boiler"] and (main_fuel["fuel_type"] in self.SOLID_FUELS): + if mainheating["has_boiler"] and is_solid_fuel: return 'Solid Fossil Boiler' if mainheating["has_ground_source_heat_pump"] or mainheating["has_water_source_heat_pump"]: @@ -415,9 +426,7 @@ class Funding: if mainheating["has_room_heaters"] and main_fuel["fuel_type"] == "mains gas": return 'Gas Room Heaters' - if mainheating["has_room_heaters"] and ( - main_fuel["fuel_type"] in self.SOLID_FUELS or mainheating["has_coal"] - ): + if mainheating["has_room_heaters"] and is_solid_fuel: return 'Solid Fossil Room Heaters' # Handle the case of no heating system - electric heaters assumed @@ -456,11 +465,19 @@ class Funding: return 'Non Condensing LPG Boiler' # Treat warm air oil as a direct acting oil boiler - if mainheating["has_warm_air"] and main_fuel["fuel_type"] == "lpg": + if mainheating["has_warm_air"] and main_fuel["fuel_type"] == "oil": if mainheat_energy_eff in ["Good", "Very Good"]: return 'Condensing Oil Boiler' return 'Non Condensing Oil Boiler' + fuels_identified = [] + for fuel in MainHeatAttributes.FUEL_TYPES: + fuels_identified.append(mainheating[f"has_{fuel.replace(' ', '_')}"]) + unknown_fuel = main_fuel["fuel_type"] == "unknown" and not any(fuels_identified) + + if mainheating["has_boiler"] and unknown_fuel: + return 'Non Condensing Gas Boiler' + raise ValueError("Invalid pre heating system") def calculate_partial_project_abs( diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 60629383..872d0f21 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -1076,7 +1076,7 @@ for _, x in tqdm(epc_df.iterrows(), total=len(epc_df)): errored_epcs = epc_df[epc_df["LMK_KEY"].isin(errors)] unique_combs = errored_epcs[["MAINHEAT_ENERGY_EFF", "MAINHEAT_DESCRIPTION", "MAIN_FUEL"]].drop_duplicates() -i = 3 +i = 11 x = errored_epcs[ (errored_epcs["MAINHEAT_ENERGY_EFF"] == unique_combs["MAINHEAT_ENERGY_EFF"].values[i]) & (errored_epcs["MAINHEAT_DESCRIPTION"] == unique_combs["MAINHEAT_DESCRIPTION"].values[i]) & diff --git a/etl/epc_clean/epc_attributes/MainheatAttributes.py b/etl/epc_clean/epc_attributes/MainheatAttributes.py index 051db8c2..7d59cd4c 100644 --- a/etl/epc_clean/epc_attributes/MainheatAttributes.py +++ b/etl/epc_clean/epc_attributes/MainheatAttributes.py @@ -18,7 +18,8 @@ class MainHeatAttributes(Definitions): "community heat pump", ] FUEL_TYPES = ["electric", "mains gas", "wood logs", "coal", "oil", "wood pellets", "anthracite", - "dual fuel mineral and wood", "smokeless fuel", "lpg", "b30k"] + "dual fuel mineral and wood", "smokeless fuel", "lpg", "b30k", "mineral and wood", + "dual fuel appliance"] DISTRIBUTION_SYSTEMS = ["radiators", "fan coil units", "pipes in screed above insulation", "pipes in insulated timber floor", "pipes in concrete slab"] OTHERS = ["assumed", "electricaire", "assumed for most rooms"] @@ -72,6 +73,7 @@ class MainHeatAttributes(Definitions): "dim system ar gael, rhagdybir bod gwresogyddion trydan, trydan": "no system present, electric heaters assumed", # Should be handled by edge cases ", trydan": ", electric", + 'awyr gynnes, nwy prif gyflenwad': 'warm air, mains gas' } REMAP = { diff --git a/etl/epc_clean/epc_attributes/attribute_utils.py b/etl/epc_clean/epc_attributes/attribute_utils.py index a5326207..28f958a8 100644 --- a/etl/epc_clean/epc_attributes/attribute_utils.py +++ b/etl/epc_clean/epc_attributes/attribute_utils.py @@ -108,9 +108,9 @@ def process_part(result: Dict[str, Union[str, bool]], part: str, attr_list: List if set(attr_words).issubset(set(part_words)): result[f'{prefix}{attr.replace(" ", "_")}'] = True - at_least_one_attribute_true = any(result.values()) - if not at_least_one_attribute_true: - raise ValueError("No attribute matches found") + # at_least_one_attribute_true = any(result.values()) + # if not at_least_one_attribute_true: + # raise ValueError("No attribute matches found") return result diff --git a/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py b/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py index 16acdd37..cc95fa23 100644 --- a/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py +++ b/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py @@ -1707,6 +1707,36 @@ mainheat_cases = [ 'has_dual_fuel_mineral_and_wood': False, 'has_smokeless_fuel': False, 'has_lpg': False, 'has_b30k': False, 'has_assumed': False, 'has_electricaire': False, 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False + }, + { + "original_description": "Boiler and radiators, dual fuel (mineral and wood)", + 'has_radiators': True, 'has_fan_coil_units': False, 'has_pipes_in_screed_above_insulation': False, + 'has_pipes_in_insulated_timber_floor': False, 'has_pipes_in_concrete_slab': False, 'has_boiler': True, + 'has_air_source_heat_pump': False, 'has_room_heaters': False, 'has_electric_storage_heaters': False, + 'has_warm_air': False, 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, + 'has_community_scheme': False, 'has_ground_source_heat_pump': False, 'has_no_system_present': False, + 'has_portable_electric_heaters': False, 'has_water_source_heat_pump': False, 'has_electric_heat_pump': False, + 'has_micro-cogeneration': False, 'has_solar_assisted_heat_pump': False, 'has_exhaust_source_heat_pump': False, + 'has_community_heat_pump': False, 'has_electric': False, 'has_mains_gas': False, 'has_wood_logs': False, + 'has_coal': False, 'has_oil': False, 'has_wood_pellets': False, 'has_anthracite': False, + 'has_dual_fuel_mineral_and_wood': True, 'has_smokeless_fuel': False, 'has_lpg': False, 'has_b30k': False, + 'has_mineral_and_wood': True, 'has_assumed': False, 'has_electricaire': False, + 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False + }, + { + "original_description": "Room heaters, dual fuel appliance", + 'has_radiators': False, 'has_fan_coil_units': False, 'has_pipes_in_screed_above_insulation': False, + 'has_pipes_in_insulated_timber_floor': False, 'has_pipes_in_concrete_slab': False, 'has_boiler': False, + 'has_air_source_heat_pump': False, 'has_room_heaters': True, 'has_electric_storage_heaters': False, + 'has_warm_air': False, 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, + 'has_community_scheme': False, 'has_ground_source_heat_pump': False, 'has_no_system_present': False, + 'has_portable_electric_heaters': False, 'has_water_source_heat_pump': False, 'has_electric_heat_pump': False, + 'has_micro-cogeneration': False, 'has_solar_assisted_heat_pump': False, 'has_exhaust_source_heat_pump': False, + 'has_community_heat_pump': False, 'has_electric': False, 'has_mains_gas': False, 'has_wood_logs': False, + 'has_coal': False, 'has_oil': False, 'has_wood_pellets': False, 'has_anthracite': False, + 'has_dual_fuel_mineral_and_wood': False, 'has_smokeless_fuel': False, 'has_lpg': False, 'has_b30k': False, + 'has_mineral_and_wood': False, 'has_dual_fuel_appliance': True, 'has_assumed': False, 'has_electricaire': False, + 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False } ] From 82ede4d8cdc1cbda8917d4d60b35eebb8c327bd6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 22:00:08 +0100 Subject: [PATCH 21/73] fixing funding edge cases and adding tests wip --- backend/Funding.py | 6 +- .../tests/test_data/pre_heating_scenarios.py | 144 ++++++++++++++++++ backend/tests/test_funding.py | 128 +++++++++++----- etl/epc_clean/tests/test_attribute_utils.py | 17 +-- 4 files changed, 246 insertions(+), 49 deletions(-) create mode 100644 backend/tests/test_data/pre_heating_scenarios.py diff --git a/backend/Funding.py b/backend/Funding.py index 912c0426..027a9a2e 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -1,6 +1,5 @@ from enum import Enum from typing import List - import pandas as pd from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes @@ -57,6 +56,7 @@ class Funding: # Funding calculation variables self.full_project_abs = None self.eco4_funding = None + self.eco4_uplift = 0 self.partial_project_abs = None @@ -875,8 +875,8 @@ class Funding: pre_heating_system=pre_heating_system ) project_uplifts.append(pps * uplifts[i]) - total_uplift = sum(project_uplifts) - self.full_project_abs += total_uplift + self.eco4_uplift = sum(project_uplifts) + self.full_project_abs += self.eco4_uplift self.eco4_funding = self.full_project_abs * ( self.social_cavity_abs_rate if is_cavity else self.social_solid_abs_rate ) diff --git a/backend/tests/test_data/pre_heating_scenarios.py b/backend/tests/test_data/pre_heating_scenarios.py new file mode 100644 index 00000000..ab5dcbb1 --- /dev/null +++ b/backend/tests/test_data/pre_heating_scenarios.py @@ -0,0 +1,144 @@ +# Each scenario: super explicit about inputs and expected mapping +pre_main_heating_scenarios = [ + # --- Mains gas boilers (radiators) --- + { + "description": "Boiler and radiators, mains gas (condensing expected)", + "MAINHEAT_DESCRIPTION": "Boiler and radiators, mains gas", + "MAIN_FUEL": "mains gas (not community)", + "MAINHEAT_ENERGY_EFF": "Good", + "expected": "Condensing Gas Boiler", + }, + { + "description": "Boiler and radiators, mains gas (non-condensing expected)", + "MAINHEAT_DESCRIPTION": "Boiler and radiators, mains gas", + "MAIN_FUEL": "mains gas - this is for backwards compatibility only and should not be used", + "MAINHEAT_ENERGY_EFF": "Average", + "expected": "Non Condensing Gas Boiler", + }, + { + "description": "Boiler and radiators, mains gas (very poor => back boiler to rads)", + "MAINHEAT_DESCRIPTION": "Boiler and radiators, mains gas", + "MAIN_FUEL": "Gas: mains gas", + "MAINHEAT_ENERGY_EFF": "Very Poor", + "expected": "Gas Back Boiler to Radiators", + }, + + # --- Warm air (treated like gas boiler family in your mapper) --- + { + "description": "Warm air, mains gas (good => condensing)", + "MAINHEAT_DESCRIPTION": "Warm air, mains gas", + "MAIN_FUEL": "mains gas (not community)", + "MAINHEAT_ENERGY_EFF": "Good", + "expected": "Condensing Gas Boiler", + }, + + # --- Community scheme (CHP vs non-CHP depends on energy eff) --- + { + "description": "Community scheme (gas, good => CHP)", + "MAINHEAT_DESCRIPTION": "Community scheme", + "MAIN_FUEL": "mains gas (community)", + "MAINHEAT_ENERGY_EFF": "Good", + "expected": "DHS CHP", + }, + { + "description": "Community scheme (gas, average => non-CHP)", + "MAINHEAT_DESCRIPTION": "Community scheme", + "MAIN_FUEL": "mains gas (community)", + "MAINHEAT_ENERGY_EFF": "Average", + "expected": "DHS non-CHP", + }, + { + "description": "Community scheme (no fuel data, good => CHP)", + "MAINHEAT_DESCRIPTION": "Community scheme", + "MAIN_FUEL": "NO DATA!", + "MAINHEAT_ENERGY_EFF": "Good", + "expected": "DHS CHP", + }, + + # --- Electric storage heaters (ESH responsiveness split) --- + { + "description": "Electric storage heaters (average => responsiveness > 0.2)", + "MAINHEAT_DESCRIPTION": "Electric storage heaters", + "MAIN_FUEL": "electricity (not community)", + "MAINHEAT_ENERGY_EFF": "Average", + "expected": "Electric Storage Heaters Responsiveness >0.2", + }, + { + "description": "Electric storage heaters (poor => responsiveness > 0.2)", + "MAINHEAT_DESCRIPTION": "Electric storage heaters", + "MAIN_FUEL": "electricity - this is for backwards compatibility only and should not be used", + "MAINHEAT_ENERGY_EFF": "Poor", + "expected": "Electric Storage Heaters Responsiveness >0.2", + }, + { + "description": "Electric storage heaters (very poor => responsiveness <= 0.2)", + "MAINHEAT_DESCRIPTION": "Electric storage heaters", + "MAIN_FUEL": "electricity (not community)", + "MAINHEAT_ENERGY_EFF": "Very Poor", + "expected": "Electric Storage Heaters Responsiveness <=0.2", + }, + + # --- Electric direct-acting / room heaters --- + { + "description": "Room heaters, electric (very poor)", + "MAINHEAT_DESCRIPTION": "Room heaters, electric", + "MAIN_FUEL": "electricity (not community)", + "MAINHEAT_ENERGY_EFF": "Very Poor", + "expected": "Electric Room Heaters", + }, + { + "description": "Room heaters, electric (poor, unspecified tariff)", + "MAINHEAT_DESCRIPTION": "Room heaters, electric", + "MAIN_FUEL": "Electricity: electricity, unspecified tariff", + "MAINHEAT_ENERGY_EFF": "Poor", + "expected": "Electric Room Heaters", + }, + { + "description": "Portable electric heaters assumed for most rooms (maps to electric room heaters)", + "MAINHEAT_DESCRIPTION": "Portable electric heaters assumed for most rooms", + "MAIN_FUEL": "mains gas (not community)", # weird in EPCs, but your mapper forces electric room heaters here + "MAINHEAT_ENERGY_EFF": "Very Poor", + "expected": "Electric Room Heaters", + }, + { + "description": "No system present: electric heaters assumed", + "MAINHEAT_DESCRIPTION": "No system present: electric heaters assumed", + "MAIN_FUEL": "To be used only when there is no heating/hot-water system", + "MAINHEAT_ENERGY_EFF": "Very Poor", + "expected": "Electric Room Heaters", + }, + { + "description": "Electric underfloor heating => direct-acting electric", + "MAINHEAT_DESCRIPTION": "Electric underfloor heating", + "MAIN_FUEL": "electricity (not community)", + "MAINHEAT_ENERGY_EFF": "Average", + "expected": "Electric Room Heaters", + }, + + # --- Gas room heaters --- + { + "description": "Room heaters, mains gas (average)", + "MAINHEAT_DESCRIPTION": "Room heaters, mains gas", + "MAIN_FUEL": "mains gas (not community)", + "MAINHEAT_ENERGY_EFF": "Average", + "expected": "Gas Room Heaters", + }, + + # --- Electric boiler --- + { + "description": "Boiler and radiators, electric (very poor => electric boiler)", + "MAINHEAT_DESCRIPTION": "Boiler and radiators, electric", + "MAIN_FUEL": "electricity (not community)", + "MAINHEAT_ENERGY_EFF": "Very Poor", + "expected": "Electric Boiler", + }, + + # --- Gas boiler + UFH (still ‘boiler’ logic) --- + { + "description": "Boiler and underfloor heating, mains gas (good => condensing)", + "MAINHEAT_DESCRIPTION": "Boiler and underfloor heating, mains gas", + "MAIN_FUEL": "mains gas (not community)", + "MAINHEAT_ENERGY_EFF": "Good", + "expected": "Condensing Gas Boiler", + }, +] diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 872d0f21..456c090e 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -2,6 +2,7 @@ import pytest import pandas as pd from backend.Funding import Funding, EligibilityCaveats from backend.tests.test_data.innovation_measure_fixtures import innovation_scenarios +from backend.tests.test_data.pre_heating_scenarios import pre_main_heating_scenarios @pytest.fixture @@ -43,6 +44,49 @@ def mock_whlg_postcodes(): return pd.DataFrame([{"Postcode": "ab12cd"}]) +@pytest.fixture +def mock_mainheating(): + return { + 'original_description': 'Electric storage heaters', 'has_radiators': False, + 'has_fan_coil_units': False, + 'has_pipes_in_screed_above_insulation': False, + 'has_pipes_in_insulated_timber_floor': False, + 'has_pipes_in_concrete_slab': False, 'has_boiler': False, + 'has_air_source_heat_pump': False, + 'has_room_heaters': False, 'has_electric_storage_heaters': True, 'has_warm_air': False, + 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, + 'has_community_scheme': False, + 'has_ground_source_heat_pump': False, 'has_no_system_present': False, + 'has_portable_electric_heaters': False, + 'has_water_source_heat_pump': False, 'has_electric': True, 'has_mains_gas': False, + 'has_wood_logs': False, + 'has_coal': False, 'has_oil': False, 'has_wood_pellets': False, 'has_anthracite': + False, + 'has_dual_fuel_mineral_and_wood': False, 'has_smokeless_fuel': False, 'has_lpg': False, + 'has_assumed': False, + 'has_electricaire': False, 'has_assumed_for_most_rooms': False, + 'has_underfloor_heating': False, + "has_electric_heat_pumps": False, + "has_micro-cogeneration": False + } + + +@pytest.fixture +def mock_main_fuel(): + return { + 'original_description': 'Electricity: electricity, unspecified tariff', 'fuel_type': + 'electricity', + 'tariff_type': 'unspecified tariff', 'is_community': False, + 'no_individual_heating_or_community_network': False, + 'complex_fuel_type': None + } + + +@pytest.fixture +def mock_mainheat_energy_eff(): + return "Average" + + ### ------------------------- ### PRIVATE RENTED SECTOR (PRS) ### ------------------------- @@ -916,7 +960,10 @@ def test_custom_eco4_scenarios( def test_uplift( mock_project_scores_matrix, mock_partial_scores_matrix, - mock_whlg_postcodes + mock_whlg_postcodes, + mock_mainheating, + mock_main_fuel, + mock_mainheat_energy_eff ): funding = Funding( project_scores_matrix=mock_project_scores_matrix, @@ -939,38 +986,6 @@ def test_uplift( {"type": "cavity_wall_insulation", "is_innovation": False, "uplift": 0.25}, ] - mainheating = { - 'original_description': 'Electric storage heaters', 'has_radiators': False, - 'has_fan_coil_units': False, - 'has_pipes_in_screed_above_insulation': False, - 'has_pipes_in_insulated_timber_floor': False, - 'has_pipes_in_concrete_slab': False, 'has_boiler': False, - 'has_air_source_heat_pump': False, - 'has_room_heaters': False, 'has_electric_storage_heaters': True, 'has_warm_air': False, - 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, - 'has_community_scheme': False, - 'has_ground_source_heat_pump': False, 'has_no_system_present': False, - 'has_portable_electric_heaters': False, - 'has_water_source_heat_pump': False, 'has_electric': True, 'has_mains_gas': False, - 'has_wood_logs': False, - 'has_coal': False, 'has_oil': False, 'has_wood_pellets': False, 'has_anthracite': - False, - 'has_dual_fuel_mineral_and_wood': False, 'has_smokeless_fuel': False, 'has_lpg': False, - 'has_assumed': False, - 'has_electricaire': False, 'has_assumed_for_most_rooms': False, - 'has_underfloor_heating': False, - "has_electric_heat_pumps": False, - "has_micro-cogeneration": False - } - main_fuel = { - 'original_description': 'Electricity: electricity, unspecified tariff', 'fuel_type': - 'electricity', - 'tariff_type': 'unspecified tariff', 'is_community': False, - 'no_individual_heating_or_community_network': False, - 'complex_fuel_type': None - } - mainheat_energy_eff = "Good" - funding.check_funding( measures=measures, starting_sap=33, @@ -984,11 +999,46 @@ def test_uplift( existing_li_thickness=0, has_wall_insulation_recommendation=True, has_roof_insulation_recommendation=True, - mainheating=mainheating, - main_fuel=main_fuel, - mainheat_energy_eff=mainheat_energy_eff, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff, ) + assert funding.eco4_funding == 123 + assert funding.eco4_uplift == 456 + + +def _dummy_funding(): + # Matrices/whlg are unused by _map_to_pre_main_heating; pass harmless placeholders + return Funding( + tenure="Social", + social_cavity_abs_rate=0.0, + social_solid_abs_rate=0.0, + private_cavity_abs_rate=0.0, + private_solid_abs_rate=0.0, + project_scores_matrix=None, + partial_project_scores_matrix=None, + whlg_eligible_postcodes=set(), + ) + + +@pytest.mark.parametrize("scenario", pre_main_heating_scenarios) +def test_map_to_pre_main_heating(scenario): + funding = _dummy_funding() + + # Build normalized mainheating / main_fuel using your attribute processors + h = MainHeatAttributes(description=scenario["MAINHEAT_DESCRIPTION"]).process() + f = MainFuelAttributes(description=scenario["MAIN_FUEL"]).process() + + result = funding._map_to_pre_main_heating( + mainheating=h, + main_fuel=f, + mainheat_energy_eff=scenario["MAINHEAT_ENERGY_EFF"], + ) + + assert result == scenario[ + "expected"], f"Failed: {scenario['description']} -> {result} (expected {scenario['expected']})" + # Large scale testing for various measures measures = [ @@ -1003,7 +1053,7 @@ measures = [ {"type": "high_heat_retention_storage_heaters", "is_innovation": False, "uplift": 0}, ] epc_df = pd.read_csv( - "/Users/khalimconn-kowlessar/Downloads/domestic-E08000025-Birmingham/certificates.csv" + "/Users/khalimconn-kowlessar/Downloads/domestic-E08000003-Manchester/certificates.csv" ) from tqdm import tqdm from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes @@ -1082,3 +1132,7 @@ x = errored_epcs[ (errored_epcs["MAINHEAT_DESCRIPTION"] == unique_combs["MAINHEAT_DESCRIPTION"].values[i]) & (errored_epcs["MAIN_FUEL"] == unique_combs["MAIN_FUEL"].values[i]) ].head(1).squeeze() + +most_prominent_combinations = epc_df.groupby( + ["MAINHEAT_ENERGY_EFF", "MAINHEAT_DESCRIPTION", "MAIN_FUEL"] +)["LMK_KEY"].nunique().reset_index().sort_values("LMK_KEY", ascending=False).head(30).to_dict("records") diff --git a/etl/epc_clean/tests/test_attribute_utils.py b/etl/epc_clean/tests/test_attribute_utils.py index f4e74da3..e7ea7b4e 100644 --- a/etl/epc_clean/tests/test_attribute_utils.py +++ b/etl/epc_clean/tests/test_attribute_utils.py @@ -53,12 +53,11 @@ def test_process_part_value_errors(): with pytest.raises(ValueError): attribute_utils.process_part(result, part, attr_list, prefix) - -# Test for no attribute matches found -def test_process_part_no_matches(): - result = {'has_glazing': False, 'has_glazed': False, 'has_glaze': False} - part = 'high performance coating' - attr_list = ['glazing', 'glazed', 'glaze'] - prefix = 'has_' - with pytest.raises(ValueError): - attribute_utils.process_part(result, part, attr_list, prefix) +# Test for no attribute matches found - we don't raise this error any more +# def test_process_part_no_matches(): +# result = {'has_glazing': False, 'has_glazed': False, 'has_glaze': False} +# part = 'high performance coating' +# attr_list = ['glazing', 'glazed', 'glaze'] +# prefix = 'has_' +# with pytest.raises(ValueError): +# attribute_utils.process_part(result, part, attr_list, prefix) From 3bdadc80df459dc378eb879cfec08512d17a4e0d Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 22:21:36 +0100 Subject: [PATCH 22/73] handle 99% of cases - good enough for now --- backend/Funding.py | 2 +- backend/tests/test_data/pre_heating_scenarios.py | 2 +- backend/tests/test_funding.py | 2 +- .../epc_attributes/MainheatAttributes.py | 2 ++ .../test_data/test_mainheat_attributes_cases.py | 16 ++++++++++++++++ 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index 027a9a2e..301be1ae 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -432,7 +432,7 @@ class Funding: # Handle the case of no heating system - electric heaters assumed if mainheating["has_no_system_present"] or mainheating["has_portable_electric_heaters"] or ( mainheating["has_warm_air"] and mainheating["has_electric"] and not mainheating["has_electricaire"] - ): + ) or mainheating['has_hot-water-only']: return 'Electric Room Heaters' if not any(mainheating.values()): diff --git a/backend/tests/test_data/pre_heating_scenarios.py b/backend/tests/test_data/pre_heating_scenarios.py index ab5dcbb1..acf88113 100644 --- a/backend/tests/test_data/pre_heating_scenarios.py +++ b/backend/tests/test_data/pre_heating_scenarios.py @@ -96,7 +96,7 @@ pre_main_heating_scenarios = [ { "description": "Portable electric heaters assumed for most rooms (maps to electric room heaters)", "MAINHEAT_DESCRIPTION": "Portable electric heaters assumed for most rooms", - "MAIN_FUEL": "mains gas (not community)", # weird in EPCs, but your mapper forces electric room heaters here + "MAIN_FUEL": "mains gas (not community)", # weird in EPCs, mapper forces electric room heaters here "MAINHEAT_ENERGY_EFF": "Very Poor", "expected": "Electric Room Heaters", }, diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 456c090e..5f6eaa32 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -1126,7 +1126,7 @@ for _, x in tqdm(epc_df.iterrows(), total=len(epc_df)): errored_epcs = epc_df[epc_df["LMK_KEY"].isin(errors)] unique_combs = errored_epcs[["MAINHEAT_ENERGY_EFF", "MAINHEAT_DESCRIPTION", "MAIN_FUEL"]].drop_duplicates() -i = 11 +i = 2 x = errored_epcs[ (errored_epcs["MAINHEAT_ENERGY_EFF"] == unique_combs["MAINHEAT_ENERGY_EFF"].values[i]) & (errored_epcs["MAINHEAT_DESCRIPTION"] == unique_combs["MAINHEAT_DESCRIPTION"].values[i]) & diff --git a/etl/epc_clean/epc_attributes/MainheatAttributes.py b/etl/epc_clean/epc_attributes/MainheatAttributes.py index 7d59cd4c..1dcaa549 100644 --- a/etl/epc_clean/epc_attributes/MainheatAttributes.py +++ b/etl/epc_clean/epc_attributes/MainheatAttributes.py @@ -16,6 +16,7 @@ class MainHeatAttributes(Definitions): "solar assisted heat pump", "exhaust source heat pump", "community heat pump", + "hot-water-only" ] FUEL_TYPES = ["electric", "mains gas", "wood logs", "coal", "oil", "wood pellets", "anthracite", "dual fuel mineral and wood", "smokeless fuel", "lpg", "b30k", "mineral and wood", @@ -88,6 +89,7 @@ class MainHeatAttributes(Definitions): "gas-fired heat pumps, electric": "air source heat pump, electric", "radiator heating, heat from boilers - gas": "boiler and radiators, mains gas", "heat pump, warm air, mains gas": "air source heat pump, warm air, mains gas", + "air sourceheat pump, radiators, electric": "air source heat pump, radiators, electric" } edge_case_result = {} diff --git a/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py b/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py index cc95fa23..64478b5f 100644 --- a/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py +++ b/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py @@ -1738,5 +1738,21 @@ mainheat_cases = [ 'has_mineral_and_wood': False, 'has_dual_fuel_appliance': True, 'has_assumed': False, 'has_electricaire': False, 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False + }, + { + "original_description": "Hot-Water-Only Systems, electric", + 'has_radiators': False, 'has_fan_coil_units': False, 'has_pipes_in_screed_above_insulation': False, + 'has_pipes_in_insulated_timber_floor': False, 'has_pipes_in_concrete_slab': False, 'has_boiler': False, + 'has_air_source_heat_pump': False, 'has_room_heaters': False, 'has_electric_storage_heaters': False, + 'has_warm_air': False, 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, + 'has_community_scheme': False, 'has_ground_source_heat_pump': False, 'has_no_system_present': False, + 'has_portable_electric_heaters': False, 'has_water_source_heat_pump': False, 'has_electric_heat_pump': False, + 'has_micro-cogeneration': False, 'has_solar_assisted_heat_pump': False, 'has_exhaust_source_heat_pump': False, + 'has_community_heat_pump': False, 'has_hot-water-only': True, 'has_electric': True, 'has_mains_gas': False, + 'has_wood_logs': False, 'has_coal': False, 'has_oil': False, 'has_wood_pellets': False, 'has_anthracite': False, + 'has_dual_fuel_mineral_and_wood': False, 'has_smokeless_fuel': False, 'has_lpg': False, 'has_b30k': False, + 'has_mineral_and_wood': False, 'has_dual_fuel_appliance': False, 'has_assumed': False, + 'has_electricaire': False, 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False + } ] From 33ca9b79881b71f76a15182d857b89f55c8bc027 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 23:10:59 +0100 Subject: [PATCH 23/73] rebuilding epc clean --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/tests/test_funding.py | 109 +++--------------- etl/epc_clean/app.py | 17 ++- .../epc_attributes/MainheatAttributes.py | 5 +- etl/epc_clean/requirements.txt | 5 + 6 files changed, 41 insertions(+), 99 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 09f2e496..b9459684 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index fb10c6b0..5914e57c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 5f6eaa32..01da1e6c 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -3,6 +3,8 @@ import pandas as pd from backend.Funding import Funding, EligibilityCaveats from backend.tests.test_data.innovation_measure_fixtures import innovation_scenarios from backend.tests.test_data.pre_heating_scenarios import pre_main_heating_scenarios +from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes +from etl.epc_clean.epc_attributes.MainFuelAttributes import MainFuelAttributes @pytest.fixture @@ -1040,99 +1042,18 @@ def test_map_to_pre_main_heating(scenario): "expected"], f"Failed: {scenario['description']} -> {result} (expected {scenario['expected']})" -# Large scale testing for various measures -measures = [ - {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, - {"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}, - {"type": "cavity_wall_insulation", "is_innovation": False, "uplift": 0}, - {"type": "external_wall_insulation", "is_innovation": False, "uplift": 0}, - {"type": "loft_insulation", "is_innovation": False, "uplift": 0}, - {"type": "air_source_heat_pump", "is_innovation": False, "uplift": 0}, - {"type": "double_glazing", "is_innovation": False, "uplift": 0}, - {"type": "cavity_wall_insulation", "is_innovation": True, "uplift": 0.25}, - {"type": "high_heat_retention_storage_heaters", "is_innovation": False, "uplift": 0}, -] -epc_df = pd.read_csv( - "/Users/khalimconn-kowlessar/Downloads/domestic-E08000003-Manchester/certificates.csv" -) -from tqdm import tqdm -from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes -from etl.epc_clean.epc_attributes.MainFuelAttributes import MainFuelAttributes - # TODO: Add innovation uplift to private +raise ValueError("TODO: ADD INNOVATION TO PRIVATE") -mock_project_scores_matrix = mock_project_scores_matrix() -mock_whlg_postcodes = mock_whlg_postcodes() -mock_partial_scores_matrix = mock_partial_scores_matrix() - -errors = [] -for _, x in tqdm(epc_df.iterrows(), total=len(epc_df)): - try: - # inputs - mainheat_energy_eff = x["MAINHEAT_ENERGY_EFF"] - heating_cleaner = MainHeatAttributes(description=x["MAINHEAT_DESCRIPTION"]) - fuel_cleaner = MainFuelAttributes(description="" if pd.isnull(x["MAIN_FUEL"]) else x["MAIN_FUEL"]) - - h = heating_cleaner.process() - f = fuel_cleaner.process() - - funding = Funding( - project_scores_matrix=mock_project_scores_matrix, - partial_project_scores_matrix=mock_partial_scores_matrix, - whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, - tenure="Social" - ) - - self = funding - measures = measures - starting_sap = 33 - ending_sap = 69 - floor_area = 71 - mainheat_description = x["MAINHEAT_DESCRIPTION"] - heating_control_description = x["MAINHEATCONT_DESCRIPTION"] - is_cavity = True - current_wall_uvalue = 2 - is_partial = False - existing_li_thickness = 0 - has_wall_insulation_recommendation = True - has_roof_insulation_recommendation = True - mainheating = h - main_fuel = f - mainheat_energy_eff = mainheat_energy_eff - - funding.check_funding( - measures=measures, - starting_sap=33, - ending_sap=69, - floor_area=71, - mainheat_description=x["MAINHEAT_DESCRIPTION"], - heating_control_description=x["MAINHEATCONT_DESCRIPTION"], - is_cavity=True, - current_wall_uvalue=2, - is_partial=False, - existing_li_thickness=0, - has_wall_insulation_recommendation=True, - has_roof_insulation_recommendation=True, - mainheating=h, - main_fuel=f, - mainheat_energy_eff=mainheat_energy_eff, - ) - except Exception as e: - errors.append(x["LMK_KEY"]) - -errored_epcs = epc_df[epc_df["LMK_KEY"].isin(errors)] -unique_combs = errored_epcs[["MAINHEAT_ENERGY_EFF", "MAINHEAT_DESCRIPTION", "MAIN_FUEL"]].drop_duplicates() -i = 2 -x = errored_epcs[ - (errored_epcs["MAINHEAT_ENERGY_EFF"] == unique_combs["MAINHEAT_ENERGY_EFF"].values[i]) & - (errored_epcs["MAINHEAT_DESCRIPTION"] == unique_combs["MAINHEAT_DESCRIPTION"].values[i]) & - (errored_epcs["MAIN_FUEL"] == unique_combs["MAIN_FUEL"].values[i]) - ].head(1).squeeze() - -most_prominent_combinations = epc_df.groupby( - ["MAINHEAT_ENERGY_EFF", "MAINHEAT_DESCRIPTION", "MAIN_FUEL"] -)["LMK_KEY"].nunique().reset_index().sort_values("LMK_KEY", ascending=False).head(30).to_dict("records") +# Large scale testing for various measures +# measures = [ +# {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, +# {"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}, +# {"type": "cavity_wall_insulation", "is_innovation": False, "uplift": 0}, +# {"type": "external_wall_insulation", "is_innovation": False, "uplift": 0}, +# {"type": "loft_insulation", "is_innovation": False, "uplift": 0}, +# {"type": "air_source_heat_pump", "is_innovation": False, "uplift": 0}, +# {"type": "double_glazing", "is_innovation": False, "uplift": 0}, +# {"type": "cavity_wall_insulation", "is_innovation": True, "uplift": 0.25}, +# {"type": "high_heat_retention_storage_heaters", "is_innovation": False, "uplift": 0}, +# ] diff --git a/etl/epc_clean/app.py b/etl/epc_clean/app.py index a3c1018f..ff8fc95a 100644 --- a/etl/epc_clean/app.py +++ b/etl/epc_clean/app.py @@ -3,11 +3,12 @@ import os import pandas as pd import msgpack import inspect +from datetime import datetime from etl.epc_clean.EpcClean import EpcClean from etl.epc.settings import EARLIEST_EPC_DATE from pathlib import Path -from utils.s3 import save_data_to_s3 +from utils.s3 import save_data_to_s3, read_from_s3 src_file_path = inspect.getfile(lambda: None) @@ -22,7 +23,7 @@ LAND_REGISTRY_PATHS = [ os.path.abspath(os.path.dirname(src_file_path)) + "/model_data/local_data/pp-2017-part2.csv", ] -EPC_DIRECTORY = Path(src_file_path).parent / "local_data" / "all-domestic-certificates" +EPC_DIRECTORY = Path("/Users/khalimconn-kowlessar/Downloads") / "all-domestic-certificates" ENVIRONMENT = os.getenv("ENVIRONMENT", "dev") @@ -74,6 +75,18 @@ def app(): # data being read in will be extremely small, meaning quicker load times. We'll begin by storing as a single # file and monitor usage patterns to see if it makes sense to split the data up + # TODO: Copy the existing cleaned to an archive location, in case we wish to roll back easily + cleaned_historic = read_from_s3( + s3_file_name="cleaned_epc_data/cleaned.bson", + bucket_name=f"retrofit-data-{ENVIRONMENT}" + ) + cleaned_historic = msgpack.unpackb(cleaned_historic, raw=False) + save_data_to_s3( + data=msgpack.packb(cleaned_historic, use_bin_type=True), + s3_file_name=f"cleaned_epc_data/archive/{str(datetime.now())} - cleaned.bson", + bucket_name=f"retrofit-data-{ENVIRONMENT}" + ) + save_data_to_s3( data=msgpack.packb(cleaned_data, use_bin_type=True), s3_file_name="cleaned_epc_data/cleaned.bson", diff --git a/etl/epc_clean/epc_attributes/MainheatAttributes.py b/etl/epc_clean/epc_attributes/MainheatAttributes.py index 1dcaa549..85860bbf 100644 --- a/etl/epc_clean/epc_attributes/MainheatAttributes.py +++ b/etl/epc_clean/epc_attributes/MainheatAttributes.py @@ -74,7 +74,10 @@ class MainHeatAttributes(Definitions): "dim system ar gael, rhagdybir bod gwresogyddion trydan, trydan": "no system present, electric heaters assumed", # Should be handled by edge cases ", trydan": ", electric", - 'awyr gynnes, nwy prif gyflenwad': 'warm air, mains gas' + 'awyr gynnes, nwy prif gyflenwad': 'warm air, mains gas', + "bwyler a rheiddiaduron, nwy prif gyflenwad, gwresogyddion ystafell, trydan": "Boiler and radiators, " + "mains gas, Room heaters, " + "electric" } REMAP = { diff --git a/etl/epc_clean/requirements.txt b/etl/epc_clean/requirements.txt index e69de29b..ca6d6981 100644 --- a/etl/epc_clean/requirements.txt +++ b/etl/epc_clean/requirements.txt @@ -0,0 +1,5 @@ +tqdm +pandas +msgpack +textblob +boto3 \ No newline at end of file From f355f12ed32e9de42d39916ec702d7c232cd5b7f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sat, 9 Aug 2025 23:33:56 +0100 Subject: [PATCH 24/73] debugging cleaners --- etl/epc_clean/epc_attributes/LightingAttributes.py | 4 +++- etl/epc_clean/epc_attributes/MainheatControlAttributes.py | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/etl/epc_clean/epc_attributes/LightingAttributes.py b/etl/epc_clean/epc_attributes/LightingAttributes.py index 52baa033..08275446 100644 --- a/etl/epc_clean/epc_attributes/LightingAttributes.py +++ b/etl/epc_clean/epc_attributes/LightingAttributes.py @@ -9,7 +9,9 @@ class LightingAttributes(Definitions): "goleuadau ynni-isel ym mhob un ogçör mannau gosod": "low energy lighting in all fixed outlets", "goleuadau ynni-isel ym mhob un o r mannau gosod": "low energy lighting in all fixed outlets", "dim goleuadau ynni-isel": "no low energy lighting", - "goleuadau ynni-isel ym mhob un o'r mannau gosod": 'Low energy lighting in all fixed outlets' + "goleuadau ynni-isel ym mhob un o'r mannau gosod": 'Low energy lighting in all fixed outlets', + "effeithlonrwydd goleuo da": 'good lighting efficiency', + "effeithlonrwydd goleuo is na'r cyfartaledd": 'below average lighting efficiency', } OBSERVED_ERRORS = [] diff --git a/etl/epc_clean/epc_attributes/MainheatControlAttributes.py b/etl/epc_clean/epc_attributes/MainheatControlAttributes.py index a13823d2..3b97e02a 100644 --- a/etl/epc_clean/epc_attributes/MainheatControlAttributes.py +++ b/etl/epc_clean/epc_attributes/MainheatControlAttributes.py @@ -118,6 +118,7 @@ class MainheatControlAttributes(Definitions): 'rheoli r tal a llaw': 'manual charge control', 'tal un gyfradd, thermostat ystafell yn unig': 'flat rate charging, room thermostat only', "rheoli'r t l llaw": "manual charge control", + "2205 rhaglennydd ac o leiaf ddau thermostat ystafell": "programmer and at least two room thermostats" } NO_DATA_DESCRIPTIONS = [ From 97a6a27a1575a12181b84fca97ff79ad72410d9e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 11 Aug 2025 16:19:58 +0100 Subject: [PATCH 25/73] completed funding tests --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/Funding.py | 151 +++- .../test_data/innovation_measure_fixtures.py | 42 +- backend/tests/test_funding.py | 712 +++++++++++++----- etl/epc_clean/app.py | 44 +- .../epc_attributes/FloorAttributes.py | 2 + .../epc_attributes/HotWaterAttributes.py | 1 + .../epc_attributes/LightingAttributes.py | 1 + .../epc_attributes/MainheatAttributes.py | 4 +- .../MainheatControlAttributes.py | 1 + .../test_mainheat_attributes_cases.py | 11 +- .../tests/test_heating_recommendations.py | 6 + 13 files changed, 710 insertions(+), 269 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index b9459684..c6561970 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 5914e57c..50cad4ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/Funding.py b/backend/Funding.py index 301be1ae..0689d33b 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -7,6 +7,7 @@ from backend.app.plan.schemas import HousingType, WALL_INSULATION_MEASURES, ROOF class EligibilityCaveats(Enum): + EPC_RATING = "epc_rating" # EPC requirements not met TENANT_ON_BENEFITS_OR_LOW_INCOME = "tenant_on_benefits_or_low_income" INNOVATION_REQUIRED = "innovation_required" SOLAR_NEEDS_HEATING = "solar_needs_heating" @@ -26,19 +27,27 @@ class Funding: def __init__( self, tenure: str, # 'Private' or 'Social' - social_cavity_abs_rate: float, - social_solid_abs_rate: float, - private_cavity_abs_rate: float, - private_solid_abs_rate: float, + eco4_social_cavity_abs_rate: float, + eco4_social_solid_abs_rate: float, + eco4_private_cavity_abs_rate: float, + eco4_private_solid_abs_rate: float, + gbis_social_cavity_abs_rate: float, + gbis_social_solid_abs_rate: float, + gbis_private_cavity_abs_rate: float, + gbis_private_solid_abs_rate: float, project_scores_matrix, partial_project_scores_matrix, whlg_eligible_postcodes ): self.tenure = tenure - self.social_cavity_abs_rate = social_cavity_abs_rate - self.social_solid_abs_rate = social_solid_abs_rate - self.private_cavity_abs_rate = private_cavity_abs_rate - self.private_solid_abs_rate = private_solid_abs_rate + self.eco4_social_cavity_abs_rate = eco4_social_cavity_abs_rate + self.eco4_social_solid_abs_rate = eco4_social_solid_abs_rate + self.eco4_private_cavity_abs_rate = eco4_private_cavity_abs_rate + self.eco4_private_solid_abs_rate = eco4_private_solid_abs_rate + self.gbis_social_cavity_abs_rate = gbis_social_cavity_abs_rate + self.gbis_social_solid_abs_rate = gbis_social_solid_abs_rate + self.gbis_private_cavity_abs_rate = gbis_private_cavity_abs_rate + self.gbis_private_solid_abs_rate = gbis_private_solid_abs_rate self.starting_sap_band = None self.ending_sap_band = None @@ -55,6 +64,7 @@ class Funding: # Funding calculation variables self.full_project_abs = None + self.gbis_funding = None self.eco4_funding = None self.eco4_uplift = 0 @@ -141,7 +151,7 @@ class Funding: if not meets_epc or not meets_upgrade_target: self.eco4_eligible = False - self.eco4_eligibility_caveats = [] + self.eco4_eligibility_caveats.append(EligibilityCaveats.EPC_RATING) return if has_solar and not solar_eligible: @@ -587,6 +597,22 @@ class Funding: raise ValueError("something went wrong, more than one pps for ashp") return pps.squeeze()["Cost Savings"] + if measure_type == "high_heat_retention_storage_heater": + pps_data = filtered_pps_matrix[ + filtered_pps_matrix["Post_Main_Heating_Source"] == "High Heat Retention Storage Heaters" + ] + # Not every heating upgrade, that ends at HHRSH, will have a PPS. E.g. a gas boiler to HHRSH upgrade + # doesn't have a PPS + if pre_heating_system in pps_data["Pre_Main_Heating_Source"].values: + pps = pps_data[ + pps_data["Pre_Main_Heating_Source"] == pre_heating_system + ] + if pps.shape[0] != 1: + raise ValueError("something went wrong, more than one pps for HHRSH") + return pps.squeeze()["Cost Savings"] + + return 0 + raise ValueError(f"Invalid measure type for partial project ABS calculation: {measure_type}") # ----------------------- @@ -752,6 +778,40 @@ class Funding: return True + def calc_innovation_uplift( + self, + measure_types, + innovation_flags, + uplifts, + filtered_pps_matrix, + pre_heating_system, + mainheating, + main_fuel, + mainheat_energy_eff, + current_wall_uvalue, + is_partial, + existing_li_thickness, + ): + """Wrapper fundgion to calculate the innovation uplift for a project.""" + project_uplifts = [] + for i, measure in enumerate(measure_types): + if not innovation_flags[i]: + project_uplifts.append(0) + continue + pps = self.calculate_partial_project_abs( + measure_type=measure, + mainheating=mainheating, + main_fuel=main_fuel, + mainheat_energy_eff=mainheat_energy_eff, + current_wall_uvalue=current_wall_uvalue, + is_partial=is_partial, + existing_li_thickness=existing_li_thickness, + filtered_pps_matrix=filtered_pps_matrix, + pre_heating_system=pre_heating_system + ) + project_uplifts.append(pps * uplifts[i]) + return sum(project_uplifts) + def check_funding( self, measures: List[dict], @@ -835,12 +895,43 @@ class Funding: self.gbis_prs_eligibility(starting_sap, council_tax_band or "", measure_types) if self.eco4_eligible: + # Calculate the full project ABS for ECO4 self.full_project_abs = self.calculate_full_project_abs() + + self.eco4_uplift = self.calc_innovation_uplift( + measure_types=measure_types, + innovation_flags=innovation_flags, + uplifts=uplifts, + filtered_pps_matrix=filtered_pps_matrix, + pre_heating_system=pre_heating_system, + mainheating=mainheating, + main_fuel=main_fuel, + mainheat_energy_eff=mainheat_energy_eff, + current_wall_uvalue=current_wall_uvalue, + is_partial=is_partial, + existing_li_thickness=existing_li_thickness, + ) + + self.full_project_abs += self.eco4_uplift self.eco4_funding = self.full_project_abs * ( - self.private_cavity_abs_rate if is_cavity else self.private_solid_abs_rate) + self.eco4_social_cavity_abs_rate if is_cavity else self.eco4_social_solid_abs_rate + ) if self.gbis_eligible: - raise NotImplementedError("FIX ME") + self.partial_project_abs = self.calculate_partial_project_abs( + measure_type=measure_types[0], + mainheating=mainheating, + main_fuel=main_fuel, + mainheat_energy_eff=mainheat_energy_eff, + current_wall_uvalue=current_wall_uvalue, + is_partial=is_partial, + existing_li_thickness=existing_li_thickness, + filtered_pps_matrix=filtered_pps_matrix, + pre_heating_system=pre_heating_system + ) + self.gbis_funding = self.partial_project_abs * ( + self.gbis_private_cavity_abs_rate if is_cavity else self.gbis_private_solid_abs_rate + ) elif self.tenure == "Social": # ECO4 Social @@ -855,30 +946,23 @@ class Funding: # Calculate the full project ABS for ECO4 self.full_project_abs = self.calculate_full_project_abs() - # We calculate uplift innovation, where required - project_uplifts = [] - for i, measure in enumerate(measure_types): - if not innovation_flags[i]: - # Capture 0 innovation uplift for debugging - project_uplifts.append(0) - continue + self.eco4_uplift = self.calc_innovation_uplift( + measure_types=measure_types, + innovation_flags=innovation_flags, + uplifts=uplifts, + filtered_pps_matrix=filtered_pps_matrix, + pre_heating_system=pre_heating_system, + mainheating=mainheating, + main_fuel=main_fuel, + mainheat_energy_eff=mainheat_energy_eff, + current_wall_uvalue=current_wall_uvalue, + is_partial=is_partial, + existing_li_thickness=existing_li_thickness, + ) - pps = self.calculate_partial_project_abs( - measure_type=measure, - mainheating=mainheating, - main_fuel=main_fuel, - mainheat_energy_eff=mainheat_energy_eff, - current_wall_uvalue=current_wall_uvalue, - is_partial=is_partial, - existing_li_thickness=existing_li_thickness, - filtered_pps_matrix=filtered_pps_matrix, - pre_heating_system=pre_heating_system - ) - project_uplifts.append(pps * uplifts[i]) - self.eco4_uplift = sum(project_uplifts) self.full_project_abs += self.eco4_uplift self.eco4_funding = self.full_project_abs * ( - self.social_cavity_abs_rate if is_cavity else self.social_solid_abs_rate + self.eco4_social_cavity_abs_rate if is_cavity else self.eco4_social_solid_abs_rate ) if self.gbis_eligible: @@ -894,6 +978,9 @@ class Funding: filtered_pps_matrix=filtered_pps_matrix, pre_heating_system=pre_heating_system ) + self.gbis_funding = self.partial_project_abs * ( + self.gbis_social_cavity_abs_rate if is_cavity else self.gbis_social_solid_abs_rate + ) else: diff --git a/backend/tests/test_data/innovation_measure_fixtures.py b/backend/tests/test_data/innovation_measure_fixtures.py index db1ed4ed..886421c4 100644 --- a/backend/tests/test_data/innovation_measure_fixtures.py +++ b/backend/tests/test_data/innovation_measure_fixtures.py @@ -1,10 +1,10 @@ -from backend.Funding import Funding, EligibilityCaveats +from backend.Funding import EligibilityCaveats innovation_scenarios = [ # 1) Innovation PV, non-eligible heating system in place, EPC D - not eligible { "description": "Innovation PV, non-eligible heating system in place, EPC D", - "measures": [{"type": "solar_pv", "is_innovation": True}], + "measures": [{"type": "solar_pv", "is_innovation": True, "uplift": 0.45}], "starting_sap": 60, "mainheat_description": "Electric storage heaters", "heating_control_description": "Manual charge control", @@ -16,7 +16,7 @@ innovation_scenarios = [ # 2) Innovation PV, eligible heating system in place, EPC D - eligible { "description": "Innovation PV, eligible heating system in place, EPC D", - "measures": [{"type": "solar_pv", "is_innovation": True}], + "measures": [{"type": "solar_pv", "is_innovation": True, "uplift": 0.45}], "starting_sap": 60, "mainheat_description": "Air source heat pump, radiators", "heating_control_description": "Programmer, room thermostat and TRVs", @@ -29,8 +29,8 @@ innovation_scenarios = [ { "description": "Innovation PV + HHRSH upgrade, EPC E", "measures": [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "high_heat_retention_storage_heater", "is_innovation": True} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "high_heat_retention_storage_heater", "is_innovation": True, "uplift": 0.1} ], "starting_sap": 50, "mainheat_description": "Electric storage heaters", @@ -44,8 +44,8 @@ innovation_scenarios = [ { "description": "Innovation PV + HHRSH upgrade, EPC E", "measures": [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "high_heat_retention_storage_heater", "is_innovation": True} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "high_heat_retention_storage_heater", "is_innovation": True, "uplift": 0.1} ], "starting_sap": 50, "mainheat_description": "Electric storage heaters", @@ -58,7 +58,7 @@ innovation_scenarios = [ # 5) Innovation PV, needs wall insulation, no wall insulation measure - not eligible { "description": "Innovation PV, wall insulation recommended, but not installed", - "measures": [{"type": "solar_pv", "is_innovation": True}], + "measures": [{"type": "solar_pv", "is_innovation": True, "uplift": 0.45}], "starting_sap": 60, "mainheat_description": "Air source heat pump, radiators", "heating_control_description": "Programmer, room thermostat and TRVs", @@ -71,8 +71,8 @@ innovation_scenarios = [ { "description": "Innovation PV, wall insulation recommended and installed", "measures": [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "internal_wall_insulation", "is_innovation": False} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0.25} ], "starting_sap": 60, "mainheat_description": "Air source heat pump, radiators", @@ -85,7 +85,7 @@ innovation_scenarios = [ # 7) Innovation PV, needs roof insulation, no roof insulation measure - not eligible { "description": "Innovation PV, roof insulation recommended, not installed", - "measures": [{"type": "solar_pv", "is_innovation": True}], + "measures": [{"type": "solar_pv", "is_innovation": True, "uplift": 0.45}], "starting_sap": 60, "mainheat_description": "Air source heat pump, radiators", "heating_control_description": "Programmer, room thermostat and TRVs", @@ -98,8 +98,8 @@ innovation_scenarios = [ { "description": "Innovation PV, roof insulation recommended and installed", "measures": [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "loft_insulation", "is_innovation": False} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "loft_insulation", "is_innovation": False, "uplift": 0} ], "starting_sap": 60, "mainheat_description": "Air source heat pump, radiators", @@ -112,7 +112,7 @@ innovation_scenarios = [ # 9) Innovation PV, needs both roof + wall insulation, no insulation - not eligible { "description": "Innovation PV, both insulations recommended, none installed", - "measures": [{"type": "solar_pv", "is_innovation": True}], + "measures": [{"type": "solar_pv", "is_innovation": True, "uplift": 0.45}], "starting_sap": 60, "mainheat_description": "Air source heat pump, radiators", "heating_control_description": "Programmer, room thermostat and TRVs", @@ -125,8 +125,8 @@ innovation_scenarios = [ { "description": "Innovation PV, both insulations recommended, only wall done", "measures": [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "internal_wall_insulation", "is_innovation": False} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0.25} ], "starting_sap": 60, "mainheat_description": "Air source heat pump, radiators", @@ -140,8 +140,8 @@ innovation_scenarios = [ { "description": "Innovation PV, both insulations recommended, only roof done", "measures": [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "loft_insulation", "is_innovation": False} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "loft_insulation", "is_innovation": False, "uplift": 0} ], "starting_sap": 60, "mainheat_description": "Air source heat pump, radiators", @@ -155,9 +155,9 @@ innovation_scenarios = [ { "description": "Innovation PV, both insulations recommended and installed", "measures": [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "internal_wall_insulation", "is_innovation": False}, - {"type": "loft_insulation", "is_innovation": False} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0.25}, + {"type": "loft_insulation", "is_innovation": False, "uplift": 0} ], "starting_sap": 60, "mainheat_description": "Air source heat pump, radiators", diff --git a/backend/tests/test_funding.py b/backend/tests/test_funding.py index 01da1e6c..59d65a28 100644 --- a/backend/tests/test_funding.py +++ b/backend/tests/test_funding.py @@ -69,7 +69,9 @@ def mock_mainheating(): 'has_electricaire': False, 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False, "has_electric_heat_pumps": False, - "has_micro-cogeneration": False + "has_micro-cogeneration": False, + 'has_mineral_and_wood': False, + "has_dual_fuel_appliance": False } @@ -80,7 +82,7 @@ def mock_main_fuel(): 'electricity', 'tariff_type': 'unspecified tariff', 'is_community': False, 'no_individual_heating_or_community_network': False, - 'complex_fuel_type': None + 'complex_fuel_type': None, } @@ -93,15 +95,22 @@ def mock_mainheat_energy_eff(): ### PRIVATE RENTED SECTOR (PRS) ### ------------------------- -def test_eco4_prs_eligible_with_swi(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): +def test_eco4_prs_eligible_with_swi( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Private", ) @@ -111,7 +120,7 @@ def test_eco4_prs_eligible_with_swi(mock_project_scores_matrix, mock_partial_sco # 3) is getting a solid was measure # so it's eligible for ECO4 - measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + measures = [{"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}] funding.check_funding( measures=measures, starting_sap=50, # EPC E @@ -123,27 +132,37 @@ def test_eco4_prs_eligible_with_swi(mock_project_scores_matrix, mock_partial_sco council_tax_band="B", is_partial=False, existing_li_thickness=0, - current_wall_uvalue=2 + current_wall_uvalue=2, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert funding.eco4_eligible assert EligibilityCaveats.TENANT_ON_BENEFITS_OR_LOW_INCOME in funding.eco4_eligibility_caveats -def test_eco4_prs_not_eligible_high_epc(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): +def test_eco4_prs_not_eligible_high_epc( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): """Should NOT be eligible if EPC is too high (C or above).""" funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Private", ) - measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + measures = [{"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}] funding.check_funding( measures=measures, starting_sap=72, # EPC C (too high) @@ -156,25 +175,35 @@ def test_eco4_prs_not_eligible_high_epc(mock_project_scores_matrix, mock_partial is_partial=False, existing_li_thickness=0, current_wall_uvalue=2, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding.eco4_eligible -def test_gbis_prs_general_eligibility(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): +def test_gbis_prs_general_eligibility( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): """PRS EPC D–G & council tax band A–D should trigger GBIS general route.""" funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Private", ) - measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + measures = [{"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}] funding.check_funding( measures=measures, starting_sap=65, # EPC D @@ -187,25 +216,35 @@ def test_gbis_prs_general_eligibility(mock_project_scores_matrix, mock_partial_s is_partial=False, existing_li_thickness=0, current_wall_uvalue=2, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert funding.gbis_eligible -def test_gbis_prs_low_income_caveat(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): +def test_gbis_prs_low_income_caveat( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): """PRS EPC D–G should flag low-income caveat when low-income route is used.""" funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Private", ) - measures = [{"type": "cavity_wall_insulation", "is_innovation": False}] + measures = [{"type": "cavity_wall_insulation", "is_innovation": False, "uplift": 0}] funding.check_funding( measures=measures, starting_sap=60, # EPC D @@ -218,6 +257,9 @@ def test_gbis_prs_low_income_caveat(mock_project_scores_matrix, mock_partial_sco is_partial=False, existing_li_thickness=0, current_wall_uvalue=2, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert funding.gbis_eligible @@ -228,20 +270,27 @@ def test_gbis_prs_low_income_caveat(mock_project_scores_matrix, mock_partial_sco ### SOCIAL HOUSING ### ------------------------- -def test_eco4_sh_epc_e_eligible(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): +def test_eco4_sh_epc_e_eligible( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): """EPC E social housing should be ECO4 eligible without innovation.""" funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social", ) - measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + measures = [{"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}] funding.check_funding( measures=measures, starting_sap=50, # EPC E @@ -253,25 +302,35 @@ def test_eco4_sh_epc_e_eligible(mock_project_scores_matrix, mock_partial_scores_ current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert funding.eco4_eligible -def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): +def test_eco4_sh_epc_d_requires_innovation( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): """EPC D social housing should require an innovation measure.""" funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social", ) - measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + measures = [{"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}] funding.check_funding( measures=measures, starting_sap=60, # EPC D @@ -283,6 +342,9 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding.eco4_eligible @@ -293,13 +355,17 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social", ) - measures2 = [{"type": "internal_wall_insulation", "is_innovation": True}] + measures2 = [{"type": "internal_wall_insulation", "is_innovation": True, "uplift": 0.25}] funding2.check_funding( measures=measures2, starting_sap=60, # EPC D @@ -311,6 +377,9 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert funding2.eco4_eligible @@ -324,13 +393,17 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social", ) - measures3 = [{"type": "solar_pv", "is_innovation": True}] + measures3 = [{"type": "solar_pv", "is_innovation": True, "uplift": 0.45}] funding3.check_funding( measures=measures3, starting_sap=60, # EPC D @@ -342,6 +415,9 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding3.eco4_eligible @@ -352,14 +428,18 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social", ) - measures4 = [{"type": "solar_pv", "is_innovation": True}] + measures4 = [{"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, ] funding4.check_funding( measures=measures4, starting_sap=60, # EPC D @@ -371,6 +451,9 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert funding4.eco4_eligible @@ -381,16 +464,20 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social", ) measures5 = [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "high_heat_retention_storage_heater", "is_innovation": False} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "high_heat_retention_storage_heater", "is_innovation": False, "uplift": 0} ] funding5.check_funding( measures=measures5, @@ -403,6 +490,9 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding5.eco4_eligible @@ -414,15 +504,19 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social", ) measures6 = [ - {"type": "solar_pv", "is_innovation": True}, + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, ] funding6.check_funding( measures=measures6, @@ -437,6 +531,9 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding6.eco4_eligible @@ -448,16 +545,20 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social", ) measures7 = [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "cavity_wall_insulation", "is_innovation": False}, - {"type": "loft_insulation", "is_innovation": False} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "cavity_wall_insulation", "is_innovation": False, "uplift": 0.25}, + {"type": "loft_insulation", "is_innovation": False, "uplift": 0} ] funding7.check_funding( measures=measures7, @@ -470,25 +571,35 @@ def test_eco4_sh_epc_d_requires_innovation(mock_project_scores_matrix, mock_part current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert funding7.eco4_eligible assert not funding7.eco4_eligibility_caveats -def test_eco4_sh_solar_pv_requires_heating(mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes): +def test_eco4_sh_solar_pv_requires_heating( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): """Solar PV as innovation measure requires ASHP or HHRSH.""" funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social", ) - measures = [{"type": "solar_pv", "is_innovation": True}] + measures = [{"type": "solar_pv", "is_innovation": True, "uplift": 0.45}] funding.check_funding( measures=measures, starting_sap=60, # EPC D @@ -500,29 +611,38 @@ def test_eco4_sh_solar_pv_requires_heating(mock_project_scores_matrix, mock_part current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding.eco4_eligible assert EligibilityCaveats.SOLAR_NEEDS_HEATING in funding.eco4_eligibility_caveats -def test_eco4_sh_solar_pv_with_heating_is_ok(mock_project_scores_matrix, mock_partial_scores_matrix, - mock_whlg_postcodes): +def test_eco4_sh_solar_pv_with_heating_is_ok( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): """Solar PV innovation with ASHP should pass EPC D innovation rule.""" funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social", ) measures = [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "air_source_heat_pump", "is_innovation": False} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "air_source_heat_pump", "is_innovation": False, "uplift": 0} ] funding.check_funding( measures=measures, @@ -535,27 +655,36 @@ def test_eco4_sh_solar_pv_with_heating_is_ok(mock_project_scores_matrix, mock_pa current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding.eco4_eligible assert EligibilityCaveats.INNOVATION_REQUIRED in funding.eco4_eligibility_caveats -def test_eco4_upgrade_requirement_e_to_c_pass(mock_project_scores_matrix, mock_partial_scores_matrix, - mock_whlg_postcodes): +def test_eco4_upgrade_requirement_e_to_c_pass( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): """EPC E upgraded to C should pass ECO4 upgrade rule.""" funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Private", ) - measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + measures = [{"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}] # E (SAP 50) → C (SAP 70) meets upgrade rule funding.check_funding( @@ -570,26 +699,35 @@ def test_eco4_upgrade_requirement_e_to_c_pass(mock_project_scores_matrix, mock_p current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert funding.eco4_eligible -def test_eco4_upgrade_requirement_e_to_d_fail(mock_project_scores_matrix, mock_partial_scores_matrix, - mock_whlg_postcodes): +def test_eco4_upgrade_requirement_e_to_d_fail( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): """EPC E upgraded to D should FAIL ECO4 upgrade rule (needs to hit C).""" funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Private", ) - measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + measures = [{"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}] # E (SAP 50) → D (SAP 65) does NOT meet ECO4 upgrade rule funding.check_funding( @@ -604,26 +742,35 @@ def test_eco4_upgrade_requirement_e_to_d_fail(mock_project_scores_matrix, mock_p current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding.eco4_eligible -def test_eco4_upgrade_requirement_f_to_d_pass(mock_project_scores_matrix, mock_partial_scores_matrix, - mock_whlg_postcodes): +def test_eco4_upgrade_requirement_f_to_d_pass( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): """EPC F upgraded to D should pass ECO4 upgrade rule.""" funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Private", ) - measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + measures = [{"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}] # F (SAP 35) → D (SAP 60) is OK for ECO4 funding.check_funding( @@ -638,26 +785,35 @@ def test_eco4_upgrade_requirement_f_to_d_pass(mock_project_scores_matrix, mock_p current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert funding.eco4_eligible -def test_eco4_upgrade_requirement_f_to_e_fail(mock_project_scores_matrix, mock_partial_scores_matrix, - mock_whlg_postcodes): +def test_eco4_upgrade_requirement_f_to_e_fail( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): """EPC F upgraded only to E should FAIL ECO4 upgrade rule (needs to hit at least D).""" funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Private", ) - measures = [{"type": "internal_wall_insulation", "is_innovation": False}] + measures = [{"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}] # F (SAP 35) → E (SAP 50) does NOT meet ECO4 rule funding.check_funding( @@ -672,6 +828,9 @@ def test_eco4_upgrade_requirement_f_to_e_fail(mock_project_scores_matrix, mock_p current_wall_uvalue=2, is_partial=False, existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding.eco4_eligible @@ -680,21 +839,27 @@ def test_eco4_upgrade_requirement_f_to_e_fail(mock_project_scores_matrix, mock_p ### ------------------------- ### INNOVATION PRODUCTS ### ------------------------- -def test_epc_d_social_no_innovation_no_heating(mock_project_scores_matrix, mock_partial_scores_matrix, - mock_whlg_postcodes): +def test_epc_d_social_no_innovation_no_heating( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social" ) measures = [ - {"type": "solar_pv", "is_innovation": True} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45} ] funding.check_funding( @@ -709,32 +874,41 @@ def test_epc_d_social_no_innovation_no_heating(mock_project_scores_matrix, mock_ has_roof_insulation_recommendation=False, current_wall_uvalue=2, is_partial=False, - existing_li_thickness=0 + existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding.eco4_eligible assert EligibilityCaveats.SOLAR_NEEDS_HEATING in funding.eco4_eligibility_caveats -def test_epc_d_social_with_heating_and_insulation(mock_project_scores_matrix, mock_partial_scores_matrix, - mock_whlg_postcodes): +def test_epc_d_social_with_heating_and_insulation( + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff +): funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social" ) # Should NOT be eligible as the ASHP is not an innovation measure measures = [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "internal_wall_insulation", "is_innovation": False}, - {"type": "loft_insulation", "is_innovation": False}, - {"type": "air_source_heat_pump", "is_innovation": False} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}, + {"type": "loft_insulation", "is_innovation": False, "uplift": 0}, + {"type": "air_source_heat_pump", "is_innovation": False, "uplift": 0} ] funding.check_funding( @@ -749,7 +923,10 @@ def test_epc_d_social_with_heating_and_insulation(mock_project_scores_matrix, mo has_roof_insulation_recommendation=True, current_wall_uvalue=2, is_partial=False, - existing_li_thickness=0 + existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding.eco4_eligible @@ -757,24 +934,29 @@ def test_epc_d_social_with_heating_and_insulation(mock_project_scores_matrix, mo def test_epc_d_social_solar_with_only_minimum_insulation_should_fail( - mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff ): funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social" ) # Solar PV innovation with insulation, but no heating system upgrade => not eligible measures = [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "internal_wall_insulation", "is_innovation": False}, - {"type": "loft_insulation", "is_innovation": False} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}, + {"type": "loft_insulation", "is_innovation": False, "uplift": 0} ] funding.check_funding( @@ -789,7 +971,10 @@ def test_epc_d_social_solar_with_only_minimum_insulation_should_fail( has_roof_insulation_recommendation=True, current_wall_uvalue=2, is_partial=False, - existing_li_thickness=0 + existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding.eco4_eligible @@ -797,23 +982,28 @@ def test_epc_d_social_solar_with_only_minimum_insulation_should_fail( def test_epc_d_social_solar_with_ashp_and_no_insulation_should_fail( - mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff ): funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social" ) # Solar PV innovation with heating, but no insulation when insulation is recommended => not eligible measures = [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "air_source_heat_pump", "is_innovation": False} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "air_source_heat_pump", "is_innovation": False, "uplift": 0} ] funding.check_funding( @@ -828,7 +1018,10 @@ def test_epc_d_social_solar_with_ashp_and_no_insulation_should_fail( has_roof_insulation_recommendation=True, current_wall_uvalue=2, is_partial=False, - existing_li_thickness=0 + existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding.eco4_eligible @@ -836,26 +1029,31 @@ def test_epc_d_social_solar_with_ashp_and_no_insulation_should_fail( def test_epc_d_social_solar_with_heating_and_minimum_insulation_should_pass( - mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes + mock_project_scores_matrix, mock_partial_scores_matrix, mock_whlg_postcodes, mock_mainheating, mock_main_fuel, + mock_mainheat_energy_eff ): funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social" ) # Innovation solar + insulation measures + eligible heating upgrade = not valid because the heat pump isn;t # an innovation measure measures = [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "internal_wall_insulation", "is_innovation": False}, - {"type": "loft_insulation", "is_innovation": False}, - {"type": "air_source_heat_pump", "is_innovation": False} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}, + {"type": "loft_insulation", "is_innovation": False, "uplift": 0}, + {"type": "air_source_heat_pump", "is_innovation": False, "uplift": 0} ] funding.check_funding( @@ -870,7 +1068,10 @@ def test_epc_d_social_solar_with_heating_and_minimum_insulation_should_pass( has_roof_insulation_recommendation=True, current_wall_uvalue=2, is_partial=False, - existing_li_thickness=0 + existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert not funding.eco4_eligible @@ -880,20 +1081,24 @@ def test_epc_d_social_solar_with_heating_and_minimum_insulation_should_pass( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social" ) # Innovation solar + insulation measures + eligible heating upgrade = should be valid because the # heat pump is an innovation measure measures2 = [ - {"type": "solar_pv", "is_innovation": True}, - {"type": "internal_wall_insulation", "is_innovation": False}, - {"type": "loft_insulation", "is_innovation": False}, - {"type": "air_source_heat_pump", "is_innovation": True} + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "internal_wall_insulation", "is_innovation": False, "uplift": 0}, + {"type": "loft_insulation", "is_innovation": False, "uplift": 0}, + {"type": "air_source_heat_pump", "is_innovation": True, "uplift": 0.25} ] funding2.check_funding( @@ -908,7 +1113,10 @@ def test_epc_d_social_solar_with_heating_and_minimum_insulation_should_pass( has_roof_insulation_recommendation=True, current_wall_uvalue=2, is_partial=False, - existing_li_thickness=0 + existing_li_thickness=0, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert funding2.eco4_eligible @@ -920,16 +1128,23 @@ def test_custom_eco4_scenarios( scenario, mock_project_scores_matrix, mock_partial_scores_matrix, - mock_whlg_postcodes + mock_whlg_postcodes, + mock_mainheating, + mock_main_fuel, + mock_mainheat_energy_eff ): funding = Funding( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social" ) @@ -945,7 +1160,10 @@ def test_custom_eco4_scenarios( is_partial=False, existing_li_thickness=0, has_wall_insulation_recommendation=scenario.get("has_wall_insulation_recommendation", False), - has_roof_insulation_recommendation=scenario.get("has_roof_insulation_recommendation", False) + has_roof_insulation_recommendation=scenario.get("has_roof_insulation_recommendation", False), + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff ) assert funding.eco4_eligible == scenario["expected_eligibility"], f"Failed: {scenario['description']}" @@ -971,10 +1189,14 @@ def test_uplift( project_scores_matrix=mock_project_scores_matrix, partial_project_scores_matrix=mock_partial_scores_matrix, whlg_eligible_postcodes=mock_whlg_postcodes, - social_cavity_abs_rate=13.5, - social_solid_abs_rate=17, - private_cavity_abs_rate=13.5, - private_solid_abs_rate=17, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, tenure="Social" ) @@ -1006,18 +1228,23 @@ def test_uplift( mainheat_energy_eff=mock_mainheat_energy_eff, ) - assert funding.eco4_funding == 123 - assert funding.eco4_uplift == 456 + assert funding.eco4_funding == 5302.3949999999995 + assert funding.full_project_abs == 392.77 # is 280 + the 112.77 innovation uplift + assert funding.eco4_uplift == 112.77 def _dummy_funding(): # Matrices/whlg are unused by _map_to_pre_main_heating; pass harmless placeholders return Funding( tenure="Social", - social_cavity_abs_rate=0.0, - social_solid_abs_rate=0.0, - private_cavity_abs_rate=0.0, - private_solid_abs_rate=0.0, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, project_scores_matrix=None, partial_project_scores_matrix=None, whlg_eligible_postcodes=set(), @@ -1042,9 +1269,6 @@ def test_map_to_pre_main_heating(scenario): "expected"], f"Failed: {scenario['description']} -> {result} (expected {scenario['expected']})" -# TODO: Add innovation uplift to private -raise ValueError("TODO: ADD INNOVATION TO PRIVATE") - # Large scale testing for various measures # measures = [ # {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, @@ -1057,3 +1281,115 @@ raise ValueError("TODO: ADD INNOVATION TO PRIVATE") # {"type": "cavity_wall_insulation", "is_innovation": True, "uplift": 0.25}, # {"type": "high_heat_retention_storage_heaters", "is_innovation": False, "uplift": 0}, # ] + + +### ------------------------- +### PRIVATE (PRS/Owner) — Innovation uplift behaviour +### ------------------------- + +def test_private_epc_e_solar_needs_heating( + mock_project_scores_matrix, + mock_partial_scores_matrix, + mock_whlg_postcodes, + mock_mainheating, + mock_main_fuel, + mock_mainheat_energy_eff +): + """EPC D private: Solar PV as innovation requires eligible low-carbon heating.""" + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, + tenure="Private", + ) + + measures = [{"type": "solar_pv", "is_innovation": True, "uplift": 0.45}] + funding.check_funding( + measures=measures, + starting_sap=54, # EPC E - eligible for private on EPC + ending_sap=69, + floor_area=80, + mainheat_description="Boiler and radiators, mains gas", # not eligible for solar innovation + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, + has_wall_insulation_recommendation=False, + has_roof_insulation_recommendation=False, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff, + council_tax_band="B", + ) + + assert not funding.eco4_eligible + assert EligibilityCaveats.SOLAR_NEEDS_HEATING in funding.eco4_eligibility_caveats + + +def test_private_epc_e_solar_with_heating_and_minimum_insulation_produces_uplift( + mock_project_scores_matrix, + mock_partial_scores_matrix, + mock_whlg_postcodes, + mock_mainheating, + mock_main_fuel, + mock_mainheat_energy_eff +): + """EPC E private: Solar PV innovation + eligible heating + required insulation -> eligible and uplift > 0.""" + funding = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=mock_whlg_postcodes, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, + tenure="Private", + ) + + measures = [ + {"type": "solar_pv", "is_innovation": True, "uplift": 0.45}, + {"type": "air_source_heat_pump", "is_innovation": False, "uplift": 0}, + {"type": "cavity_wall_insulation", "is_innovation": False, "uplift": 0}, + {"type": "loft_insulation", "is_innovation": False, "uplift": 0}, + ] + + funding.check_funding( + measures=measures, + starting_sap=54, # EPC E + ending_sap=69, + floor_area=80, + mainheat_description="Air source heat pump, radiators", # eligible low-carbon heating present + heating_control_description="Programmer, room thermostat and TRVs", + is_cavity=True, + current_wall_uvalue=2, + is_partial=False, + existing_li_thickness=0, + has_wall_insulation_recommendation=True, + has_roof_insulation_recommendation=True, + mainheating=mock_mainheating, + main_fuel=mock_main_fuel, + mainheat_energy_eff=mock_mainheat_energy_eff, + council_tax_band="B", + ) + + assert funding.eco4_eligible + assert EligibilityCaveats.INNOVATION_REQUIRED not in funding.eco4_eligibility_caveats + assert EligibilityCaveats.SOLAR_NEEDS_HEATING not in funding.eco4_eligibility_caveats + # We don't pin an exact numeric value (depends on score matrices), + # but innovation uplift should be positive when solar PV has an uplift. + assert funding.eco4_uplift and funding.eco4_uplift > 0 + # And total funding should include that uplift + assert funding.eco4_funding and funding.eco4_funding > 0 diff --git a/etl/epc_clean/app.py b/etl/epc_clean/app.py index ff8fc95a..1f320a9b 100644 --- a/etl/epc_clean/app.py +++ b/etl/epc_clean/app.py @@ -40,28 +40,35 @@ def app(): cleaned_data = {} epc_directories = [entry for entry in EPC_DIRECTORY.iterdir() if entry.is_dir()] + errors = [] for directory in tqdm(epc_directories): - data = pd.read_csv(directory / "certificates.csv", low_memory=False) - # Rename the columns to the same format as the api returns - data.columns = [c.replace("_", "-").lower() for c in data.columns] - # Take just date before the date threshold - data = data[data["lodgement-date"] >= "2011-01-01"] + try: + data = pd.read_csv(directory / "certificates.csv", low_memory=False) + # Rename the columns to the same format as the api returns + data.columns = [c.replace("_", "-").lower() for c in data.columns] + # Take just date before the date threshold + data = data[data["lodgement-date"] >= "2011-01-01"] - # Convert to list of dictioaries as returned by the api - data = data.to_dict("records") + # Convert to list of dictioaries as returned by the api + data = data.to_dict("records") - # Incorporate input data into cleaning - cleaner = EpcClean(data) + # Incorporate input data into cleaning + cleaner = EpcClean(data) - cleaner.clean() - # Extended cleaned_data - for k, data in cleaner.cleaned.items(): - if k not in cleaned_data: - cleaned_data[k] = data - else: - existing_descriptions = [x["original_description"] for x in cleaned_data[k]] - new_data = [x for x in data if x["original_description"] not in existing_descriptions] - cleaned_data[k].extend(new_data) + cleaner.clean() + # Extended cleaned_data + for k, data in cleaner.cleaned.items(): + if k not in cleaned_data: + cleaned_data[k] = data + else: + existing_descriptions = [x["original_description"] for x in cleaned_data[k]] + new_data = [x for x in data if x["original_description"] not in existing_descriptions] + cleaned_data[k].extend(new_data) + except Exception as e: + errors.append(directory) + + if errors: + raise ValueError("We have errors") # Basic check to make sure all descriptions are unique for _, cleaned in cleaned_data.items(): @@ -75,7 +82,6 @@ def app(): # data being read in will be extremely small, meaning quicker load times. We'll begin by storing as a single # file and monitor usage patterns to see if it makes sense to split the data up - # TODO: Copy the existing cleaned to an archive location, in case we wish to roll back easily cleaned_historic = read_from_s3( s3_file_name="cleaned_epc_data/cleaned.bson", bucket_name=f"retrofit-data-{ENVIRONMENT}" diff --git a/etl/epc_clean/epc_attributes/FloorAttributes.py b/etl/epc_clean/epc_attributes/FloorAttributes.py index bba33424..6def93f0 100644 --- a/etl/epc_clean/epc_attributes/FloorAttributes.py +++ b/etl/epc_clean/epc_attributes/FloorAttributes.py @@ -34,6 +34,8 @@ class FloorAttributes(Definitions): "i ofod heb ei wresogi, dim inswleiddio (rhagdybiaeth)": "to unheated space, no insulation (assumed)", "i ofod heb ei wresogi, heb ei inswleiddio (rhagdybiaeth)": "to unheated space, no insulation (assumed)", "i ofod heb ei wresogi, dim inswleiddio": "to unheated space, no insulation", + "igçör awyr y tu allan, wedigçöi inswleiddio (rhagdybiaeth)": "to external air, insulated (assumed)", + "crog, inswleiddio cyfyngedig (rhagdybiaeth)": "suspended, limited insulation (assumed)" } def __init__(self, description: str): diff --git a/etl/epc_clean/epc_attributes/HotWaterAttributes.py b/etl/epc_clean/epc_attributes/HotWaterAttributes.py index 76b4e6fa..1ea743fc 100644 --- a/etl/epc_clean/epc_attributes/HotWaterAttributes.py +++ b/etl/epc_clean/epc_attributes/HotWaterAttributes.py @@ -130,6 +130,7 @@ class HotWaterAttributes(Definitions): "o r brif system, gydag ynni r haul, dim thermostat ar y silindr": "from main system, plus solar, no cylinder " "thermostat", "o r brif system, gydag ynni r haul": "from main system, plus solar", + "pwmp gwres": "heat pump" } NODATA_DESCRIPTIONS = [ diff --git a/etl/epc_clean/epc_attributes/LightingAttributes.py b/etl/epc_clean/epc_attributes/LightingAttributes.py index 08275446..712c6daa 100644 --- a/etl/epc_clean/epc_attributes/LightingAttributes.py +++ b/etl/epc_clean/epc_attributes/LightingAttributes.py @@ -12,6 +12,7 @@ class LightingAttributes(Definitions): "goleuadau ynni-isel ym mhob un o'r mannau gosod": 'Low energy lighting in all fixed outlets', "effeithlonrwydd goleuo da": 'good lighting efficiency', "effeithlonrwydd goleuo is na'r cyfartaledd": 'below average lighting efficiency', + "effeithlonrwydd goleuo rhagorol": "excellent lighting efficiency" } OBSERVED_ERRORS = [] diff --git a/etl/epc_clean/epc_attributes/MainheatAttributes.py b/etl/epc_clean/epc_attributes/MainheatAttributes.py index 85860bbf..312fa9fe 100644 --- a/etl/epc_clean/epc_attributes/MainheatAttributes.py +++ b/etl/epc_clean/epc_attributes/MainheatAttributes.py @@ -92,7 +92,9 @@ class MainHeatAttributes(Definitions): "gas-fired heat pumps, electric": "air source heat pump, electric", "radiator heating, heat from boilers - gas": "boiler and radiators, mains gas", "heat pump, warm air, mains gas": "air source heat pump, warm air, mains gas", - "air sourceheat pump, radiators, electric": "air source heat pump, radiators, electric" + "air sourceheat pump, radiators, electric": "air source heat pump, radiators, electric", + "bwyler gyda rheiddiaduron a gwres dan y llawr, nwy prif gyflenwad": "Boiler and radiators, mains gas, " + "Boiler and underfloor heating, mains gas", } edge_case_result = {} diff --git a/etl/epc_clean/epc_attributes/MainheatControlAttributes.py b/etl/epc_clean/epc_attributes/MainheatControlAttributes.py index 3b97e02a..997865d3 100644 --- a/etl/epc_clean/epc_attributes/MainheatControlAttributes.py +++ b/etl/epc_clean/epc_attributes/MainheatControlAttributes.py @@ -75,6 +75,7 @@ class MainheatControlAttributes(Definitions): TO_REMAP = { "celect control": 'celect-type control', "celect controls": 'celect-type control', + "celect type controls": 'celect-type control', "trv's, program & flow switch": 'trvs, programmer & flow switch', 'appliance thermostat': 'appliance thermostats', } diff --git a/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py b/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py index 64478b5f..45994b1d 100644 --- a/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py +++ b/etl/epc_clean/tests/test_data/test_mainheat_attributes_cases.py @@ -864,7 +864,7 @@ mainheat_cases = [ 'has_wood_pellets': False, 'has_anthracite': False, 'has_dual_fuel_mineral_and_wood': True, 'has_smokeless_fuel': False, 'has_lpg': False, 'has_assumed': False, 'has_electricaire': False, 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False, "has_electric_heat_pumps": False, - "has_micro-cogeneration": False}, + "has_micro-cogeneration": False, 'has_mineral_and_wood': True}, {'original_description': 'Room heaters, electric', 'has_radiators': False, 'has_fan_coil_units': False, 'has_pipes_in_screed_above_insulation': False, 'has_pipes_in_insulated_timber_floor': False, 'has_pipes_in_concrete_slab': False, 'has_boiler': False, 'has_air_source_heat_pump': False, @@ -1455,8 +1455,7 @@ mainheat_cases = [ 'has_coal': False, 'has_oil': False, 'has_wood_pellets': False, 'has_anthracite': False, 'has_dual_fuel_mineral_and_wood': True, 'has_smokeless_fuel': False, 'has_lpg': False, 'has_assumed': False, 'has_electricaire': False, 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False, - "has_electric_heat_pumps": False, - "has_micro-cogeneration": False}, + "has_electric_heat_pumps": False, "has_micro-cogeneration": False, "has_mineral_and_wood": True}, {'original_description': 'Bwyler a rheiddiaduron, dau danwydd (mwynau a choed)', 'has_radiators': True, 'has_fan_coil_units': False, 'has_pipes_in_screed_above_insulation': False, 'has_pipes_in_insulated_timber_floor': False, @@ -1468,8 +1467,8 @@ mainheat_cases = [ 'has_coal': False, 'has_oil': False, 'has_wood_pellets': False, 'has_anthracite': False, 'has_dual_fuel_mineral_and_wood': True, 'has_smokeless_fuel': False, 'has_lpg': False, 'has_assumed': False, 'has_electricaire': False, 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False, - "has_electric_heat_pumps": False, - "has_micro-cogeneration": False}, + "has_electric_heat_pumps": False, "has_micro-cogeneration": False, "has_mineral_and_wood": True + }, {'original_description': 'Pwmp gwres syGÇÖn tarddu yn y ddaear, dan y llawr, trydan', 'has_radiators': False, 'has_fan_coil_units': False, 'has_pipes_in_screed_above_insulation': False, 'has_pipes_in_insulated_timber_floor': False, 'has_pipes_in_concrete_slab': False, 'has_boiler': False, @@ -1541,7 +1540,7 @@ mainheat_cases = [ 'has_wood_pellets': False, 'has_anthracite': False, 'has_dual_fuel_mineral_and_wood': True, 'has_smokeless_fuel': False, 'has_lpg': False, 'has_assumed': False, 'has_electricaire': False, 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False, "has_electric_heat_pumps": False, - "has_micro-cogeneration": False}, + "has_micro-cogeneration": False, "has_mineral_and_wood": True}, {'original_description': 'Room heaters, wood pellets', 'has_radiators': False, 'has_fan_coil_units': False, 'has_pipes_in_screed_above_insulation': False, 'has_pipes_in_insulated_timber_floor': False, 'has_pipes_in_concrete_slab': False, 'has_boiler': False, 'has_air_source_heat_pump': False, diff --git a/recommendations/tests/test_heating_recommendations.py b/recommendations/tests/test_heating_recommendations.py index 039801e1..b18839aa 100644 --- a/recommendations/tests/test_heating_recommendations.py +++ b/recommendations/tests/test_heating_recommendations.py @@ -51,6 +51,12 @@ class TestHeatingRecommendations: :return: """ + # We patch an old version of cleaned which is missing some attributes for 'mainheat-description' + for x in cleaned['mainheat-description']: + x["has_hot-water-only"] = False + x["has_mineral_and_wood"] = False + x["has_dual_fuel_appliance"] = False + epc_records = {"original_epc": test_case["epc"].copy(), "full_sap_epc": {}, "old_data": []} epc_record = EPCRecord( From fb5960c4fe584dfde2d024fa8532f35a55d9cb7b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 11 Aug 2025 18:53:20 +0100 Subject: [PATCH 26/73] fixed the funding engine --- backend/Funding.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/Funding.py b/backend/Funding.py index 0689d33b..59547058 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -11,7 +11,7 @@ class EligibilityCaveats(Enum): TENANT_ON_BENEFITS_OR_LOW_INCOME = "tenant_on_benefits_or_low_income" INNOVATION_REQUIRED = "innovation_required" SOLAR_NEEDS_HEATING = "solar_needs_heating" - MINIMUM_INSULATION_PRECONDITIONS_NOT_MET = "minimum_insulation_preconditions_not_met" + MINIMUM_INSULATION_PRECONgiDITIONS_NOT_MET = "minimum_insulation_preconditions_not_met" class Funding: @@ -39,6 +39,8 @@ class Funding: partial_project_scores_matrix, whlg_eligible_postcodes ): + if tenure not in [HousingType.PRIVATE, HousingType.SOCIAL]: + raise ValueError("Invalid tenure type. Must be 'Private' or 'Social'.") self.tenure = tenure self.eco4_social_cavity_abs_rate = eco4_social_cavity_abs_rate self.eco4_social_solid_abs_rate = eco4_social_solid_abs_rate From f27447bed8c77b960bd8d989b945da1e61beac96 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Aug 2025 17:44:19 +0100 Subject: [PATCH 27/73] working on defining the optimisation sub problems --- backend/Funding.py | 106 ++- backend/engine/engine.py | 10 + .../optimiser/optimiser_functions.py | 31 +- recommendations/tests/test_optimisers.py | 833 ++++++++++++++++++ 4 files changed, 954 insertions(+), 26 deletions(-) create mode 100644 recommendations/tests/test_optimisers.py diff --git a/backend/Funding.py b/backend/Funding.py index 59547058..d95117c5 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -3,7 +3,8 @@ from typing import List import pandas as pd from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes -from backend.app.plan.schemas import HousingType, WALL_INSULATION_MEASURES, ROOF_INSULATION_MEASURES, MEASURE_MAP +from backend.app.plan.schemas import VALID_HOUSING_TYPES, WALL_INSULATION_MEASURES, ROOF_INSULATION_MEASURES, \ + MEASURE_MAP class EligibilityCaveats(Enum): @@ -11,7 +12,7 @@ class EligibilityCaveats(Enum): TENANT_ON_BENEFITS_OR_LOW_INCOME = "tenant_on_benefits_or_low_income" INNOVATION_REQUIRED = "innovation_required" SOLAR_NEEDS_HEATING = "solar_needs_heating" - MINIMUM_INSULATION_PRECONgiDITIONS_NOT_MET = "minimum_insulation_preconditions_not_met" + MINIMUM_INSULATION_PRECONDITIONS_NOT_MET = "minimum_insulation_preconditions_not_met" class Funding: @@ -39,7 +40,7 @@ class Funding: partial_project_scores_matrix, whlg_eligible_postcodes ): - if tenure not in [HousingType.PRIVATE, HousingType.SOCIAL]: + if tenure not in VALID_HOUSING_TYPES: raise ValueError("Invalid tenure type. Must be 'Private' or 'Social'.") self.tenure = tenure self.eco4_social_cavity_abs_rate = eco4_social_cavity_abs_rate @@ -342,6 +343,8 @@ class Funding: starting_str = "2" elif closest_starting == 2.00: starting_str = "2.0" + elif closest_starting == 1.70: + starting_str = "1.7" else: starting_str = f"{closest_starting:.2f}" @@ -495,15 +498,11 @@ class Funding: def calculate_partial_project_abs( self, measure_type: str, - mainheating: dict, - main_fuel: dict, - mainheat_energy_eff: str, filtered_pps_matrix: pd.DataFrame, pre_heating_system: str, current_wall_uvalue: float = None, is_partial: bool = False, existing_li_thickness: float = None, - # is_roof_insulated: bool = False ): """ Calculate the partial project ABS score for a single measure. @@ -615,6 +614,18 @@ class Funding: return 0 + if measure_type == "time_temperature_zone_control": + pps = filtered_pps_matrix[ + filtered_pps_matrix["Measure_Type"] == "TTZC" + ] + if pre_heating_system in pps["Pre_Main_Heating_Source"].values: + pps = pps[pps["Pre_Main_Heating_Source"] == pre_heating_system] + if pps.shape[0] != 1: + raise ValueError("something went wrong, more than one pps for TTZC") + return pps.squeeze()["Cost Savings"] + # If we don't have a pre heating system, we assume the measure is not applicable + return 0 + raise ValueError(f"Invalid measure type for partial project ABS calculation: {measure_type}") # ----------------------- @@ -704,6 +715,28 @@ class Funding: - all other measures are insulation (can be non-innovation) """ + raise ValueError( + "THis isnt quite right. Band D homes must be pre-insulated OR it should include one of the" + ) + # The condition is: + # one of the following insulation measures must be installed as part of the + # same ECO4 project: + # o roof insulation (flat roof, pitched roof, room-in-roof) + # o exterior facing wall insulation (cavity wall, solid wall) + # o party cavity wall insulation + # or, + # • all measures listed above must already be installed + # + # All Band E, F and G homes receiving any heating measure and Band D homes + # receiving FTCH or a DHC must have all exterior facing cavity walls and loft + # (including rafters) / roof (including flat and pitched roof or room-in-roof) area + # insulated (except where insulation is not possible and exemptions are lodged, + # see 5.87). The insulation of these areas can be: + # • installed as part of the same ECO4 project, + # • pre-existing insulation, + # • subject to exemptions or + # • a combination of the above + if not (55 <= starting_sap <= 68): return True # Only EPC D requires innovation check @@ -802,9 +835,6 @@ class Funding: continue pps = self.calculate_partial_project_abs( measure_type=measure, - mainheating=mainheating, - main_fuel=main_fuel, - mainheat_energy_eff=mainheat_energy_eff, current_wall_uvalue=current_wall_uvalue, is_partial=is_partial, existing_li_thickness=existing_li_thickness, @@ -922,9 +952,6 @@ class Funding: if self.gbis_eligible: self.partial_project_abs = self.calculate_partial_project_abs( measure_type=measure_types[0], - mainheating=mainheating, - main_fuel=main_fuel, - mainheat_energy_eff=mainheat_energy_eff, current_wall_uvalue=current_wall_uvalue, is_partial=is_partial, existing_li_thickness=existing_li_thickness, @@ -971,9 +998,6 @@ class Funding: # Calculate the partial project score - this is dependent on the measure self.partial_project_abs = self.calculate_partial_project_abs( measure_type=measure_types[0], - mainheating=mainheating, - main_fuel=main_fuel, - mainheat_energy_eff=mainheat_energy_eff, current_wall_uvalue=current_wall_uvalue, is_partial=is_partial, existing_li_thickness=existing_li_thickness, @@ -987,3 +1011,53 @@ class Funding: else: raise NotImplementedError("Only 'Private' and 'Social' tenures are supported.") + + def get_innovation_uplift( + self, measure, starting_sap, floor_area, current_wall_uvalue, mainheating, main_fuel, mainheat_energy_eff, + is_partial, is_cavity, existing_li_thickness=None + ): + """ + Helper function to calculate the innovation uplift for a measure based on the PPS + :param measure: + :param current_wall_uvalue: + :return: + """ + + self.starting_sap_band = self.get_sap_band(starting_sap) + self.floor_area_band = self.get_floor_area_band(floor_area) + + filtered_pps_matrix = self.partial_project_scores_matrix[ + (self.partial_project_scores_matrix["Total Floor Area Band"] == self.floor_area_band) & + (self.partial_project_scores_matrix["Starting Band"] == self.starting_sap_band) + ].copy() + + pre_heating_system = self._map_to_pre_main_heating(mainheating, main_fuel, mainheat_energy_eff) + + measure_type = measure["measure_type"] + + pps = self.calculate_partial_project_abs( + measure_type=measure_type, + current_wall_uvalue=current_wall_uvalue, + is_partial=is_partial, + existing_li_thickness=existing_li_thickness, + filtered_pps_matrix=filtered_pps_matrix, + pre_heating_system=pre_heating_system + ) + + innovation_uplift = pps * measure["uplift"] + + if self.tenure == "Private": + # We return ECO4 rates + return innovation_uplift * ( + self.eco4_private_cavity_abs_rate if is_cavity + else self.eco4_private_solid_abs_rate + ) + + if self.tenure == "Social": + # We return ECO4 rates + return innovation_uplift * ( + self.eco4_social_cavity_abs_rate if is_cavity + else self.eco4_social_solid_abs_rate + ) + + raise ValueError("Invalid tenure type for innovation uplift calculation: {}".format(self.tenure)) diff --git a/backend/engine/engine.py b/backend/engine/engine.py index 032ca0b0..7bc083d8 100644 --- a/backend/engine/engine.py +++ b/backend/engine/engine.py @@ -818,6 +818,16 @@ async def model_engine(body: PlanTriggerRequest): ) continue + # We layer funding on top of the recommendations + # We take one of these options + funding_paths = [ + [["internal_wall_insulation", "external_wall_insulation"]], + ["air_source_heat_pump"], + # We must have both of these options (though we check if the property doesn't already have HHRSH and + # is recommended it + [["solar_pv"], ["high_heat_retention_storage_heaters"]] + ] + fixed_gain = optimiser_functions.calculate_fixed_gain( property_required_measures, recommendations, p, needs_ventilation ) diff --git a/recommendations/optimiser/optimiser_functions.py b/recommendations/optimiser/optimiser_functions.py index 94190bdd..a4f32c41 100644 --- a/recommendations/optimiser/optimiser_functions.py +++ b/recommendations/optimiser/optimiser_functions.py @@ -6,7 +6,7 @@ from backend.app.utils import epc_to_sap_lower_bound from recommendations.optimiser.CostOptimiser import CostOptimiser -def prepare_input_measures(property_recommendations, goal, needs_ventilation): +def prepare_input_measures(property_recommendations, goal, needs_ventilation, funding=False): """ Prepares a nested list of measure options for optimisation. @@ -34,6 +34,9 @@ def prepare_input_measures(property_recommendations, goal, needs_ventilation): Optimisation goal, one of: "Increasing EPC", "Energy Savings", "Reducing CO2 emissions". needs_ventilation : bool Whether the property requires mechanical ventilation to accompany certain measures. + funding: bool, optional + If true, the function will include the innovation uplift in the total cost calculation. If false, this is + excluded, since innovation uplift cannot be claimed where funding is not available. Returns ------- @@ -75,20 +78,28 @@ def prepare_input_measures(property_recommendations, goal, needs_ventilation): # Build enriched measure data to_append = [] for rec in recs: - total = ( - rec["total"] + ventilation_recommendation["total"] - if rec["type"] in assumptions.measures_needing_ventilation and needs_ventilation - else rec["total"] - ) + if funding: + total = ( + rec["total"] - rec["innovation_uplift"] + ventilation_recommendation["total"] + if rec["measure_type"] in assumptions.measures_needing_ventilation and needs_ventilation + else rec["total"] - rec["innovation_uplift"] + ) + else: + total = ( + rec["total"] + ventilation_recommendation["total"] + if rec["measure_type"] in assumptions.measures_needing_ventilation and needs_ventilation + else rec["total"] + ) + total = 0 if total < 0 else total gain = ( rec[goal_key] + ventilation_recommendation[goal_key] - if rec["type"] in assumptions.measures_needing_ventilation and needs_ventilation + if rec["measure_type"] in assumptions.measures_needing_ventilation and needs_ventilation else rec[goal_key] ) rec_type = ( - f"{rec['type']}+{ventilation_recommendation['type']}" - if rec["type"] in assumptions.measures_needing_ventilation and needs_ventilation - else rec["type"] + f"{rec['measure_type']}+{ventilation_recommendation['measure_type']}" + if rec["measure_type"] in assumptions.measures_needing_ventilation and needs_ventilation + else rec["measure_type"] ) to_append.append( diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py new file mode 100644 index 00000000..762ab71e --- /dev/null +++ b/recommendations/tests/test_optimisers.py @@ -0,0 +1,833 @@ +import numpy as np +import pandas as pd +from pandas import Timestamp +from numpy import nan +import datetime +from copy import deepcopy + +from recommendations.optimiser.CostOptimiser import CostOptimiser +from recommendations.optimiser.GainOptimiser import GainOptimiser +from backend.Funding import Funding + +project_scores_matrix = pd.read_csv("/Users/khalimconn-kowlessar/Downloads/ECO4 Full Project Scores Matrix.csv") +partial_project_scores_matrix = pd.read_csv("backend/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv") +partial_project_scores_matrix.columns = ['Measure category', 'Measure_Type', 'Pre_Main_Heating_Source', + 'Post_Main_Heating_Source', 'Total Floor Area Band', 'Starting Band', + 'Average Treatable Factor', 'Cost Savings', 'SAP Savings'] +whlg_eligible_postcodes = pd.DataFrame([{"Postcode": "ab12cd"}]) + +funding = Funding( + project_scores_matrix=project_scores_matrix, + partial_project_scores_matrix=partial_project_scores_matrix, + whlg_eligible_postcodes=whlg_eligible_postcodes, + eco4_social_cavity_abs_rate=13.5, + eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, + eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, + gbis_private_solid_abs_rate=28, + tenure="Social" +) + +# Assume these costs have been adjusted +property_recommendations = [ + [{'phase': 0, 'parts': [{'id': 2466, 'type': 'external_wall_insulation', + 'description': 'EWI Pro EPS external wall insulation system with ' + 'Brick Slip finish', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SCIS', + 'created_at': Timestamp('2025-03-16 15:26:22.379496'), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 0.0, + 'labour_hours_per_unit': 0.0, 'plant_cost': 0.0, + 'total_cost': 298.35, + 'notes': 'This is the quoted value from SCIS', + 'is_installer_quote': True, 'quantity': 63.98796761892035, + 'quantity_unit': 'm2', 'total': 19090.810139104888, + 'labour_hours': 0.0, 'labour_days': 0.0}], + 'type': 'external_wall_insulation', 'measure_type': 'external_wall_insulation', + 'description': 'Install 150mm EWI Pro EPS external wall insulation system with Brick ' + 'Slip finish on external walls', + 'starting_u_value': 1.7, 'new_u_value': 0.32, 'already_installed': False, + 'sap_points': np.float64(9.6), + 'simulation_config': {'is_as_built_ending': False, 'walls_is_assumed_ending': False, + 'walls_insulation_thickness_ending': 'average', + 'external_insulation_ending': True, + 'walls_energy_eff_ending': 'Good', + 'walls_thermal_transmittance_ending': 0.23}, + 'description_simulation': {'walls-description': 'Solid brick, with external insulation', + 'walls-energy-eff': 'Good'}, 'total': 19090.810139104888, + 'labour_hours': 0.0, 'labour_days': 0.0, 'survey': False, + 'recommendation_id': '0_phase=0', 'efficiency': 11229.568317120522, + 'co2_equivalent_savings': np.float64(0.5), 'heat_demand': np.float64(37.099999999999994), + 'kwh_savings': np.float64(1827.8999999999996), + 'energy_cost_savings': np.float64(136.1247882352941)}, {'phase': 0, 'parts': [ + {'id': 2373, 'type': 'internal_wall_insulation', 'description': 'SWIP EcoBatt & Plastered finish', + 'depth': 95.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.03125, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.032, + 'thermal_conductivity_unit': None, + 'link': 'SCIS', 'created_at': Timestamp('2025-03-16 15:26:22.379496'), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 0.0, 'labour_hours_per_unit': 2.1, + 'plant_cost': 0.0, 'total_cost': 89.0, 'notes': None, 'is_installer_quote': True, + 'quantity': 63.98796761892035, + 'quantity_unit': 'm2', 'total': 5694.929118083911, 'labour_hours': 134.37473199973275, + 'labour_days': 4.199210374991648}], 'type': 'internal_wall_insulation', + 'measure_type': 'internal_wall_insulation', + 'description': 'Install 95mm ' + 'SWIP EcoBatt & ' + 'Plastered ' + 'finish on ' + 'internal walls', + 'starting_u_value': 1.7, + 'new_u_value': 0.32, + 'already_installed': False, + 'sap_points': 6, + 'simulation_config': { + 'is_as_built_ending': False, + 'walls_is_assumed_ending': + False, + 'walls_insulation_thickness_ending': 'average', + 'internal_insulation_ending': True, + 'walls_energy_eff_ending': + 'Good', + 'walls_thermal_transmittance_ending': 0.29}, + 'description_simulation': { + 'walls-description': 'Solid ' + 'brick, with internal ' + 'insulation', + 'walls-energy-eff': 'Good'}, + 'total': 5694.929118083911, + 'labour_hours': 134.37473199973275, + 'labour_days': 4.199210374991648, + 'survey': True, + 'recommendation_id': '1_phase=0', + 'efficiency': 3349.6383047552417, + 'co2_equivalent_savings': np.float64( + 0.5), + 'heat_demand': np.float64( + 35.30000000000001), + 'kwh_savings': np.float64( + 1432.3999999999996), + 'energy_cost_savings': np.float64( + 106.67167058823532)}], [ + {'phase': 1, 'parts': [{'id': 2351, 'type': 'loft_insulation', + 'description': 'Knauf Loft Roll 44 glass fibre roll', + 'depth': 300.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SCIS', + 'created_at': Timestamp('2025-03-16 15:26:22.379496'), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 0.0, + 'labour_hours_per_unit': 0.11, 'plant_cost': 0.0, + 'total_cost': 15.0, + 'notes': 'This is the cost if there is less than 100mm ' + 'existing insulation', + 'is_installer_quote': True, 'quantity': 63.98796761892035, + 'quantity_unit': 'm2', 'total': 645.0, 'labour_hours': 8, + 'labour_days': 1}], 'type': 'loft_insulation', + 'measure_type': 'loft_insulation', + 'description': 'Install 300mm of Knauf Loft Roll 44 glass fibre roll in your loft', + 'starting_u_value': 2.3, 'new_u_value': 2.3, 'sap_points': np.float64(2.4), + 'already_installed': False, + 'simulation_config': {'is_loft_ending': True, 'roof_is_assumed_ending': False, + 'roof_insulation_thickness_ending': '300', + 'roof_thermal_transmittance_ending': 2.3, + 'roof_energy_eff_ending': 'Very Good'}, + 'description_simulation': {'roof-description': 'Pitched, 300mm loft insulation', + 'roof-energy-eff': 'Very Good'}, 'total': 645.0, + 'labour_hours': 8, 'labour_days': 1, 'survey': False, 'recommendation_id': '2_phase=1', + 'efficiency': 278.1347826086957, + 'co2_equivalent_savings': np.float64(0.10000000000000009), + 'heat_demand': np.float64(1.5), 'kwh_savings': np.float64(566.1499999999996), + 'energy_cost_savings': np.float64(42.16152352941185)}], [{'phase': 2, 'parts': [ + {'id': 2329, 'type': 'mechanical_ventilation', 'description': 'Mechanical Extract Ventilation', 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, + 'link': 'SCIS', 'created_at': datetime.datetime(2025, 3, 16, 15, 26, 22, 379496), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 0.0, 'labour_hours_per_unit': 0.0, + 'plant_cost': 0.0, 'total_cost': 350.0, 'notes': None, 'is_installer_quote': True, 'total': 700.0, + 'quantity': 2, + 'quantity_unit': 'part'}], 'type': 'mechanical_ventilation', 'measure_type': 'mechanical_ventilation', + 'description': 'Install 2 ' + 'Mechanical ' + 'Extract ' + 'Ventilation units', + 'starting_u_value': None, + 'new_u_value': None, + 'already_installed': False, + 'sap_points': np.float64( + -0.10000000000000142), + 'heat_demand': np.float64( + -3.3999999999999773), + 'kwh_savings': np.float64( + -53.80000000000018), + 'co2_equivalent_savings': np.float64( + 0.0), + 'energy_cost_savings': np.float64( + -4.0065176470588995), + 'total': 700.0, + 'labour_hours': 8, + 'labour_days': 1.0, + 'simulation_config': { + 'mechanical_ventilation_ending': 'mechanical, ' + 'extract only'}, + 'description_simulation': { + 'mechanical-ventilation': 'mechanical, ' + 'extract only'}, + 'recommendation_id': '3_phase=2', + 'efficiency': 0}], [ + {'phase': 3, 'parts': [{'id': 2409, 'type': 'suspended_floor_insulation', + 'description': 'Q-bot underfloor insulation', 'depth': 75.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', + 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SCIS', + 'created_at': Timestamp('2025-03-16 15:26:22.379496'), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 0.0, + 'labour_hours_per_unit': 1.63, 'plant_cost': 0.0, + 'total_cost': 93.75, + 'notes': 'Linearly interpolated based on Qbot costs', + 'is_installer_quote': True, 'quantity': 43.0, + 'quantity_unit': 'm2', 'total': 4031.25, + 'labour_hours': 70.08999999999999, + 'labour_days': 2.920416666666666}], + 'type': 'suspended_floor_insulation', 'measure_type': 'suspended_floor_insulation', + 'description': 'Install 75mm Q-bot underfloor insulation insulation in suspended ' + 'floor', + 'starting_u_value': 0.83, 'new_u_value': 0.22, 'sap_points': 2, 'survey': True, + 'already_installed': False, 'simulation_config': {'floor_is_assumed_ending': False, + 'floor_insulation_thickness_ending': 'average', + 'floor_thermal_transmittance_ending': 0.685593}, + 'description_simulation': {'floor-description': 'Suspended, insulated'}, + 'total': 4031.25, 'labour_hours': 70.08999999999999, 'labour_days': 2.920416666666666, + 'recommendation_id': '4_phase=3', 'efficiency': 4856.707710843373, + 'co2_equivalent_savings': np.float64(0.20000000000000018), + 'heat_demand': np.float64(33.5), 'kwh_savings': np.float64(1021.1999999999998), + 'energy_cost_savings': np.float64(76.04936470588231)}], [ + {'phase': 4, 'parts': [], 'type': 'low_energy_lighting', + 'measure_type': 'low_energy_lighting', + 'description': 'Install low energy lighting in -886 outlets', 'starting_u_value': None, + 'new_u_value': None, 'already_installed': False, 'sap_points': 2, + 'kwh_savings': -48508.5, 'energy_cost_savings': -12481.237049999998, + 'co2_equivalent_savings': -7.858377, + 'description_simulation': {'lighting-energy-eff': 'Very Good', + 'lighting-description': 'Low energy lighting in all fixed' + ' outlets', + 'low-energy-lighting': 100}, 'total': -3411.1000000000004, + 'labour_hours': 1, 'labour_days': 0.125, 'survey': True, + 'recommendation_id': '5_phase=4', 'efficiency': -1705.5500000000002, + 'heat_demand': np.float64(5.099999999999994)}], [ + {'type': 'heating', 'phase': 5, 'measure_type': 'time_temperature_zone_control', + 'parts': [], + 'description': 'Upgrade heating controls to Smart Thermostats, room sensors and ' + 'smart radiator valves (time & temperature zone control)', + 'total': 739.576, 'subtotal': 700.48, 'vat': 39.096000000000004, + 'labour_hours': 3.6199999999999997, 'labour_days': np.float64(1.0), + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(2.9), + 'already_installed': False, 'simulation_config': { + 'thermostatic_control_ending': 'time and temperature zone control', + 'switch_system_ending': None, 'trvs_ending': None, + 'mainheatc_energy_eff_ending': 'Very Good'}, 'description_simulation': { + 'mainheatcont-description': 'Time and temperature zone control', + 'mainheatc-energy-eff': 'Very Good'}, 'recommendation_id': '6_phase=5', + 'efficiency': 739.576, 'co2_equivalent_savings': np.float64(0.30000000000000027), + 'heat_demand': np.float64(6.599999999999994), + 'kwh_savings': np.float64(876.8000000000002), + 'energy_cost_savings': np.float64(65.29581176470589)}], [ + {'phase': 6, 'parts': [], 'type': 'secondary_heating', + 'measure_type': 'secondary_heating', + 'description': 'Remove the secondary heating system', 'starting_u_value': None, + 'new_u_value': None, 'sap_points': np.float64(3.6), 'already_installed': False, + 'total': 30.0, 'subtotal': 25.0, 'vat': 5.0, 'labour_hours': 3.0, + 'labour_days': np.float64(1.0), + 'simulation_config': {'secondheat_description_ending': 'None'}, + 'description_simulation': {'secondheat-description': 'None'}, + 'recommendation_id': '7_phase=6', 'efficiency': 30.0, + 'co2_equivalent_savings': np.float64(0.10000000000000009), + 'heat_demand': np.float64(15.400000000000006), + 'kwh_savings': np.float64(196.29999999999927), + 'energy_cost_savings': np.float64(14.61857647058821)}], [ + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 4.0 kilowatt-peak (kWp) solar panel system.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(13.0), + 'already_installed': False, 'total': 6013.139999999999, 'subtotal': 5010.95, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(65.0), + 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(4081.7132614999996), + 'description_simulation': {'photo-supply': np.float64(65.0)}, + 'recommendation_id': '8_phase=7', 'efficiency': np.float64(462.54923076923075), + 'co2_equivalent_savings': np.float64(0.47347873833399995), + 'heat_demand': np.float64(88.69999999999999), + 'kwh_savings': np.float64(2040.8566307499998), + 'energy_cost_savings': np.float64(525.1124110919749)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 4.0 kilowatt-peak (kWp) solar panel system, with a battery.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(13.0), + 'already_installed': False, 'total': 10537.008, 'subtotal': 8780.84, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(65.0), + 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(4081.7132614999996), + 'description_simulation': {'photo-supply': np.float64(65.0)}, + 'recommendation_id': '9_phase=7', 'efficiency': np.float64(810.5390769230769), + 'co2_equivalent_savings': np.float64(0.6628702336675999), + 'heat_demand': np.float64(88.69999999999999), + 'kwh_savings': np.float64(2857.1992830499994), + 'energy_cost_savings': np.float64(735.1573755287648)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 3.6 kilowatt-peak (kWp) solar panel system.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(12.0), + 'already_installed': False, 'total': 5826.491999999999, 'subtotal': 4855.41, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(60.0), + 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(3692.66794), + 'description_simulation': {'photo-supply': np.float64(60.0)}, + 'recommendation_id': '10_phase=7', 'efficiency': np.float64(485.54099999999994), + 'co2_equivalent_savings': np.float64(0.42834948104), + 'heat_demand': np.float64(83.69999999999999), 'kwh_savings': np.float64(1846.33397), + 'energy_cost_savings': np.float64(475.0617304809999)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 3.6 kilowatt-peak (kWp) solar panel system, with a battery.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(12.0), + 'already_installed': False, 'total': 10350.359999999999, 'subtotal': 8625.3, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(60.0), + 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(3692.66794), + 'description_simulation': {'photo-supply': np.float64(60.0)}, + 'recommendation_id': '11_phase=7', 'efficiency': np.float64(862.5299999999999), + 'co2_equivalent_savings': np.float64(0.599689273456), + 'heat_demand': np.float64(83.69999999999999), 'kwh_savings': np.float64(2584.867558), + 'energy_cost_savings': np.float64(665.0864226734)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 3.2 kilowatt-peak (kWp) solar panel system.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(11.0), + 'already_installed': False, 'total': 5642.604, 'subtotal': 4702.17, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(55.0), + 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(3300.5416548), + 'description_simulation': {'photo-supply': np.float64(55.0)}, + 'recommendation_id': '12_phase=7', 'efficiency': np.float64(512.964), + 'co2_equivalent_savings': np.float64(0.3828628319568), 'heat_demand': np.float64(78.3), + 'kwh_savings': np.float64(1650.2708274), + 'energy_cost_savings': np.float64(424.61468389001993)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 3.2 kilowatt-peak (kWp) solar panel system, with a battery.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(11.0), + 'already_installed': False, 'total': 10166.472, 'subtotal': 8472.06, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(55.0), + 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(3300.5416548), + 'description_simulation': {'photo-supply': np.float64(55.0)}, + 'recommendation_id': '13_phase=7', 'efficiency': np.float64(924.2247272727273), + 'co2_equivalent_savings': np.float64(0.53600796473952), + 'heat_demand': np.float64(78.3), 'kwh_savings': np.float64(2310.3791583599996), + 'energy_cost_savings': np.float64(594.4605574460278)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 2.8 kilowatt-peak (kWp) solar panel system.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(9.0), + 'already_installed': False, 'total': 5458.727999999999, 'subtotal': 4548.94, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(45.0), + 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(2907.1867812), + 'description_simulation': {'photo-supply': np.float64(45.0)}, + 'recommendation_id': '14_phase=7', 'efficiency': np.float64(606.5253333333333), + 'co2_equivalent_savings': np.float64(0.3372336666192), 'heat_demand': np.float64(64.0), + 'kwh_savings': np.float64(1453.5933906), + 'energy_cost_savings': np.float64(374.00957940138)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 2.8 kilowatt-peak (kWp) solar panel system, with a battery.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(9.0), + 'already_installed': False, 'total': 9982.596, 'subtotal': 8318.83, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(45.0), + 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(2907.1867812), + 'description_simulation': {'photo-supply': np.float64(45.0)}, + 'recommendation_id': '15_phase=7', 'efficiency': np.float64(1109.1773333333333), + 'co2_equivalent_savings': np.float64(0.47212713326688), + 'heat_demand': np.float64(64.0), 'kwh_savings': np.float64(2035.03074684), + 'energy_cost_savings': np.float64(523.6134111619319)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 2.4 kilowatt-peak (kWp) solar panel system.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(8.0), + 'already_installed': False, 'total': 5274.852, 'subtotal': 4395.71, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(40.0), + 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(2510.25188), + 'description_simulation': {'photo-supply': np.float64(40.0)}, + 'recommendation_id': '16_phase=7', 'efficiency': np.float64(659.3565), + 'co2_equivalent_savings': np.float64(0.29118921808), 'heat_demand': np.float64(54.3), + 'kwh_savings': np.float64(1255.12594), + 'energy_cost_savings': np.float64(322.94390436199996)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 2.4 kilowatt-peak (kWp) solar panel system, with a battery.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(8.0), + 'already_installed': False, 'total': 9798.72, 'subtotal': 8165.6, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(40.0), + 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(2510.25188), + 'description_simulation': {'photo-supply': np.float64(40.0)}, + 'recommendation_id': '17_phase=7', 'efficiency': np.float64(1224.84), + 'co2_equivalent_savings': np.float64(0.40766490531199995), + 'heat_demand': np.float64(54.3), 'kwh_savings': np.float64(1757.1763159999998), + 'energy_cost_savings': np.float64(452.1214661067999)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 2.0 kilowatt-peak (kWp) solar panel system.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(7.0), + 'already_installed': False, 'total': 5090.976, 'subtotal': 4242.48, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(35.0), + 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(2096.682636), + 'description_simulation': {'photo-supply': np.float64(35.0)}, + 'recommendation_id': '18_phase=7', 'efficiency': np.float64(727.2822857142856), + 'co2_equivalent_savings': np.float64(0.243215185776), 'heat_demand': np.float64(48.5), + 'kwh_savings': np.float64(1048.341318), + 'energy_cost_savings': np.float64(269.7382211214)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 2.0 kilowatt-peak (kWp) solar panel system, with a battery.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(7.0), + 'already_installed': False, 'total': 9614.844, 'subtotal': 8012.369999999999, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(35.0), + 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(2096.682636), + 'description_simulation': {'photo-supply': np.float64(35.0)}, + 'recommendation_id': '19_phase=7', 'efficiency': np.float64(1373.5491428571427), + 'co2_equivalent_savings': np.float64(0.3405012600864), 'heat_demand': np.float64(48.5), + 'kwh_savings': np.float64(1467.6778451999999), + 'energy_cost_savings': np.float64(377.6335095699599)}] +] + +main_heating = { + 'original_description': 'Boiler and radiators, mains gas', 'clean_description': 'Boiler and radiators, mains gas', + 'has_radiators': True, 'has_fan_coil_units': False, 'has_pipes_in_screed_above_insulation': False, + 'has_pipes_in_insulated_timber_floor': False, 'has_pipes_in_concrete_slab': False, 'has_boiler': True, + 'has_air_source_heat_pump': False, 'has_room_heaters': False, 'has_electric_storage_heaters': False, + 'has_warm_air': False, 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, + 'has_community_scheme': False, 'has_ground_source_heat_pump': False, 'has_no_system_present': False, + 'has_portable_electric_heaters': False, 'has_water_source_heat_pump': False, 'has_electric_heat_pump': False, + 'has_micro-cogeneration': False, 'has_solar_assisted_heat_pump': False, 'has_exhaust_source_heat_pump': False, + 'has_community_heat_pump': False, 'has_hot-water-only': False, 'has_electric': False, 'has_mains_gas': True, + 'has_wood_logs': False, 'has_coal': False, 'has_oil': False, 'has_wood_pellets': False, 'has_anthracite': False, + 'has_dual_fuel_mineral_and_wood': False, 'has_smokeless_fuel': False, 'has_lpg': False, 'has_b30k': False, + 'has_mineral_and_wood': False, 'has_dual_fuel_appliance': False, 'has_assumed': False, 'has_electricaire': False, + 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False +} + +main_fuel = { + 'original_description': 'mains gas (not community)', 'clean_description': 'Mains gas not community', + 'fuel_type': 'mains gas', 'tariff_type': None, 'is_community': False, + 'no_individual_heating_or_community_network': False, 'complex_fuel_type': None +} + +# Insert the funding uplifts +for recs in property_recommendations: + for r in recs: + # Insert randomly + # Select one of 0, 0.25 or 0.45 + r["uplift"] = np.random.choice([0, 0.25, 0.45]) + +# We calculate the innovation uplift against each measure +for recs in property_recommendations: + for r in recs: + if r["type"] in ["mechanical_ventilation", "low_energy_lighting", "secondary_heating"]: + r["innovation_uplift"] = 0 + continue + r["innovation_uplift"] = funding.get_innovation_uplift( + measure=r, + starting_sap=p.data["current-energy-efficiency"], + floor_area=p.floor_area, + is_cavity=False, + current_wall_uvalue=1.7, + is_partial=False, + existing_li_thickness=150, + mainheating=p.main_heating, + main_fuel=p.main_fuel, + mainheat_energy_eff=p.data["mainheat-energy-eff"], + ) + print(r["innovation_uplift"]) + +property_measure_types = {rec["type"] for recs in property_recommendations for rec in recs} +property_required_measures = [m for m in property_recommendations if m[0]["type"] in []] +measures_to_optimise = [m for m in property_recommendations if m[0]["type"] not in []] + +# If a measure requiring ventilation is selected, and the property does not have ventilation, we enfore +# its inclusion +needs_ventilation = any( + x in property_measure_types for x in assumptions.measures_needing_ventilation +) and not p.has_ventilation + +input_measures = optimiser_functions.prepare_input_measures( + measures_to_optimise, "Increasing EPC", needs_ventilation +) + +# ---- rule definitions you can tweak ------------------------------------- + +HEATING_TYPES = {"air_source_heat_pump", "high_heat_retention_storage_heater", "solar_pv"} +MIN_INSULATION_OR = [{"loft_insulation"}, {"cavity_wall_insulation"}] # extend if needed + +# “Funding paths”: each is a list of elements; each element is: +# - {"OR": {"types": {..}}} means choose one option from any group whose type is in that set +# - {"AND": [{"types": {..}}, {"types": {..}}]} means choose one from each of those +FUNDING_PATHS = [ + # Path A: IWI OR EWI + [ + { + "OR": { + "types": {"internal_wall_insulation", "external_wall_insulation"} + } + } + ], + # Path B: Solar PV AND HHRSH + [{"AND": [{"types": {"solar_pv"}}, {"types": {"high_heat_retention_storage_heater"}}]}], + # Path C: ASHP alone (may still trigger min insulation rule below) + [{"OR": {"types": {"air_source_heat_pump"}}}], + # +] + + +def _find_measure(input_measures, measure_type): + for measures in input_measures: + for m in measures: + if measure_type in m["type"]: + return True + return False + + +def make_funding_paths(input_measures, tenure): + """ + Given the tenure of the property and the available measures, this function will construct the funding paths + :return: + """ + + funding_paths = [] + + if tenure == "Social": + raise NotImplementedError("Implement me!") + + if tenure == "Private": + # We cover off the main funding paths + # 1) The package must include EWI or IWI + # We check if we have any EWI or IWI measures available + ewi_or_iwi = [{"OR": []}] + # If we have EWI we add it in + if _find_measure(input_measures, "external_wall_insulation"): + ewi_or_iwi[0]["OR"].append("external_wall_insulation") + + if _find_measure(input_measures, "internal_wall_insulation"): + ewi_or_iwi[0]["OR"].append("internal_wall_insulation") + + if ewi_or_iwi[0]["OR"]: + funding_paths.append(ewi_or_iwi) + + # 2) The package must include a renewable heating system like an ASHP + ashp = [{"OR": []}] + if _find_measure(input_measures, "air_source_heat_pump"): + ashp[0]["OR"].append("air_source_heat_pump") + funding_paths.append(ashp) + + # 3) The package must have an existing eligible heating system. We test this with the funding checker + # If we have any remaining insulation measure to be applied to the property, we also need to include that in + # the package + single_solar_template = [{"OR": []}] + has_eligible_heating_system = funding.check_solar_eligible_heating_system( + mainheat_description=p.main_heating["clean_description"], + heating_control_description=p.main_heating_controls["clean_description"] + ) + + if has_eligible_heating_system: + single_solar_template[0]["OR"].append("solar_pv") + # We now look to pair this with any lingering insulation measures + wall_insulation_measures = [ + "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", + "extension_cavity_wall_insulation" + ] + roof_insulation_measures = [ + "loft_insulation", "flat_roof_insulation", "room_roof_insulation" + ] + # We search for these + solar_paths_with_insulation = [] + for insulation_measure in wall_insulation_measures + roof_insulation_measures: + if _find_measure(input_measures, insulation_measure): + new_solar_path = deepcopy(single_solar_template) + new_solar_path[0]["OR"].append(insulation_measure) + solar_paths_with_insulation.append(new_solar_path) + + if not solar_paths_with_insulation: + # If we have no insulation measures, we're good with just single solar + solar_paths_with_insulation.append(single_solar_template) + + funding_paths.extend(solar_paths_with_insulation) + + +# ---- main wrapper around your optimiser ---------------------------------- + +def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, social=False): + """ + run_optimizer(sub_measures, budget, target_gain) -> (picked_options, sub_cost, sub_gain) + """ + # TODO: Should be EPC D only that we require only innovation measures + # Social housing: filter to innovation-only before doing anything else + # if social: + # filtered = [] + # for group in input_measures: + # opts = [o for o in group if o.get("is_innovation", False)] + # if opts: + # filtered.append(opts) + # input_measures = filtered + + # Always include a "no funding path" baseline (empty fixed) + all_paths = FUNDING_PATHS + [[]] + + solutions = [] + for path_spec in all_paths: + # 1) expand fixed selections for this path + fixed_selections = expand_funding_path(input_measures, path_spec) if path_spec else [[]] + if not fixed_selections: + continue + + for fixed in fixed_selections: + + # 2) min insulation if heating is already in fixed + fixed_variants = expand_min_insulation_if_needed(input_measures, fixed) + if not fixed_variants: + continue + + for fixed2 in fixed_variants: + # 3) compute fixed cost/gain, and strip those groups from subproblem + fixed_items = [opt for (_, _, opt) in fixed2] + fixed_ids = [opt['id'] for opt in fixed_items] + fixed_cost, fixed_gain = sum_cost_gain(fixed_items) + fixed_groups = {gi for (gi, _, _) in fixed2} + + sub_measures = strip_groups(input_measures, fixed_groups) + + # 4) run your existing optimiser for the remaining groups + # If we have a budget, we need to ensure the subproblem respects it so we remove the fixed cost (which + # may already be over budget) and the fixed gain (which may not be achievable) + picked, sub_cost, sub_gain = run_optimizer( + sub_measures, + budget - fixed_cost if budget is not None else None, + sub_target_gain=target_gain - fixed_gain if target_gain is not None else None + ) + + if picked is None: + continue + + total_cost = fixed_cost + sub_cost + total_gain = fixed_gain + sub_gain + total_picks = fixed_items + picked + + # you can change the objective here; I’ll use max gain under budget + if budget is not None and total_cost > budget + 1e-9: + continue + + solutions.append({ + "fixed_ids": fixed_ids, + "items": total_picks, + "total_cost": total_cost, + "total_gain": total_gain, + "path": path_spec, + }) + + solutions = pd.DataFrame(solutions) + + return solutions + + +# Run inputs: +target_gain = 18.5 + +from itertools import product +import math + + +# ---- helpers ------------------------------------------------------------- + +def split_types(t): + # supports "external_wall_insulation+mechanical_ventilation" + return set(part.strip() for part in str(t).split('+')) + + +def group_has_type(group, want): + # group is a list[option], all same 'type' pattern + return any(want in split_types(opt['type']) for opt in group) + + +def find_groups(input_measures, type_name): + return [(gi, g) for gi, g in enumerate(input_measures) if group_has_type(g, type_name)] + + +def strip_groups(input_measures, taken_group_indices): + return [g for gi, g in enumerate(input_measures) if gi not in taken_group_indices] + + +def sum_cost_gain(items): + c = sum(float(x['cost']) for x in items) + g = sum(float(x['gain']) for x in items) + return c, g + + +# ---- candidate expansion ------------------------------------------------- + +def iter_or_candidates(input_measures, type_set): + # collect all groups that match ANY type in type_set + matching = [(gi, group) for gi, group in enumerate(input_measures) + if any(group_has_type(group, t) for t in type_set)] + if not matching: + return # nothing to yield + # choose ONE option from ANY one of these groups + for gi, group in matching: + for oi, opt in enumerate(group): + yield {"fixed": [(gi, oi, opt)]} + + +def iter_and_candidates(input_measures, type_vec): + # type_vec is like [{"types": {"solar_pv"}}, {"types": {"high_heat_retention_storage_heater"}}] + per_leg = [] + for leg in type_vec: + leg_types = leg["types"] + leg_groups = [(gi, group) for gi, group in enumerate(input_measures) + if any(group_has_type(group, t) for t in leg_types)] + if not leg_groups: + return # this AND path isn’t available in this property; skip + # options for this leg: (gi, oi, opt) + options = [] + for gi, group in leg_groups: + for oi, opt in enumerate(group): + options.append((gi, oi, opt)) + per_leg.append(options) + for combo in product(*per_leg): + yield {"fixed": list(combo)} + + +def expand_funding_path(input_measures, path_spec): + # path_spec is a list of elements; combine all elements (they’re all required) + # Start with one empty selection; then cross-product accumulate + selections = [[]] + for elem in path_spec: + new_selections = [] + if "OR" in elem: + for cand in iter_or_candidates(input_measures, elem["OR"]["types"]): + for base in selections: + new_selections.append(base + cand["fixed"]) + elif "AND" in elem: + for cand in iter_and_candidates(input_measures, elem["AND"]): + for base in selections: + new_selections.append(base + cand["fixed"]) + else: + raise ValueError("unknown path element") + selections = new_selections + if not selections: + break + # selections are lists of (gi, oi, opt) + # dedupe by group index (if users set a weird path that hits same group twice) + deduped = [] + for sel in selections: + seen = set() + clean = [] + ok = True + for gi, oi, opt in sel: + if gi in seen: + ok = False + break + seen.add(gi) + clean.append((gi, oi, opt)) + if ok: + deduped.append(clean) + return deduped + + +# ---- minimum insulation handling ---------------------------------------- + +def expand_min_insulation_if_needed(input_measures, fixed_selection): + # If fixed contains any HEATING_TYPES, we must also include at least one of MIN_INSULATION_OR groups. + fixed_types = set() + fixed_group_idx = {gi for gi, _, _ in fixed_selection} + for _, _, opt in fixed_selection: + fixed_types |= split_types(opt['type']) + + if not (fixed_types & HEATING_TYPES): + # BUT: heating might later be picked by optimiser… If you want to be strict, + # you can also add a *feasibility check* after optimisation and reject combos + # that pick heating without min insulation. For now we enforce only when + # already in fixed set. + return [fixed_selection] + + # Build OR candidates for required insulation, but exclude groups already fixed + or_pool = [] + for alt in MIN_INSULATION_OR: + types = alt + matches = [] + for gi, group in enumerate(input_measures): + if gi in fixed_group_idx: + continue + if any(group_has_type(group, t) for t in types): + for oi, opt in enumerate(group): + matches.append((gi, oi, opt)) + if not matches: + # No feasible insulation to satisfy the rule -> invalidate this branch + return [] + or_pool.append(matches) + + # choose one from any of the alt sets (if you have more than one OR bucket, pick one from at least one; + # simplest: union first OR bucket only — or take the union and pick one) + # Here we’ll take the union across all buckets then pick exactly one. + union = {(gi, oi): (gi, oi, opt) + for matches in or_pool for (gi, oi, opt) in matches}.values() + + expanded = [] + for gi, oi, opt in union: + # avoid duplicating the same group as fixed + if gi in fixed_group_idx: + continue + expanded.append(fixed_selection + [(gi, oi, opt)]) + return expanded + + +from copy import deepcopy + + +# ---- tiny utilities ---------------------------------------------------------- + +def parse_types(t): + # e.g. "external_wall_insulation+mechanical_ventilation" -> {"external_wall_insulation","mechanical_ventilation"} + return set(map(str.strip, t.split("+"))) if isinstance(t, str) else set() + + +def includes_heating(opt_types): + return any(x in opt_types for x in { + "air_source_heat_pump", + "high_heat_retention_storage_heater", + "time_temperature_zone_control", # controls count as a heating measure in your pipeline + "solar_pv" # you treat PV as heating for funding logic + }) + + +def contributes_min_insulation(opt_types): + # MIR satisfiers you mentioned (extend as needed) + return any(x in opt_types for x in { + "external_wall_insulation", + "internal_wall_insulation", + "loft_insulation", + "cavity_wall_insulation", + }) + + +def run_optimizer(input_measures, budget=None, sub_target_gain=None, allow_slack=False): + """ + Thin wrapper over your optimisers. + Returns: list[dict] selected_options + """ + if budget is not None: + opt = GainOptimiser( + input_measures, max_cost=budget, max_gain=(sub_target_gain or float("inf")), + allow_slack=allow_slack + ) + else: + if sub_target_gain is None: + raise ValueError("Either budget or target_gain must be provided.") + opt = CostOptimiser(input_measures, min_gain=sub_target_gain) + + opt.setup() + opt.solve() + return opt.solution, opt.solution_cost, opt.solution_gain From 051ee240ba8af003ae9f839f1f9721c2290c5e46 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Aug 2025 17:52:05 +0100 Subject: [PATCH 28/73] working on funding paths --- recommendations/tests/test_optimisers.py | 27 +++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index 762ab71e..394e741d 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -494,17 +494,12 @@ def _find_measure(input_measures, measure_type): def make_funding_paths(input_measures, tenure): - """ - Given the tenure of the property and the available measures, this function will construct the funding paths - :return: - """ - - funding_paths = [] - if tenure == "Social": raise NotImplementedError("Implement me!") - if tenure == "Private": + funding_paths = [] + + if tenure == "Private" # We cover off the main funding paths # 1) The package must include EWI or IWI # We check if we have any EWI or IWI measures available @@ -528,14 +523,14 @@ def make_funding_paths(input_measures, tenure): # 3) The package must have an existing eligible heating system. We test this with the funding checker # If we have any remaining insulation measure to be applied to the property, we also need to include that in # the package - single_solar_template = [{"OR": []}] + single_solar_template = [{"AND": []}] has_eligible_heating_system = funding.check_solar_eligible_heating_system( mainheat_description=p.main_heating["clean_description"], heating_control_description=p.main_heating_controls["clean_description"] ) if has_eligible_heating_system: - single_solar_template[0]["OR"].append("solar_pv") + single_solar_template[0]["AND"].append("solar_pv") # We now look to pair this with any lingering insulation measures wall_insulation_measures = [ "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", @@ -557,6 +552,18 @@ def make_funding_paths(input_measures, tenure): solar_paths_with_insulation.append(single_solar_template) funding_paths.extend(solar_paths_with_insulation) + else: + # If we don't have an eligible heating system, we check if we have an eligible heating system + # (HHRSH/ASHP/Electric boiler) + solar PV + if _find_measure(input_measures, "solar_pv") and _find_measure(input_measures, + "high_heat_retention_storage_heater"): + funding_paths.append([{"AND": ["solar_pv", "high_heat_retention_storage_heater"]}]) + + if _find_measure(input_measures, "solar_pv") and _find_measure(input_measures, "air_source_heat_pump"): + funding_paths.append([{"AND": ["solar_pv", "air_source_heat_pump"]}]) + + if _find_measure(input_measures, "solar_pv") and _find_measure(input_measures, "electric_boiler"): + funding_paths.append([{"AND": ["solar_pv", "electric_boiler"]}]) # ---- main wrapper around your optimiser ---------------------------------- From 0c6a0827b270f8416573a5971958b9f28efa32f5 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Aug 2025 19:36:18 +0100 Subject: [PATCH 29/73] working on the optimiser algorithm --- recommendations/tests/test_optimisers.py | 86 +++++++++++++++++------- 1 file changed, 62 insertions(+), 24 deletions(-) diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index 394e741d..c265bb99 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -494,12 +494,65 @@ def _find_measure(input_measures, measure_type): def make_funding_paths(input_measures, tenure): + """ + This function generates funding paths based on the input measures and the tenure of the property. + It checks for the presence of specific measures and creates paths that include necessary insulation measures + to meet minimum insulation requirements, particularly when a heating system is recommended. + + Remaining measures that are not fixed as part of the package are then optimised + :param input_measures: + :param tenure: + :return: + """ + funding_paths = [] + + # We handle the case of minimum insulation requirements. Whenever we have a heating system recommendation, + # we *must* include an additional insulation measure, unless the property already has sufficient insulation. + + # We determine which insulation measures need to be included + wall_insulation_measures = [ + "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", + "extension_cavity_wall_insulation" + ] + roof_insulation_measures = [ + "loft_insulation", "flat_roof_insulation", "room_roof_insulation" + ] + # These are the insulation measures that the property still needs and so will be considered for + # filling the minimum insulation requirements + remaining_insulation_type = [] + for insulation_measure in wall_insulation_measures + roof_insulation_measures: + if _find_measure(input_measures, insulation_measure): + remaining_insulation_type.append(insulation_measure) + + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Air source heat pump + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + # For all tenures, if we have an air source heat pump it's a funded measure and so we must consider the minimum + # insulation requirements + if _find_measure(input_measures, "air_source_heat_pump"): + ashp_template = [{"AND": ["air_source_heat_pump"]}] + ashp_paths = [] + for insulation_measure in remaining_insulation_type: + new_ashp_path = deepcopy(ashp_template) + new_ashp_path[0]["AND"].append(insulation_measure) + ashp_paths.append(new_ashp_path) + + if ashp_paths: + # If we have any insulation measures, we add them to the funding paths + funding_paths.extend(ashp_paths) + else: + # If we have no insulation measures, we just add the ASHP path + funding_paths.append(ashp_template) + + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Solar PV with existing eligible heating system + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + if tenure == "Social": raise NotImplementedError("Implement me!") - funding_paths = [] - - if tenure == "Private" + if tenure == "Private": # We cover off the main funding paths # 1) The package must include EWI or IWI # We check if we have any EWI or IWI measures available @@ -514,12 +567,6 @@ def make_funding_paths(input_measures, tenure): if ewi_or_iwi[0]["OR"]: funding_paths.append(ewi_or_iwi) - # 2) The package must include a renewable heating system like an ASHP - ashp = [{"OR": []}] - if _find_measure(input_measures, "air_source_heat_pump"): - ashp[0]["OR"].append("air_source_heat_pump") - funding_paths.append(ashp) - # 3) The package must have an existing eligible heating system. We test this with the funding checker # If we have any remaining insulation measure to be applied to the property, we also need to include that in # the package @@ -532,14 +579,6 @@ def make_funding_paths(input_measures, tenure): if has_eligible_heating_system: single_solar_template[0]["AND"].append("solar_pv") # We now look to pair this with any lingering insulation measures - wall_insulation_measures = [ - "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", - "extension_cavity_wall_insulation" - ] - roof_insulation_measures = [ - "loft_insulation", "flat_roof_insulation", "room_roof_insulation" - ] - # We search for these solar_paths_with_insulation = [] for insulation_measure in wall_insulation_measures + roof_insulation_measures: if _find_measure(input_measures, insulation_measure): @@ -555,14 +594,16 @@ def make_funding_paths(input_measures, tenure): else: # If we don't have an eligible heating system, we check if we have an eligible heating system # (HHRSH/ASHP/Electric boiler) + solar PV - if _find_measure(input_measures, "solar_pv") and _find_measure(input_measures, - "high_heat_retention_storage_heater"): + if (_find_measure(input_measures, "solar_pv") and + _find_measure(input_measures, "high_heat_retention_storage_heater")): funding_paths.append([{"AND": ["solar_pv", "high_heat_retention_storage_heater"]}]) - if _find_measure(input_measures, "solar_pv") and _find_measure(input_measures, "air_source_heat_pump"): + if (_find_measure(input_measures, "solar_pv") and + _find_measure(input_measures, "air_source_heat_pump")): funding_paths.append([{"AND": ["solar_pv", "air_source_heat_pump"]}]) - if _find_measure(input_measures, "solar_pv") and _find_measure(input_measures, "electric_boiler"): + if (_find_measure(input_measures, "solar_pv") and + _find_measure(input_measures, "electric_boiler")): funding_paths.append([{"AND": ["solar_pv", "electric_boiler"]}]) @@ -791,9 +832,6 @@ def expand_min_insulation_if_needed(input_measures, fixed_selection): return expanded -from copy import deepcopy - - # ---- tiny utilities ---------------------------------------------------------- def parse_types(t): From 00f4b4190766cfc228ab609f64b90945c7895c91 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Aug 2025 21:00:19 +0100 Subject: [PATCH 30/73] completed mvp for make funding paths --- .../optimiser/optimiser_functions.py | 6 +- recommendations/tests/test_optimisers.py | 205 ++++++++++++------ 2 files changed, 146 insertions(+), 65 deletions(-) diff --git a/recommendations/optimiser/optimiser_functions.py b/recommendations/optimiser/optimiser_functions.py index a4f32c41..95309a19 100644 --- a/recommendations/optimiser/optimiser_functions.py +++ b/recommendations/optimiser/optimiser_functions.py @@ -102,8 +102,12 @@ def prepare_input_measures(property_recommendations, goal, needs_ventilation, fu else rec["measure_type"] ) + # We also include the innovation uplift to_append.append( - {"id": rec["recommendation_id"], "cost": total, "gain": gain, "type": rec_type} + { + "id": rec["recommendation_id"], "cost": total, "gain": gain, "type": rec_type, + "innovation_uplift": rec["innovation_uplift"] if funding else 0, + } ) input_measures.append(to_append) diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index c265bb99..4256bb31 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -457,7 +457,7 @@ needs_ventilation = any( ) and not p.has_ventilation input_measures = optimiser_functions.prepare_input_measures( - measures_to_optimise, "Increasing EPC", needs_ventilation + measures_to_optimise, "Increasing EPC", needs_ventilation, True ) # ---- rule definitions you can tweak ------------------------------------- @@ -493,19 +493,118 @@ def _find_measure(input_measures, measure_type): return False -def make_funding_paths(input_measures, tenure): +def _make_generic_eco4_funding_paths(p, input_measures, funding_paths, remaining_insulation_type): + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Solar PV with existing eligible heating system + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + has_eligible_heating_system = funding.check_solar_eligible_heating_system( + mainheat_description=p.main_heating["clean_description"], + heating_control_description=p.main_heating_controls["clean_description"] + ) + + if has_eligible_heating_system: + single_solar_template = [{"AND": ["solar_pv"], "reference": "solar_pv"}] + # We now look to pair this with any lingering insulation measures + solar_paths = [] + for insulation_measure in remaining_insulation_type: + new_solar_path = deepcopy(single_solar_template) + new_solar_path[0]["AND"].append(insulation_measure) + solar_paths.append(new_solar_path) + + if solar_paths: + funding_paths.extend(solar_paths) + else: + # If we have no insulation measures, we just add the solar PV path + funding_paths.append(single_solar_template) + + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Solar PV + HHRSH + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + if (_find_measure(input_measures, "solar_pv") and + _find_measure(input_measures, "high_heat_retention_storage_heater")): + funding_paths.append( + [{"AND": ["solar_pv", "high_heat_retention_storage_heater"], "reference": "solar_pv+hhrsh"}] + ) + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Solar PV + ASHP + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + if (_find_measure(input_measures, "solar_pv") and + _find_measure(input_measures, "air_source_heat_pump")): + funding_paths.append([{"AND": ["solar_pv", "air_source_heat_pump"]}]) + + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Solar PV + Electric Boiler + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + if (_find_measure(input_measures, "solar_pv") and + _find_measure(input_measures, "electric_boiler")): + funding_paths.append([{"AND": ["solar_pv", "electric_boiler"]}]) + + # We've actually covered all possible options where solar PV can be included in a funded package, so where + # solar PV is not in a reference, we can exclude it + + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Heating Upgrades + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Must have an existing eligible heating system + + measure_references = { + "boiler_upgrade": "boiler_upgrade", + "high_heat_retention_storage_heater": "hhrsh", + "air_source_heat_pump": "ashp" + } + for heating_upgrade in ["boiler_upgrade", "high_heat_retention_storage_heater", "air_source_heat_pump"]: + if _find_measure(input_measures, ""): + # We check if we have any remaining insulation measures to be applied to the property + if remaining_insulation_type: + hhrsh_template = [ + {"AND": [heating_upgrade], "reference": measure_references[heating_upgrade]} + ] + hhrsh_paths = [] + for insulation_measure in remaining_insulation_type: + new_hhrsh_path = deepcopy(hhrsh_template) + new_hhrsh_path[0]["AND"].append(insulation_measure) + hhrsh_paths.append(new_hhrsh_path) + + funding_paths.extend(hhrsh_paths) + else: + # If we have no insulation measures, we just add the HHRSH path + funding_paths.append([{"AND": [measure_references[heating_upgrade]]}]) + + return funding_paths + + +def _make_generic_gbis_funding_paths(input_gbis_measures, funding_paths): + """ + For GBIS, the packages are single insulation measure. + + We also have potential GBIS packages that allow heating controls as a secondary measure, however this + is not currently implemented in the optimiser due to not being certain about the heating controls pre conditions + :param input_gbis_measures: + :param funding_paths: + :return: + """ + + gbis_funding_paths = [] + for input_measure in input_gbis_measures: + for measure in input_measure: + # We create a path for each measure + gbis_funding_paths.append([{"AND": [measure["type"]], "reference": measure["type"] + ":gbis"}]) + + return funding_paths + gbis_funding_paths + + +def make_funding_paths(p, input_measures, tenure): """ This function generates funding paths based on the input measures and the tenure of the property. It checks for the presence of specific measures and creates paths that include necessary insulation measures to meet minimum insulation requirements, particularly when a heating system is recommended. Remaining measures that are not fixed as part of the package are then optimised + :param p: The property object containing details about the property, including main heating and controls. :param input_measures: :param tenure: :return: """ - funding_paths = [] - # We handle the case of minimum insulation requirements. Whenever we have a heating system recommendation, # we *must* include an additional insulation measure, unless the property already has sufficient insulation. @@ -517,6 +616,9 @@ def make_funding_paths(input_measures, tenure): roof_insulation_measures = [ "loft_insulation", "flat_roof_insulation", "room_roof_insulation" ] + other_gbis_insulation_measures = [ + "suspended_floor_insulation", "solid_floor_insulation", + ] # These are the insulation measures that the property still needs and so will be considered for # filling the minimum insulation requirements remaining_insulation_type = [] @@ -524,37 +626,36 @@ def make_funding_paths(input_measures, tenure): if _find_measure(input_measures, insulation_measure): remaining_insulation_type.append(insulation_measure) - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - # Air source heat pump - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + funding_paths = [] - # For all tenures, if we have an air source heat pump it's a funded measure and so we must consider the minimum - # insulation requirements - if _find_measure(input_measures, "air_source_heat_pump"): - ashp_template = [{"AND": ["air_source_heat_pump"]}] - ashp_paths = [] - for insulation_measure in remaining_insulation_type: - new_ashp_path = deepcopy(ashp_template) - new_ashp_path[0]["AND"].append(insulation_measure) - ashp_paths.append(new_ashp_path) + if tenure == "Social" and p.data["current-energy-rating"] == "D": + # If the property is currently EPC D, we can only include innovation measures or measures to meet the + # minimum insulation requirements + input_measures_innovation = [] + input_gbis_measures_innovation = [] + for measures in input_measures: + for measure in measures: + if measure["innovation_uplift"] or measure["type"] in remaining_insulation_type: + input_measures_innovation.append([measure]) - if ashp_paths: - # If we have any insulation measures, we add them to the funding paths - funding_paths.extend(ashp_paths) - else: - # If we have no insulation measures, we just add the ASHP path - funding_paths.append(ashp_template) + if measure["innovation_uplift"] and measure["type"] in ( + remaining_insulation_type + other_gbis_insulation_measures + ): + input_gbis_measures_innovation.append([measure]) - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - # Solar PV with existing eligible heating system - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + funding_paths = _make_generic_eco4_funding_paths( + p, input_measures_innovation, funding_paths, remaining_insulation_type + ) - if tenure == "Social": - raise NotImplementedError("Implement me!") + # Can only be innovation GBIS measures + funding_paths = _make_generic_gbis_funding_paths(input_gbis_measures_innovation, funding_paths) + return funding_paths if tenure == "Private": - # We cover off the main funding paths - # 1) The package must include EWI or IWI + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # EWI or IWI + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # 1) The package must include EWI or IWI if the property is privately owned # We check if we have any EWI or IWI measures available ewi_or_iwi = [{"OR": []}] # If we have EWI we add it in @@ -567,44 +668,20 @@ def make_funding_paths(input_measures, tenure): if ewi_or_iwi[0]["OR"]: funding_paths.append(ewi_or_iwi) - # 3) The package must have an existing eligible heating system. We test this with the funding checker - # If we have any remaining insulation measure to be applied to the property, we also need to include that in - # the package - single_solar_template = [{"AND": []}] - has_eligible_heating_system = funding.check_solar_eligible_heating_system( - mainheat_description=p.main_heating["clean_description"], - heating_control_description=p.main_heating_controls["clean_description"] - ) + funding_paths = _make_generic_eco4_funding_paths( + p, input_measures, funding_paths, remaining_insulation_type + ) - if has_eligible_heating_system: - single_solar_template[0]["AND"].append("solar_pv") - # We now look to pair this with any lingering insulation measures - solar_paths_with_insulation = [] - for insulation_measure in wall_insulation_measures + roof_insulation_measures: - if _find_measure(input_measures, insulation_measure): - new_solar_path = deepcopy(single_solar_template) - new_solar_path[0]["OR"].append(insulation_measure) - solar_paths_with_insulation.append(new_solar_path) + # If we have any remaining insulation measures, we add them to the funding paths + input_gbis_measures = [] + for measures in input_measures: + for measure in measures: + if measure["type"] in remaining_insulation_type + other_gbis_insulation_measures: + input_gbis_measures.append([measure]) - if not solar_paths_with_insulation: - # If we have no insulation measures, we're good with just single solar - solar_paths_with_insulation.append(single_solar_template) + funding_paths = _make_generic_gbis_funding_paths(input_gbis_measures, funding_paths) - funding_paths.extend(solar_paths_with_insulation) - else: - # If we don't have an eligible heating system, we check if we have an eligible heating system - # (HHRSH/ASHP/Electric boiler) + solar PV - if (_find_measure(input_measures, "solar_pv") and - _find_measure(input_measures, "high_heat_retention_storage_heater")): - funding_paths.append([{"AND": ["solar_pv", "high_heat_retention_storage_heater"]}]) - - if (_find_measure(input_measures, "solar_pv") and - _find_measure(input_measures, "air_source_heat_pump")): - funding_paths.append([{"AND": ["solar_pv", "air_source_heat_pump"]}]) - - if (_find_measure(input_measures, "solar_pv") and - _find_measure(input_measures, "electric_boiler")): - funding_paths.append([{"AND": ["solar_pv", "electric_boiler"]}]) + return funding_paths # ---- main wrapper around your optimiser ---------------------------------- From e3066fbd763b22b4be0c27dec33fb4725d1f6408 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Aug 2025 21:43:49 +0100 Subject: [PATCH 31/73] debugging funding paths --- recommendations/tests/test_optimisers.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index 4256bb31..b4c739d5 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -503,12 +503,14 @@ def _make_generic_eco4_funding_paths(p, input_measures, funding_paths, remaining ) if has_eligible_heating_system: - single_solar_template = [{"AND": ["solar_pv"], "reference": "solar_pv"}] + single_solar_template = [{"AND": ["solar_pv"], "reference": None}] # We now look to pair this with any lingering insulation measures solar_paths = [] for insulation_measure in remaining_insulation_type: new_solar_path = deepcopy(single_solar_template) new_solar_path[0]["AND"].append(insulation_measure) + # Make a specific reference for this path + new_solar_path[0]["reference"] = "solar_pv+" + insulation_measure + ":eco4" solar_paths.append(new_solar_path) if solar_paths: @@ -523,21 +525,21 @@ def _make_generic_eco4_funding_paths(p, input_measures, funding_paths, remaining if (_find_measure(input_measures, "solar_pv") and _find_measure(input_measures, "high_heat_retention_storage_heater")): funding_paths.append( - [{"AND": ["solar_pv", "high_heat_retention_storage_heater"], "reference": "solar_pv+hhrsh"}] + [{"AND": ["solar_pv", "high_heat_retention_storage_heater"], "reference": "solar_pv+hhrsh:eco4"}] ) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Solar PV + ASHP # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (_find_measure(input_measures, "solar_pv") and _find_measure(input_measures, "air_source_heat_pump")): - funding_paths.append([{"AND": ["solar_pv", "air_source_heat_pump"]}]) + funding_paths.append([{"AND": ["solar_pv", "air_source_heat_pump"], "reference": "solar_pv+ashp:eco4"}]) # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Solar PV + Electric Boiler # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (_find_measure(input_measures, "solar_pv") and _find_measure(input_measures, "electric_boiler")): - funding_paths.append([{"AND": ["solar_pv", "electric_boiler"]}]) + funding_paths.append([{"AND": ["solar_pv", "electric_boiler"], "reference": "solar_pv+electric_boiler:eco4"}]) # We've actually covered all possible options where solar PV can be included in a funded package, so where # solar PV is not in a reference, we can exclude it @@ -553,22 +555,29 @@ def _make_generic_eco4_funding_paths(p, input_measures, funding_paths, remaining "air_source_heat_pump": "ashp" } for heating_upgrade in ["boiler_upgrade", "high_heat_retention_storage_heater", "air_source_heat_pump"]: - if _find_measure(input_measures, ""): + if _find_measure(input_measures, heating_upgrade): # We check if we have any remaining insulation measures to be applied to the property if remaining_insulation_type: hhrsh_template = [ - {"AND": [heating_upgrade], "reference": measure_references[heating_upgrade]} + {"AND": [heating_upgrade], "reference": None} ] hhrsh_paths = [] for insulation_measure in remaining_insulation_type: new_hhrsh_path = deepcopy(hhrsh_template) new_hhrsh_path[0]["AND"].append(insulation_measure) + # Make a specific reference for this path + new_hhrsh_path[0]["reference"] = ( + measure_references[heating_upgrade] + "+" + insulation_measure + ":eco4" + ) hhrsh_paths.append(new_hhrsh_path) funding_paths.extend(hhrsh_paths) else: # If we have no insulation measures, we just add the HHRSH path - funding_paths.append([{"AND": [measure_references[heating_upgrade]]}]) + funding_paths.append( + [{"AND": [heating_upgrade], + "reference": measure_references[heating_upgrade] + ":eco4"}] + ) return funding_paths From aa0c4fd3e9db8bfd32be5f1ed8f3c61681412dfd Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Aug 2025 21:49:48 +0100 Subject: [PATCH 32/73] Debugging references in making funding paths --- recommendations/tests/test_optimisers.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index b4c739d5..6cb4a7ff 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -502,7 +502,7 @@ def _make_generic_eco4_funding_paths(p, input_measures, funding_paths, remaining heating_control_description=p.main_heating_controls["clean_description"] ) - if has_eligible_heating_system: + if has_eligible_heating_system and _find_measure(input_measures, "solar_pv"): single_solar_template = [{"AND": ["solar_pv"], "reference": None}] # We now look to pair this with any lingering insulation measures solar_paths = [] @@ -667,14 +667,18 @@ def make_funding_paths(p, input_measures, tenure): # 1) The package must include EWI or IWI if the property is privately owned # We check if we have any EWI or IWI measures available ewi_or_iwi = [{"OR": []}] + reference_measures = [] # If we have EWI we add it in if _find_measure(input_measures, "external_wall_insulation"): ewi_or_iwi[0]["OR"].append("external_wall_insulation") + reference_measures.append("ewi") if _find_measure(input_measures, "internal_wall_insulation"): ewi_or_iwi[0]["OR"].append("internal_wall_insulation") + reference_measures.append("iwi") if ewi_or_iwi[0]["OR"]: + ewi_or_iwi[0]["reference"] = "+".join(reference_measures) + ":eco4" funding_paths.append(ewi_or_iwi) funding_paths = _make_generic_eco4_funding_paths( From f9f991c58b5bef475cf382f2fba3d24de1e36525 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Aug 2025 22:04:23 +0100 Subject: [PATCH 33/73] debugging funding paths --- recommendations/tests/test_optimisers.py | 69 +++++++++++------------- 1 file changed, 31 insertions(+), 38 deletions(-) diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index 6cb4a7ff..a875eb22 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -517,29 +517,29 @@ def _make_generic_eco4_funding_paths(p, input_measures, funding_paths, remaining funding_paths.extend(solar_paths) else: # If we have no insulation measures, we just add the solar PV path - funding_paths.append(single_solar_template) + funding_paths.append([{"AND": ["solar_pv"], "reference": "solar_pv:eco4"}]) + # For each of these, because there is a heating measure begin implemented, we check for minimum insulation + # requirements. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - # Solar PV + HHRSH + # Solar PV + Heating Upgrade combos # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - if (_find_measure(input_measures, "solar_pv") and - _find_measure(input_measures, "high_heat_retention_storage_heater")): - funding_paths.append( - [{"AND": ["solar_pv", "high_heat_retention_storage_heater"], "reference": "solar_pv+hhrsh:eco4"}] - ) - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - # Solar PV + ASHP - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - if (_find_measure(input_measures, "solar_pv") and - _find_measure(input_measures, "air_source_heat_pump")): - funding_paths.append([{"AND": ["solar_pv", "air_source_heat_pump"], "reference": "solar_pv+ashp:eco4"}]) - - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - # Solar PV + Electric Boiler - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - if (_find_measure(input_measures, "solar_pv") and - _find_measure(input_measures, "electric_boiler")): - funding_paths.append([{"AND": ["solar_pv", "electric_boiler"], "reference": "solar_pv+electric_boiler:eco4"}]) + # We don't include electric boilers as they are not eligible for ECO4 funding + solar_heating_combos = [ + ("high_heat_retention_storage_heater", "solar_pv+hhrsh:eco4"), + ("air_source_heat_pump", "solar_pv+ashp:eco4"), + ] + if _find_measure(input_measures, "solar_pv"): + for heat_type, ref in solar_heating_combos: + if _find_measure(input_measures, heat_type): + if remaining_insulation_type: + for insulation_measure in remaining_insulation_type: + funding_paths.append( + [{"AND": ["solar_pv", heat_type, insulation_measure], + "reference": f"{ref[:-5]}+{insulation_measure}:eco4"}] # keeps naming consistent + ) + else: + funding_paths.append([{"AND": ["solar_pv", heat_type], "reference": ref}]) # We've actually covered all possible options where solar PV can be included in a funded package, so where # solar PV is not in a reference, we can exclude it @@ -556,27 +556,18 @@ def _make_generic_eco4_funding_paths(p, input_measures, funding_paths, remaining } for heating_upgrade in ["boiler_upgrade", "high_heat_retention_storage_heater", "air_source_heat_pump"]: if _find_measure(input_measures, heating_upgrade): - # We check if we have any remaining insulation measures to be applied to the property if remaining_insulation_type: - hhrsh_template = [ - {"AND": [heating_upgrade], "reference": None} - ] - hhrsh_paths = [] for insulation_measure in remaining_insulation_type: - new_hhrsh_path = deepcopy(hhrsh_template) - new_hhrsh_path[0]["AND"].append(insulation_measure) - # Make a specific reference for this path - new_hhrsh_path[0]["reference"] = ( - measure_references[heating_upgrade] + "+" + insulation_measure + ":eco4" - ) - hhrsh_paths.append(new_hhrsh_path) - - funding_paths.extend(hhrsh_paths) + path = [ + { + "AND": [heating_upgrade, insulation_measure], + "reference": f"{measure_references[heating_upgrade]}+{insulation_measure}:eco4" + } + ] + funding_paths.append(path) else: - # If we have no insulation measures, we just add the HHRSH path funding_paths.append( - [{"AND": [heating_upgrade], - "reference": measure_references[heating_upgrade] + ":eco4"}] + [{"AND": [heating_upgrade], "reference": f"{measure_references[heating_upgrade]}:eco4"}] ) return funding_paths @@ -635,6 +626,8 @@ def make_funding_paths(p, input_measures, tenure): if _find_measure(input_measures, insulation_measure): remaining_insulation_type.append(insulation_measure) + remaining_insulation_type = list(set(remaining_insulation_type)) + funding_paths = [] if tenure == "Social" and p.data["current-energy-rating"] == "D": @@ -664,7 +657,7 @@ def make_funding_paths(p, input_measures, tenure): # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # EWI or IWI # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - # 1) The package must include EWI or IWI if the property is privately owned + # 1) The package must include EWI or IWI if the property is private rental sector # We check if we have any EWI or IWI measures available ewi_or_iwi = [{"OR": []}] reference_measures = [] From bd3795eeadbfcc315cb7cd78e6b250be022aa6dc Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Aug 2025 22:48:54 +0100 Subject: [PATCH 34/73] optimisation process wip --- recommendations/tests/test_optimisers.py | 420 +++++++++++++---------- 1 file changed, 233 insertions(+), 187 deletions(-) diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index a875eb22..bc16eb4a 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -692,79 +692,6 @@ def make_funding_paths(p, input_measures, tenure): # ---- main wrapper around your optimiser ---------------------------------- -def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, social=False): - """ - run_optimizer(sub_measures, budget, target_gain) -> (picked_options, sub_cost, sub_gain) - """ - # TODO: Should be EPC D only that we require only innovation measures - # Social housing: filter to innovation-only before doing anything else - # if social: - # filtered = [] - # for group in input_measures: - # opts = [o for o in group if o.get("is_innovation", False)] - # if opts: - # filtered.append(opts) - # input_measures = filtered - - # Always include a "no funding path" baseline (empty fixed) - all_paths = FUNDING_PATHS + [[]] - - solutions = [] - for path_spec in all_paths: - # 1) expand fixed selections for this path - fixed_selections = expand_funding_path(input_measures, path_spec) if path_spec else [[]] - if not fixed_selections: - continue - - for fixed in fixed_selections: - - # 2) min insulation if heating is already in fixed - fixed_variants = expand_min_insulation_if_needed(input_measures, fixed) - if not fixed_variants: - continue - - for fixed2 in fixed_variants: - # 3) compute fixed cost/gain, and strip those groups from subproblem - fixed_items = [opt for (_, _, opt) in fixed2] - fixed_ids = [opt['id'] for opt in fixed_items] - fixed_cost, fixed_gain = sum_cost_gain(fixed_items) - fixed_groups = {gi for (gi, _, _) in fixed2} - - sub_measures = strip_groups(input_measures, fixed_groups) - - # 4) run your existing optimiser for the remaining groups - # If we have a budget, we need to ensure the subproblem respects it so we remove the fixed cost (which - # may already be over budget) and the fixed gain (which may not be achievable) - picked, sub_cost, sub_gain = run_optimizer( - sub_measures, - budget - fixed_cost if budget is not None else None, - sub_target_gain=target_gain - fixed_gain if target_gain is not None else None - ) - - if picked is None: - continue - - total_cost = fixed_cost + sub_cost - total_gain = fixed_gain + sub_gain - total_picks = fixed_items + picked - - # you can change the objective here; I’ll use max gain under budget - if budget is not None and total_cost > budget + 1e-9: - continue - - solutions.append({ - "fixed_ids": fixed_ids, - "items": total_picks, - "total_cost": total_cost, - "total_gain": total_gain, - "path": path_spec, - }) - - solutions = pd.DataFrame(solutions) - - return solutions - - # Run inputs: target_gain = 18.5 @@ -772,25 +699,108 @@ from itertools import product import math +def violates_min_insulation(fixed): + """Return True if fixed selection includes a heating/PV measure but no required insulation.""" + picked_types = {opt["type"] for (_, _, opt) in fixed} + + def has_any(substrs): + return any(any(s in t for s in substrs) for t in picked_types) + + # heating (incl. PV) flags + is_heating = has_any([ + "air_source_heat_pump", + "high_heat_retention_storage_heater", + "boiler_upgrade", + "electric_boiler", + "time_temperature_zone_control", + "secondary_heating", + "solar_pv", # PV treated as heating for MIR + ]) + + # MIR insulation (the ones you’re using in path construction) + has_insul = has_any([ + "external_wall_insulation", + "internal_wall_insulation", + "cavity_wall_insulation", + "extension_cavity_wall_insulation", + "loft_insulation", + "flat_roof_insulation", + "room_roof_insulation", + ]) + + return is_heating and not has_insul + + +def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, social=False): + """ + run_optimizer(sub_measures, budget, target_gain) -> (picked_options, sub_cost, sub_gain) + """ + + funding_paths = make_funding_paths(p, input_measures, body.housing_type) + + solutions = [] + for path_spec in funding_paths: + # TODO: If the path spec is GBIS, need to handle this differently. There is no funding associated + # with the other measures we're optimising. Instead, we fix the GBIS measure (which is funded) + # and then run the optimiser on the remaining measures which are NOT funded. The key change is all + # measures in input_measures right now have costs adjusted with innovation uplift, which we don't want + # to apply to the GBIS measures. So we need to strip the innovation uplift from the GBIS measures + # 1) expand fixed selections for this path + fixed_selections = expand_funding_path(input_measures, path_spec) if path_spec else [[]] + if not fixed_selections: + continue + + for fixed in fixed_selections: + + if violates_min_insulation(fixed): + # We log an error and skip this - we should not see any errors but we can probably get a reasonable + # outcome for the end user without a complete termination of the process + logger.error("Skipping fixed selection due to minimum insulation violation: %s", fixed) + continue + + # 3) compute fixed cost/gain, and strip those groups from subproblem + fixed_items = [opt for (_, _, opt) in fixed] + fixed_ids = [opt['id'] for opt in fixed_items] + fixed_cost, fixed_gain = sum_cost_gain(fixed_items) + fixed_groups = {gi for (gi, _, _) in fixed} + + sub_measures = [grp for gi, grp in enumerate(input_measures) if gi not in fixed_groups] + + # 4) run your existing optimiser for the remaining groups + # If we have a budget, we need to ensure the subproblem respects it so we remove the fixed cost (which + # may already be over budget) and the fixed gain (which may not be achievable) + picked, sub_cost, sub_gain = run_optimizer( + sub_measures, + budget - fixed_cost if budget is not None else None, + sub_target_gain=target_gain - fixed_gain if target_gain is not None else None + ) + + if picked is None: + continue + + total_cost = fixed_cost + sub_cost + total_gain = fixed_gain + sub_gain + total_picks = fixed_items + picked + + # you can change the objective here; I’ll use max gain under budget + if budget is not None and total_cost > budget + 1e-9: + continue + + solutions.append({ + "fixed_ids": fixed_ids, + "items": total_picks, + "total_cost": total_cost, + "total_gain": total_gain, + "path": path_spec, + }) + + solutions = pd.DataFrame(solutions) + + return solutions + + # ---- helpers ------------------------------------------------------------- -def split_types(t): - # supports "external_wall_insulation+mechanical_ventilation" - return set(part.strip() for part in str(t).split('+')) - - -def group_has_type(group, want): - # group is a list[option], all same 'type' pattern - return any(want in split_types(opt['type']) for opt in group) - - -def find_groups(input_measures, type_name): - return [(gi, g) for gi, g in enumerate(input_measures) if group_has_type(g, type_name)] - - -def strip_groups(input_measures, taken_group_indices): - return [g for gi, g in enumerate(input_measures) if gi not in taken_group_indices] - def sum_cost_gain(items): c = sum(float(x['cost']) for x in items) @@ -799,122 +809,158 @@ def sum_cost_gain(items): # ---- candidate expansion ------------------------------------------------- +def type_matches(option_type: str, required: str) -> bool: + # substring match so "external_wall_insulation+mechanical_ventilation" satisfies "external_wall_insulation" + return required in option_type -def iter_or_candidates(input_measures, type_set): - # collect all groups that match ANY type in type_set - matching = [(gi, group) for gi, group in enumerate(input_measures) - if any(group_has_type(group, t) for t in type_set)] - if not matching: - return # nothing to yield - # choose ONE option from ANY one of these groups - for gi, group in matching: + +def candidates_for_type(input_measures, required_type): + """ + Return a list of (gi, oi, opt) where opt['type'] contains required_type. + gi = group index, oi = option index inside that group. + """ + cands = [] + for gi, group in enumerate(input_measures): for oi, opt in enumerate(group): - yield {"fixed": [(gi, oi, opt)]} + if type_matches(opt["type"], required_type): + cands.append((gi, oi, opt)) + return cands -def iter_and_candidates(input_measures, type_vec): - # type_vec is like [{"types": {"solar_pv"}}, {"types": {"high_heat_retention_storage_heater"}}] - per_leg = [] - for leg in type_vec: - leg_types = leg["types"] - leg_groups = [(gi, group) for gi, group in enumerate(input_measures) - if any(group_has_type(group, t) for t in leg_types)] - if not leg_groups: - return # this AND path isn’t available in this property; skip - # options for this leg: (gi, oi, opt) - options = [] - for gi, group in leg_groups: - for oi, opt in enumerate(group): - options.append((gi, oi, opt)) - per_leg.append(options) - for combo in product(*per_leg): - yield {"fixed": list(combo)} +def iter_or_candidates(input_measures, types_list): + """ + For OR: pick exactly ONE candidate whose type matches ANY in types_list. + Return a list of dicts: {"fixed": [(gi, oi, opt)]} + """ + union = [] + seen_ids = set() + for t in types_list: + for tup in candidates_for_type(input_measures, t): + # de-dupe by the option id so the same physical option (with multi-type name) isn’t repeated + if tup[2]["id"] not in seen_ids: + seen_ids.add(tup[2]["id"]) + union.append(tup) + return [{"fixed": [t]} for t in union] + + +def iter_and_candidates(input_measures, types_list): + """ + For AND: we must cover ALL required types. + We allow a single option to satisfy multiple types. + We build a simple product but collapse duplicates by (gi, oi). + """ + # Build candidate pools per required type + pools = [candidates_for_type(input_measures, t) for t in types_list] + if any(len(pool) == 0 for pool in pools): + return [] # impossible to satisfy AND + + # Start with one empty selection; accumulate per pool + selections = [[]] # each selection is a list of (gi, oi, opt) + for pool in pools: + new_selections = [] + for sel in selections: + for cand in pool: + # Try adding cand; collapse duplicates by (gi,oi) + gi, oi, opt = cand + replaced = False + conflict = False + merged = [] + for (sgi, soi, sopt) in sel: + if (sgi, soi) == (gi, oi): + # same exact option already in selection (satisfies another required type) – keep one + replaced = True + # keep the existing one (identical) + merged.append((sgi, soi, sopt)) + else: + merged.append((sgi, soi, sopt)) + if not replaced: + merged.append(cand) + if not conflict: + new_selections.append(merged) + selections = new_selections + if not selections: + return [] + + # After accumulation, we may still have duplicate groups with different options (conflict). Drop those. + cleaned = [] + for sel in selections: + seen_by_group = {} + ok = True + for gi, oi, opt in sel: + if gi in seen_by_group and seen_by_group[gi] != oi: + # same group, different option -> conflict for AND; invalid selection + ok = False + break + seen_by_group[gi] = oi + if ok: + # ensure stable order and unique by (gi,oi) + uniq = {} + for gi, oi, opt in sel: + uniq[(gi, oi)] = opt + cleaned.append([(gi, oi, opt) for (gi, oi), opt in uniq.items()]) + return [{"fixed": c} for c in cleaned] def expand_funding_path(input_measures, path_spec): - # path_spec is a list of elements; combine all elements (they’re all required) - # Start with one empty selection; then cross-product accumulate - selections = [[]] + """ + path_spec is a list of elements; each element is either: + {"OR": [type1, type2, ...], "reference": "..."} or + {"AND": [type1, type2, ...], "reference": "..."} + We cross-product across elements (all required), and produce selections as lists of (gi, oi, opt). + """ + selections = [[]] # list[list[(gi,oi,opt)]] for elem in path_spec: - new_selections = [] if "OR" in elem: - for cand in iter_or_candidates(input_measures, elem["OR"]["types"]): - for base in selections: - new_selections.append(base + cand["fixed"]) + cands = iter_or_candidates(input_measures, elem["OR"]) elif "AND" in elem: - for cand in iter_and_candidates(input_measures, elem["AND"]): - for base in selections: - new_selections.append(base + cand["fixed"]) + cands = iter_and_candidates(input_measures, elem["AND"]) else: - raise ValueError("unknown path element") + raise ValueError("unknown path element; expected 'OR' or 'AND'") + + if not cands: + return [] + + new_selections = [] + for base in selections: + for cand in cands: + # merge base + cand["fixed"], collapsing duplicate same-option picks + combined = list(base) + # reject if combined picks two different options from the same group + groups_to_oi = {(gi,): oi for gi, oi, _ in combined} # temporary; we’ll refactor below + conflict = False + # simpler: build a dict by group -> (oi, opt), conflict if group exists with different oi + gmap = {gi: (oi, opt) for gi, oi, opt in combined} + for gi, oi, opt in cand["fixed"]: + if gi in gmap: + prev_oi, _ = gmap[gi] + if prev_oi != oi: + conflict = True + break + gmap[gi] = (oi, opt) + if conflict: + continue + # back to list + merged = [(gi, oi, opt) for gi, (oi, opt) in gmap.items()] + new_selections.append(merged) selections = new_selections if not selections: - break - # selections are lists of (gi, oi, opt) - # dedupe by group index (if users set a weird path that hits same group twice) + return [] + + # Final tidy: ensure no duplicate groups with different options (already protected), keep stable ordering deduped = [] for sel in selections: - seen = set() - clean = [] - ok = True + gmap = {} for gi, oi, opt in sel: - if gi in seen: - ok = False - break - seen.add(gi) - clean.append((gi, oi, opt)) - if ok: - deduped.append(clean) + # keep the first occurrence + if gi not in gmap: + gmap[gi] = (oi, opt) + else: + # same group, different oi would have been filtered; if same oi, ignore duplicate + pass + deduped.append([(gi, oi, opt) for gi, (oi, opt) in gmap.items()]) return deduped -# ---- minimum insulation handling ---------------------------------------- - -def expand_min_insulation_if_needed(input_measures, fixed_selection): - # If fixed contains any HEATING_TYPES, we must also include at least one of MIN_INSULATION_OR groups. - fixed_types = set() - fixed_group_idx = {gi for gi, _, _ in fixed_selection} - for _, _, opt in fixed_selection: - fixed_types |= split_types(opt['type']) - - if not (fixed_types & HEATING_TYPES): - # BUT: heating might later be picked by optimiser… If you want to be strict, - # you can also add a *feasibility check* after optimisation and reject combos - # that pick heating without min insulation. For now we enforce only when - # already in fixed set. - return [fixed_selection] - - # Build OR candidates for required insulation, but exclude groups already fixed - or_pool = [] - for alt in MIN_INSULATION_OR: - types = alt - matches = [] - for gi, group in enumerate(input_measures): - if gi in fixed_group_idx: - continue - if any(group_has_type(group, t) for t in types): - for oi, opt in enumerate(group): - matches.append((gi, oi, opt)) - if not matches: - # No feasible insulation to satisfy the rule -> invalidate this branch - return [] - or_pool.append(matches) - - # choose one from any of the alt sets (if you have more than one OR bucket, pick one from at least one; - # simplest: union first OR bucket only — or take the union and pick one) - # Here we’ll take the union across all buckets then pick exactly one. - union = {(gi, oi): (gi, oi, opt) - for matches in or_pool for (gi, oi, opt) in matches}.values() - - expanded = [] - for gi, oi, opt in union: - # avoid duplicating the same group as fixed - if gi in fixed_group_idx: - continue - expanded.append(fixed_selection + [(gi, oi, opt)]) - return expanded - - # ---- tiny utilities ---------------------------------------------------------- def parse_types(t): From 8a3b2fdd6ccc32735351eb409399bcd5647cca34 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Aug 2025 23:01:32 +0100 Subject: [PATCH 35/73] basic optimisation framework working --- recommendations/optimiser/CostOptimiser.py | 5 ++++- recommendations/optimiser/GainOptimiser.py | 7 ++++++- recommendations/tests/test_optimisers.py | 4 ---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/recommendations/optimiser/CostOptimiser.py b/recommendations/optimiser/CostOptimiser.py index 294a6bba..50f4b884 100644 --- a/recommendations/optimiser/CostOptimiser.py +++ b/recommendations/optimiser/CostOptimiser.py @@ -12,7 +12,7 @@ class CostOptimiser: # We add an optional buffer to the minimum gain to allow for slack in the optimisation BUFFER = 0.2 - def __init__(self, components, min_gain): + def __init__(self, components, min_gain, verbose=False): self.components = components self.min_gain = min_gain self.gain_constraint = None @@ -22,6 +22,7 @@ class CostOptimiser: self.solution_cost = None self.solution_gain = None + self.verbose = verbose @classmethod def calculate_sap_gain_with_slack(cls, min_gain: int | float): @@ -42,6 +43,8 @@ class CostOptimiser: def setup(self): # Initialize Model self.m = Model("knapsack") + # Set the verbosity level + self.m.verbose = 1 if self.verbose else 0 # Create variables self.variables = [ diff --git a/recommendations/optimiser/GainOptimiser.py b/recommendations/optimiser/GainOptimiser.py index b11f7e87..7b2e56d2 100644 --- a/recommendations/optimiser/GainOptimiser.py +++ b/recommendations/optimiser/GainOptimiser.py @@ -9,7 +9,7 @@ class GainOptimiser: This class is used to maximise gain, given a constrained cost """ - def __init__(self, components, max_cost, max_gain, allow_slack=True): + def __init__(self, components, max_cost, max_gain, allow_slack=True, verbose=False): """ This function will try and maximise the gain, given a constrained cost. If we specific a max_gain, then the optimisation routine is constained to try not to exceed a maximum increase @@ -23,6 +23,7 @@ class GainOptimiser: :param max_gain: Maximum gain constraint :param allow_slack: If True, allows the model to use slack variables to relax the cost constraint if the model is infeasible. Defaults to True. + :param verbose: If True, enables verbose logging """ self.components = components self.max_cost = max_cost @@ -35,11 +36,15 @@ class GainOptimiser: self.solution_gain = None self.solution_cost = None self.allow_slack = allow_slack + self.verbose = verbose def setup(self): # Initialize Model self.m = Model("knapsack") + # Set the verbosity level + self.m.verbose = 1 if self.verbose else 0 + # Create variables self.variables = [ [self.m.add_var(var_type=BINARY, name=str(component["id"])) for component in group] for group in diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index bc16eb4a..07b42882 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -782,10 +782,6 @@ def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, s total_gain = fixed_gain + sub_gain total_picks = fixed_items + picked - # you can change the objective here; I’ll use max gain under budget - if budget is not None and total_cost > budget + 1e-9: - continue - solutions.append({ "fixed_ids": fixed_ids, "items": total_picks, From f182773b4b3c5c53e7691e57152ac0ccc7debadd Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 12 Aug 2025 23:26:51 +0100 Subject: [PATCH 36/73] handling GBIS in optimisation --- .../optimiser/optimiser_functions.py | 8 +- recommendations/tests/test_optimisers.py | 99 +++++++++++++------ 2 files changed, 73 insertions(+), 34 deletions(-) diff --git a/recommendations/optimiser/optimiser_functions.py b/recommendations/optimiser/optimiser_functions.py index 95309a19..5175c6b6 100644 --- a/recommendations/optimiser/optimiser_functions.py +++ b/recommendations/optimiser/optimiser_functions.py @@ -90,7 +90,10 @@ def prepare_input_measures(property_recommendations, goal, needs_ventilation, fu if rec["measure_type"] in assumptions.measures_needing_ventilation and needs_ventilation else rec["total"] ) - total = 0 if total < 0 else total + + # If the innovation uplift being removed make this negative, we keep the total so we can re-engineer + # the original cost + non_negative_total = 0 if total < 0 else total gain = ( rec[goal_key] + ventilation_recommendation[goal_key] if rec["measure_type"] in assumptions.measures_needing_ventilation and needs_ventilation @@ -105,8 +108,9 @@ def prepare_input_measures(property_recommendations, goal, needs_ventilation, fu # We also include the innovation uplift to_append.append( { - "id": rec["recommendation_id"], "cost": total, "gain": gain, "type": rec_type, + "id": rec["recommendation_id"], "cost": non_negative_total, "gain": gain, "type": rec_type, "innovation_uplift": rec["innovation_uplift"] if funding else 0, + "cost_minus_uplift": total } ) diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index 07b42882..252ad675 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -9,6 +9,9 @@ from recommendations.optimiser.CostOptimiser import CostOptimiser from recommendations.optimiser.GainOptimiser import GainOptimiser from backend.Funding import Funding +# measures we DO NOT treat as fundable in the ECO4 'funded' pass +_ECO4_EXCLUDE_TYPES = {"secondary_heating"} + project_scores_matrix = pd.read_csv("/Users/khalimconn-kowlessar/Downloads/ECO4 Full Project Scores Matrix.csv") partial_project_scores_matrix = pd.read_csv("backend/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv") partial_project_scores_matrix.columns = ['Measure category', 'Measure_Type', 'Pre_Main_Heating_Source', @@ -460,30 +463,6 @@ input_measures = optimiser_functions.prepare_input_measures( measures_to_optimise, "Increasing EPC", needs_ventilation, True ) -# ---- rule definitions you can tweak ------------------------------------- - -HEATING_TYPES = {"air_source_heat_pump", "high_heat_retention_storage_heater", "solar_pv"} -MIN_INSULATION_OR = [{"loft_insulation"}, {"cavity_wall_insulation"}] # extend if needed - -# “Funding paths”: each is a list of elements; each element is: -# - {"OR": {"types": {..}}} means choose one option from any group whose type is in that set -# - {"AND": [{"types": {..}}, {"types": {..}}]} means choose one from each of those -FUNDING_PATHS = [ - # Path A: IWI OR EWI - [ - { - "OR": { - "types": {"internal_wall_insulation", "external_wall_insulation"} - } - } - ], - # Path B: Solar PV AND HHRSH - [{"AND": [{"types": {"solar_pv"}}, {"types": {"high_heat_retention_storage_heater"}}]}], - # Path C: ASHP alone (may still trigger min insulation rule below) - [{"OR": {"types": {"air_source_heat_pump"}}}], - # -] - def _find_measure(input_measures, measure_type): for measures in input_measures: @@ -695,8 +674,56 @@ def make_funding_paths(p, input_measures, tenure): # Run inputs: target_gain = 18.5 -from itertools import product -import math + +def _path_scheme(path_spec): + """ + Infer scheme from any 'reference' tag in the path. + Defaults to 'eco4' if not specified. + """ + for elem in path_spec or []: + ref = elem.get("reference") + if isinstance(ref, str): + if ref.endswith(":gbis"): + return "gbis" + if ref.endswith(":eco4"): + return "eco4" + return "eco4" + + +def _filter_fundable_subgroups(groups, scheme): + """ + Keep only options eligible for the funded pass of the given scheme. + - ECO4: drop excluded types (e.g., secondary_heating) + - GBIS: funded pass is the GBIS fixed measure only, so return empty sub-groups + """ + if scheme == "gbis": + return [] # we won't optimise 'the rest' under GBIS here + + # ECO4 case + filtered = [] + for grp in groups: + kept = [opt for opt in grp + if not any(ex in opt["type"] for ex in _ECO4_EXCLUDE_TYPES)] + if kept: + filtered.append(kept) + return filtered + + +def _sum_cost_gain_with_scheme(items, scheme): + """ + Sum cost/gain of fixed items, adjusting for scheme rules. + - GBIS: strip innovation uplift from GBIS-funded fixed measures only. + """ + total_cost = 0.0 + total_gain = 0.0 + for it in items: + cost = float(it["cost"]) + if scheme == "gbis": + # innovation uplifts are not paid under GBIS + cost -= float(it.get("innovation_uplift", 0.0)) + total_cost += cost + total_gain += float(it["gain"]) + return total_cost, total_gain def violates_min_insulation(fixed): @@ -740,11 +767,6 @@ def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, s solutions = [] for path_spec in funding_paths: - # TODO: If the path spec is GBIS, need to handle this differently. There is no funding associated - # with the other measures we're optimising. Instead, we fix the GBIS measure (which is funded) - # and then run the optimiser on the remaining measures which are NOT funded. The key change is all - # measures in input_measures right now have costs adjusted with innovation uplift, which we don't want - # to apply to the GBIS measures. So we need to strip the innovation uplift from the GBIS measures # 1) expand fixed selections for this path fixed_selections = expand_funding_path(input_measures, path_spec) if path_spec else [[]] if not fixed_selections: @@ -758,13 +780,26 @@ def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, s logger.error("Skipping fixed selection due to minimum insulation violation: %s", fixed) continue + scheme = _path_scheme(path_spec) + # 3) compute fixed cost/gain, and strip those groups from subproblem fixed_items = [opt for (_, _, opt) in fixed] fixed_ids = [opt['id'] for opt in fixed_items] fixed_cost, fixed_gain = sum_cost_gain(fixed_items) fixed_groups = {gi for (gi, _, _) in fixed} - sub_measures = [grp for gi, grp in enumerate(input_measures) if gi not in fixed_groups] + sub_measures = deepcopy([grp for gi, grp in enumerate(input_measures) if gi not in fixed_groups]) + + if scheme == "gbis": + # Then for the sub-measures, we need to strip the innovation uplift from the GBIS fixed measures. We + # do this by adding innovation back onto the cost + for grp in sub_measures: + for opt in grp: + opt["cost"] = opt["cost_minus_uplift"] + opt.get("innovation_uplift", 0.0) + + if scheme == "eco4": + # Need to strip out any measure types that are not eligible for ECO4 funding (e.g. secondary heating) + raise ValueError() # 4) run your existing optimiser for the remaining groups # If we have a budget, we need to ensure the subproblem respects it so we remove the fixed cost (which From 27f3f136c4760cfd0fac854296d88008ebb12213 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 13 Aug 2025 11:20:38 +0100 Subject: [PATCH 37/73] fabric measures for ECO --- backend/app/plan/schemas.py | 22 +++++--- recommendations/tests/test_optimisers.py | 64 ++++++++++++++++++++++-- 2 files changed, 75 insertions(+), 11 deletions(-) diff --git a/backend/app/plan/schemas.py b/backend/app/plan/schemas.py index 36d847eb..5b59b699 100644 --- a/backend/app/plan/schemas.py +++ b/backend/app/plan/schemas.py @@ -11,13 +11,23 @@ TYPICAL_MEASURE_TYPES = [ WALL_INSULATION_MEASURES = ["internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation"] ROOF_INSULATION_MEASURES = ["loft_insulation", "flat_roof_insulation", "room_roof_insulation"] -SPECIFIC_MEASURES = WALL_INSULATION_MEASURES + ROOF_INSULATION_MEASURES + [ - "suspended_floor_insulation", "solid_floor_insulation", - "boiler_upgrade", "high_heat_retention_storage_heater", "air_source_heat_pump", - "secondary_heating", "solar_pv", "double_glazing", "secondary_glazing", - "ventilation", "low_energy_lighting", "fireplace", "hot_water_tank_insulation", - "cylinder_thermostat" +# Both all and roof insulaiton measures are eligible for ECO4. These are the remaining fabric and heating measures +# This is based on th measures we have recommendations for +ECO4_ELIGIBILE_FABRIC_MEASURES = [ + "suspended_floor_insulation", "solid_floor_insulation", "double_glazing", "secondary_glazing" ] +ECO4_ELIGIBLE_HEATING_MEASURES = [ + "boiler_upgrade", "high_heat_retention_storage_heater", "air_source_heat_pump", "solar_pv" +] + +SPECIFIC_MEASURES = ( + WALL_INSULATION_MEASURES + ROOF_INSULATION_MEASURES + ECO4_ELIGIBILE_FABRIC_MEASURES + + ECO4_ELIGIBLE_HEATING_MEASURES + [ + "secondary_heating" "ventilation", "low_energy_lighting", "fireplace", + "hot_water_tank_insulation", + "cylinder_thermostat" + ] +) INSULATION_MEASURES = [ "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index 252ad675..b6e9f5b6 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -5,6 +5,9 @@ from numpy import nan import datetime from copy import deepcopy +from app.plan.schemas import ( + WALL_INSULATION_MEASURES, ROOF_INSULATION_MEASURES, ECO4_ELIGIBILE_FABRIC_MEASURES, ECO4_ELIGIBLE_HEATING_MEASURES +) from recommendations.optimiser.CostOptimiser import CostOptimiser from recommendations.optimiser.GainOptimiser import GainOptimiser from backend.Funding import Funding @@ -472,7 +475,7 @@ def _find_measure(input_measures, measure_type): return False -def _make_generic_eco4_funding_paths(p, input_measures, funding_paths, remaining_insulation_type): +def _make_solar_heating_funding_paths(p, input_measures, funding_paths, remaining_insulation_type): # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Solar PV with existing eligible heating system # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -624,7 +627,7 @@ def make_funding_paths(p, input_measures, tenure): ): input_gbis_measures_innovation.append([measure]) - funding_paths = _make_generic_eco4_funding_paths( + funding_paths = _make_solar_heating_funding_paths( p, input_measures_innovation, funding_paths, remaining_insulation_type ) @@ -653,7 +656,7 @@ def make_funding_paths(p, input_measures, tenure): ewi_or_iwi[0]["reference"] = "+".join(reference_measures) + ":eco4" funding_paths.append(ewi_or_iwi) - funding_paths = _make_generic_eco4_funding_paths( + funding_paths = _make_solar_heating_funding_paths( p, input_measures, funding_paths, remaining_insulation_type ) @@ -758,6 +761,24 @@ def violates_min_insulation(fixed): return is_heating and not has_insul +# Treat "type" like "external_wall_insulation+mechanical_ventilation" → "external_wall_insulation" +def _base_type(s: str) -> str: + return s.split("+", 1)[0] + + +def _filter_measures_by_types(input_measures, allowed_types): + """ + Keep only groups that have ≥1 allowed option; inside each group keep only allowed options. + """ + allowed_set = set(allowed_types) + filtered = [] + for group in input_measures: + kept_opts = [opt for opt in group if _base_type(opt["type"]) in allowed_set] + if kept_opts: + filtered.append(kept_opts) + return filtered + + def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, social=False): """ run_optimizer(sub_measures, budget, target_gain) -> (picked_options, sub_cost, sub_gain) @@ -765,8 +786,40 @@ def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, s funding_paths = make_funding_paths(p, input_measures, body.housing_type) + # We now produce a fabric only path for ECO4 + # We add in generic insulation funding paths (where there is no fixed measure) + # Heating controls are only eligible if installed as part of a heating upgrade and so we do not include them + # here + allowed_types = WALL_INSULATION_MEASURES + ROOF_INSULATION_MEASURES + ECO4_ELIGIBILE_FABRIC_MEASURES + funding_paths = [{'AND': [], 'reference': 'fabric-only:eco4'}] + funding_paths + solutions = [] for path_spec in funding_paths: + + if path_spec["reference"] == "fabric-only:eco4": + sub_measures = _filter_measures_by_types(input_measures, allowed_types) + if not sub_measures: + continue + + picked, sub_cost, sub_gain = run_optimizer( + sub_measures, + budget=budget, # no fixed items; budget unchanged + sub_target_gain=target_gain + ) + + if picked is None: + continue + + solutions.append( + { + "fixed_ids": [], + "items": picked, + "total_cost": sub_cost, + "total_gain": sub_gain, + "path": path_spec, + } + ) + # 1) expand fixed selections for this path fixed_selections = expand_funding_path(input_measures, path_spec) if path_spec else [[]] if not fixed_selections: @@ -1031,8 +1084,9 @@ def run_optimizer(input_measures, budget=None, sub_target_gain=None, allow_slack else: if sub_target_gain is None: raise ValueError("Either budget or target_gain must be provided.") - opt = CostOptimiser(input_measures, min_gain=sub_target_gain) + opt = CostOptimiser(sub_measures, min_gain=sub_target_gain) opt.setup() opt.solve() - return opt.solution, opt.solution_cost, opt.solution_gain + cost = sum([x["cost"] for x in opt.solution]) + return opt.solution, cost, opt.solution_gain From a5cd20c68193ce034e3818fb760554c9f9dbd629 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 13 Aug 2025 11:27:25 +0100 Subject: [PATCH 38/73] implemented fabric only eco4 path --- recommendations/tests/test_optimisers.py | 1 + 1 file changed, 1 insertion(+) diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index b6e9f5b6..efd597f9 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -819,6 +819,7 @@ def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, s "path": path_spec, } ) + continue # 1) expand fixed selections for this path fixed_selections = expand_funding_path(input_measures, path_spec) if path_spec else [[]] From b73525e5717a2e1b6581530e5a05d0f573b57eac Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 13 Aug 2025 11:31:48 +0100 Subject: [PATCH 39/73] fixed bug in fabric only eco4 --- recommendations/tests/test_optimisers.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index efd597f9..d1d1b55f 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -791,12 +791,13 @@ def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, s # Heating controls are only eligible if installed as part of a heating upgrade and so we do not include them # here allowed_types = WALL_INSULATION_MEASURES + ROOF_INSULATION_MEASURES + ECO4_ELIGIBILE_FABRIC_MEASURES - funding_paths = [{'AND': [], 'reference': 'fabric-only:eco4'}] + funding_paths + funding_paths = [{'reference': 'fabric-only:eco4'}] + funding_paths solutions = [] for path_spec in funding_paths: - if path_spec["reference"] == "fabric-only:eco4": + # ECO4 fabric only path = special case + if isinstance(path_spec, dict) and path_spec.get("reference") == "fabric-only:eco4": sub_measures = _filter_measures_by_types(input_measures, allowed_types) if not sub_measures: continue @@ -881,6 +882,9 @@ def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, s solutions = pd.DataFrame(solutions) + # Given the scheme, we now check if the packages are eligible. If they *are* eligible, but they don't meet the + # final upgrade target, we then look to perform a final optimisation pass to meet the target gain. + return solutions From 06e82044040ed8e2377c6d72ca430a07f39a5a7a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 13 Aug 2025 11:42:42 +0100 Subject: [PATCH 40/73] added upgrade eligibility check for optimisation --- recommendations/tests/test_optimisers.py | 25 ++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index d1d1b55f..825d28c0 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -779,12 +779,24 @@ def _filter_measures_by_types(input_measures, allowed_types): return filtered -def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, social=False): +def _is_eligible_funding_package(scheme, starting_sap, total_gain): + if scheme == "eco4": + # We check if we meet the upgrade requirements + # If the property is an E or above, we need to upgrade to a C or above + if starting_sap >= 39: # ie. EPC C or above + return starting_sap + total_gain >= 69 + + if scheme == "gbis": + # GBIS is a fixed measure only, so we don't check the gain + return True + + +def optimise_with_funding_paths(p, input_measures, housing_type, budget=None, target_gain=None): """ run_optimizer(sub_measures, budget, target_gain) -> (picked_options, sub_cost, sub_gain) """ - funding_paths = make_funding_paths(p, input_measures, body.housing_type) + funding_paths = make_funding_paths(p, input_measures, housing_type) # We now produce a fabric only path for ECO4 # We add in generic insulation funding paths (where there is no fixed measure) @@ -811,6 +823,8 @@ def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, s if picked is None: continue + scheme = _path_scheme([path_spec]) + solutions.append( { "fixed_ids": [], @@ -818,8 +832,11 @@ def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, s "total_cost": sub_cost, "total_gain": sub_gain, "path": path_spec, + "scheme": scheme, + "is_eligible": _is_eligible_funding_package(scheme, p.data["current-energy-efficiency"], sub_gain) } ) + continue # 1) expand fixed selections for this path @@ -872,12 +889,16 @@ def optimise_with_funding_paths(input_measures, budget=None, target_gain=None, s total_gain = fixed_gain + sub_gain total_picks = fixed_items + picked + scheme = _path_scheme(path_spec) + solutions.append({ "fixed_ids": fixed_ids, "items": total_picks, "total_cost": total_cost, "total_gain": total_gain, "path": path_spec, + "scheme": scheme, + "is_eligible": _is_eligible_funding_package(scheme, p.data["current-energy-efficiency"], sub_gain) }) solutions = pd.DataFrame(solutions) From 213c0f560051aa6156c65de851efe026d706b6c1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 13 Aug 2025 12:12:33 +0100 Subject: [PATCH 41/73] started looking at the case where the solution produces an eligible funded sub-package but the total package doesn't meet the overall gain so we'll need to look at privately funding any additional measures --- recommendations/tests/test_optimisers.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index 825d28c0..9329b383 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -905,6 +905,11 @@ def optimise_with_funding_paths(p, input_measures, housing_type, budget=None, ta # Given the scheme, we now check if the packages are eligible. If they *are* eligible, but they don't meet the # final upgrade target, we then look to perform a final optimisation pass to meet the target gain. + solutions["meets_upgrade_target"] = solutions["total_gain"] >= target_gain + + # If we have packages that are fundable, but do not meet the upgrade target, we can run a final optimisation pass + if not solutions[solutions["is_eligible"] & ~solutions["meets_upgrade_target"]].empty: + raise NotImplementedError("Implement me") return solutions From 50de86e37983d660f73681641e4d5b42bf4c52d6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 13 Aug 2025 14:10:37 +0100 Subject: [PATCH 42/73] implemented unfunded route --- recommendations/tests/test_optimisers.py | 125 +++++++++++++++++++---- 1 file changed, 107 insertions(+), 18 deletions(-) diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index 9329b383..2e8186dd 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -475,7 +475,7 @@ def _find_measure(input_measures, measure_type): return False -def _make_solar_heating_funding_paths(p, input_measures, funding_paths, remaining_insulation_type): +def _make_solar_heating_funding_paths(p, input_measures, funding_paths, remaining_insulation_type, housing_type): # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Solar PV with existing eligible heating system # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -531,12 +531,20 @@ def _make_solar_heating_funding_paths(p, input_measures, funding_paths, remainin # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Must have an existing eligible heating system + # For private, HHRSH alone, or a boiler upgrade is NOT eligible for ECO4 funding. Boiler upgrade also doesn't + # count as an eligible heating system + if housing_type == "Private": + single_heating_measures = ["air_source_heat_pump"] + else: + single_heating_measures = [ + "boiler_upgrade", "high_heat_retention_storage_heater", "air_source_heat_pump" + ] measure_references = { "boiler_upgrade": "boiler_upgrade", "high_heat_retention_storage_heater": "hhrsh", "air_source_heat_pump": "ashp" } - for heating_upgrade in ["boiler_upgrade", "high_heat_retention_storage_heater", "air_source_heat_pump"]: + for heating_upgrade in single_heating_measures: if _find_measure(input_measures, heating_upgrade): if remaining_insulation_type: for insulation_measure in remaining_insulation_type: @@ -575,7 +583,7 @@ def _make_generic_gbis_funding_paths(input_gbis_measures, funding_paths): return funding_paths + gbis_funding_paths -def make_funding_paths(p, input_measures, tenure): +def make_funding_paths(p, input_measures, housing_type): """ This function generates funding paths based on the input measures and the tenure of the property. It checks for the presence of specific measures and creates paths that include necessary insulation measures @@ -584,7 +592,7 @@ def make_funding_paths(p, input_measures, tenure): Remaining measures that are not fixed as part of the package are then optimised :param p: The property object containing details about the property, including main heating and controls. :param input_measures: - :param tenure: + :param housing_type: :return: """ # We handle the case of minimum insulation requirements. Whenever we have a heating system recommendation, @@ -612,7 +620,7 @@ def make_funding_paths(p, input_measures, tenure): funding_paths = [] - if tenure == "Social" and p.data["current-energy-rating"] == "D": + if housing_type == "Social" and p.data["current-energy-rating"] == "D": # If the property is currently EPC D, we can only include innovation measures or measures to meet the # minimum insulation requirements input_measures_innovation = [] @@ -628,14 +636,14 @@ def make_funding_paths(p, input_measures, tenure): input_gbis_measures_innovation.append([measure]) funding_paths = _make_solar_heating_funding_paths( - p, input_measures_innovation, funding_paths, remaining_insulation_type + p, input_measures_innovation, funding_paths, remaining_insulation_type, housing_type ) # Can only be innovation GBIS measures funding_paths = _make_generic_gbis_funding_paths(input_gbis_measures_innovation, funding_paths) - return funding_paths + return funding_paths, input_measures_innovation - if tenure == "Private": + if housing_type == "Private": # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # EWI or IWI # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -657,7 +665,7 @@ def make_funding_paths(p, input_measures, tenure): funding_paths.append(ewi_or_iwi) funding_paths = _make_solar_heating_funding_paths( - p, input_measures, funding_paths, remaining_insulation_type + p, input_measures, funding_paths, remaining_insulation_type, housing_type ) # If we have any remaining insulation measures, we add them to the funding paths @@ -669,7 +677,7 @@ def make_funding_paths(p, input_measures, tenure): funding_paths = _make_generic_gbis_funding_paths(input_gbis_measures, funding_paths) - return funding_paths + return funding_paths, input_measures # ---- main wrapper around your optimiser ---------------------------------- @@ -791,26 +799,97 @@ def _is_eligible_funding_package(scheme, starting_sap, total_gain): return True +def _prs_solution_ok(items, p): + # items: list of picked option dicts (after optimisation) + # treat "type" possibly like "x+y" -> split and look at base tokens + types = set() + for opt in items: + for t in opt["type"].split("+"): + types.add(t) + + has_solid_wall = ("external_wall_insulation" in types) or ("internal_wall_insulation" in types) + + # renewable set: + has_ashp = ("air_source_heat_pump" in types) # ASHP alone is renewable + has_solar = ("solar_pv" in types) + has_hhrsh = ("high_heat_retention_storage_heater" in types) # only counts *with* solar + + # solar PV qualifies if paired with eligible existing heating + solar_ok_existing = has_solar and funding.check_solar_eligible_heating_system( + p.main_heating["clean_description"], p.main_heating_controls["clean_description"] + ) + + # or paired with ASHP/HHRSH in the same package + solar_ok_with_installed = has_solar and (has_ashp or has_hhrsh) + + renewable_ok = has_ashp or solar_ok_existing or solar_ok_with_installed + + return has_solid_wall or renewable_ok + + +def _ensure_unfunded_costs(groups): + """Make sure each option’s cost is base+uplift (i.e., no funding). + Safe if fields already match; works on a deepcopy. + """ + for grp in groups: + for opt in grp: + base = opt.get("cost_minus_uplift") + upl = opt.get("innovation_uplift", 0.0) + if base is not None: + opt["cost"] = float(base) + float(upl) + # else: assume opt["cost"] already includes uplift + return groups + + def optimise_with_funding_paths(p, input_measures, housing_type, budget=None, target_gain=None): """ run_optimizer(sub_measures, budget, target_gain) -> (picked_options, sub_cost, sub_gain) """ - funding_paths = make_funding_paths(p, input_measures, housing_type) + solutions = [] + + # unfunded - we utilise all measures + unfunded_measures = input_measures.copy() + unfunded_measures = _ensure_unfunded_costs(unfunded_measures) + picked, total_cost, total_gain = run_optimizer( + unfunded_measures, + budget=budget, + sub_target_gain=target_gain + ) + if picked is not None: + solutions.append({ + "fixed_ids": [], + "items": picked, + "total_cost": total_cost, + "total_gain": total_gain, + "path": {"reference": "unfunded:all"}, + "scheme": "none", + "is_eligible": False, # no funding scheme applied + }) + + # This function will filter down on innovation measures if we are social EPC D + funding_paths, optimisation_input_measures = make_funding_paths(p, input_measures, housing_type) # We now produce a fabric only path for ECO4 # We add in generic insulation funding paths (where there is no fixed measure) # Heating controls are only eligible if installed as part of a heating upgrade and so we do not include them # here - allowed_types = WALL_INSULATION_MEASURES + ROOF_INSULATION_MEASURES + ECO4_ELIGIBILE_FABRIC_MEASURES - funding_paths = [{'reference': 'fabric-only:eco4'}] + funding_paths + if housing_type == "Social": + funding_paths = ( + [ + { + 'reference': 'fabric-only:eco4', + "allowed_types": WALL_INSULATION_MEASURES + ROOF_INSULATION_MEASURES + + ECO4_ELIGIBILE_FABRIC_MEASURES + } + ] + funding_paths + ) - solutions = [] for path_spec in funding_paths: # ECO4 fabric only path = special case if isinstance(path_spec, dict) and path_spec.get("reference") == "fabric-only:eco4": - sub_measures = _filter_measures_by_types(input_measures, allowed_types) + sub_measures = _filter_measures_by_types(optimisation_input_measures, path_spec["allowed_types"]) if not sub_measures: continue @@ -840,7 +919,7 @@ def optimise_with_funding_paths(p, input_measures, housing_type, budget=None, ta continue # 1) expand fixed selections for this path - fixed_selections = expand_funding_path(input_measures, path_spec) if path_spec else [[]] + fixed_selections = expand_funding_path(optimisation_input_measures, path_spec) if path_spec else [[]] if not fixed_selections: continue @@ -860,7 +939,9 @@ def optimise_with_funding_paths(p, input_measures, housing_type, budget=None, ta fixed_cost, fixed_gain = sum_cost_gain(fixed_items) fixed_groups = {gi for (gi, _, _) in fixed} - sub_measures = deepcopy([grp for gi, grp in enumerate(input_measures) if gi not in fixed_groups]) + sub_measures = deepcopy( + [grp for gi, grp in enumerate(optimisation_input_measures) if gi not in fixed_groups] + ) if scheme == "gbis": # Then for the sub-measures, we need to strip the innovation uplift from the GBIS fixed measures. We @@ -889,6 +970,14 @@ def optimise_with_funding_paths(p, input_measures, housing_type, budget=None, ta total_gain = fixed_gain + sub_gain total_picks = fixed_items + picked + if housing_type == "Private": + if not _prs_solution_ok(total_picks, p): + logger.error( + "Found a solution that does not meet the PRS requirements: %s - this shouldn't be happening", + total_picks + ) + continue + scheme = _path_scheme(path_spec) solutions.append({ @@ -898,7 +987,7 @@ def optimise_with_funding_paths(p, input_measures, housing_type, budget=None, ta "total_gain": total_gain, "path": path_spec, "scheme": scheme, - "is_eligible": _is_eligible_funding_package(scheme, p.data["current-energy-efficiency"], sub_gain) + "is_eligible": _is_eligible_funding_package(scheme, p.data["current-energy-efficiency"], total_gain) }) solutions = pd.DataFrame(solutions) From dd488f18579a9e2ed72a6f8df31673d1fb4ed037 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 14 Aug 2025 19:49:26 +0100 Subject: [PATCH 43/73] tests working for optimiser --- backend/Funding.py | 3 - .../optimiser/funding_optimiser.py | 767 +++++++ .../tests/test_optimiser_functions.py | 6 +- recommendations/tests/test_optimisers.py | 1805 ++++++----------- 4 files changed, 1399 insertions(+), 1182 deletions(-) create mode 100644 recommendations/optimiser/funding_optimiser.py diff --git a/backend/Funding.py b/backend/Funding.py index d95117c5..4a198bf9 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -715,9 +715,6 @@ class Funding: - all other measures are insulation (can be non-innovation) """ - raise ValueError( - "THis isnt quite right. Band D homes must be pre-insulated OR it should include one of the" - ) # The condition is: # one of the following insulation measures must be installed as part of the # same ECO4 project: diff --git a/recommendations/optimiser/funding_optimiser.py b/recommendations/optimiser/funding_optimiser.py new file mode 100644 index 00000000..65335e02 --- /dev/null +++ b/recommendations/optimiser/funding_optimiser.py @@ -0,0 +1,767 @@ +""" +This script contains a number of functions which are designed to enable optimisation and selection of funding options +for individual properties to improve their energy efficiency + +The main entry point to this is optimise_with_funding_paths + +In the future, we will adapt this into a class-based structure to allow for more flexibility and reusability +""" + +from copy import deepcopy +import pandas as pd + +from backend.app.plan.schemas import ( + WALL_INSULATION_MEASURES, ROOF_INSULATION_MEASURES, ECO4_ELIGIBILE_FABRIC_MEASURES +) +from recommendations.optimiser.CostOptimiser import CostOptimiser +from recommendations.optimiser.GainOptimiser import GainOptimiser +from utils.logger import setup_logger +from backend.Funding import Funding + +logger = setup_logger() + +# measures we DO NOT treat as fundable in the ECO4 'funded' pass +_ECO4_EXCLUDE_TYPES = {"secondary_heating"} + + +def _path_scheme(path_spec): + """ + Infer scheme from any 'reference' tag in the path. + Defaults to 'eco4' if not specified. + """ + for elem in path_spec or []: + ref = elem.get("reference") + if isinstance(ref, str): + if ref.endswith(":gbis"): + return "gbis" + if ref.endswith(":eco4"): + return "eco4" + return "eco4" + + +def _filter_fundable_subgroups(groups, scheme): + """ + Keep only options eligible for the funded pass of the given scheme. + - ECO4: drop excluded types (e.g., secondary_heating) + - GBIS: funded pass is the GBIS fixed measure only, so return empty sub-groups + """ + if scheme == "gbis": + return [] # we won't optimise 'the rest' under GBIS here + + # ECO4 case + filtered = [] + for grp in groups: + kept = [opt for opt in grp + if not any(ex in opt["type"] for ex in _ECO4_EXCLUDE_TYPES)] + if kept: + filtered.append(kept) + return filtered + + +def _sum_cost_gain_with_scheme(items, scheme): + """ + Sum cost/gain of fixed items, adjusting for scheme rules. + - GBIS: strip innovation uplift from GBIS-funded fixed measures only. + """ + total_cost = 0.0 + total_gain = 0.0 + for it in items: + cost = float(it["cost"]) + if scheme == "gbis": + # innovation uplifts are not paid under GBIS + cost -= float(it.get("innovation_uplift", 0.0)) + total_cost += cost + total_gain += float(it["gain"]) + return total_cost, total_gain + + +def violates_min_insulation(fixed): + """Return True if fixed selection includes a heating/PV measure but no required insulation.""" + picked_types = {opt["type"] for (_, _, opt) in fixed} + + def has_any(substrs): + return any(any(s in t for s in substrs) for t in picked_types) + + # heating (incl. PV) flags + is_heating = has_any([ + "air_source_heat_pump", + "high_heat_retention_storage_heater", + "boiler_upgrade", + "electric_boiler", + "time_temperature_zone_control", + "secondary_heating", + "solar_pv", # PV treated as heating for MIR + ]) + + # MIR insulation (the ones you’re using in path construction) + has_insul = has_any([ + "external_wall_insulation", + "internal_wall_insulation", + "cavity_wall_insulation", + "extension_cavity_wall_insulation", + "loft_insulation", + "flat_roof_insulation", + "room_roof_insulation", + ]) + + return is_heating and not has_insul + + +# Treat "type" like "external_wall_insulation+mechanical_ventilation" → "external_wall_insulation" +def _base_type(s: str) -> str: + return s.split("+", 1)[0] + + +def _filter_measures_by_types(input_measures, allowed_types): + """ + Keep only groups that have ≥1 allowed option; inside each group keep only allowed options. + """ + allowed_set = set(allowed_types) + filtered = [] + for group in input_measures: + kept_opts = [opt for opt in group if _base_type(opt["type"]) in allowed_set] + if kept_opts: + filtered.append(kept_opts) + return filtered + + +def _is_eligible_funding_package(scheme, starting_sap, total_gain): + if scheme == "eco4": + # We check if we meet the upgrade requirements + # If the property is an E or above, we need to upgrade to a C or above + if starting_sap >= 39: # ie. EPC C or above + return starting_sap + total_gain >= 69 + + if scheme == "gbis": + # GBIS is a fixed measure only, so we don't check the gain + return True + + +def _prs_solution_ok(items, p, funding): + # items: list of picked option dicts (after optimisation) + # treat "type" possibly like "x+y" -> split and look at base tokens + types = set() + for opt in items: + for t in opt["type"].split("+"): + types.add(t) + + has_solid_wall = ("external_wall_insulation" in types) or ("internal_wall_insulation" in types) + + # renewable set: + has_ashp = ("air_source_heat_pump" in types) # ASHP alone is renewable + has_solar = ("solar_pv" in types) + has_hhrsh = ("high_heat_retention_storage_heater" in types) # only counts *with* solar + + # solar PV qualifies if paired with eligible existing heating + solar_ok_existing = has_solar and funding.check_solar_eligible_heating_system( + p.main_heating["clean_description"], p.main_heating_controls["clean_description"] + ) + + # or paired with ASHP/HHRSH in the same package + solar_ok_with_installed = has_solar and (has_ashp or has_hhrsh) + + renewable_ok = has_ashp or solar_ok_existing or solar_ok_with_installed + + return has_solid_wall or renewable_ok + + +def _ensure_unfunded_costs(groups): + """Make sure each option’s cost is base+uplift (i.e., no funding). + Safe if fields already match; works on a deepcopy. + """ + for grp in groups: + for opt in grp: + base = opt.get("cost_minus_uplift") + upl = opt.get("innovation_uplift", 0.0) + if base is not None: + opt["cost"] = float(base) + float(upl) + # else: assume opt["cost"] already includes uplift + return groups + + +def optimise_with_funding_paths(p, input_measures, housing_type, funding: Funding, budget=None, target_gain=None): + """ + run_optimizer(sub_measures, budget, target_gain) -> (picked_options, sub_cost, sub_gain) + """ + + solutions = [] + + # unfunded - we utilise all measures + unfunded_measures = input_measures.copy() + unfunded_measures = _ensure_unfunded_costs(unfunded_measures) + picked, total_cost, total_gain = run_optimizer( + unfunded_measures, + budget=budget, + sub_target_gain=target_gain + ) + if picked is not None: + solutions.append({ + "fixed_ids": [], + "items": picked, + "total_cost": total_cost, + "total_gain": total_gain, + "path": {"reference": "unfunded:all"}, + "scheme": "none", + "is_eligible": False, # no funding scheme applied + }) + + # This function will filter down on innovation measures if we are social EPC D + funding_paths, optimisation_input_measures = make_funding_paths(p, input_measures, housing_type, funding) + + # We now produce a fabric only path for ECO4 + # We add in generic insulation funding paths (where there is no fixed measure) + # Heating controls are only eligible if installed as part of a heating upgrade and so we do not include them + # here + if housing_type == "Social": + funding_paths = ( + [ + { + 'reference': 'fabric-only:eco4', + "allowed_types": WALL_INSULATION_MEASURES + ROOF_INSULATION_MEASURES + + ECO4_ELIGIBILE_FABRIC_MEASURES + } + ] + funding_paths + ) + + for path_spec in funding_paths: + + # ECO4 fabric only path = special case + if isinstance(path_spec, dict) and path_spec.get("reference") == "fabric-only:eco4": + sub_measures = _filter_measures_by_types(optimisation_input_measures, path_spec["allowed_types"]) + if not sub_measures: + continue + + picked, sub_cost, sub_gain = run_optimizer( + sub_measures, + budget=budget, # no fixed items; budget unchanged + sub_target_gain=target_gain + ) + + if picked is None: + continue + + scheme = _path_scheme([path_spec]) + + solutions.append( + { + "fixed_ids": [], + "items": picked, + "total_cost": sub_cost, + "total_gain": sub_gain, + "path": path_spec, + "scheme": scheme, + "is_eligible": _is_eligible_funding_package(scheme, p.data["current-energy-efficiency"], sub_gain) + } + ) + + continue + + # 1) expand fixed selections for this path + fixed_selections = expand_funding_path(optimisation_input_measures, path_spec) if path_spec else [[]] + if not fixed_selections: + continue + + for fixed in fixed_selections: + + if violates_min_insulation(fixed): + # We log an error and skip this - we should not see any errors but we can probably get a reasonable + # outcome for the end user without a complete termination of the process + logger.error("Skipping fixed selection due to minimum insulation violation: %s", fixed) + continue + + scheme = _path_scheme(path_spec) + + # 3) compute fixed cost/gain, and strip those groups from subproblem + fixed_items = [opt for (_, _, opt) in fixed] + fixed_ids = [opt['id'] for opt in fixed_items] + fixed_cost, fixed_gain = sum_cost_gain(fixed_items) + fixed_groups = {gi for (gi, _, _) in fixed} + + sub_measures = deepcopy( + [grp for gi, grp in enumerate(optimisation_input_measures) if gi not in fixed_groups] + ) + + if scheme == "gbis": + # Then for the sub-measures, we need to strip the innovation uplift from the GBIS fixed measures. We + # do this by adding innovation back onto the cost + for grp in sub_measures: + for opt in grp: + opt["cost"] = opt["cost_minus_uplift"] + opt.get("innovation_uplift", 0.0) + + if scheme == "eco4": + # Need to strip out any measure types that are not eligible for ECO4 funding (e.g. secondary heating) + raise ValueError() + + # 4) run your existing optimiser for the remaining groups + # If we have a budget, we need to ensure the subproblem respects it so we remove the fixed cost (which + # may already be over budget) and the fixed gain (which may not be achievable) + picked, sub_cost, sub_gain = run_optimizer( + sub_measures, + budget - fixed_cost if budget is not None else None, + sub_target_gain=target_gain - fixed_gain if target_gain is not None else None + ) + + if picked is None: + continue + + total_cost = fixed_cost + sub_cost + total_gain = fixed_gain + sub_gain + total_picks = fixed_items + picked + + if housing_type == "Private": + if not _prs_solution_ok(total_picks, p, funding): + logger.error( + "Found a solution that does not meet the PRS requirements: %s - this shouldn't be happening", + total_picks + ) + continue + + scheme = _path_scheme(path_spec) + + solutions.append({ + "fixed_ids": fixed_ids, + "items": total_picks, + "total_cost": total_cost, + "total_gain": total_gain, + "path": path_spec, + "scheme": scheme, + "is_eligible": _is_eligible_funding_package(scheme, p.data["current-energy-efficiency"], total_gain) + }) + + solutions = pd.DataFrame(solutions) + + # Given the scheme, we now check if the packages are eligible. If they *are* eligible, but they don't meet the + # final upgrade target, we then look to perform a final optimisation pass to meet the target gain. + solutions["meets_upgrade_target"] = solutions["total_gain"] >= target_gain + + # If we have packages that are fundable, but do not meet the upgrade target, we can run a final optimisation pass + if not solutions[solutions["is_eligible"] & ~solutions["meets_upgrade_target"]].empty: + raise NotImplementedError("Implement me") + + return solutions + + +# ---- helpers ------------------------------------------------------------- + + +def sum_cost_gain(items): + c = sum(float(x['cost']) for x in items) + g = sum(float(x['gain']) for x in items) + return c, g + + +# ---- candidate expansion ------------------------------------------------- +def type_matches(option_type: str, required: str) -> bool: + # substring match so "external_wall_insulation+mechanical_ventilation" satisfies "external_wall_insulation" + return required in option_type + + +def candidates_for_type(input_measures, required_type): + """ + Return a list of (gi, oi, opt) where opt['type'] contains required_type. + gi = group index, oi = option index inside that group. + """ + cands = [] + for gi, group in enumerate(input_measures): + for oi, opt in enumerate(group): + if type_matches(opt["type"], required_type): + cands.append((gi, oi, opt)) + return cands + + +def iter_or_candidates(input_measures, types_list): + """ + For OR: pick exactly ONE candidate whose type matches ANY in types_list. + Return a list of dicts: {"fixed": [(gi, oi, opt)]} + """ + union = [] + seen_ids = set() + for t in types_list: + for tup in candidates_for_type(input_measures, t): + # de-dupe by the option id so the same physical option (with multi-type name) isn’t repeated + if tup[2]["id"] not in seen_ids: + seen_ids.add(tup[2]["id"]) + union.append(tup) + return [{"fixed": [t]} for t in union] + + +def iter_and_candidates(input_measures, types_list): + """ + For AND: we must cover ALL required types. + We allow a single option to satisfy multiple types. + We build a simple product but collapse duplicates by (gi, oi). + """ + # Build candidate pools per required type + pools = [candidates_for_type(input_measures, t) for t in types_list] + if any(len(pool) == 0 for pool in pools): + return [] # impossible to satisfy AND + + # Start with one empty selection; accumulate per pool + selections = [[]] # each selection is a list of (gi, oi, opt) + for pool in pools: + new_selections = [] + for sel in selections: + for cand in pool: + # Try adding cand; collapse duplicates by (gi,oi) + gi, oi, opt = cand + replaced = False + conflict = False + merged = [] + for (sgi, soi, sopt) in sel: + if (sgi, soi) == (gi, oi): + # same exact option already in selection (satisfies another required type) – keep one + replaced = True + # keep the existing one (identical) + merged.append((sgi, soi, sopt)) + else: + merged.append((sgi, soi, sopt)) + if not replaced: + merged.append(cand) + if not conflict: + new_selections.append(merged) + selections = new_selections + if not selections: + return [] + + # After accumulation, we may still have duplicate groups with different options (conflict). Drop those. + cleaned = [] + for sel in selections: + seen_by_group = {} + ok = True + for gi, oi, opt in sel: + if gi in seen_by_group and seen_by_group[gi] != oi: + # same group, different option -> conflict for AND; invalid selection + ok = False + break + seen_by_group[gi] = oi + if ok: + # ensure stable order and unique by (gi,oi) + uniq = {} + for gi, oi, opt in sel: + uniq[(gi, oi)] = opt + cleaned.append([(gi, oi, opt) for (gi, oi), opt in uniq.items()]) + return [{"fixed": c} for c in cleaned] + + +def expand_funding_path(input_measures, path_spec): + """ + path_spec is a list of elements; each element is either: + {"OR": [type1, type2, ...], "reference": "..."} or + {"AND": [type1, type2, ...], "reference": "..."} + We cross-product across elements (all required), and produce selections as lists of (gi, oi, opt). + """ + selections = [[]] # list[list[(gi,oi,opt)]] + for elem in path_spec: + if "OR" in elem: + cands = iter_or_candidates(input_measures, elem["OR"]) + elif "AND" in elem: + cands = iter_and_candidates(input_measures, elem["AND"]) + else: + raise ValueError("unknown path element; expected 'OR' or 'AND'") + + if not cands: + return [] + + new_selections = [] + for base in selections: + for cand in cands: + # merge base + cand["fixed"], collapsing duplicate same-option picks + combined = list(base) + # reject if combined picks two different options from the same group + groups_to_oi = {(gi,): oi for gi, oi, _ in combined} # temporary; we’ll refactor below + conflict = False + # simpler: build a dict by group -> (oi, opt), conflict if group exists with different oi + gmap = {gi: (oi, opt) for gi, oi, opt in combined} + for gi, oi, opt in cand["fixed"]: + if gi in gmap: + prev_oi, _ = gmap[gi] + if prev_oi != oi: + conflict = True + break + gmap[gi] = (oi, opt) + if conflict: + continue + # back to list + merged = [(gi, oi, opt) for gi, (oi, opt) in gmap.items()] + new_selections.append(merged) + selections = new_selections + if not selections: + return [] + + # Final tidy: ensure no duplicate groups with different options (already protected), keep stable ordering + deduped = [] + for sel in selections: + gmap = {} + for gi, oi, opt in sel: + # keep the first occurrence + if gi not in gmap: + gmap[gi] = (oi, opt) + else: + # same group, different oi would have been filtered; if same oi, ignore duplicate + pass + deduped.append([(gi, oi, opt) for gi, (oi, opt) in gmap.items()]) + return deduped + + +# ---- tiny utilities ---------------------------------------------------------- + +def parse_types(t): + # e.g. "external_wall_insulation+mechanical_ventilation" -> {"external_wall_insulation","mechanical_ventilation"} + return set(map(str.strip, t.split("+"))) if isinstance(t, str) else set() + + +def includes_heating(opt_types): + return any(x in opt_types for x in { + "air_source_heat_pump", + "high_heat_retention_storage_heater", + "time_temperature_zone_control", # controls count as a heating measure in your pipeline + "solar_pv" # you treat PV as heating for funding logic + }) + + +def contributes_min_insulation(opt_types): + # MIR satisfiers you mentioned (extend as needed) + return any(x in opt_types for x in { + "external_wall_insulation", + "internal_wall_insulation", + "loft_insulation", + "cavity_wall_insulation", + }) + + +def run_optimizer(input_measures, budget=None, sub_target_gain=None, allow_slack=False): + """ + Thin wrapper over your optimisers. + Returns: list[dict] selected_options + """ + if budget is not None: + opt = GainOptimiser( + input_measures, max_cost=budget, max_gain=(sub_target_gain or float("inf")), + allow_slack=allow_slack + ) + else: + if sub_target_gain is None: + raise ValueError("Either budget or target_gain must be provided.") + opt = CostOptimiser(input_measures, min_gain=sub_target_gain) + + opt.setup() + opt.solve() + cost = sum([x["cost"] for x in opt.solution]) + return opt.solution, cost, opt.solution_gain + + +# ---- Define optimisation paths ---------------------------------------------------------- + +def _find_measure(input_measures, measure_type): + for measures in input_measures: + for m in measures: + if measure_type in m["type"]: + return True + return False + + +def _make_solar_heating_funding_paths( + p, input_measures, funding_paths, remaining_insulation_type, housing_type, funding: Funding +): + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Solar PV with existing eligible heating system + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + has_eligible_heating_system = funding.check_solar_eligible_heating_system( + mainheat_description=p.main_heating["clean_description"], + heating_control_description=p.main_heating_controls["clean_description"] + ) + + if has_eligible_heating_system and _find_measure(input_measures, "solar_pv"): + single_solar_template = [{"AND": ["solar_pv"], "reference": None}] + # We now look to pair this with any lingering insulation measures + solar_paths = [] + for insulation_measure in remaining_insulation_type: + new_solar_path = deepcopy(single_solar_template) + new_solar_path[0]["AND"].append(insulation_measure) + # Make a specific reference for this path + new_solar_path[0]["reference"] = "solar_pv+" + insulation_measure + ":eco4" + solar_paths.append(new_solar_path) + + if solar_paths: + funding_paths.extend(solar_paths) + else: + # If we have no insulation measures, we just add the solar PV path + funding_paths.append([{"AND": ["solar_pv"], "reference": "solar_pv:eco4"}]) + + # For each of these, because there is a heating measure begin implemented, we check for minimum insulation + # requirements. + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Solar PV + Heating Upgrade combos + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # We don't include electric boilers as they are not eligible for ECO4 funding + solar_heating_combos = [ + ("high_heat_retention_storage_heater", "solar_pv+hhrsh:eco4"), + ("air_source_heat_pump", "solar_pv+ashp:eco4"), + ] + if _find_measure(input_measures, "solar_pv"): + for heat_type, ref in solar_heating_combos: + if _find_measure(input_measures, heat_type): + if remaining_insulation_type: + for insulation_measure in remaining_insulation_type: + funding_paths.append( + [{"AND": ["solar_pv", heat_type, insulation_measure], + "reference": f"{ref[:-5]}+{insulation_measure}:eco4"}] # keeps naming consistent + ) + else: + funding_paths.append([{"AND": ["solar_pv", heat_type], "reference": ref}]) + + # We've actually covered all possible options where solar PV can be included in a funded package, so where + # solar PV is not in a reference, we can exclude it + + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Heating Upgrades + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Must have an existing eligible heating system + + # For private, HHRSH alone, or a boiler upgrade is NOT eligible for ECO4 funding. Boiler upgrade also doesn't + # count as an eligible heating system + if housing_type == "Private": + single_heating_measures = ["air_source_heat_pump"] + else: + single_heating_measures = [ + "boiler_upgrade", "high_heat_retention_storage_heater", "air_source_heat_pump" + ] + measure_references = { + "boiler_upgrade": "boiler_upgrade", + "high_heat_retention_storage_heater": "hhrsh", + "air_source_heat_pump": "ashp" + } + for heating_upgrade in single_heating_measures: + if _find_measure(input_measures, heating_upgrade): + if remaining_insulation_type: + for insulation_measure in remaining_insulation_type: + path = [ + { + "AND": [heating_upgrade, insulation_measure], + "reference": f"{measure_references[heating_upgrade]}+{insulation_measure}:eco4" + } + ] + funding_paths.append(path) + else: + funding_paths.append( + [{"AND": [heating_upgrade], "reference": f"{measure_references[heating_upgrade]}:eco4"}] + ) + + return funding_paths + + +def _make_generic_gbis_funding_paths(input_gbis_measures, funding_paths): + """ + For GBIS, the packages are single insulation measure. + + We also have potential GBIS packages that allow heating controls as a secondary measure, however this + is not currently implemented in the optimiser due to not being certain about the heating controls pre conditions + :param input_gbis_measures: + :param funding_paths: + :return: + """ + + gbis_funding_paths = [] + for input_measure in input_gbis_measures: + for measure in input_measure: + # We create a path for each measure + gbis_funding_paths.append([{"AND": [measure["type"]], "reference": measure["type"] + ":gbis"}]) + + return funding_paths + gbis_funding_paths + + +def make_funding_paths(p, input_measures, housing_type, funding: Funding): + """ + This function generates funding paths based on the input measures and the tenure of the property. + It checks for the presence of specific measures and creates paths that include necessary insulation measures + to meet minimum insulation requirements, particularly when a heating system is recommended. + + Remaining measures that are not fixed as part of the package are then optimised + :param p: The property object containing details about the property, including main heating and controls. + :param input_measures: + :param housing_type: + :return: + """ + # We handle the case of minimum insulation requirements. Whenever we have a heating system recommendation, + # we *must* include an additional insulation measure, unless the property already has sufficient insulation. + + # We determine which insulation measures need to be included + wall_insulation_measures = [ + "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", + "extension_cavity_wall_insulation" + ] + roof_insulation_measures = [ + "loft_insulation", "flat_roof_insulation", "room_roof_insulation" + ] + other_gbis_insulation_measures = [ + "suspended_floor_insulation", "solid_floor_insulation", + ] + # These are the insulation measures that the property still needs and so will be considered for + # filling the minimum insulation requirements + remaining_insulation_type = [] + for insulation_measure in wall_insulation_measures + roof_insulation_measures: + if _find_measure(input_measures, insulation_measure): + remaining_insulation_type.append(insulation_measure) + + remaining_insulation_type = list(set(remaining_insulation_type)) + + funding_paths = [] + + if housing_type == "Social" and p.data["current-energy-rating"] == "D": + # If the property is currently EPC D, we can only include innovation measures or measures to meet the + # minimum insulation requirements + input_measures_innovation = [] + input_gbis_measures_innovation = [] + for measures in input_measures: + for measure in measures: + if measure["innovation_uplift"] or measure["type"] in remaining_insulation_type: + input_measures_innovation.append([measure]) + + if measure["innovation_uplift"] and measure["type"] in ( + remaining_insulation_type + other_gbis_insulation_measures + ): + input_gbis_measures_innovation.append([measure]) + + funding_paths = _make_solar_heating_funding_paths( + p, input_measures_innovation, funding_paths, remaining_insulation_type, housing_type, funding + ) + + # Can only be innovation GBIS measures + funding_paths = _make_generic_gbis_funding_paths(input_gbis_measures_innovation, funding_paths) + return funding_paths, input_measures_innovation + + if housing_type == "Private": + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # EWI or IWI + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # 1) The package must include EWI or IWI if the property is private rental sector + # We check if we have any EWI or IWI measures available + ewi_or_iwi = [{"OR": []}] + reference_measures = [] + # If we have EWI we add it in + if _find_measure(input_measures, "external_wall_insulation"): + ewi_or_iwi[0]["OR"].append("external_wall_insulation") + reference_measures.append("ewi") + + if _find_measure(input_measures, "internal_wall_insulation"): + ewi_or_iwi[0]["OR"].append("internal_wall_insulation") + reference_measures.append("iwi") + + if ewi_or_iwi[0]["OR"]: + ewi_or_iwi[0]["reference"] = "+".join(reference_measures) + ":eco4" + funding_paths.append(ewi_or_iwi) + + funding_paths = _make_solar_heating_funding_paths( + p, input_measures, funding_paths, remaining_insulation_type, housing_type, funding + ) + + # If we have any remaining insulation measures, we add them to the funding paths + input_gbis_measures = [] + for measures in input_measures: + for measure in measures: + if measure["type"] in remaining_insulation_type + other_gbis_insulation_measures: + input_gbis_measures.append([measure]) + + funding_paths = _make_generic_gbis_funding_paths(input_gbis_measures, funding_paths) + + return funding_paths, input_measures diff --git a/recommendations/tests/test_optimiser_functions.py b/recommendations/tests/test_optimiser_functions.py index b2097422..430acaa8 100644 --- a/recommendations/tests/test_optimiser_functions.py +++ b/recommendations/tests/test_optimiser_functions.py @@ -12,7 +12,7 @@ class TestPrepareInputMeasures: recs = [ [ # loft insulation measure {"recommendation_id": "loft1", "type": "loft_insulation", "total": 100, "kwh_savings": 200, - "energy_cost_savings": 10, "has_battery": False}, + "energy_cost_savings": 10, "has_battery": False, "measure_type": "loft_insulation"}, ], ] measures = optimiser_functions.prepare_input_measures(recs, goal="Energy Savings", needs_ventilation=False) @@ -27,9 +27,9 @@ class TestPrepareInputMeasures: ["internal_wall_insulation"]) recs = [ [{"recommendation_id": "wall1", "type": "internal_wall_insulation", "total": 500, "kwh_savings": 300, - "energy_cost_savings": 5, "has_battery": False}], + "energy_cost_savings": 5, "has_battery": False, "measure_type": "internal_wall_insulation"}], [{"recommendation_id": "vent1", "type": "mechanical_ventilation", "total": 50, "kwh_savings": 30, - "energy_cost_savings": 5, "has_battery": False}] + "energy_cost_savings": 5, "has_battery": False, "measure_type": "mechanical_ventilation"}], ] measures = optimiser_functions.prepare_input_measures(recs, goal="Energy Savings", needs_ventilation=True) wall_option = measures[0][0] diff --git a/recommendations/tests/test_optimisers.py b/recommendations/tests/test_optimisers.py index 2e8186dd..df5cc2e1 100644 --- a/recommendations/tests/test_optimisers.py +++ b/recommendations/tests/test_optimisers.py @@ -1,1212 +1,665 @@ import numpy as np -import pandas as pd +# import pandas as pd from pandas import Timestamp from numpy import nan import datetime + +# import backend.app.assumptions as assumptions +# import recommendations.optimiser.optimiser_functions as optimiser_functions +# +# from backend.Funding import Funding +# +# project_scores_matrix = pd.read_csv("/Users/khalimconn-kowlessar/Downloads/ECO4 Full Project Scores Matrix.csv") +# partial_project_scores_matrix = pd.read_csv("backend/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv") +# partial_project_scores_matrix.columns = ['Measure category', 'Measure_Type', 'Pre_Main_Heating_Source', +# 'Post_Main_Heating_Source', 'Total Floor Area Band', 'Starting Band', +# 'Average Treatable Factor', 'Cost Savings', 'SAP Savings'] +# whlg_eligible_postcodes = pd.DataFrame([{"Postcode": "ab12cd"}]) +# +# funding = Funding( +# project_scores_matrix=project_scores_matrix, +# partial_project_scores_matrix=partial_project_scores_matrix, +# whlg_eligible_postcodes=whlg_eligible_postcodes, +# eco4_social_cavity_abs_rate=13.5, +# eco4_social_solid_abs_rate=17, +# eco4_private_cavity_abs_rate=13.5, +# eco4_private_solid_abs_rate=17, +# gbis_social_cavity_abs_rate=21, +# gbis_social_solid_abs_rate=25, +# gbis_private_cavity_abs_rate=22, +# gbis_private_solid_abs_rate=28, +# tenure="Social" +# ) +# +# # Assume these costs have been adjusted + + +# +# # Insert the funding uplifts +# for recs in property_recommendations: +# for r in recs: +# # Insert randomly +# # Select one of 0, 0.25 or 0.45 +# r["uplift"] = np.random.choice([0, 0.25, 0.45]) +# +# # We calculate the innovation uplift against each measure +# for recs in property_recommendations: +# for r in recs: +# if r["type"] in ["mechanical_ventilation", "low_energy_lighting", "secondary_heating"]: +# r["innovation_uplift"] = 0 +# continue +# r["innovation_uplift"] = funding.get_innovation_uplift( +# measure=r, +# starting_sap=p.data["current-energy-efficiency"], +# floor_area=p.floor_area, +# is_cavity=False, +# current_wall_uvalue=1.7, +# is_partial=False, +# existing_li_thickness=150, +# mainheating=p.main_heating, +# main_fuel=p.main_fuel, +# mainheat_energy_eff=p.data["mainheat-energy-eff"], +# ) +# print(r["innovation_uplift"]) +# +# property_measure_types = {rec["type"] for recs in property_recommendations for rec in recs} +# property_required_measures = [m for m in property_recommendations if m[0]["type"] in []] +# measures_to_optimise = [m for m in property_recommendations if m[0]["type"] not in []] +# +# # If a measure requiring ventilation is selected, and the property does not have ventilation, we enfore +# # its inclusion +# needs_ventilation = any( +# x in property_measure_types for x in assumptions.measures_needing_ventilation +# ) and not p.has_ventilation +# +# input_measures = optimiser_functions.prepare_input_measures( +# measures_to_optimise, "Increasing EPC", needs_ventilation, True +# ) +# +# # ---- main wrapper around your optimiser ---------------------------------- +# +# # Run inputs: +# target_gain = 18.5 +# +# # Run the optimiser with these inouts + + +# tests/test_social_fabric_only.py +import numpy as np +import pandas as pd +import pytest from copy import deepcopy -from app.plan.schemas import ( - WALL_INSULATION_MEASURES, ROOF_INSULATION_MEASURES, ECO4_ELIGIBILE_FABRIC_MEASURES, ECO4_ELIGIBLE_HEATING_MEASURES -) -from recommendations.optimiser.CostOptimiser import CostOptimiser -from recommendations.optimiser.GainOptimiser import GainOptimiser +from recommendations.optimiser import optimiser_functions +from recommendations.optimiser.funding_optimiser import optimise_with_funding_paths # wherever you defined it from backend.Funding import Funding +from backend.app.plan.schemas import WALL_INSULATION_MEASURES, ROOF_INSULATION_MEASURES, ECO4_ELIGIBILE_FABRIC_MEASURES -# measures we DO NOT treat as fundable in the ECO4 'funded' pass -_ECO4_EXCLUDE_TYPES = {"secondary_heating"} - -project_scores_matrix = pd.read_csv("/Users/khalimconn-kowlessar/Downloads/ECO4 Full Project Scores Matrix.csv") -partial_project_scores_matrix = pd.read_csv("backend/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv") -partial_project_scores_matrix.columns = ['Measure category', 'Measure_Type', 'Pre_Main_Heating_Source', - 'Post_Main_Heating_Source', 'Total Floor Area Band', 'Starting Band', - 'Average Treatable Factor', 'Cost Savings', 'SAP Savings'] -whlg_eligible_postcodes = pd.DataFrame([{"Postcode": "ab12cd"}]) - -funding = Funding( - project_scores_matrix=project_scores_matrix, - partial_project_scores_matrix=partial_project_scores_matrix, - whlg_eligible_postcodes=whlg_eligible_postcodes, - eco4_social_cavity_abs_rate=13.5, - eco4_social_solid_abs_rate=17, - eco4_private_cavity_abs_rate=13.5, - eco4_private_solid_abs_rate=17, - gbis_social_cavity_abs_rate=21, - gbis_social_solid_abs_rate=25, - gbis_private_cavity_abs_rate=22, - gbis_private_solid_abs_rate=28, - tenure="Social" -) - -# Assume these costs have been adjusted -property_recommendations = [ - [{'phase': 0, 'parts': [{'id': 2466, 'type': 'external_wall_insulation', - 'description': 'EWI Pro EPS external wall insulation system with ' - 'Brick Slip finish', - 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, - 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, - 'r_value_unit': 'square_meter_kelvin_per_watt', - 'thermal_conductivity': 0.038, - 'thermal_conductivity_unit': 'watt_per_meter_kelvin', - 'link': 'SCIS', - 'created_at': Timestamp('2025-03-16 15:26:22.379496'), - 'is_active': True, 'prime_material_cost': None, - 'material_cost': 0.0, 'labour_cost': 0.0, - 'labour_hours_per_unit': 0.0, 'plant_cost': 0.0, - 'total_cost': 298.35, - 'notes': 'This is the quoted value from SCIS', - 'is_installer_quote': True, 'quantity': 63.98796761892035, - 'quantity_unit': 'm2', 'total': 19090.810139104888, - 'labour_hours': 0.0, 'labour_days': 0.0}], - 'type': 'external_wall_insulation', 'measure_type': 'external_wall_insulation', - 'description': 'Install 150mm EWI Pro EPS external wall insulation system with Brick ' - 'Slip finish on external walls', - 'starting_u_value': 1.7, 'new_u_value': 0.32, 'already_installed': False, - 'sap_points': np.float64(9.6), - 'simulation_config': {'is_as_built_ending': False, 'walls_is_assumed_ending': False, - 'walls_insulation_thickness_ending': 'average', - 'external_insulation_ending': True, - 'walls_energy_eff_ending': 'Good', - 'walls_thermal_transmittance_ending': 0.23}, - 'description_simulation': {'walls-description': 'Solid brick, with external insulation', - 'walls-energy-eff': 'Good'}, 'total': 19090.810139104888, - 'labour_hours': 0.0, 'labour_days': 0.0, 'survey': False, - 'recommendation_id': '0_phase=0', 'efficiency': 11229.568317120522, - 'co2_equivalent_savings': np.float64(0.5), 'heat_demand': np.float64(37.099999999999994), - 'kwh_savings': np.float64(1827.8999999999996), - 'energy_cost_savings': np.float64(136.1247882352941)}, {'phase': 0, 'parts': [ - {'id': 2373, 'type': 'internal_wall_insulation', 'description': 'SWIP EcoBatt & Plastered finish', - 'depth': 95.0, - 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.03125, - 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.032, - 'thermal_conductivity_unit': None, - 'link': 'SCIS', 'created_at': Timestamp('2025-03-16 15:26:22.379496'), 'is_active': True, - 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 0.0, 'labour_hours_per_unit': 2.1, - 'plant_cost': 0.0, 'total_cost': 89.0, 'notes': None, 'is_installer_quote': True, - 'quantity': 63.98796761892035, - 'quantity_unit': 'm2', 'total': 5694.929118083911, 'labour_hours': 134.37473199973275, - 'labour_days': 4.199210374991648}], 'type': 'internal_wall_insulation', - 'measure_type': 'internal_wall_insulation', - 'description': 'Install 95mm ' - 'SWIP EcoBatt & ' - 'Plastered ' - 'finish on ' - 'internal walls', - 'starting_u_value': 1.7, - 'new_u_value': 0.32, - 'already_installed': False, - 'sap_points': 6, - 'simulation_config': { - 'is_as_built_ending': False, - 'walls_is_assumed_ending': - False, - 'walls_insulation_thickness_ending': 'average', - 'internal_insulation_ending': True, - 'walls_energy_eff_ending': - 'Good', - 'walls_thermal_transmittance_ending': 0.29}, - 'description_simulation': { - 'walls-description': 'Solid ' - 'brick, with internal ' - 'insulation', - 'walls-energy-eff': 'Good'}, - 'total': 5694.929118083911, - 'labour_hours': 134.37473199973275, - 'labour_days': 4.199210374991648, - 'survey': True, - 'recommendation_id': '1_phase=0', - 'efficiency': 3349.6383047552417, - 'co2_equivalent_savings': np.float64( - 0.5), - 'heat_demand': np.float64( - 35.30000000000001), - 'kwh_savings': np.float64( - 1432.3999999999996), - 'energy_cost_savings': np.float64( - 106.67167058823532)}], [ - {'phase': 1, 'parts': [{'id': 2351, 'type': 'loft_insulation', - 'description': 'Knauf Loft Roll 44 glass fibre roll', - 'depth': 300.0, 'depth_unit': 'mm', 'cost': None, - 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, - 'r_value_unit': 'square_meter_kelvin_per_watt', - 'thermal_conductivity': 0.044, - 'thermal_conductivity_unit': 'watt_per_meter_kelvin', - 'link': 'SCIS', - 'created_at': Timestamp('2025-03-16 15:26:22.379496'), - 'is_active': True, 'prime_material_cost': None, - 'material_cost': 0.0, 'labour_cost': 0.0, - 'labour_hours_per_unit': 0.11, 'plant_cost': 0.0, - 'total_cost': 15.0, - 'notes': 'This is the cost if there is less than 100mm ' - 'existing insulation', - 'is_installer_quote': True, 'quantity': 63.98796761892035, - 'quantity_unit': 'm2', 'total': 645.0, 'labour_hours': 8, - 'labour_days': 1}], 'type': 'loft_insulation', - 'measure_type': 'loft_insulation', - 'description': 'Install 300mm of Knauf Loft Roll 44 glass fibre roll in your loft', - 'starting_u_value': 2.3, 'new_u_value': 2.3, 'sap_points': np.float64(2.4), - 'already_installed': False, - 'simulation_config': {'is_loft_ending': True, 'roof_is_assumed_ending': False, - 'roof_insulation_thickness_ending': '300', - 'roof_thermal_transmittance_ending': 2.3, - 'roof_energy_eff_ending': 'Very Good'}, - 'description_simulation': {'roof-description': 'Pitched, 300mm loft insulation', - 'roof-energy-eff': 'Very Good'}, 'total': 645.0, - 'labour_hours': 8, 'labour_days': 1, 'survey': False, 'recommendation_id': '2_phase=1', - 'efficiency': 278.1347826086957, - 'co2_equivalent_savings': np.float64(0.10000000000000009), - 'heat_demand': np.float64(1.5), 'kwh_savings': np.float64(566.1499999999996), - 'energy_cost_savings': np.float64(42.16152352941185)}], [{'phase': 2, 'parts': [ - {'id': 2329, 'type': 'mechanical_ventilation', 'description': 'Mechanical Extract Ventilation', 'depth': 0.0, - 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': nan, - 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, - 'thermal_conductivity_unit': None, - 'link': 'SCIS', 'created_at': datetime.datetime(2025, 3, 16, 15, 26, 22, 379496), 'is_active': True, - 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 0.0, 'labour_hours_per_unit': 0.0, - 'plant_cost': 0.0, 'total_cost': 350.0, 'notes': None, 'is_installer_quote': True, 'total': 700.0, - 'quantity': 2, - 'quantity_unit': 'part'}], 'type': 'mechanical_ventilation', 'measure_type': 'mechanical_ventilation', - 'description': 'Install 2 ' - 'Mechanical ' - 'Extract ' - 'Ventilation units', - 'starting_u_value': None, - 'new_u_value': None, - 'already_installed': False, - 'sap_points': np.float64( - -0.10000000000000142), - 'heat_demand': np.float64( - -3.3999999999999773), - 'kwh_savings': np.float64( - -53.80000000000018), - 'co2_equivalent_savings': np.float64( - 0.0), - 'energy_cost_savings': np.float64( - -4.0065176470588995), - 'total': 700.0, - 'labour_hours': 8, - 'labour_days': 1.0, - 'simulation_config': { - 'mechanical_ventilation_ending': 'mechanical, ' - 'extract only'}, - 'description_simulation': { - 'mechanical-ventilation': 'mechanical, ' - 'extract only'}, - 'recommendation_id': '3_phase=2', - 'efficiency': 0}], [ - {'phase': 3, 'parts': [{'id': 2409, 'type': 'suspended_floor_insulation', - 'description': 'Q-bot underfloor insulation', 'depth': 75.0, - 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', - 'r_value_per_mm': 0.045454547, - 'r_value_unit': 'square_meter_kelvin_per_watt', - 'thermal_conductivity': 0.022, - 'thermal_conductivity_unit': 'watt_per_meter_kelvin', - 'link': 'SCIS', - 'created_at': Timestamp('2025-03-16 15:26:22.379496'), - 'is_active': True, 'prime_material_cost': None, - 'material_cost': 0.0, 'labour_cost': 0.0, - 'labour_hours_per_unit': 1.63, 'plant_cost': 0.0, - 'total_cost': 93.75, - 'notes': 'Linearly interpolated based on Qbot costs', - 'is_installer_quote': True, 'quantity': 43.0, - 'quantity_unit': 'm2', 'total': 4031.25, - 'labour_hours': 70.08999999999999, - 'labour_days': 2.920416666666666}], - 'type': 'suspended_floor_insulation', 'measure_type': 'suspended_floor_insulation', - 'description': 'Install 75mm Q-bot underfloor insulation insulation in suspended ' - 'floor', - 'starting_u_value': 0.83, 'new_u_value': 0.22, 'sap_points': 2, 'survey': True, - 'already_installed': False, 'simulation_config': {'floor_is_assumed_ending': False, - 'floor_insulation_thickness_ending': 'average', - 'floor_thermal_transmittance_ending': 0.685593}, - 'description_simulation': {'floor-description': 'Suspended, insulated'}, - 'total': 4031.25, 'labour_hours': 70.08999999999999, 'labour_days': 2.920416666666666, - 'recommendation_id': '4_phase=3', 'efficiency': 4856.707710843373, - 'co2_equivalent_savings': np.float64(0.20000000000000018), - 'heat_demand': np.float64(33.5), 'kwh_savings': np.float64(1021.1999999999998), - 'energy_cost_savings': np.float64(76.04936470588231)}], [ - {'phase': 4, 'parts': [], 'type': 'low_energy_lighting', - 'measure_type': 'low_energy_lighting', - 'description': 'Install low energy lighting in -886 outlets', 'starting_u_value': None, - 'new_u_value': None, 'already_installed': False, 'sap_points': 2, - 'kwh_savings': -48508.5, 'energy_cost_savings': -12481.237049999998, - 'co2_equivalent_savings': -7.858377, - 'description_simulation': {'lighting-energy-eff': 'Very Good', - 'lighting-description': 'Low energy lighting in all fixed' - ' outlets', - 'low-energy-lighting': 100}, 'total': -3411.1000000000004, - 'labour_hours': 1, 'labour_days': 0.125, 'survey': True, - 'recommendation_id': '5_phase=4', 'efficiency': -1705.5500000000002, - 'heat_demand': np.float64(5.099999999999994)}], [ - {'type': 'heating', 'phase': 5, 'measure_type': 'time_temperature_zone_control', - 'parts': [], - 'description': 'Upgrade heating controls to Smart Thermostats, room sensors and ' - 'smart radiator valves (time & temperature zone control)', - 'total': 739.576, 'subtotal': 700.48, 'vat': 39.096000000000004, - 'labour_hours': 3.6199999999999997, 'labour_days': np.float64(1.0), - 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(2.9), - 'already_installed': False, 'simulation_config': { - 'thermostatic_control_ending': 'time and temperature zone control', - 'switch_system_ending': None, 'trvs_ending': None, - 'mainheatc_energy_eff_ending': 'Very Good'}, 'description_simulation': { - 'mainheatcont-description': 'Time and temperature zone control', - 'mainheatc-energy-eff': 'Very Good'}, 'recommendation_id': '6_phase=5', - 'efficiency': 739.576, 'co2_equivalent_savings': np.float64(0.30000000000000027), - 'heat_demand': np.float64(6.599999999999994), - 'kwh_savings': np.float64(876.8000000000002), - 'energy_cost_savings': np.float64(65.29581176470589)}], [ - {'phase': 6, 'parts': [], 'type': 'secondary_heating', - 'measure_type': 'secondary_heating', - 'description': 'Remove the secondary heating system', 'starting_u_value': None, - 'new_u_value': None, 'sap_points': np.float64(3.6), 'already_installed': False, - 'total': 30.0, 'subtotal': 25.0, 'vat': 5.0, 'labour_hours': 3.0, - 'labour_days': np.float64(1.0), - 'simulation_config': {'secondheat_description_ending': 'None'}, - 'description_simulation': {'secondheat-description': 'None'}, - 'recommendation_id': '7_phase=6', 'efficiency': 30.0, - 'co2_equivalent_savings': np.float64(0.10000000000000009), - 'heat_demand': np.float64(15.400000000000006), - 'kwh_savings': np.float64(196.29999999999927), - 'energy_cost_savings': np.float64(14.61857647058821)}], [ - {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', - 'description': 'Install a 4.0 kilowatt-peak (kWp) solar panel system.', - 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(13.0), - 'already_installed': False, 'total': 6013.139999999999, 'subtotal': 5010.95, 'vat': 0, - 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(65.0), - 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(4081.7132614999996), - 'description_simulation': {'photo-supply': np.float64(65.0)}, - 'recommendation_id': '8_phase=7', 'efficiency': np.float64(462.54923076923075), - 'co2_equivalent_savings': np.float64(0.47347873833399995), - 'heat_demand': np.float64(88.69999999999999), - 'kwh_savings': np.float64(2040.8566307499998), - 'energy_cost_savings': np.float64(525.1124110919749)}, - {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', - 'description': 'Install a 4.0 kilowatt-peak (kWp) solar panel system, with a battery.', - 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(13.0), - 'already_installed': False, 'total': 10537.008, 'subtotal': 8780.84, 'vat': 0, - 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(65.0), - 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(4081.7132614999996), - 'description_simulation': {'photo-supply': np.float64(65.0)}, - 'recommendation_id': '9_phase=7', 'efficiency': np.float64(810.5390769230769), - 'co2_equivalent_savings': np.float64(0.6628702336675999), - 'heat_demand': np.float64(88.69999999999999), - 'kwh_savings': np.float64(2857.1992830499994), - 'energy_cost_savings': np.float64(735.1573755287648)}, - {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', - 'description': 'Install a 3.6 kilowatt-peak (kWp) solar panel system.', - 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(12.0), - 'already_installed': False, 'total': 5826.491999999999, 'subtotal': 4855.41, 'vat': 0, - 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(60.0), - 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(3692.66794), - 'description_simulation': {'photo-supply': np.float64(60.0)}, - 'recommendation_id': '10_phase=7', 'efficiency': np.float64(485.54099999999994), - 'co2_equivalent_savings': np.float64(0.42834948104), - 'heat_demand': np.float64(83.69999999999999), 'kwh_savings': np.float64(1846.33397), - 'energy_cost_savings': np.float64(475.0617304809999)}, - {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', - 'description': 'Install a 3.6 kilowatt-peak (kWp) solar panel system, with a battery.', - 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(12.0), - 'already_installed': False, 'total': 10350.359999999999, 'subtotal': 8625.3, 'vat': 0, - 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(60.0), - 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(3692.66794), - 'description_simulation': {'photo-supply': np.float64(60.0)}, - 'recommendation_id': '11_phase=7', 'efficiency': np.float64(862.5299999999999), - 'co2_equivalent_savings': np.float64(0.599689273456), - 'heat_demand': np.float64(83.69999999999999), 'kwh_savings': np.float64(2584.867558), - 'energy_cost_savings': np.float64(665.0864226734)}, - {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', - 'description': 'Install a 3.2 kilowatt-peak (kWp) solar panel system.', - 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(11.0), - 'already_installed': False, 'total': 5642.604, 'subtotal': 4702.17, 'vat': 0, - 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(55.0), - 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(3300.5416548), - 'description_simulation': {'photo-supply': np.float64(55.0)}, - 'recommendation_id': '12_phase=7', 'efficiency': np.float64(512.964), - 'co2_equivalent_savings': np.float64(0.3828628319568), 'heat_demand': np.float64(78.3), - 'kwh_savings': np.float64(1650.2708274), - 'energy_cost_savings': np.float64(424.61468389001993)}, - {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', - 'description': 'Install a 3.2 kilowatt-peak (kWp) solar panel system, with a battery.', - 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(11.0), - 'already_installed': False, 'total': 10166.472, 'subtotal': 8472.06, 'vat': 0, - 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(55.0), - 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(3300.5416548), - 'description_simulation': {'photo-supply': np.float64(55.0)}, - 'recommendation_id': '13_phase=7', 'efficiency': np.float64(924.2247272727273), - 'co2_equivalent_savings': np.float64(0.53600796473952), - 'heat_demand': np.float64(78.3), 'kwh_savings': np.float64(2310.3791583599996), - 'energy_cost_savings': np.float64(594.4605574460278)}, - {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', - 'description': 'Install a 2.8 kilowatt-peak (kWp) solar panel system.', - 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(9.0), - 'already_installed': False, 'total': 5458.727999999999, 'subtotal': 4548.94, 'vat': 0, - 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(45.0), - 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(2907.1867812), - 'description_simulation': {'photo-supply': np.float64(45.0)}, - 'recommendation_id': '14_phase=7', 'efficiency': np.float64(606.5253333333333), - 'co2_equivalent_savings': np.float64(0.3372336666192), 'heat_demand': np.float64(64.0), - 'kwh_savings': np.float64(1453.5933906), - 'energy_cost_savings': np.float64(374.00957940138)}, - {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', - 'description': 'Install a 2.8 kilowatt-peak (kWp) solar panel system, with a battery.', - 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(9.0), - 'already_installed': False, 'total': 9982.596, 'subtotal': 8318.83, 'vat': 0, - 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(45.0), - 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(2907.1867812), - 'description_simulation': {'photo-supply': np.float64(45.0)}, - 'recommendation_id': '15_phase=7', 'efficiency': np.float64(1109.1773333333333), - 'co2_equivalent_savings': np.float64(0.47212713326688), - 'heat_demand': np.float64(64.0), 'kwh_savings': np.float64(2035.03074684), - 'energy_cost_savings': np.float64(523.6134111619319)}, - {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', - 'description': 'Install a 2.4 kilowatt-peak (kWp) solar panel system.', - 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(8.0), - 'already_installed': False, 'total': 5274.852, 'subtotal': 4395.71, 'vat': 0, - 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(40.0), - 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(2510.25188), - 'description_simulation': {'photo-supply': np.float64(40.0)}, - 'recommendation_id': '16_phase=7', 'efficiency': np.float64(659.3565), - 'co2_equivalent_savings': np.float64(0.29118921808), 'heat_demand': np.float64(54.3), - 'kwh_savings': np.float64(1255.12594), - 'energy_cost_savings': np.float64(322.94390436199996)}, - {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', - 'description': 'Install a 2.4 kilowatt-peak (kWp) solar panel system, with a battery.', - 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(8.0), - 'already_installed': False, 'total': 9798.72, 'subtotal': 8165.6, 'vat': 0, - 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(40.0), - 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(2510.25188), - 'description_simulation': {'photo-supply': np.float64(40.0)}, - 'recommendation_id': '17_phase=7', 'efficiency': np.float64(1224.84), - 'co2_equivalent_savings': np.float64(0.40766490531199995), - 'heat_demand': np.float64(54.3), 'kwh_savings': np.float64(1757.1763159999998), - 'energy_cost_savings': np.float64(452.1214661067999)}, - {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', - 'description': 'Install a 2.0 kilowatt-peak (kWp) solar panel system.', - 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(7.0), - 'already_installed': False, 'total': 5090.976, 'subtotal': 4242.48, 'vat': 0, - 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(35.0), - 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(2096.682636), - 'description_simulation': {'photo-supply': np.float64(35.0)}, - 'recommendation_id': '18_phase=7', 'efficiency': np.float64(727.2822857142856), - 'co2_equivalent_savings': np.float64(0.243215185776), 'heat_demand': np.float64(48.5), - 'kwh_savings': np.float64(1048.341318), - 'energy_cost_savings': np.float64(269.7382211214)}, - {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', - 'description': 'Install a 2.0 kilowatt-peak (kWp) solar panel system, with a battery.', - 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(7.0), - 'already_installed': False, 'total': 9614.844, 'subtotal': 8012.369999999999, 'vat': 0, - 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(35.0), - 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(2096.682636), - 'description_simulation': {'photo-supply': np.float64(35.0)}, - 'recommendation_id': '19_phase=7', 'efficiency': np.float64(1373.5491428571427), - 'co2_equivalent_savings': np.float64(0.3405012600864), 'heat_demand': np.float64(48.5), - 'kwh_savings': np.float64(1467.6778451999999), - 'energy_cost_savings': np.float64(377.6335095699599)}] -] - -main_heating = { - 'original_description': 'Boiler and radiators, mains gas', 'clean_description': 'Boiler and radiators, mains gas', - 'has_radiators': True, 'has_fan_coil_units': False, 'has_pipes_in_screed_above_insulation': False, - 'has_pipes_in_insulated_timber_floor': False, 'has_pipes_in_concrete_slab': False, 'has_boiler': True, - 'has_air_source_heat_pump': False, 'has_room_heaters': False, 'has_electric_storage_heaters': False, - 'has_warm_air': False, 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, - 'has_community_scheme': False, 'has_ground_source_heat_pump': False, 'has_no_system_present': False, - 'has_portable_electric_heaters': False, 'has_water_source_heat_pump': False, 'has_electric_heat_pump': False, - 'has_micro-cogeneration': False, 'has_solar_assisted_heat_pump': False, 'has_exhaust_source_heat_pump': False, - 'has_community_heat_pump': False, 'has_hot-water-only': False, 'has_electric': False, 'has_mains_gas': True, - 'has_wood_logs': False, 'has_coal': False, 'has_oil': False, 'has_wood_pellets': False, 'has_anthracite': False, - 'has_dual_fuel_mineral_and_wood': False, 'has_smokeless_fuel': False, 'has_lpg': False, 'has_b30k': False, - 'has_mineral_and_wood': False, 'has_dual_fuel_appliance': False, 'has_assumed': False, 'has_electricaire': False, - 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False -} - -main_fuel = { - 'original_description': 'mains gas (not community)', 'clean_description': 'Mains gas not community', - 'fuel_type': 'mains gas', 'tariff_type': None, 'is_community': False, - 'no_individual_heating_or_community_network': False, 'complex_fuel_type': None -} - -# Insert the funding uplifts -for recs in property_recommendations: - for r in recs: - # Insert randomly - # Select one of 0, 0.25 or 0.45 - r["uplift"] = np.random.choice([0, 0.25, 0.45]) - -# We calculate the innovation uplift against each measure -for recs in property_recommendations: - for r in recs: - if r["type"] in ["mechanical_ventilation", "low_energy_lighting", "secondary_heating"]: - r["innovation_uplift"] = 0 - continue - r["innovation_uplift"] = funding.get_innovation_uplift( - measure=r, - starting_sap=p.data["current-energy-efficiency"], - floor_area=p.floor_area, - is_cavity=False, - current_wall_uvalue=1.7, - is_partial=False, - existing_li_thickness=150, - mainheating=p.main_heating, - main_fuel=p.main_fuel, - mainheat_energy_eff=p.data["mainheat-energy-eff"], - ) - print(r["innovation_uplift"]) - -property_measure_types = {rec["type"] for recs in property_recommendations for rec in recs} -property_required_measures = [m for m in property_recommendations if m[0]["type"] in []] -measures_to_optimise = [m for m in property_recommendations if m[0]["type"] not in []] - -# If a measure requiring ventilation is selected, and the property does not have ventilation, we enfore -# its inclusion -needs_ventilation = any( - x in property_measure_types for x in assumptions.measures_needing_ventilation -) and not p.has_ventilation - -input_measures = optimiser_functions.prepare_input_measures( - measures_to_optimise, "Increasing EPC", needs_ventilation, True -) +ALLOWED_FABRIC_TYPES = set(WALL_INSULATION_MEASURES + ROOF_INSULATION_MEASURES + ECO4_ELIGIBILE_FABRIC_MEASURES) -def _find_measure(input_measures, measure_type): - for measures in input_measures: - for m in measures: - if measure_type in m["type"]: - return True - return False +@pytest.fixture +def mock_project_scores_matrix(): + data = [] + floor_segments = ["0-72", "73-97", "98-199", "200"] + bands = [ + "Low_G", "High_G", "Low_F", "High_F", "Low_E", "High_E", "Low_D", "High_D", "Low_C", "High_C", "Low_B", + "High_B", "Low_A", "High_A" + ] + + cost = 50.0 + for floor in floor_segments: + for start in bands: + for finish in bands: + if start != finish: # skip identical start/finish (no SAP movement) + data.append({ + "Floor Area Segment": floor, + "Starting Band": start, + "Finishing Band": finish, + "Cost Savings": cost + }) + cost += 5.0 # increment to create variety + + return pd.DataFrame(data) -def _make_solar_heating_funding_paths(p, input_measures, funding_paths, remaining_insulation_type, housing_type): - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - # Solar PV with existing eligible heating system - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - has_eligible_heating_system = funding.check_solar_eligible_heating_system( - mainheat_description=p.main_heating["clean_description"], - heating_control_description=p.main_heating_controls["clean_description"] +@pytest.fixture +def mock_partial_scores_matrix(): + df = pd.read_csv("backend/tests/test_data/ECO4_Partial_Project_Scores_Matrix_v6.csv") + df.columns = ['Measure category', 'Measure_Type', 'Pre_Main_Heating_Source', + 'Post_Main_Heating_Source', 'Total Floor Area Band', 'Starting Band', + 'Average Treatable Factor', 'Cost Savings', 'SAP Savings'] + return df + + +class DummyProp: + """Minimal property stub exposing just what your code reads.""" + + def __init__(self): + self.data = { + "current-energy-rating": "E", # or "D" for the special Social+D path + "current-energy-efficiency": 55, # numeric SAP points used in eligibility calc + "mainheat-energy-eff": "Very Good", + } + self.has_ventilation = False + self.floor_area = 70.0 + self.main_heating_controls = {"clean_description": "time and temperature zone control"} + + self.main_heating = { + 'original_description': 'Boiler and radiators, mains gas', + 'clean_description': 'Boiler and radiators, mains gas', + 'has_radiators': True, 'has_fan_coil_units': False, 'has_pipes_in_screed_above_insulation': False, + 'has_pipes_in_insulated_timber_floor': False, 'has_pipes_in_concrete_slab': False, 'has_boiler': True, + 'has_air_source_heat_pump': False, 'has_room_heaters': False, 'has_electric_storage_heaters': False, + 'has_warm_air': False, 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, + 'has_community_scheme': False, 'has_ground_source_heat_pump': False, 'has_no_system_present': False, + 'has_portable_electric_heaters': False, 'has_water_source_heat_pump': False, 'has_electric_heat_pump': + False, + 'has_micro-cogeneration': False, 'has_solar_assisted_heat_pump': False, 'has_exhaust_source_heat_pump': + False, + 'has_community_heat_pump': False, 'has_hot-water-only': False, 'has_electric': False, 'has_mains_gas': + True, + 'has_wood_logs': False, 'has_coal': False, 'has_oil': False, 'has_wood_pellets': False, + 'has_anthracite': False, + 'has_dual_fuel_mineral_and_wood': False, 'has_smokeless_fuel': False, 'has_lpg': False, 'has_b30k': False, + 'has_mineral_and_wood': False, 'has_dual_fuel_appliance': False, 'has_assumed': False, + 'has_electricaire': False, + 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False + } + + self.main_fuel = { + 'original_description': 'mains gas (not community)', 'clean_description': 'Mains gas not community', + 'fuel_type': 'mains gas', 'tariff_type': None, 'is_community': False, + 'no_individual_heating_or_community_network': False, 'complex_fuel_type': None + } + + +@pytest.fixture +def p(): + return DummyProp() + + +@pytest.fixture +def funding(monkeypatch, mock_partial_scores_matrix, mock_project_scores_matrix): + """Simple Funding that returns zero uplift so costs stay as provided.""" + # Build the Funding with tiny in-memory frames (avoid test I/O) + + f = Funding( + project_scores_matrix=mock_project_scores_matrix, + partial_project_scores_matrix=mock_partial_scores_matrix, + whlg_eligible_postcodes=pd.DataFrame([{"Postcode": "ab12cd"}]), + eco4_social_cavity_abs_rate=13.5, eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13.5, eco4_private_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=22, gbis_private_solid_abs_rate=28, + tenure="Social" ) - if has_eligible_heating_system and _find_measure(input_measures, "solar_pv"): - single_solar_template = [{"AND": ["solar_pv"], "reference": None}] - # We now look to pair this with any lingering insulation measures - solar_paths = [] - for insulation_measure in remaining_insulation_type: - new_solar_path = deepcopy(single_solar_template) - new_solar_path[0]["AND"].append(insulation_measure) - # Make a specific reference for this path - new_solar_path[0]["reference"] = "solar_pv+" + insulation_measure + ":eco4" - solar_paths.append(new_solar_path) + # Keep innovation_uplift simple for the first test + # monkeypatch.setattr(f, "get_innovation_uplift", lambda *args, **kwargs: 0.0) - if solar_paths: - funding_paths.extend(solar_paths) - else: - # If we have no insulation measures, we just add the solar PV path - funding_paths.append([{"AND": ["solar_pv"], "reference": "solar_pv:eco4"}]) + # If your solar precondition matters, you can force True/False here: + # monkeypatch.setattr( + # __import__("backend").Funding, "check_solar_eligible_heating_system", + # staticmethod(lambda mainheat_description, heating_control_description: False) + # ) - # For each of these, because there is a heating measure begin implemented, we check for minimum insulation - # requirements. - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - # Solar PV + Heating Upgrade combos - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - # We don't include electric boilers as they are not eligible for ECO4 funding - solar_heating_combos = [ - ("high_heat_retention_storage_heater", "solar_pv+hhrsh:eco4"), - ("air_source_heat_pump", "solar_pv+ashp:eco4"), + return f + + +@pytest.fixture +def property_recommendations(): + """Short sample; replace with your full block if you want.""" + recs = [ + [{'phase': 0, 'parts': [{'id': 2466, 'type': 'external_wall_insulation', + 'description': 'EWI Pro EPS external wall insulation system with ' + 'Brick Slip finish', + 'depth': 150.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.02631579, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.038, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SCIS', + 'created_at': Timestamp('2025-03-16 15:26:22.379496'), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 0.0, + 'labour_hours_per_unit': 0.0, 'plant_cost': 0.0, + 'total_cost': 298.35, + 'notes': 'This is the quoted value from SCIS', + 'is_installer_quote': True, 'quantity': 63.98796761892035, + 'quantity_unit': 'm2', 'total': 19090.810139104888, + 'labour_hours': 0.0, 'labour_days': 0.0}], + 'type': 'external_wall_insulation', 'measure_type': 'external_wall_insulation', + 'description': 'Install 150mm EWI Pro EPS external wall insulation system with Brick ' + 'Slip finish on external walls', + 'starting_u_value': 1.7, 'new_u_value': 0.32, 'already_installed': False, + 'sap_points': np.float64(9.6), + 'simulation_config': {'is_as_built_ending': False, 'walls_is_assumed_ending': False, + 'walls_insulation_thickness_ending': 'average', + 'external_insulation_ending': True, + 'walls_energy_eff_ending': 'Good', + 'walls_thermal_transmittance_ending': 0.23}, + 'description_simulation': {'walls-description': 'Solid brick, with external insulation', + 'walls-energy-eff': 'Good'}, 'total': 19090.810139104888, + 'labour_hours': 0.0, 'labour_days': 0.0, 'survey': False, + 'recommendation_id': '0_phase=0', 'efficiency': 11229.568317120522, + 'co2_equivalent_savings': np.float64(0.5), 'heat_demand': np.float64(37.099999999999994), + 'kwh_savings': np.float64(1827.8999999999996), + 'energy_cost_savings': np.float64(136.1247882352941)}, {'phase': 0, 'parts': [ + {'id': 2373, 'type': 'internal_wall_insulation', 'description': 'SWIP EcoBatt & Plastered finish', + 'depth': 95.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.03125, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': 0.032, + 'thermal_conductivity_unit': None, + 'link': 'SCIS', 'created_at': Timestamp('2025-03-16 15:26:22.379496'), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 0.0, 'labour_hours_per_unit': 2.1, + 'plant_cost': 0.0, 'total_cost': 89.0, 'notes': None, 'is_installer_quote': True, + 'quantity': 63.98796761892035, + 'quantity_unit': 'm2', 'total': 5694.929118083911, 'labour_hours': 134.37473199973275, + 'labour_days': 4.199210374991648}], 'type': 'internal_wall_insulation', + 'measure_type': 'internal_wall_insulation', + 'description': 'Install 95mm ' + 'SWIP EcoBatt & ' + 'Plastered ' + 'finish on ' + 'internal walls', + 'starting_u_value': 1.7, + 'new_u_value': 0.32, + 'already_installed': False, + 'sap_points': 6, + 'simulation_config': { + 'is_as_built_ending': False, + 'walls_is_assumed_ending': + False, + 'walls_insulation_thickness_ending': 'average', + 'internal_insulation_ending': True, + 'walls_energy_eff_ending': + 'Good', + 'walls_thermal_transmittance_ending': 0.29}, + 'description_simulation': { + 'walls-description': 'Solid ' + 'brick, with internal ' + 'insulation', + 'walls-energy-eff': 'Good'}, + 'total': 5694.929118083911, + 'labour_hours': 134.37473199973275, + 'labour_days': 4.199210374991648, + 'survey': True, + 'recommendation_id': '1_phase=0', + 'efficiency': 3349.6383047552417, + 'co2_equivalent_savings': np.float64( + 0.5), + 'heat_demand': np.float64( + 35.30000000000001), + 'kwh_savings': np.float64( + 1432.3999999999996), + 'energy_cost_savings': np.float64( + 106.67167058823532)}], [ + {'phase': 1, 'parts': [{'id': 2351, 'type': 'loft_insulation', + 'description': 'Knauf Loft Roll 44 glass fibre roll', + 'depth': 300.0, 'depth_unit': 'mm', 'cost': None, + 'cost_unit': 'gbp_per_m2', 'r_value_per_mm': 0.022727273, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.044, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SCIS', + 'created_at': Timestamp('2025-03-16 15:26:22.379496'), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 0.0, + 'labour_hours_per_unit': 0.11, 'plant_cost': 0.0, + 'total_cost': 15.0, + 'notes': 'This is the cost if there is less than 100mm ' + 'existing insulation', + 'is_installer_quote': True, 'quantity': 63.98796761892035, + 'quantity_unit': 'm2', 'total': 645.0, 'labour_hours': 8, + 'labour_days': 1}], 'type': 'loft_insulation', + 'measure_type': 'loft_insulation', + 'description': 'Install 300mm of Knauf Loft Roll 44 glass fibre roll in your loft', + 'starting_u_value': 2.3, 'new_u_value': 2.3, 'sap_points': np.float64(2.4), + 'already_installed': False, + 'simulation_config': {'is_loft_ending': True, 'roof_is_assumed_ending': False, + 'roof_insulation_thickness_ending': '300', + 'roof_thermal_transmittance_ending': 2.3, + 'roof_energy_eff_ending': 'Very Good'}, + 'description_simulation': {'roof-description': 'Pitched, 300mm loft insulation', + 'roof-energy-eff': 'Very Good'}, 'total': 645.0, + 'labour_hours': 8, 'labour_days': 1, 'survey': False, 'recommendation_id': '2_phase=1', + 'efficiency': 278.1347826086957, + 'co2_equivalent_savings': np.float64(0.10000000000000009), + 'heat_demand': np.float64(1.5), 'kwh_savings': np.float64(566.1499999999996), + 'energy_cost_savings': np.float64(42.16152352941185)}], [{'phase': 2, 'parts': [ + {'id': 2329, 'type': 'mechanical_ventilation', 'description': 'Mechanical Extract Ventilation', + 'depth': 0.0, + 'depth_unit': None, 'cost': None, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': nan, + 'r_value_unit': 'square_meter_kelvin_per_watt', 'thermal_conductivity': None, + 'thermal_conductivity_unit': None, + 'link': 'SCIS', 'created_at': datetime.datetime(2025, 3, 16, 15, 26, 22, 379496), 'is_active': True, + 'prime_material_cost': None, 'material_cost': 0.0, 'labour_cost': 0.0, 'labour_hours_per_unit': 0.0, + 'plant_cost': 0.0, 'total_cost': 350.0, 'notes': None, 'is_installer_quote': True, 'total': 700.0, + 'quantity': 2, + 'quantity_unit': 'part'}], 'type': 'mechanical_ventilation', 'measure_type': 'mechanical_ventilation', + 'description': 'Install 2 ' + 'Mechanical ' + 'Extract ' + 'Ventilation units', + 'starting_u_value': None, + 'new_u_value': None, + 'already_installed': False, + 'sap_points': np.float64( + -0.10000000000000142), + 'heat_demand': np.float64( + -3.3999999999999773), + 'kwh_savings': np.float64( + -53.80000000000018), + 'co2_equivalent_savings': np.float64( + 0.0), + 'energy_cost_savings': np.float64( + -4.0065176470588995), + 'total': 700.0, + 'labour_hours': 8, + 'labour_days': 1.0, + 'simulation_config': { + 'mechanical_ventilation_ending': + 'mechanical, ' + 'extract ' + 'only'}, + 'description_simulation': { + 'mechanical-ventilation': 'mechanical, ' + 'extract only'}, + 'recommendation_id': '3_phase=2', + 'efficiency': 0}], [ + {'phase': 3, 'parts': [{'id': 2409, 'type': 'suspended_floor_insulation', + 'description': 'Q-bot underfloor insulation', 'depth': 75.0, + 'depth_unit': 'mm', 'cost': None, 'cost_unit': 'gbp_per_m2', + 'r_value_per_mm': 0.045454547, + 'r_value_unit': 'square_meter_kelvin_per_watt', + 'thermal_conductivity': 0.022, + 'thermal_conductivity_unit': 'watt_per_meter_kelvin', + 'link': 'SCIS', + 'created_at': Timestamp('2025-03-16 15:26:22.379496'), + 'is_active': True, 'prime_material_cost': None, + 'material_cost': 0.0, 'labour_cost': 0.0, + 'labour_hours_per_unit': 1.63, 'plant_cost': 0.0, + 'total_cost': 93.75, + 'notes': 'Linearly interpolated based on Qbot costs', + 'is_installer_quote': True, 'quantity': 43.0, + 'quantity_unit': 'm2', 'total': 4031.25, + 'labour_hours': 70.08999999999999, + 'labour_days': 2.920416666666666}], + 'type': 'suspended_floor_insulation', 'measure_type': 'suspended_floor_insulation', + 'description': 'Install 75mm Q-bot underfloor insulation insulation in suspended ' + 'floor', + 'starting_u_value': 0.83, 'new_u_value': 0.22, 'sap_points': 2, 'survey': True, + 'already_installed': False, 'simulation_config': {'floor_is_assumed_ending': False, + 'floor_insulation_thickness_ending': 'average', + 'floor_thermal_transmittance_ending': 0.685593}, + 'description_simulation': {'floor-description': 'Suspended, insulated'}, + 'total': 4031.25, 'labour_hours': 70.08999999999999, 'labour_days': 2.920416666666666, + 'recommendation_id': '4_phase=3', 'efficiency': 4856.707710843373, + 'co2_equivalent_savings': np.float64(0.20000000000000018), + 'heat_demand': np.float64(33.5), 'kwh_savings': np.float64(1021.1999999999998), + 'energy_cost_savings': np.float64(76.04936470588231)}], [ + {'phase': 4, 'parts': [], 'type': 'low_energy_lighting', + 'measure_type': 'low_energy_lighting', + 'description': 'Install low energy lighting in -886 outlets', 'starting_u_value': None, + 'new_u_value': None, 'already_installed': False, 'sap_points': 2, + 'kwh_savings': -48508.5, 'energy_cost_savings': -12481.237049999998, + 'co2_equivalent_savings': -7.858377, + 'description_simulation': {'lighting-energy-eff': 'Very Good', + 'lighting-description': 'Low energy lighting in all fixed' + ' outlets', + 'low-energy-lighting': 100}, 'total': -3411.1000000000004, + 'labour_hours': 1, 'labour_days': 0.125, 'survey': True, + 'recommendation_id': '5_phase=4', 'efficiency': -1705.5500000000002, + 'heat_demand': np.float64(5.099999999999994)}], [ + {'type': 'heating', 'phase': 5, 'measure_type': 'time_temperature_zone_control', + 'parts': [], + 'description': 'Upgrade heating controls to Smart Thermostats, room sensors and ' + 'smart radiator valves (time & temperature zone control)', + 'total': 739.576, 'subtotal': 700.48, 'vat': 39.096000000000004, + 'labour_hours': 3.6199999999999997, 'labour_days': np.float64(1.0), + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(2.9), + 'already_installed': False, 'simulation_config': { + 'thermostatic_control_ending': 'time and temperature zone control', + 'switch_system_ending': None, 'trvs_ending': None, + 'mainheatc_energy_eff_ending': 'Very Good'}, 'description_simulation': { + 'mainheatcont-description': 'Time and temperature zone control', + 'mainheatc-energy-eff': 'Very Good'}, 'recommendation_id': '6_phase=5', + 'efficiency': 739.576, 'co2_equivalent_savings': np.float64(0.30000000000000027), + 'heat_demand': np.float64(6.599999999999994), + 'kwh_savings': np.float64(876.8000000000002), + 'energy_cost_savings': np.float64(65.29581176470589)}], [ + {'phase': 6, 'parts': [], 'type': 'secondary_heating', + 'measure_type': 'secondary_heating', + 'description': 'Remove the secondary heating system', 'starting_u_value': None, + 'new_u_value': None, 'sap_points': np.float64(3.6), 'already_installed': False, + 'total': 30.0, 'subtotal': 25.0, 'vat': 5.0, 'labour_hours': 3.0, + 'labour_days': np.float64(1.0), + 'simulation_config': {'secondheat_description_ending': 'None'}, + 'description_simulation': {'secondheat-description': 'None'}, + 'recommendation_id': '7_phase=6', 'efficiency': 30.0, + 'co2_equivalent_savings': np.float64(0.10000000000000009), + 'heat_demand': np.float64(15.400000000000006), + 'kwh_savings': np.float64(196.29999999999927), + 'energy_cost_savings': np.float64(14.61857647058821)}], [ + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 4.0 kilowatt-peak (kWp) solar panel system.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(13.0), + 'already_installed': False, 'total': 6013.139999999999, 'subtotal': 5010.95, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(65.0), + 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(4081.7132614999996), + 'description_simulation': {'photo-supply': np.float64(65.0)}, + 'recommendation_id': '8_phase=7', 'efficiency': np.float64(462.54923076923075), + 'co2_equivalent_savings': np.float64(0.47347873833399995), + 'heat_demand': np.float64(88.69999999999999), + 'kwh_savings': np.float64(2040.8566307499998), + 'energy_cost_savings': np.float64(525.1124110919749)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 4.0 kilowatt-peak (kWp) solar panel system, with a battery.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(13.0), + 'already_installed': False, 'total': 10537.008, 'subtotal': 8780.84, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(65.0), + 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(4081.7132614999996), + 'description_simulation': {'photo-supply': np.float64(65.0)}, + 'recommendation_id': '9_phase=7', 'efficiency': np.float64(810.5390769230769), + 'co2_equivalent_savings': np.float64(0.6628702336675999), + 'heat_demand': np.float64(88.69999999999999), + 'kwh_savings': np.float64(2857.1992830499994), + 'energy_cost_savings': np.float64(735.1573755287648)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 3.6 kilowatt-peak (kWp) solar panel system.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(12.0), + 'already_installed': False, 'total': 5826.491999999999, 'subtotal': 4855.41, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(60.0), + 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(3692.66794), + 'description_simulation': {'photo-supply': np.float64(60.0)}, + 'recommendation_id': '10_phase=7', 'efficiency': np.float64(485.54099999999994), + 'co2_equivalent_savings': np.float64(0.42834948104), + 'heat_demand': np.float64(83.69999999999999), 'kwh_savings': np.float64(1846.33397), + 'energy_cost_savings': np.float64(475.0617304809999)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 3.6 kilowatt-peak (kWp) solar panel system, with a battery.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(12.0), + 'already_installed': False, 'total': 10350.359999999999, 'subtotal': 8625.3, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(60.0), + 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(3692.66794), + 'description_simulation': {'photo-supply': np.float64(60.0)}, + 'recommendation_id': '11_phase=7', 'efficiency': np.float64(862.5299999999999), + 'co2_equivalent_savings': np.float64(0.599689273456), + 'heat_demand': np.float64(83.69999999999999), 'kwh_savings': np.float64(2584.867558), + 'energy_cost_savings': np.float64(665.0864226734)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 3.2 kilowatt-peak (kWp) solar panel system.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(11.0), + 'already_installed': False, 'total': 5642.604, 'subtotal': 4702.17, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(55.0), + 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(3300.5416548), + 'description_simulation': {'photo-supply': np.float64(55.0)}, + 'recommendation_id': '12_phase=7', 'efficiency': np.float64(512.964), + 'co2_equivalent_savings': np.float64(0.3828628319568), 'heat_demand': np.float64(78.3), + 'kwh_savings': np.float64(1650.2708274), + 'energy_cost_savings': np.float64(424.61468389001993)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 3.2 kilowatt-peak (kWp) solar panel system, with a battery.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(11.0), + 'already_installed': False, 'total': 10166.472, 'subtotal': 8472.06, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(55.0), + 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(3300.5416548), + 'description_simulation': {'photo-supply': np.float64(55.0)}, + 'recommendation_id': '13_phase=7', 'efficiency': np.float64(924.2247272727273), + 'co2_equivalent_savings': np.float64(0.53600796473952), + 'heat_demand': np.float64(78.3), 'kwh_savings': np.float64(2310.3791583599996), + 'energy_cost_savings': np.float64(594.4605574460278)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 2.8 kilowatt-peak (kWp) solar panel system.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(9.0), + 'already_installed': False, 'total': 5458.727999999999, 'subtotal': 4548.94, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(45.0), + 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(2907.1867812), + 'description_simulation': {'photo-supply': np.float64(45.0)}, + 'recommendation_id': '14_phase=7', 'efficiency': np.float64(606.5253333333333), + 'co2_equivalent_savings': np.float64(0.3372336666192), 'heat_demand': np.float64(64.0), + 'kwh_savings': np.float64(1453.5933906), + 'energy_cost_savings': np.float64(374.00957940138)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 2.8 kilowatt-peak (kWp) solar panel system, with a battery.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(9.0), + 'already_installed': False, 'total': 9982.596, 'subtotal': 8318.83, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(45.0), + 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(2907.1867812), + 'description_simulation': {'photo-supply': np.float64(45.0)}, + 'recommendation_id': '15_phase=7', 'efficiency': np.float64(1109.1773333333333), + 'co2_equivalent_savings': np.float64(0.47212713326688), + 'heat_demand': np.float64(64.0), 'kwh_savings': np.float64(2035.03074684), + 'energy_cost_savings': np.float64(523.6134111619319)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 2.4 kilowatt-peak (kWp) solar panel system.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(8.0), + 'already_installed': False, 'total': 5274.852, 'subtotal': 4395.71, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(40.0), + 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(2510.25188), + 'description_simulation': {'photo-supply': np.float64(40.0)}, + 'recommendation_id': '16_phase=7', 'efficiency': np.float64(659.3565), + 'co2_equivalent_savings': np.float64(0.29118921808), 'heat_demand': np.float64(54.3), + 'kwh_savings': np.float64(1255.12594), + 'energy_cost_savings': np.float64(322.94390436199996)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 2.4 kilowatt-peak (kWp) solar panel system, with a battery.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(8.0), + 'already_installed': False, 'total': 9798.72, 'subtotal': 8165.6, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(40.0), + 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(2510.25188), + 'description_simulation': {'photo-supply': np.float64(40.0)}, + 'recommendation_id': '17_phase=7', 'efficiency': np.float64(1224.84), + 'co2_equivalent_savings': np.float64(0.40766490531199995), + 'heat_demand': np.float64(54.3), 'kwh_savings': np.float64(1757.1763159999998), + 'energy_cost_savings': np.float64(452.1214661067999)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 2.0 kilowatt-peak (kWp) solar panel system.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(7.0), + 'already_installed': False, 'total': 5090.976, 'subtotal': 4242.48, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(35.0), + 'has_battery': False, 'initial_ac_kwh_per_year': np.float64(2096.682636), + 'description_simulation': {'photo-supply': np.float64(35.0)}, + 'recommendation_id': '18_phase=7', 'efficiency': np.float64(727.2822857142856), + 'co2_equivalent_savings': np.float64(0.243215185776), 'heat_demand': np.float64(48.5), + 'kwh_savings': np.float64(1048.341318), + 'energy_cost_savings': np.float64(269.7382211214)}, + {'phase': 7, 'parts': [], 'type': 'solar_pv', 'measure_type': 'solar_pv', + 'description': 'Install a 2.0 kilowatt-peak (kWp) solar panel system, with a battery.', + 'starting_u_value': None, 'new_u_value': None, 'sap_points': np.float64(7.0), + 'already_installed': False, 'total': 9614.844, 'subtotal': 8012.369999999999, 'vat': 0, + 'labour_hours': 48, 'labour_days': 2, 'photo_supply': np.float64(35.0), + 'has_battery': True, 'initial_ac_kwh_per_year': np.float64(2096.682636), + 'description_simulation': {'photo-supply': np.float64(35.0)}, + 'recommendation_id': '19_phase=7', 'efficiency': np.float64(1373.5491428571427), + 'co2_equivalent_savings': np.float64(0.3405012600864), 'heat_demand': np.float64(48.5), + 'kwh_savings': np.float64(1467.6778451999999), + 'energy_cost_savings': np.float64(377.6335095699599)}] ] - if _find_measure(input_measures, "solar_pv"): - for heat_type, ref in solar_heating_combos: - if _find_measure(input_measures, heat_type): - if remaining_insulation_type: - for insulation_measure in remaining_insulation_type: - funding_paths.append( - [{"AND": ["solar_pv", heat_type, insulation_measure], - "reference": f"{ref[:-5]}+{insulation_measure}:eco4"}] # keeps naming consistent - ) - else: - funding_paths.append([{"AND": ["solar_pv", heat_type], "reference": ref}]) - - # We've actually covered all possible options where solar PV can be included in a funded package, so where - # solar PV is not in a reference, we can exclude it - - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - # Heating Upgrades - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - # Must have an existing eligible heating system - - # For private, HHRSH alone, or a boiler upgrade is NOT eligible for ECO4 funding. Boiler upgrade also doesn't - # count as an eligible heating system - if housing_type == "Private": - single_heating_measures = ["air_source_heat_pump"] - else: - single_heating_measures = [ - "boiler_upgrade", "high_heat_retention_storage_heater", "air_source_heat_pump" - ] - measure_references = { - "boiler_upgrade": "boiler_upgrade", - "high_heat_retention_storage_heater": "hhrsh", - "air_source_heat_pump": "ashp" - } - for heating_upgrade in single_heating_measures: - if _find_measure(input_measures, heating_upgrade): - if remaining_insulation_type: - for insulation_measure in remaining_insulation_type: - path = [ - { - "AND": [heating_upgrade, insulation_measure], - "reference": f"{measure_references[heating_upgrade]}+{insulation_measure}:eco4" - } - ] - funding_paths.append(path) - else: - funding_paths.append( - [{"AND": [heating_upgrade], "reference": f"{measure_references[heating_upgrade]}:eco4"}] - ) - - return funding_paths + return recs -def _make_generic_gbis_funding_paths(input_gbis_measures, funding_paths): - """ - For GBIS, the packages are single insulation measure. - - We also have potential GBIS packages that allow heating controls as a secondary measure, however this - is not currently implemented in the optimiser due to not being certain about the heating controls pre conditions - :param input_gbis_measures: - :param funding_paths: - :return: - """ - - gbis_funding_paths = [] - for input_measure in input_gbis_measures: - for measure in input_measure: - # We create a path for each measure - gbis_funding_paths.append([{"AND": [measure["type"]], "reference": measure["type"] + ":gbis"}]) - - return funding_paths + gbis_funding_paths +def _attach_costs_and_uplifts(recs, funding, p): + """Mimic what your script did: add cost fields & innovation uplift.""" + out = deepcopy(recs) + for group in out: + for r in group: + if r["type"] in ["mechanical_ventilation", "low_energy_lighting", "secondary_heating"]: + r["innovation_uplift"] = 0 + continue + r["uplift"] = 0.0 # fixed for determinism in test + r["innovation_uplift"] = funding.get_innovation_uplift( + measure=r, + starting_sap=55, + floor_area=70.0, + is_cavity=False, + current_wall_uvalue=1.7, + is_partial=False, + existing_li_thickness=150, + mainheating=p.main_heating, + main_fuel=p.main_fuel, + mainheat_energy_eff="Very Good", + ) + # the optimiser_functions.prepare_input_measures will translate these to input format; but + # for safety add explicit cost fields some downstream code expects: + r["total"] = float(r["total"]) + return out -def make_funding_paths(p, input_measures, housing_type): - """ - This function generates funding paths based on the input measures and the tenure of the property. - It checks for the presence of specific measures and creates paths that include necessary insulation measures - to meet minimum insulation requirements, particularly when a heating system is recommended. +def _to_input_measures(recs, p): + """Use your own helper so we test the full pipeline.""" + property_measure_types = {rec["type"] for grp in recs for rec in grp} + needs_ventilation = any( + x in property_measure_types for x in optimiser_functions.assumptions.measures_needing_ventilation + ) and not getattr(p, "has_ventilation", False) - Remaining measures that are not fixed as part of the package are then optimised - :param p: The property object containing details about the property, including main heating and controls. - :param input_measures: - :param housing_type: - :return: - """ - # We handle the case of minimum insulation requirements. Whenever we have a heating system recommendation, - # we *must* include an additional insulation measure, unless the property already has sufficient insulation. - - # We determine which insulation measures need to be included - wall_insulation_measures = [ - "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", - "extension_cavity_wall_insulation" - ] - roof_insulation_measures = [ - "loft_insulation", "flat_roof_insulation", "room_roof_insulation" - ] - other_gbis_insulation_measures = [ - "suspended_floor_insulation", "solid_floor_insulation", - ] - # These are the insulation measures that the property still needs and so will be considered for - # filling the minimum insulation requirements - remaining_insulation_type = [] - for insulation_measure in wall_insulation_measures + roof_insulation_measures: - if _find_measure(input_measures, insulation_measure): - remaining_insulation_type.append(insulation_measure) - - remaining_insulation_type = list(set(remaining_insulation_type)) - - funding_paths = [] - - if housing_type == "Social" and p.data["current-energy-rating"] == "D": - # If the property is currently EPC D, we can only include innovation measures or measures to meet the - # minimum insulation requirements - input_measures_innovation = [] - input_gbis_measures_innovation = [] - for measures in input_measures: - for measure in measures: - if measure["innovation_uplift"] or measure["type"] in remaining_insulation_type: - input_measures_innovation.append([measure]) - - if measure["innovation_uplift"] and measure["type"] in ( - remaining_insulation_type + other_gbis_insulation_measures - ): - input_gbis_measures_innovation.append([measure]) - - funding_paths = _make_solar_heating_funding_paths( - p, input_measures_innovation, funding_paths, remaining_insulation_type, housing_type - ) - - # Can only be innovation GBIS measures - funding_paths = _make_generic_gbis_funding_paths(input_gbis_measures_innovation, funding_paths) - return funding_paths, input_measures_innovation - - if housing_type == "Private": - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - # EWI or IWI - # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - # 1) The package must include EWI or IWI if the property is private rental sector - # We check if we have any EWI or IWI measures available - ewi_or_iwi = [{"OR": []}] - reference_measures = [] - # If we have EWI we add it in - if _find_measure(input_measures, "external_wall_insulation"): - ewi_or_iwi[0]["OR"].append("external_wall_insulation") - reference_measures.append("ewi") - - if _find_measure(input_measures, "internal_wall_insulation"): - ewi_or_iwi[0]["OR"].append("internal_wall_insulation") - reference_measures.append("iwi") - - if ewi_or_iwi[0]["OR"]: - ewi_or_iwi[0]["reference"] = "+".join(reference_measures) + ":eco4" - funding_paths.append(ewi_or_iwi) - - funding_paths = _make_solar_heating_funding_paths( - p, input_measures, funding_paths, remaining_insulation_type, housing_type + # goal="Increasing EPC", add_uplift=True for Social path + return optimiser_functions.prepare_input_measures( + recs, goal="Increasing EPC", needs_ventilation=needs_ventilation, funding=True ) - # If we have any remaining insulation measures, we add them to the funding paths - input_gbis_measures = [] - for measures in input_measures: - for measure in measures: - if measure["type"] in remaining_insulation_type + other_gbis_insulation_measures: - input_gbis_measures.append([measure]) - funding_paths = _make_generic_gbis_funding_paths(input_gbis_measures, funding_paths) - - return funding_paths, input_measures +def _types_of(picked_items): + return {item["type"] for item in picked_items} -# ---- main wrapper around your optimiser ---------------------------------- +def test_social_fabric_only_returns_only_fabric_types(p, funding, property_recommendations, monkeypatch): + # 1) prepare data like your script + recs = _attach_costs_and_uplifts(property_recommendations, funding, p) + input_measures = _to_input_measures(recs, p) -# Run inputs: -target_gain = 18.5 + # 2) run optimiser wrapper (budget and target_gain can be modest for the test) + budget = 30000.0 + target_gain = 8.0 - -def _path_scheme(path_spec): - """ - Infer scheme from any 'reference' tag in the path. - Defaults to 'eco4' if not specified. - """ - for elem in path_spec or []: - ref = elem.get("reference") - if isinstance(ref, str): - if ref.endswith(":gbis"): - return "gbis" - if ref.endswith(":eco4"): - return "eco4" - return "eco4" - - -def _filter_fundable_subgroups(groups, scheme): - """ - Keep only options eligible for the funded pass of the given scheme. - - ECO4: drop excluded types (e.g., secondary_heating) - - GBIS: funded pass is the GBIS fixed measure only, so return empty sub-groups - """ - if scheme == "gbis": - return [] # we won't optimise 'the rest' under GBIS here - - # ECO4 case - filtered = [] - for grp in groups: - kept = [opt for opt in grp - if not any(ex in opt["type"] for ex in _ECO4_EXCLUDE_TYPES)] - if kept: - filtered.append(kept) - return filtered - - -def _sum_cost_gain_with_scheme(items, scheme): - """ - Sum cost/gain of fixed items, adjusting for scheme rules. - - GBIS: strip innovation uplift from GBIS-funded fixed measures only. - """ - total_cost = 0.0 - total_gain = 0.0 - for it in items: - cost = float(it["cost"]) - if scheme == "gbis": - # innovation uplifts are not paid under GBIS - cost -= float(it.get("innovation_uplift", 0.0)) - total_cost += cost - total_gain += float(it["gain"]) - return total_cost, total_gain - - -def violates_min_insulation(fixed): - """Return True if fixed selection includes a heating/PV measure but no required insulation.""" - picked_types = {opt["type"] for (_, _, opt) in fixed} - - def has_any(substrs): - return any(any(s in t for s in substrs) for t in picked_types) - - # heating (incl. PV) flags - is_heating = has_any([ - "air_source_heat_pump", - "high_heat_retention_storage_heater", - "boiler_upgrade", - "electric_boiler", - "time_temperature_zone_control", - "secondary_heating", - "solar_pv", # PV treated as heating for MIR - ]) - - # MIR insulation (the ones you’re using in path construction) - has_insul = has_any([ - "external_wall_insulation", - "internal_wall_insulation", - "cavity_wall_insulation", - "extension_cavity_wall_insulation", - "loft_insulation", - "flat_roof_insulation", - "room_roof_insulation", - ]) - - return is_heating and not has_insul - - -# Treat "type" like "external_wall_insulation+mechanical_ventilation" → "external_wall_insulation" -def _base_type(s: str) -> str: - return s.split("+", 1)[0] - - -def _filter_measures_by_types(input_measures, allowed_types): - """ - Keep only groups that have ≥1 allowed option; inside each group keep only allowed options. - """ - allowed_set = set(allowed_types) - filtered = [] - for group in input_measures: - kept_opts = [opt for opt in group if _base_type(opt["type"]) in allowed_set] - if kept_opts: - filtered.append(kept_opts) - return filtered - - -def _is_eligible_funding_package(scheme, starting_sap, total_gain): - if scheme == "eco4": - # We check if we meet the upgrade requirements - # If the property is an E or above, we need to upgrade to a C or above - if starting_sap >= 39: # ie. EPC C or above - return starting_sap + total_gain >= 69 - - if scheme == "gbis": - # GBIS is a fixed measure only, so we don't check the gain - return True - - -def _prs_solution_ok(items, p): - # items: list of picked option dicts (after optimisation) - # treat "type" possibly like "x+y" -> split and look at base tokens - types = set() - for opt in items: - for t in opt["type"].split("+"): - types.add(t) - - has_solid_wall = ("external_wall_insulation" in types) or ("internal_wall_insulation" in types) - - # renewable set: - has_ashp = ("air_source_heat_pump" in types) # ASHP alone is renewable - has_solar = ("solar_pv" in types) - has_hhrsh = ("high_heat_retention_storage_heater" in types) # only counts *with* solar - - # solar PV qualifies if paired with eligible existing heating - solar_ok_existing = has_solar and funding.check_solar_eligible_heating_system( - p.main_heating["clean_description"], p.main_heating_controls["clean_description"] - ) - - # or paired with ASHP/HHRSH in the same package - solar_ok_with_installed = has_solar and (has_ashp or has_hhrsh) - - renewable_ok = has_ashp or solar_ok_existing or solar_ok_with_installed - - return has_solid_wall or renewable_ok - - -def _ensure_unfunded_costs(groups): - """Make sure each option’s cost is base+uplift (i.e., no funding). - Safe if fields already match; works on a deepcopy. - """ - for grp in groups: - for opt in grp: - base = opt.get("cost_minus_uplift") - upl = opt.get("innovation_uplift", 0.0) - if base is not None: - opt["cost"] = float(base) + float(upl) - # else: assume opt["cost"] already includes uplift - return groups - - -def optimise_with_funding_paths(p, input_measures, housing_type, budget=None, target_gain=None): - """ - run_optimizer(sub_measures, budget, target_gain) -> (picked_options, sub_cost, sub_gain) - """ - - solutions = [] - - # unfunded - we utilise all measures - unfunded_measures = input_measures.copy() - unfunded_measures = _ensure_unfunded_costs(unfunded_measures) - picked, total_cost, total_gain = run_optimizer( - unfunded_measures, + solutions = optimise_with_funding_paths( + p=p, + input_measures=input_measures, + housing_type="Social", budget=budget, - sub_target_gain=target_gain + target_gain=target_gain, + funding=funding ) - if picked is not None: - solutions.append({ - "fixed_ids": [], - "items": picked, - "total_cost": total_cost, - "total_gain": total_gain, - "path": {"reference": "unfunded:all"}, - "scheme": "none", - "is_eligible": False, # no funding scheme applied - }) - # This function will filter down on innovation measures if we are social EPC D - funding_paths, optimisation_input_measures = make_funding_paths(p, input_measures, housing_type) + # 3) basic shape assertions + assert isinstance(solutions, pd.DataFrame) + assert not solutions.empty - # We now produce a fabric only path for ECO4 - # We add in generic insulation funding paths (where there is no fixed measure) - # Heating controls are only eligible if installed as part of a heating upgrade and so we do not include them - # here - if housing_type == "Social": - funding_paths = ( - [ - { - 'reference': 'fabric-only:eco4', - "allowed_types": WALL_INSULATION_MEASURES + ROOF_INSULATION_MEASURES + - ECO4_ELIGIBILE_FABRIC_MEASURES - } - ] + funding_paths - ) + # 4) find the fabric-only ECO4 row + fabric_rows = solutions[ + solutions["path"].apply(lambda x: isinstance(x, dict) and x.get("reference") == "fabric-only:eco4")] + assert not fabric_rows.empty, "Expected a fabric-only:eco4 solution for Social tenure" - for path_spec in funding_paths: + # 5) ensure only fabric measure types are present in that solution + picked_types = _types_of(fabric_rows.iloc[0]["items"]) + assert picked_types == {'internal_wall_insulation+mechanical_ventilation', + 'suspended_floor_insulation'}, "incorrect types selected" - # ECO4 fabric only path = special case - if isinstance(path_spec, dict) and path_spec.get("reference") == "fabric-only:eco4": - sub_measures = _filter_measures_by_types(optimisation_input_measures, path_spec["allowed_types"]) - if not sub_measures: - continue + # 6) respect budget + assert fabric_rows.iloc[0]["total_cost"] <= budget + 1e-9 - picked, sub_cost, sub_gain = run_optimizer( - sub_measures, - budget=budget, # no fixed items; budget unchanged - sub_target_gain=target_gain - ) - - if picked is None: - continue - - scheme = _path_scheme([path_spec]) - - solutions.append( - { - "fixed_ids": [], - "items": picked, - "total_cost": sub_cost, - "total_gain": sub_gain, - "path": path_spec, - "scheme": scheme, - "is_eligible": _is_eligible_funding_package(scheme, p.data["current-energy-efficiency"], sub_gain) - } - ) - - continue - - # 1) expand fixed selections for this path - fixed_selections = expand_funding_path(optimisation_input_measures, path_spec) if path_spec else [[]] - if not fixed_selections: - continue - - for fixed in fixed_selections: - - if violates_min_insulation(fixed): - # We log an error and skip this - we should not see any errors but we can probably get a reasonable - # outcome for the end user without a complete termination of the process - logger.error("Skipping fixed selection due to minimum insulation violation: %s", fixed) - continue - - scheme = _path_scheme(path_spec) - - # 3) compute fixed cost/gain, and strip those groups from subproblem - fixed_items = [opt for (_, _, opt) in fixed] - fixed_ids = [opt['id'] for opt in fixed_items] - fixed_cost, fixed_gain = sum_cost_gain(fixed_items) - fixed_groups = {gi for (gi, _, _) in fixed} - - sub_measures = deepcopy( - [grp for gi, grp in enumerate(optimisation_input_measures) if gi not in fixed_groups] - ) - - if scheme == "gbis": - # Then for the sub-measures, we need to strip the innovation uplift from the GBIS fixed measures. We - # do this by adding innovation back onto the cost - for grp in sub_measures: - for opt in grp: - opt["cost"] = opt["cost_minus_uplift"] + opt.get("innovation_uplift", 0.0) - - if scheme == "eco4": - # Need to strip out any measure types that are not eligible for ECO4 funding (e.g. secondary heating) - raise ValueError() - - # 4) run your existing optimiser for the remaining groups - # If we have a budget, we need to ensure the subproblem respects it so we remove the fixed cost (which - # may already be over budget) and the fixed gain (which may not be achievable) - picked, sub_cost, sub_gain = run_optimizer( - sub_measures, - budget - fixed_cost if budget is not None else None, - sub_target_gain=target_gain - fixed_gain if target_gain is not None else None - ) - - if picked is None: - continue - - total_cost = fixed_cost + sub_cost - total_gain = fixed_gain + sub_gain - total_picks = fixed_items + picked - - if housing_type == "Private": - if not _prs_solution_ok(total_picks, p): - logger.error( - "Found a solution that does not meet the PRS requirements: %s - this shouldn't be happening", - total_picks - ) - continue - - scheme = _path_scheme(path_spec) - - solutions.append({ - "fixed_ids": fixed_ids, - "items": total_picks, - "total_cost": total_cost, - "total_gain": total_gain, - "path": path_spec, - "scheme": scheme, - "is_eligible": _is_eligible_funding_package(scheme, p.data["current-energy-efficiency"], total_gain) - }) - - solutions = pd.DataFrame(solutions) - - # Given the scheme, we now check if the packages are eligible. If they *are* eligible, but they don't meet the - # final upgrade target, we then look to perform a final optimisation pass to meet the target gain. - solutions["meets_upgrade_target"] = solutions["total_gain"] >= target_gain - - # If we have packages that are fundable, but do not meet the upgrade target, we can run a final optimisation pass - if not solutions[solutions["is_eligible"] & ~solutions["meets_upgrade_target"]].empty: - raise NotImplementedError("Implement me") - - return solutions - - -# ---- helpers ------------------------------------------------------------- - - -def sum_cost_gain(items): - c = sum(float(x['cost']) for x in items) - g = sum(float(x['gain']) for x in items) - return c, g - - -# ---- candidate expansion ------------------------------------------------- -def type_matches(option_type: str, required: str) -> bool: - # substring match so "external_wall_insulation+mechanical_ventilation" satisfies "external_wall_insulation" - return required in option_type - - -def candidates_for_type(input_measures, required_type): - """ - Return a list of (gi, oi, opt) where opt['type'] contains required_type. - gi = group index, oi = option index inside that group. - """ - cands = [] - for gi, group in enumerate(input_measures): - for oi, opt in enumerate(group): - if type_matches(opt["type"], required_type): - cands.append((gi, oi, opt)) - return cands - - -def iter_or_candidates(input_measures, types_list): - """ - For OR: pick exactly ONE candidate whose type matches ANY in types_list. - Return a list of dicts: {"fixed": [(gi, oi, opt)]} - """ - union = [] - seen_ids = set() - for t in types_list: - for tup in candidates_for_type(input_measures, t): - # de-dupe by the option id so the same physical option (with multi-type name) isn’t repeated - if tup[2]["id"] not in seen_ids: - seen_ids.add(tup[2]["id"]) - union.append(tup) - return [{"fixed": [t]} for t in union] - - -def iter_and_candidates(input_measures, types_list): - """ - For AND: we must cover ALL required types. - We allow a single option to satisfy multiple types. - We build a simple product but collapse duplicates by (gi, oi). - """ - # Build candidate pools per required type - pools = [candidates_for_type(input_measures, t) for t in types_list] - if any(len(pool) == 0 for pool in pools): - return [] # impossible to satisfy AND - - # Start with one empty selection; accumulate per pool - selections = [[]] # each selection is a list of (gi, oi, opt) - for pool in pools: - new_selections = [] - for sel in selections: - for cand in pool: - # Try adding cand; collapse duplicates by (gi,oi) - gi, oi, opt = cand - replaced = False - conflict = False - merged = [] - for (sgi, soi, sopt) in sel: - if (sgi, soi) == (gi, oi): - # same exact option already in selection (satisfies another required type) – keep one - replaced = True - # keep the existing one (identical) - merged.append((sgi, soi, sopt)) - else: - merged.append((sgi, soi, sopt)) - if not replaced: - merged.append(cand) - if not conflict: - new_selections.append(merged) - selections = new_selections - if not selections: - return [] - - # After accumulation, we may still have duplicate groups with different options (conflict). Drop those. - cleaned = [] - for sel in selections: - seen_by_group = {} - ok = True - for gi, oi, opt in sel: - if gi in seen_by_group and seen_by_group[gi] != oi: - # same group, different option -> conflict for AND; invalid selection - ok = False - break - seen_by_group[gi] = oi - if ok: - # ensure stable order and unique by (gi,oi) - uniq = {} - for gi, oi, opt in sel: - uniq[(gi, oi)] = opt - cleaned.append([(gi, oi, opt) for (gi, oi), opt in uniq.items()]) - return [{"fixed": c} for c in cleaned] - - -def expand_funding_path(input_measures, path_spec): - """ - path_spec is a list of elements; each element is either: - {"OR": [type1, type2, ...], "reference": "..."} or - {"AND": [type1, type2, ...], "reference": "..."} - We cross-product across elements (all required), and produce selections as lists of (gi, oi, opt). - """ - selections = [[]] # list[list[(gi,oi,opt)]] - for elem in path_spec: - if "OR" in elem: - cands = iter_or_candidates(input_measures, elem["OR"]) - elif "AND" in elem: - cands = iter_and_candidates(input_measures, elem["AND"]) - else: - raise ValueError("unknown path element; expected 'OR' or 'AND'") - - if not cands: - return [] - - new_selections = [] - for base in selections: - for cand in cands: - # merge base + cand["fixed"], collapsing duplicate same-option picks - combined = list(base) - # reject if combined picks two different options from the same group - groups_to_oi = {(gi,): oi for gi, oi, _ in combined} # temporary; we’ll refactor below - conflict = False - # simpler: build a dict by group -> (oi, opt), conflict if group exists with different oi - gmap = {gi: (oi, opt) for gi, oi, opt in combined} - for gi, oi, opt in cand["fixed"]: - if gi in gmap: - prev_oi, _ = gmap[gi] - if prev_oi != oi: - conflict = True - break - gmap[gi] = (oi, opt) - if conflict: - continue - # back to list - merged = [(gi, oi, opt) for gi, (oi, opt) in gmap.items()] - new_selections.append(merged) - selections = new_selections - if not selections: - return [] - - # Final tidy: ensure no duplicate groups with different options (already protected), keep stable ordering - deduped = [] - for sel in selections: - gmap = {} - for gi, oi, opt in sel: - # keep the first occurrence - if gi not in gmap: - gmap[gi] = (oi, opt) - else: - # same group, different oi would have been filtered; if same oi, ignore duplicate - pass - deduped.append([(gi, oi, opt) for gi, (oi, opt) in gmap.items()]) - return deduped - - -# ---- tiny utilities ---------------------------------------------------------- - -def parse_types(t): - # e.g. "external_wall_insulation+mechanical_ventilation" -> {"external_wall_insulation","mechanical_ventilation"} - return set(map(str.strip, t.split("+"))) if isinstance(t, str) else set() - - -def includes_heating(opt_types): - return any(x in opt_types for x in { - "air_source_heat_pump", - "high_heat_retention_storage_heater", - "time_temperature_zone_control", # controls count as a heating measure in your pipeline - "solar_pv" # you treat PV as heating for funding logic - }) - - -def contributes_min_insulation(opt_types): - # MIR satisfiers you mentioned (extend as needed) - return any(x in opt_types for x in { - "external_wall_insulation", - "internal_wall_insulation", - "loft_insulation", - "cavity_wall_insulation", - }) - - -def run_optimizer(input_measures, budget=None, sub_target_gain=None, allow_slack=False): - """ - Thin wrapper over your optimisers. - Returns: list[dict] selected_options - """ - if budget is not None: - opt = GainOptimiser( - input_measures, max_cost=budget, max_gain=(sub_target_gain or float("inf")), - allow_slack=allow_slack - ) - else: - if sub_target_gain is None: - raise ValueError("Either budget or target_gain must be provided.") - opt = CostOptimiser(sub_measures, min_gain=sub_target_gain) - - opt.setup() - opt.solve() - cost = sum([x["cost"] for x in opt.solution]) - return opt.solution, cost, opt.solution_gain + # (optional) ensure unfunded baseline also appears + unfunded_rows = solutions[ + solutions["path"].apply(lambda x: isinstance(x, dict) and x.get("reference") == "unfunded:all")] + assert not unfunded_rows.empty From c7f8ea88d6f020d1704eca6750d0042b7912353f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 17 Aug 2025 17:45:25 +0100 Subject: [PATCH 44/73] Added innovation rate to wall insulation --- backend/app/db/models/materials.py | 23 +++++++++++++ etl/costs/app.py | 10 +++++- recommendations/WallRecommendations.py | 46 +++----------------------- 3 files changed, 36 insertions(+), 43 deletions(-) diff --git a/backend/app/db/models/materials.py b/backend/app/db/models/materials.py index 9f8abbf4..617ea0ac 100644 --- a/backend/app/db/models/materials.py +++ b/backend/app/db/models/materials.py @@ -38,12 +38,27 @@ class MaterialType(enum.Enum): flat_roof_preparation = "flat_roof_preparation" flat_roof_vapour_barrier = "flat_roof_vapour_barrier" flat_roof_waterproofing = "flat_roof_waterproofing" + trickle_vent = "trickle_vent" + door_undercut = "door_undercut" + solar_pv = "solar_pv" + solar_battery = "solar_battery" + scaffolding = "scaffolding" + high_heat_retention_storage_heaters = "high_heat_retention_storage_heaters" + sealing_fireplace = "sealing_fireplace" class DepthUnit(enum.Enum): mm = "mm" +class SizeUnit(enum.Enum): + # ["kWp", "kW", "watt", "storey"] + kWp = "kWp" + kW = "kW" + watt = "watt" + storey = "storey" + + class CostUnit(enum.Enum): gbp_sq_meter = "gbp_sq_meter" gbp_per_unit = "gbp_per_unit" @@ -90,3 +105,11 @@ class Material(Base): total_cost = Column(Float) notes = Column(String) is_installer_quote = Column(Boolean, nullable=False, default=False) + innovation_rate = Column(Float, default=0.0) + size = Column(Float) + size_unit = Column( + Enum(SizeUnit, values_callable=lambda x: [e.value for e in x]), nullable=True + ) + includes_scaffolding = Column(Boolean, default=False) + includes_battery = Column(Boolean, default=False) + battery_size = Column(Float) diff --git a/etl/costs/app.py b/etl/costs/app.py index f2bf365b..03c1813d 100644 --- a/etl/costs/app.py +++ b/etl/costs/app.py @@ -11,7 +11,7 @@ import inspect src_file_path = inspect.getfile(lambda: None) -DATA_DIRECTORY = Path(src_file_path).parent / "local_data" / "20250316 Domna Materials.xlsx" +DATA_DIRECTORY = Path(src_file_path).parent / "local_data" / "20250815 Domna Materials.xlsx" # Environment file is at the same level as this file ENV_FILE = Path(src_file_path).parent / "etl" / "costs" / ".env" dotenv.load_dotenv(ENV_FILE) @@ -92,6 +92,10 @@ def app(): flat_roof_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="flat_roof_insulation", header=0) window_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="window_glazing", header=0) rir_insulation_costs = pd.read_excel(DATA_DIRECTORY, sheet_name="room_roof_insulation", header=0) + solar_pv = pd.read_excel(DATA_DIRECTORY, sheet_name="solar_pv", header=0) + hhrsh = pd.read_excel(DATA_DIRECTORY, sheet_name="hhrsh", header=0) + scaffolding = pd.read_excel(DATA_DIRECTORY, sheet_name="scaffolding", header=0) + fireplaces = pd.read_excel(DATA_DIRECTORY, sheet_name="fireplaces", header=0) # Form a single table to be uploaded costs = pd.concat( @@ -107,6 +111,10 @@ def app(): flat_roof_costs, window_costs, rir_insulation_costs, + solar_pv, + hhrsh, + scaffolding, + fireplaces ] ) diff --git a/recommendations/WallRecommendations.py b/recommendations/WallRecommendations.py index 3a2815bc..78ed8072 100644 --- a/recommendations/WallRecommendations.py +++ b/recommendations/WallRecommendations.py @@ -142,46 +142,6 @@ class WallRecommendations(Definitions): return True - def mds_recommend_cavity_wall_insulation(self, phase=None): - # Function specifically for cavity wall insulation, for usage in the mds report - self.recommendations = [] - insulation_thickness = self.property.walls["insulation_thickness"] - - u_value = get_wall_u_value( - clean_description=self.property.walls["clean_description"], - age_band=self.property.age_band, - is_granite_or_whinstone=self.property.walls["is_granite_or_whinstone"], - is_sandstone_or_limestone=self.property.walls["is_sandstone_or_limestone"], - ) - - # Test filling cavity - self.find_cavity_insulation(u_value, insulation_thickness, phase, measures) - - return self.recommendations - - def mds_recommend_ewi(self, phase=None): - # Function specifically for external wall insulation, for usage in the mds report - self.recommendations = [] - - u_value = self.property.walls["thermal_transmittance"] - - if u_value is None: - u_value = get_wall_u_value( - clean_description=self.property.walls["clean_description"], - age_band=self.property.age_band, - is_granite_or_whinstone=self.property.walls["is_granite_or_whinstone"], - is_sandstone_or_limestone=self.property.walls["is_sandstone_or_limestone"], - ) - - # EWI - ewi_recommendations = self._find_insulation( - u_value=u_value, - insulation_materials=pd.DataFrame(self.external_wall_insulation_materials), - phase=phase - ) - - return ewi_recommendations - def recommend(self, phase=0, measures=None, default_u_values=False): # if building built after 1990 + we're able to identify U-value + # U-value less than 0.18 and if in or close to a conversation area, @@ -478,7 +438,8 @@ class WallRecommendations(Definitions): "walls-energy-eff": "Good" }, **cost_result, - "survey": non_invasive_recommendations.get("survey", False) + "survey": non_invasive_recommendations.get("survey", False), + "innovation_rate": material.to_dict()["innovation_rate"] } ) @@ -658,7 +619,8 @@ class WallRecommendations(Definitions): "walls-energy-eff": simulation_config["walls_energy_eff_ending"] }, **cost_result, - "survey": survey + "survey": survey, + "innovation_rate": material.to_dict()["innovation_rate"] } ) From 1b0c0d0584f4d6cfbd0d6ca314e4b9b8bcd78b61 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 17 Aug 2025 17:47:56 +0100 Subject: [PATCH 45/73] added innovation rate --- recommendations/RoofRecommendations.py | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/recommendations/RoofRecommendations.py b/recommendations/RoofRecommendations.py index 31ac2433..a2272c1b 100644 --- a/recommendations/RoofRecommendations.py +++ b/recommendations/RoofRecommendations.py @@ -80,20 +80,6 @@ class RoofRecommendations: return None - def mds_loft_insulation(self, phase): - """ - For usages within the mds report - :param phase: - :return: - """ - self.recommendations = [] - - u_value = get_roof_u_value(**{**self.property.roof, "age_band": self.property.age_band}) - - self.recommend_roof_insulation(u_value, self.insulation_thickness, self.property.roof, phase) - - return self.recommendations - def is_loft_already_insulated(self, measures): """ Check if the loft is already insulated @@ -459,7 +445,8 @@ class RoofRecommendations: "roof-energy-eff": new_efficiency }, **cost_result, - "survey": non_invasive_recommendations.get("survey", False) + "survey": non_invasive_recommendations.get("survey", False), + "innovation_rate": material.to_dict()["innovation_rate"] } ) @@ -593,7 +580,8 @@ class RoofRecommendations: }, **cost_result, "already_installed": already_installed, - "survey": rir_non_invasive_recommendation.get("survey", None) + "survey": rir_non_invasive_recommendation.get("survey", None), + "innovation_rate": material.to_dict()["innovation_rate"] } ) From b63822c3f9276f931a92f690a38e848db9cd6c39 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 17 Aug 2025 17:57:33 +0100 Subject: [PATCH 46/73] updated ventilation --- recommendations/VentilationRecommendations.py | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/recommendations/VentilationRecommendations.py b/recommendations/VentilationRecommendations.py index c2208914..c0ccd891 100644 --- a/recommendations/VentilationRecommendations.py +++ b/recommendations/VentilationRecommendations.py @@ -39,26 +39,29 @@ class VentilationRecommendations(Definitions): # We recommend installing 2 units n_units = 2 - part = self.materials.copy() + parts = self.materials.copy() already_installed = "cavity_wall_insulation" in self.property.already_installed - estimated_cost = n_units * part[0]["total_cost"] if not already_installed else 0 + # TODO: We now have multiple ventilation options - we default to selecting the cheapest option + part = min(parts, key=lambda x: x['total_cost']) + + estimated_cost = n_units * part["total_cost"] if not already_installed else 0 labour_hours = 4 * n_units if not already_installed else 0 labour_days = 4 * n_units / 8.0 if not already_installed else 0 - part[0]["total"] = estimated_cost - part[0]["quantity"] = n_units - part[0]["quantity_unit"] = "part" + part["total"] = estimated_cost + part["quantity"] = n_units + part["quantity_unit"] = "part" # We recommend installing two mechanical ventilation systems self.recommendation = [ { "phase": phase, - "parts": part, - "type": part[0]["type"], + "parts": [part], + "type": part["type"], "measure_type": "mechanical_ventilation", - "description": f"Install {n_units} {part[0]['description']} units", + "description": f"Install {n_units} {part['description']} units", "starting_u_value": None, "new_u_value": None, "already_installed": already_installed, @@ -76,7 +79,8 @@ class VentilationRecommendations(Definitions): }, "description_simulation": { "mechanical-ventilation": "mechanical, extract only" - } + }, + "innovation_rate": part["innovation_rate"], } ] From cc13843e675f094290f51992ddcbbe8efcbabe3f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 17 Aug 2025 18:03:00 +0100 Subject: [PATCH 47/73] updated trickle vent rec --- recommendations/VentilationRecommendations.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/recommendations/VentilationRecommendations.py b/recommendations/VentilationRecommendations.py index c0ccd891..a8aa0ca3 100644 --- a/recommendations/VentilationRecommendations.py +++ b/recommendations/VentilationRecommendations.py @@ -18,7 +18,8 @@ class VentilationRecommendations(Definitions): self.property = property_instance self.recommendation = None - self.materials = [part for part in materials if part["type"] == "mechanical_ventilation"] + self.mechanical_ventilation_materials = [part for part in materials if part["type"] == "mechanical_ventilation"] + self.trickle_vent_materials = [part for part in materials if part["type"] == "trickle_vent"] def recommend(self, phase): """ @@ -33,13 +34,10 @@ class VentilationRecommendations(Definitions): if self.property.has_ventilation: return - if len(self.materials) != 1: - raise NotImplementedError("Only handled the case of having one venilation option") - # We recommend installing 2 units n_units = 2 - parts = self.materials.copy() + parts = self.mechanical_ventilation_materials.copy() already_installed = "cavity_wall_insulation" in self.property.already_installed @@ -103,6 +101,10 @@ class VentilationRecommendations(Definitions): else trickle_vents_recommendation_config["description"] ) + cheapest_trickle_vent = min( + self.trickle_vent_materials, key=lambda x: x["total_cost"] + ) + return [ { "phase": None, @@ -118,7 +120,7 @@ class VentilationRecommendations(Definitions): "kwh_savings": 0, "co2_equivalent_savings": 0, "energy_cost_savings": 0, - "total": trickle_vents_recommendation_config["cost"], + "total": cheapest_trickle_vent["total_cost"] * self.property.number_of_windows, # We use a very simple and rough estimate of 4 hours per unit "labour_hours": trickle_vents_recommendation_config.get("labour_hours", 8), "labour_days": trickle_vents_recommendation_config.get("labour_days", 1), # Assume 8 hour day From 080fcdabb6ebd8a9fb31304c59028715b08f6d55 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 17 Aug 2025 18:05:46 +0100 Subject: [PATCH 48/73] innovation rate added to floor --- recommendations/FloorRecommendations.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recommendations/FloorRecommendations.py b/recommendations/FloorRecommendations.py index 85e1a8dc..ca74ac4b 100644 --- a/recommendations/FloorRecommendations.py +++ b/recommendations/FloorRecommendations.py @@ -264,6 +264,7 @@ class FloorRecommendations(Definitions): material["type"] == "solid_floor_insulation" else "Suspended, insulated" }, - **cost_result + **cost_result, + "innovation_rate": material["innovation_rate"], } ) From d8c4ab12661e31a43d5245b0bcc558e98051b175 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 17 Aug 2025 18:09:38 +0100 Subject: [PATCH 49/73] added innovation rate to lighting --- recommendations/LightingRecommendations.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recommendations/LightingRecommendations.py b/recommendations/LightingRecommendations.py index 3447394d..9e7b3af2 100644 --- a/recommendations/LightingRecommendations.py +++ b/recommendations/LightingRecommendations.py @@ -170,6 +170,7 @@ class LightingRecommendations: "low-energy-lighting": 100, }, **cost_result, - "survey": leds_recommendation_config.get("survey", False) + "survey": leds_recommendation_config.get("survey", False), + "innovation_rate": self.material["innovation_rate"], } ] From 999a258d62f26c6c7cfdec87c3e2d87958a09168 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Sun, 17 Aug 2025 18:17:28 +0100 Subject: [PATCH 50/73] added windows innovation rate --- recommendations/WindowsRecommendations.py | 1 + 1 file changed, 1 insertion(+) diff --git a/recommendations/WindowsRecommendations.py b/recommendations/WindowsRecommendations.py index 46e56c93..bc5e6066 100644 --- a/recommendations/WindowsRecommendations.py +++ b/recommendations/WindowsRecommendations.py @@ -238,6 +238,7 @@ class WindowsRecommendations: "description_simulation": description_simulation, "simulation_config": simulation_config, "survey": non_invasive_recommendation.get("survey", None), + "innovation_rate": self.glazing_material["innovation_rate"], } ] From 3688985152b567b72314c23efb5587385fcd2fa9 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Aug 2025 11:56:34 +0100 Subject: [PATCH 51/73] updating innovation rate for fireplaces --- recommendations/FireplaceRecommendations.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/recommendations/FireplaceRecommendations.py b/recommendations/FireplaceRecommendations.py index 60802bb6..60e54073 100644 --- a/recommendations/FireplaceRecommendations.py +++ b/recommendations/FireplaceRecommendations.py @@ -8,17 +8,18 @@ class FireplaceRecommendations(Definitions): For properties that have open fireplaces, we recommend sealing the fireplaces """ - # This is our base assumption for the cost of the work - COST_OF_WORK = 235 - def __init__( self, property_instance: Property, + materials: list = None, ): self.property = property_instance self.has_ventilaion = None self.recommendation = None + self.materials = [m for m in materials if m["type"] == "sealing_fireplace"] + if len(self.materials) != 1: + raise ValueError("Incorrect number of sealing fireplace materials specified") def recommend(self, phase=0): """ @@ -32,14 +33,16 @@ class FireplaceRecommendations(Definitions): if number_open_fireplaces == 0: return + material = self.materials[0] + already_installed = "sealing_open_fireplace" in self.property.already_installed - estimated_cost = number_open_fireplaces * self.COST_OF_WORK if not already_installed else 0 + estimated_cost = number_open_fireplaces * material["total_cost"] if not already_installed else 0 # We recommend installing two mechanical ventilation systems self.recommendation = [ { "phase": phase, - "parts": [], + "parts": [material], "type": "sealing_open_fireplace", "measure_type": "sealing_open_fireplace", "description": "Seal %s open fireplaces" % str(number_open_fireplaces), @@ -53,6 +56,7 @@ class FireplaceRecommendations(Definitions): "labour_days": 6 * number_open_fireplaces / 8, # Assume 8 hour day "description_simulation": { "number-open-fireplaces": 0 - } + }, + "innovation_rate": material["innovation_rate"], } ] From c3f8aaaca1555dd14d91218a30efe12dad176ce1 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Aug 2025 12:47:58 +0100 Subject: [PATCH 52/73] added innovation rate to hhrsh and heating controls --- recommendations/Costs.py | 16 +++++++---- recommendations/HeatingControlRecommender.py | 12 +++++--- recommendations/HeatingRecommender.py | 29 ++++++++++++++------ 3 files changed, 39 insertions(+), 18 deletions(-) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 0ef37add..bfca8038 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -858,7 +858,11 @@ class Costs: "labour_days": labour_days, } - def high_heat_electric_storage_heaters(self, number_heated_rooms, needs_cylinder): + def high_heat_electric_storage_heaters( + self, number_heated_rooms: int, + needs_cylinder: bool, + product: dict | None = None + ): """ We base the estimates for the cost of electric storage heaters on the cost per room as estimated by the @@ -867,18 +871,20 @@ class Costs: The cost is based on the number of heated rooms :param number_heated_rooms: int, number of rooms to be heated + :param needs_cylinder: bool, whether the property needs a hot water cylinder + :param product: dict, product data containing costs of heaters """ if needs_cylinder: - # 1000 is the cost of a new hot water cylinder - total_cost = 1300 * number_heated_rooms + 1000 + # 1500 is the cost of a new hot water cylinder + total_cost = product["total_cost"] * number_heated_rooms + 1500 else: # 500 is the cost of a dual immersion heater - a rough estimate - total_cost = 1300 * number_heated_rooms + 500 + total_cost = product["total_cost"] * number_heated_rooms + 500 + subtotal_before_vat = total_cost / (1 + self.VAT_RATE) vat = total_cost - subtotal_before_vat - # TODO: Rough estimate to be reviewed labour_hours = 3 * number_heated_rooms labour_days = np.ceil(labour_hours / 8) diff --git a/recommendations/HeatingControlRecommender.py b/recommendations/HeatingControlRecommender.py index bd015a79..aaebde9e 100644 --- a/recommendations/HeatingControlRecommender.py +++ b/recommendations/HeatingControlRecommender.py @@ -93,7 +93,8 @@ class HeatingControlRecommender: "measure_type": "programmer_appliance_thermostat", "description": "upgrade heating controls to Programmer and Appliance or Smart Thermostats", **self.costs.programmer_and_appliance_thermostat(has_programmer=has_programmer), - "simulation_config": simulation_config + "simulation_config": simulation_config, + "innovation_rate": 0.0, } ) @@ -142,7 +143,8 @@ class HeatingControlRecommender: "description": "Upgrade heating controls to High Heat Retention Storage Heater Controls", **self.costs.celect_type_controls(), "simulation_config": simulation_config, - "description_simulation": description_simulation + "description_simulation": description_simulation, + "innovation_rate": 0.0, } ) @@ -232,7 +234,8 @@ class HeatingControlRecommender: "sap_points": None, "already_installed": already_installed, "simulation_config": simulation_config, - "description_simulation": description_simulation + "description_simulation": description_simulation, + "innovation_rate": 0.0 } ) @@ -307,7 +310,8 @@ class HeatingControlRecommender: "sap_points": None, "already_installed": already_installed, "simulation_config": simulation_config, - "description_simulation": description_simulation + "description_simulation": description_simulation, + "innovation_rate": 0.0 } ) diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 9d1a094e..baeee1d5 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -85,7 +85,7 @@ class HeatingRecommender: } } - def __init__(self, property_instance: Property): + def __init__(self, property_instance: Property, materials: list = None): self.property = property_instance self.costs = Costs(self.property) @@ -103,6 +103,11 @@ class HeatingRecommender: self.dual_heating = self.identify_dual_heating() + # Split out the different materials + self.hhrsh_products = [ + product for product in materials if product["type"] == "high_heat_retention_storage_heaters" + ] + def identify_dual_heating(self): # All heat systems are in here so we identify whether two of these are true # MainHeatAttributes.HEAT_SYSTEMS @@ -678,7 +683,7 @@ class HeatingRecommender: heating_controls_only, system_change, system_type, - measure_type, + heating_product, non_intrusive_recommendation=None ): """ @@ -695,8 +700,7 @@ class HeatingRecommender: current system. If we have a system change and we have a heat control recommendation, we only recommend both heating and controls together :param system_type: The type of heating system we are recommending - :param measure_type: The type of measure we are recommending - more granular than the "type" field, allowing us - to distinguish between different types of heating recommendations + :param heating_product: The heating product we are recommending, used to determine the system type :param non_intrusive_recommendation: A non-intrusive recommendation, which may specify the number of SAP points or a cost for this recommendation """ @@ -747,7 +751,7 @@ class HeatingRecommender: "phase": phase, "parts": [], "type": "heating", - "measure_type": measure_type, + "measure_type": heating_product["type"], "description": recommendation_description, "starting_u_value": None, "new_u_value": None, @@ -758,7 +762,10 @@ class HeatingRecommender: "description_simulation": recommendation_description_simulation, # We insert the heating system type here "system_type": system_type, - "survey": non_intrusive_recommendation.get("survey", False) + "survey": non_intrusive_recommendation.get("survey", False), + # In this instance, we are recommending an entire heating system so the innovation rate is becased + # on the heating system as whole + "innovation_rate": heating_product["innovation_rate"], } output.append(recommendation) @@ -921,10 +928,14 @@ class HeatingRecommender: if (number_heated_rooms == 1) and (self.property.number_of_rooms > 2): number_heated_rooms = self.property.number_of_rooms - 1 + # We focus on the 700 watt product + hhrsh_product = next((x for x in self.hhrsh_products if x["size"] == 700), {}) + # Upgrade to electric storage heaters costs = self.costs.high_heat_electric_storage_heaters( number_heated_rooms=number_heated_rooms, - needs_cylinder=self.property.hotwater["system_type"] == "from main system" + needs_cylinder=self.property.hotwater["system_type"] == "from main system", + product=hhrsh_product ) if self.dual_heating: description = self.DUAL_HEATING_DESCRIPTIONS[ @@ -960,8 +971,8 @@ class HeatingRecommender: heating_controls_only=heating_controls_only, system_change=system_change, system_type="high_heat_retention_storage_heater", - measure_type="high_heat_retention_storage_heater", - non_intrusive_recommendation=non_intrusive_recommendation + non_intrusive_recommendation=non_intrusive_recommendation, + heating_product=hhrsh_product ) if _return: return recommendations From ab150c799d6d9e0809673c30ca57b269abab9385 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Aug 2025 12:55:44 +0100 Subject: [PATCH 53/73] 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) From 1579d010ee70ff0c91b467c901d6ea685dbe93fa Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Aug 2025 16:29:52 +0100 Subject: [PATCH 54/73] updated the costings with new products and measurse specific contingencies --- recommendations/Costs.py | 538 +++++---------------- recommendations/FloorRecommendations.py | 2 - recommendations/HotwaterRecommendations.py | 9 +- recommendations/LightingRecommendations.py | 1 - recommendations/SecondaryHeating.py | 3 +- recommendations/SolarPvRecommendations.py | 33 +- 6 files changed, 152 insertions(+), 434 deletions(-) diff --git a/recommendations/Costs.py b/recommendations/Costs.py index 09fe1a2b..0550183b 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -57,8 +57,6 @@ INSTALLER_SOLAR_COSTS = [ {'n_panels': 17, 'array_kwp': 17 * PANEL_SIZE, 'cost': 6637.95, 'installer': 'CEG'}, {'n_panels': 18, 'array_kwp': 18 * PANEL_SIZE, 'cost': 6792.57, 'installer': 'CEG'} ] -# This is the maximum number of panels that we have a cost from the installers for -INSTALLER_MAX_PANELS = 18 # CEG uses use Solshare as an inverter to provide solar PV to multiple flats. This costs £7500 for the inverter alone # https://midsummerwholesale.co.uk/buy/solshare @@ -185,6 +183,20 @@ class Costs: # 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, + "solar_pv": 0.15, + "air_source_heat_pump": 0.2, + "flat_roof_insulation": 0.26, + "suspended_floor_insulation": 0.2, + "solid_floor_insulation": 0.26, + "low_energy_lighting": 0.26, + "high_heat_retention_storage_heaters": 0.1, + } + # Preliminaries are a percentage of the total cost of the work and covers the cost of site-specific costs # such as site preparation, safety measures and project management. This rate can vary but we'll assume a 10% # rate, on the total cost before VAT, as recommended by SPONs @@ -258,33 +270,14 @@ class Costs: labour_hours = 8 labour_days = 1 - # if the material is based on an installer cost, we return the flat price - if material["is_installer_quote"]: - total_cost = material["total_cost"] * wall_area - - return { - "total": total_cost, - "labour_hours": labour_hours, - "labour_days": labour_days, - } - - total_including_vat = material["total_cost"] * wall_area - - if is_extraction_and_refill: - total_including_vat = CAVITY_EXTRACTION_COST * wall_area - # Additional 2 days work - labour_hours += + (2 * 8) - labour_days += + 2 - - total_excluding_vat = total_including_vat / (1 + self.VAT_RATE) - vat_cost = total_including_vat - total_excluding_vat + total_cost = material["total_cost"] * wall_area return { - "total": total_including_vat, - "subtotal": total_excluding_vat, - "vat": vat_cost, + "total": total_cost, + "contingency": self.CONTINGENCIES["cavity_wall_insulation"] * total_cost, + "contingency_rate": self.CONTINGENCIES["cavity_wall_insulation"], "labour_hours": labour_hours, - "labour_days": labour_days + "labour_days": labour_days, } def loft_and_flat_insulation(self, floor_area, material): @@ -295,25 +288,20 @@ class Costs: :return: A dictionary containing detailed cost breakdown. """ - if material["is_installer_quote"]: - total_cost = material["total_cost"] * floor_area - - return { - "total": total_cost, - "labour_hours": 8, - "labour_days": 1, - } - - total_including_vat = material["total_cost"] * floor_area - total_excluding_vat = total_including_vat / (1 + self.VAT_RATE) - vat_cost = total_including_vat - total_excluding_vat + total_cost = material["total_cost"] * floor_area + if material["type"] == "loft_insulation": + contingency_rate = self.CONTINGENCIES["loft_insulation"] + contingency = contingency_rate * total_cost + else: + contingency_rate = self.CONTINGENCIES["flat_roof_insulation"] + contingency = contingency_rate * total_cost return { - "total": total_including_vat, - "subtotal": total_excluding_vat, - "vat": vat_cost, + "total": total_cost, + "contingency": contingency, + "contingency_rate": contingency_rate, "labour_hours": 8, - "labour_days": 1 + "labour_days": 1, } def solid_wall_insulation(self, wall_area, material): @@ -323,469 +311,155 @@ class Costs: """ # if the material is based on an installer cost, we return the flat price - if material["is_installer_quote"]: - total_cost = material["total_cost"] * wall_area + total_cost = material["total_cost"] * wall_area - labour_hours = material["labour_hours_per_unit"] * wall_area + if material["type"] == "internal_wall_insulation": + contingency_rate = self.CONTINGENCIES["internal_wall_insulation"] + else: + contingency_rate = self.CONTINGENCIES["external_wall_insulation"] - # To install internal wall insulation, a small to medium size project might be conducted by a team of 3-5 - # people - labour_days = (labour_hours / 8) / 4 + labour_hours = material["labour_hours_per_unit"] * wall_area - return { - "total": total_cost, - "labour_hours": labour_hours, - "labour_days": labour_days, - } - - # Break out the individual material costs - # Since we don't know the exact wall construction, we take an average for demolition costs, since - # the cost will depend on the type of wall construction - - total_including_vat = material["total_cost"] * wall_area - total_excluding_vat = total_including_vat / (1 + self.VAT_RATE) - vat_cost = total_including_vat - total_excluding_vat - - # We estimate 1 weeks worth of work - labour_hours = 160 - # To install internal wall insulation, a small to medium size project might be conducted by a team of 3-5 people + # To install internal wall insulation, a small to medium size project might be conducted by a team of 3-5 + # people labour_days = (labour_hours / 8) / 4 return { - "total": total_including_vat, - "subtotal": total_excluding_vat, - "vat": vat_cost, + "total": total_cost, + "contingency": contingency_rate * total_cost, + "contingency_rate": contingency_rate, "labour_hours": labour_hours, "labour_days": labour_days, } - def suspended_floor_insulation(self, insulation_floor_area, material, non_insulation_materials): + def suspended_floor_insulation(self, insulation_floor_area, material): """ - We characterise the steps for suspended floor insulation as the following tasks: - - 1) Removal of Carpet and Underfelt: Where necessary, remove existing floor coverings to access the floorboards. - 2) Removal of Floor Boarding: Carefully remove floorboards to access the space beneath for insulation. - 3) Installation of Vapour Barrier: Install a vapour barrier to prevent moisture from affecting - the insulation and floor structure. - 4) Installation of Insulation: Fit the chosen insulation material between the joists in the floor void. - 5) Refixing Floorboards: Replace and secure the floorboards after insulation installation. - 6) Re-carpeting: Lay down the carpet or other floor coverings once the insulation and floorboards are in place. - :return: + Given an installer cost for the works, produces an estimate for the cost of works. + Includes contingency """ # if the material is based on an installer cost, we return the flat price - if material["is_installer_quote"]: - total_cost = material["total_cost"] * insulation_floor_area + total_cost = material["total_cost"] * insulation_floor_area - labour_hours = material["labour_hours_per_unit"] * insulation_floor_area - # To install suspended floor insulation, a small to medium size project might be conducted by a team of 3 - # people - labour_days = (labour_hours / 8) / 3 - - return { - "total": total_cost, - "labour_hours": labour_hours, - "labour_days": labour_days, - } - - demolition_data = [x for x in non_insulation_materials if x["type"] == "suspended_floor_demolition"] - vapour_barrier_data = [x for x in non_insulation_materials if x["type"] == "suspended_floor_vapour_barrier"] - redecoration_data = [x for x in non_insulation_materials if x["type"] == "suspended_floor_redecoration"] - - if (len(demolition_data) != 2) or (len(vapour_barrier_data) != 1) or (len(redecoration_data) != 2): - raise ValueError("Incorrect number of data entries for non-insulation materials") - - # Break out the individual material costs - demolition_material_costs = sum([x["material_cost"] * insulation_floor_area for x in demolition_data]) - insulation_material_costs = material["material_cost"] * insulation_floor_area - vapour_barrier_material_costs = vapour_barrier_data[0]["material_cost"] * insulation_floor_area - redecoration_material_costs = sum([x["material_cost"] * insulation_floor_area for x in redecoration_data]) - - demolition_labour_costs = sum([x["labour_cost"] * insulation_floor_area for x in demolition_data]) - insulation_labour_costs = material["labour_cost"] * insulation_floor_area - vapour_barrier_labour_costs = vapour_barrier_data[0]["labour_cost"] * insulation_floor_area - redecoration_labour_costs = sum([x["labour_cost"] * insulation_floor_area for x in redecoration_data]) - - labour_costs = (demolition_labour_costs + insulation_labour_costs + vapour_barrier_labour_costs + - redecoration_labour_costs) - - labour_costs = labour_costs * self.labour_adjustment_factor - - materials_costs = (demolition_material_costs + insulation_material_costs + vapour_barrier_material_costs + - redecoration_material_costs) - - subtotal_before_profit = labour_costs + materials_costs - - # Because of the possiblity of damage to the existing floor, or difficulties associated to moving fittings, - # we use a higher contingency rate - contingency_cost = subtotal_before_profit * self.HIGH_RISK_CONTINGENCY - preliminaries_cost = subtotal_before_profit * self.PRELIMINARIES - profit_cost = subtotal_before_profit * self.PROFIT_MARGIN - - subtotal_before_vat = subtotal_before_profit + contingency_cost + preliminaries_cost + profit_cost - - vat_cost = subtotal_before_vat * self.VAT_RATE - - total_cost = subtotal_before_vat + vat_cost - - demolition_labour_hours = sum([x["labour_hours_per_unit"] * insulation_floor_area for x in demolition_data]) - insulation_labour_hours = material["labour_hours_per_unit"] * insulation_floor_area - vapour_barrier_labour_hours = vapour_barrier_data[0]["labour_hours_per_unit"] * insulation_floor_area - redecoration_labour_hours = sum([x["labour_hours_per_unit"] * insulation_floor_area for x in redecoration_data]) - - labour_hours = (demolition_labour_hours + insulation_labour_hours + vapour_barrier_labour_hours + - redecoration_labour_hours) - - # Assume a team of 3 people for a small to medium size project + labour_hours = material["labour_hours_per_unit"] * insulation_floor_area + # To install suspended floor insulation, a small to medium size project might be conducted by a team of 3 + # people labour_days = (labour_hours / 8) / 3 return { "total": total_cost, - "subtotal": subtotal_before_vat, - "vat": vat_cost, - "contingency": contingency_cost, - "preliminaries": preliminaries_cost, - "material": materials_costs, - "profit": profit_cost, + "contengency": self.CONTINGENCIES["suspended_floor_insulation"] * total_cost, + "contingency_rate": self.CONTINGENCIES["suspended_floor_insulation"], "labour_hours": labour_hours, "labour_days": labour_days, - "labour_cost": labour_costs } - def solid_floor_insulation(self, insulation_floor_area, material, non_insulation_materials): + def solid_floor_insulation(self, insulation_floor_area, material): """ - We characterise the steps for solid floor insulation as the following tasks: - - 1) Removal of Carpet and Underfelt: This is the initial stage where any existing floor coverings, like carpets, - tiles, or linoleum, are carefully removed. This exposes the solid floor beneath, which is typically concrete. - - 2) Preparation of Flooring: This step is critical. It involves: - - Cleaning the existing floor surface thoroughly to remove debris and ensure a flat surface. - - Assessing and repairing any damage to the concrete floor. This might include filling cracks or leveling - uneven areas. - - 3) Installation of a Damp Proof Membrane (DPM): Before installing insulation, a DPM is often laid down to - prevent moisture from rising into the insulation and the interior space. This step is crucial in areas prone to - dampness. - - 4) Install Insulation: The insulation, often in the form of rigid foam boards, is laid over the DPM. - The choice of insulation material will depend on the desired thermal properties and the available floor height. - Care is taken to minimize thermal bridges and ensure a snug fit between insulation boards. - - 5) Laying a New Subfloor: Over the insulation, a new subfloor is often installed. This could be a layer of - screed (a type of concrete) or wooden boarding, depending on the specific requirements and preferences. - - 6) Re-decoration and Finishing Touches: Once the subfloor is in place and has set or dried (if necessary), - the final floor finish can be applied. This might involve: - - Laying new tiles, wooden flooring, or other chosen materials. - - If you're planning to re-carpet, this would be the stage to do it. - - Skirting boards may need to be refitted or replaced. - - 7) Considerations for Doors and Fixtures: It's important to note that raising the floor level can affect door - thresholds and other fixtures. Doors may need to be trimmed, and fixtures might need adjustments. + based on costing data from installers, produces an estimate for the cost of works. Returns contingency :param insulation_floor_area: Area of the floor to be insulated :param material: Selected insulation material - :param non_insulation_materials: Non-insulation materials required for the job :return: """ - # if the material is based on an installer cost, we return the flat price - if material["is_installer_quote"]: - total_cost = material["total_cost"] * insulation_floor_area + total_cost = material["total_cost"] * insulation_floor_area - labour_hours = material["labour_hours_per_unit"] * insulation_floor_area - # To install suspended floor insulation, a small to medium size project might be conducted by a team of 3 - # people - labour_days = (labour_hours / 8) / 3 - - return { - "total": total_cost, - "labour_hours": labour_hours, - "labour_days": labour_days, - } - - demolition_data = [x for x in non_insulation_materials if x["type"] == "solid_floor_demolition"] - preparation_data = [x for x in non_insulation_materials if x["type"] == "solid_floor_preparation"] - vapour_barrier_data = [x for x in non_insulation_materials if x["type"] == "solid_floor_vapour_barrier"] - redecoration_data = [x for x in non_insulation_materials if x["type"] == "solid_floor_redecoration"] - - if ((len(demolition_data) != 1) or (len(preparation_data) != 2) or (len(vapour_barrier_data) != 1) or - (len(redecoration_data) != 3)): - raise ValueError("Incorrect number of data entries for non-insulation materials") - - # Break out the individual material costs - preparation_material_costs = sum([x["material_cost"] * insulation_floor_area for x in preparation_data]) - insulation_material_costs = material["material_cost"] * insulation_floor_area - vapour_barrier_material_costs = vapour_barrier_data[0]["material_cost"] * insulation_floor_area - redecoration_material_costs = sum([x["material_cost"] * insulation_floor_area for x in redecoration_data]) - - demolition_labour_costs = sum([x["labour_cost"] * insulation_floor_area for x in demolition_data]) - preparation_labour_costs = sum([x["labour_cost"] * insulation_floor_area for x in preparation_data]) - insulation_labour_costs = material["labour_cost"] * insulation_floor_area - vapour_barrier_labour_costs = vapour_barrier_data[0]["labour_cost"] * insulation_floor_area - redecoration_labour_costs = sum([x["labour_cost"] * insulation_floor_area for x in redecoration_data]) - - preparation_plant_costs = sum([x["plant_cost"] * insulation_floor_area for x in preparation_data]) - - labour_costs = (demolition_labour_costs + insulation_labour_costs + vapour_barrier_labour_costs + - redecoration_labour_costs + preparation_labour_costs) - - labour_costs = labour_costs * self.labour_adjustment_factor - - materials_cost = (preparation_material_costs + insulation_material_costs + vapour_barrier_material_costs + - redecoration_material_costs) - - subtotal_before_profit = labour_costs + materials_cost + preparation_plant_costs - - # We use HIGH_RISH_CONTINGENCY because of the potential for issues with moving fittings and trimming doors, - # as well as scope for damage to the existing floor during preparation. - contingency_cost = subtotal_before_profit * self.HIGH_RISK_CONTINGENCY - preliminaries_cost = subtotal_before_profit * self.PRELIMINARIES - profit_cost = subtotal_before_profit * self.PROFIT_MARGIN - - subtotal_before_vat = subtotal_before_profit + contingency_cost + preliminaries_cost + profit_cost - vat_cost = subtotal_before_vat * self.VAT_RATE - total_cost = subtotal_before_vat + vat_cost - - demolition_labour_hours = sum([x["labour_hours_per_unit"] * insulation_floor_area for x in demolition_data]) - preparation_labour_hours = sum([x["labour_hours_per_unit"] * insulation_floor_area for x in preparation_data]) - insulation_labour_hours = material["labour_hours_per_unit"] * insulation_floor_area - vapour_barrier_labour_hours = vapour_barrier_data[0]["labour_hours_per_unit"] * insulation_floor_area - redecoration_labour_hours = sum([x["labour_hours_per_unit"] * insulation_floor_area for x in redecoration_data]) - - labour_hours = (demolition_labour_hours + insulation_labour_hours + vapour_barrier_labour_hours + - redecoration_labour_hours + preparation_labour_hours) - - # Assume a team of 3 people for a small to medium size project + labour_hours = material["labour_hours_per_unit"] * insulation_floor_area + # To install suspended floor insulation, a small to medium size project might be conducted by a team of 3 + # people labour_days = (labour_hours / 8) / 3 return { "total": total_cost, - "subtotal": subtotal_before_vat, - "vat": vat_cost, - "contingency": contingency_cost, - "preliminaries": preliminaries_cost, - "material": materials_cost, - "profit": profit_cost, + "contingency": self.CONTINGENCIES["solid_floor_insulation"] * total_cost, + "contingency_rate": self.CONTINGENCIES["solid_floor_insulation"], "labour_hours": labour_hours, "labour_days": labour_days, - "labour_cost": labour_costs } - def low_energy_lighting(self, number_of_lights, number_current_lel_lights, material): + def low_energy_lighting(self, number_of_lights, material): """ Calculates the total cost for low energy lighting based on material and labor costs, including contingency, preliminaries, profit, and VAT. :param number_of_lights: Int, number of light - :param number_current_lel_lights: Int, number of low energy lights currently installed in the home :material: Dict, material data containing costs of fittings """ # If there are no lights fitted in the property, we increase the contingency in case there are potential wiring # blockers - if number_current_lel_lights == 0: - contingency = self.HIGH_RISK_CONTINGENCY - else: - contingency = self.CONTINGENCY + total_cost = material["total_cost"] * number_of_lights - if material["is_installer_quote"]: - total_cost = material["total_cost"] * number_of_lights * (1 + contingency) - - labour_hours = 1 - labour_days = (labour_hours / 8) - - return { - "total": total_cost, - "labour_hours": labour_hours, - "labour_days": labour_days, - } - - material_cost = material["material_cost"] * number_of_lights - labour_cost = material["labour_cost"] * number_of_lights * self.labour_adjustment_factor - - subtotal_before_profit = material_cost + labour_cost - - contingency_cost = subtotal_before_profit * contingency - - subtotal_before_vat = subtotal_before_profit + contingency_cost - vat_cost = subtotal_before_vat * self.VAT_RATE - total_cost = subtotal_before_vat + vat_cost - - labour_hours = material["labour_hours_per_unit"] * number_of_lights - # Assume a single electrician installing + labour_hours = 1 labour_days = (labour_hours / 8) return { "total": total_cost, - "subtotal": subtotal_before_vat, - "vat": vat_cost, - "contingency": contingency_cost, - "material": material_cost, + "contingency": self.CONTINGENCIES["low_energy_lighting"] * total_cost, + "contingency_rate": self.CONTINGENCIES["low_energy_lighting"], "labour_hours": labour_hours, "labour_days": labour_days, - "labour_cost": labour_cost } def window_glazing(self, number_of_windows, material, is_secondary_glazing=False): """ - We characterise the jobs to be done for window glazing as the following: - 1) Initial Assessment and Measurements: Before removing the existing window, it's essential to assess the - condition of the window frame and opening. Precise measurements are taken to ensure the new double glazed - windows fit perfectly. - - 2) Remove the Existing Window: This involves carefully dismantling and removing the old single glazed window. It - requires skill to avoid damaging the surrounding wall and the window frame (if it's to be reused). - - 3) Dispose of the Existing Window: The old window, especially if it's a single glazed unit, needs to be - disposed of responsibly. Glass and other materials should be recycled where possible. - - 4) Surface Preparation: The window opening might need some preparation, especially if there's damage or if - adjustments are needed to accommodate the new window. This can include repairing or replacing parts of the - window frame, sealing gaps, and ensuring the opening is level and square. - - 5) Install the Window Frame (if new frames are used): In many cases, double glazed windows come with their - frames. These need to be installed securely into the window opening. This process involves aligning, leveling, - and fixing the frame in place. - - 6) Install the Window Sill: If a new window sill is required, it is installed at this stage. It needs to be - correctly aligned with the frame and securely attached. - - 7) Install the Double Glazed Glass Units: The glass units are carefully inserted into the frame. This step - requires precision to ensure a snug fit without causing stress on the glass, which could lead to cracking or - breaking. - - 8) Sealing and Weatherproofing: After the glass units are in place, it's crucial to seal around the frame and - between the glass and frame to ensure there are no drafts and that the installation is weather-tight. This - typically involves applying silicone sealant or other appropriate sealing materials. - - 9) Finishing Touches: This includes any cosmetic work, such as trimming, painting, or staining the frame and - sill to match the rest of the property. It might also involve cleaning up any mess created during the - installation. - - 10) Inspection and Testing: Finally, the new windows should be inspected to ensure they open, close, and lock - correctly. This is also a good time to check for any gaps or issues with the sealing. - - For this cost estimation process, we factor in initial assement into the preliminaries + Given an isntaller quote, produces an estimate for the cost of works. """ - if material["is_installer_quote"]: - total_cost = material["total_cost"] * number_of_windows - - labour_hours = material["labour_hours_per_unit"] * number_of_windows - # To install windows, a small to medium size project might be conducted by a team of 2-3 people - labour_days = (labour_hours / 8) / 2 - - return { - "total": total_cost, - "labour_hours": labour_hours, - "labour_days": labour_days, - } - - material_cost = material["material_cost"] * number_of_windows - - labour_cost = ( - material["labour_cost"] * number_of_windows * self.labour_adjustment_factor - ) - multiplier = self.SECONDARY_GLAZING_SCALING_FACTOR if is_secondary_glazing else ( - self.SASH_WINDOW_INFLATION_FACTOR) - - subtotal = (material_cost + labour_cost) * multiplier - - contingency_cost = subtotal * self.CONTINGENCY - preliminaries_cost = subtotal * self.PRELIMINARIES - profit_cost = subtotal * self.PROFIT_MARGIN - - subtotal_before_vat = subtotal + contingency_cost + preliminaries_cost + profit_cost - - vat_cost = subtotal_before_vat * self.VAT_RATE - - total_cost = subtotal_before_vat + vat_cost + total_cost = material["total_cost"] * number_of_windows labour_hours = material["labour_hours_per_unit"] * number_of_windows - labour_hours = labour_hours * self.SECONDARY_GLAZING_SCALING_FACTOR if is_secondary_glazing else labour_hours - - # Assume a team of 2 + # To install windows, a small to medium size project might be conducted by a team of 2-3 people labour_days = (labour_hours / 8) / 2 return { "total": total_cost, - "subtotal": subtotal_before_vat, - "vat": vat_cost, - "contingency": contingency_cost, - "preliminaries": preliminaries_cost, - "material": material_cost, - "profit": profit_cost, + "contingency": self.CONTINGENCIES["windows_glazing"] * total_cost, + "contingency_rate": self.CONTINGENCIES["windows_glazing"], "labour_hours": labour_hours, - "labour_cost": labour_cost, - "labour_days": labour_days + "labour_days": labour_days, } @classmethod def solar_pv( cls, - n_panels: int | float, - has_battery: bool = False, - array_cost=None, - n_floors: int = 1, - battery_kwh: int = 5, - needs_inverter=False + solar_product, + scaffolding_options, + n_floors ): """ - Calculates the total cost for solar PV based data provided by the MCS dashboard, which contains - costing data for installations of renewable and clean energy measures. - The data in the dashboard is filtered on domestic building installations and then the data across the - various regions is manually collected. There is currently no automated way to get the data from the MCS - dashboard - - Price can also be benchmarked against this checkatrade article: - https://www.checkatrade.com/blog/cost-guides/cost-of-solar-panel-installation/ - :param n_panels: Number of solar panels - :param has_battery: Bool, whether the system includes a battery - :param array_cost: float, containing the cost of the solar PV array - :param n_floors: int, number of floors in the property, used to estimate the cost of scaffolding - :param battery_kwh: int, capacity of the battery in kWh. Defaulted to 5 - :param needs_inverter: Bool, whether the system needs an inverter, where the solar panels are feeding multiple - units """ - if n_panels > INSTALLER_MAX_PANELS: - base_cost = [c for c in INSTALLER_SOLAR_COSTS if c["n_panels"] == INSTALLER_MAX_PANELS][0]["cost"] - cost_per_panel = [ - c for c in INSTALLER_SOLAR_COSTS if c["n_panels"] == (INSTALLER_MAX_PANELS - 1) - ][0]["cost"] - cost_per_panel = base_cost - cost_per_panel - system_cost = base_cost + (n_panels - INSTALLER_MAX_PANELS) * cost_per_panel - else: - system_cost = [c for c in INSTALLER_SOLAR_COSTS if c["n_panels"] == n_panels][0]["cost"] + system_cost = solar_product["total_cost"] - subtotal = array_cost if array_cost is not None else system_cost + if not solar_product["includes_scaffolding"]: + # We base this on the number of floors + scaffolding = [x["total_cost"] for x in scaffolding_options if x["size"] == n_floors] + if not scaffolding: + # If we have no options, handle this + if n_floors <= 3: + raise ValueError("No scaffolding options available for 3 or fewer floors") + # We take the largest scaffolding option available + scaffolding_cost = max([x["total_cost"] for x in scaffolding_options]) + else: + scaffolding_cost = min(scaffolding) - if has_battery: - battery_cost = [c for c in INSTALLER_SOLAR_BATTERY_COSTS if c["capacity_kwh"] == battery_kwh][0]["cost"] - subtotal += battery_cost - - if needs_inverter: - subtotal += INSTALLER_SOLAR_PV_INVERTER_COST - # We also add an additional labour cost - subtotal += INSTALLER_SOLAR_PV_INVERTER_LABOUR_COST - - # Solar doesn't have VAT but we add a high risk contingency - # to account for design variation that we see in practice - total_cost = subtotal * (1 + cls.HIGH_RISK_CONTINGENCY) + system_cost += scaffolding_cost # Labour hours are based on estimates from online research but an average team seems to consist of 3 people # and most jobs take around 2 days. Assuming an 8 hour day for 3 people across 2 days, gives us 48 hours of # labour return { - "total": total_cost, - "subtotal": subtotal, + "total": system_cost, + "subtotal": system_cost, + "contingency": system_cost * cls.CONTINGENCIES["solar_pv"], + "contingency_rate": cls.CONTINGENCIES["solar_pv"], "vat": 0, "labour_hours": 48, "labour_days": 2, @@ -811,6 +485,8 @@ class Costs: # We estimate the cost of an appliance thermostat at £400, which is the upper end of the range return { "total": total_cost, + "contengency": total_cost * self.CONTINGENCY, + "contingency_rate": self.CONTINGENCY, "subtotal": subtotal_before_vat, "vat": vat, "labour_hours": labour_hours, @@ -837,6 +513,8 @@ class Costs: return { "total": total_cost, + "contingency": total_cost * self.CONTINGENCY, + "contingency_rate": self.CONTINGENCY, "subtotal": subtotal_before_vat, "vat": vat, "labour_hours": labour_hours, @@ -875,6 +553,8 @@ class Costs: return { "total": total_cost, + "contingency": total_cost * self.CONTINGENCIES["high_heat_retention_storage_heaters"], + "contingency_rate": self.CONTINGENCIES["high_heat_retention_storage_heaters"], "subtotal": subtotal_before_vat, "vat": vat, "labour_hours": labour_hours, @@ -894,6 +574,8 @@ class Costs: # We estimate the labour hours to be 4 return { "total": total_cost, + "contingency": total_cost * self.CONTINGENCY, + "contingency_rate": self.CONTINGENCY, "subtotal": subtotal_before_vat, "vat": vat, "labour_hours": 4, @@ -913,6 +595,8 @@ class Costs: # We estimate the labour hours to be 2 return { "total": total_cost, + "contingency": total_cost * self.CONTINGENCY, + "contingency_rate": self.CONTINGENCY, "subtotal": subtotal_before_vat, "vat": vat, "labour_hours": 2, @@ -931,6 +615,8 @@ class Costs: return { "total": total_cost, + "contingency": total_cost * self.CONTINGENCY, + "contingency_rate": self.CONTINGENCY, "subtotal": subtotal_before_vat, "vat": vat, "labour_hours": 0, @@ -965,6 +651,8 @@ class Costs: return { "total": total_cost, + "contingency": total_cost * self.CONTINGENCY, + "contingency_rate": self.CONTINGENCY, "subtotal": subtotal_before_vat, "vat": vat, "labour_hours": labour_hours, @@ -997,6 +685,8 @@ class Costs: return { "total": total_cost, + "contingency": total_cost * self.CONTINGENCY, + "contingency_rate": self.CONTINGENCY, "subtotal": subtotal_before_vat, "vat": vat, "labour_hours": labour_hours, @@ -1025,6 +715,8 @@ class Costs: return { "total": total_cost, + "contingency": total_cost * self.CONTINGENCY, + "contingency_rate": self.CONTINGENCY, "subtotal": subtotal_before_vat, "vat": vat, "labour_hours": labour_hours, @@ -1047,6 +739,8 @@ class Costs: return { "total": total_cost, + "contingency": total_cost * self.CONTINGENCY, + "contingency_rate": self.CONTINGENCY, "subtotal": subtotal_before_vat, "vat": vat, "labour_hours": removal_labour_hours, @@ -1110,7 +804,6 @@ class Costs: # To be pessimistic, assume 2 days work labour_cost = labour_rate * self.labour_adjustment_factor * labour_days # Add contingency and preliminaries - labour_cost = labour_cost * (1 + self.CONTINGENCY + self.PRELIMINARIES) vat = labour_cost * self.VAT_RATE @@ -1150,6 +843,8 @@ class Costs: return { "total": total_cost, + "contingency": total_cost * self.CONTINGENCY, + "contingency_rate": self.CONTINGENCY, "subtotal": subtotal_before_vat, "vat": vat, "labour_hours": labour_hours, @@ -1169,19 +864,18 @@ class Costs: else: cost = [x for x in INSTALLER_ASHP_COSTS if x][0]["cost"] - # We add some contingency since there are additional costs such as resizing radiators, that could be required - subtotal = cost * (1 + self.ASHP_CONTINGENCY) # The costs from installers exclude VAT - vat = subtotal * self.VAT_RATE - total_cost = subtotal + vat + vat = cost * self.VAT_RATE + cost = cost + vat # We assume 5 days installation labour_days = 5 labour_hours = labour_days * 8 return { - "total": total_cost, - "subtotal": subtotal, + "total": cost, + "contingency": cost * self.CONTINGENCIES["air_source_heat_pump"], + "contingency_rate": self.CONTINGENCIES["air_source_heat_pump"], "vat": vat, "labour_hours": labour_hours, "labour_days": labour_days, diff --git a/recommendations/FloorRecommendations.py b/recommendations/FloorRecommendations.py index ca74ac4b..2610c842 100644 --- a/recommendations/FloorRecommendations.py +++ b/recommendations/FloorRecommendations.py @@ -200,7 +200,6 @@ class FloorRecommendations(Definitions): cost_result = self.costs.suspended_floor_insulation( insulation_floor_area=self.property.insulation_floor_area, material=material.to_dict(), - non_insulation_materials=non_insulation_materials ) already_installed = "suspended_floor_insulation" in self.property.already_installed @@ -213,7 +212,6 @@ class FloorRecommendations(Definitions): cost_result = self.costs.solid_floor_insulation( insulation_floor_area=self.property.insulation_floor_area, material=material.to_dict(), - non_insulation_materials=non_insulation_materials ) already_installed = "solid_floor_insulation" in self.property.already_installed diff --git a/recommendations/HotwaterRecommendations.py b/recommendations/HotwaterRecommendations.py index d8404cc1..d735b002 100644 --- a/recommendations/HotwaterRecommendations.py +++ b/recommendations/HotwaterRecommendations.py @@ -110,7 +110,8 @@ class HotwaterRecommendations: "description_simulation": { "hot-water-energy-eff": "Poor" }, - "survey": survey + "survey": survey, + "innovation_rate": 0 } if _return: return to_append @@ -160,7 +161,8 @@ class HotwaterRecommendations: "hot-water-energy-eff": self.property.data["hot-water-energy-eff"], "hotwater-description": new_epc_description, }, - "survey": survey + "survey": survey, + "innovation_rate": 0 } if _return: return to_append @@ -222,7 +224,8 @@ class HotwaterRecommendations: "hot-water-energy-eff": simulation_config["hot_water_energy_eff_ending"], "hotwater-description": new_epc_description, }, - "survey": False + "survey": False, + "innovation_rate": 0 } self.recommendations.append(to_append) diff --git a/recommendations/LightingRecommendations.py b/recommendations/LightingRecommendations.py index 9e7b3af2..b96cefb2 100644 --- a/recommendations/LightingRecommendations.py +++ b/recommendations/LightingRecommendations.py @@ -126,7 +126,6 @@ class LightingRecommendations: cost_result = self.costs.low_energy_lighting( number_of_lights=number_non_lel_outlets, - number_current_lel_lights=number_lighting_outlets - number_non_lel_outlets, material=self.material ) diff --git a/recommendations/SecondaryHeating.py b/recommendations/SecondaryHeating.py index e63951d9..ee7eae1c 100644 --- a/recommendations/SecondaryHeating.py +++ b/recommendations/SecondaryHeating.py @@ -50,6 +50,7 @@ class SecondaryHeating: }, "description_simulation": { "secondheat-description": "None" - } + }, + "innovation_rate": 0.0, # No innovation rate for this measure } ) diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index ee07ff28..548ae54d 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -34,7 +34,9 @@ class SolarPvRecommendations: ] ) - def __init__(self, property_instance): + PANEL_SIZES = [400, 435, 440] + + def __init__(self, property_instance, materials: list): """ :param property_instance: Instance of the Property class, for the home associated to property_id """ @@ -44,6 +46,14 @@ class SolarPvRecommendations: self.recommendation = [] + self.panels_products = [ + material for material in materials if material["type"] == "solar_pv" + ] + + self.scaffolding_options = [ + material for material in materials if material["type"] == "scaffolding" + ] + @staticmethod def trim_solar_wattage_options(scenarios_with_wattage): # Initialize the list with the first element, assuming the list is not empty @@ -143,6 +153,8 @@ class SolarPvRecommendations: if not self.property.is_solar_pv_valid(): return + raise ValueError("DOO BUILDING") + # If we have a buiilding level analysis, we implement separate logic if self.property.building_id is not None: self.recommend_building_analysis(phase) @@ -201,11 +213,22 @@ class SolarPvRecommendations: # of this. This minimum is used in Recommendations.calculate_recommendation_impact minimum_sap_points = (roof_coverage_percent / 5) * self.SAP_POINTS_PER_5_PERCENT_ROOF_COVERAGE - for has_battery in [False, True]: + n_panels = recommendation_config["n_panels"] + + # Different panel sizes: 400, 435, 440 + available_products = [] + for panel_size in self.PANEL_SIZES: + system_size = (n_panels * panel_size) / 1000 + available_products.extend([ + x for x in self.panels_products if abs(x["size"] - system_size) < 0.01 + ]) + + # Given the available products in the database, we product the possible array of recommendations + for solar_pv_product in available_products: + cost_result = self.costs.solar_pv( - has_battery=has_battery, - array_cost=non_invasive_recommendation.get("cost", None), - n_panels=recommendation_config["n_panels"], + product=solar_pv_product, + scaffolding_options=self.scaffolding_options, n_floors=self.property.number_of_floors ) kw = np.floor(recommendation_config["array_wattage"] / 100) / 10 From dba33be17465a99c32b1f7818ad16ff412c99ed7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Aug 2025 16:38:00 +0100 Subject: [PATCH 55/73] 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." From 03854595cd4f2b34ef03643463bed2e6b7ea95f6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Aug 2025 16:49:50 +0100 Subject: [PATCH 56/73] updating solar pv recommendations --- recommendations/SolarPvRecommendations.py | 63 +++++++++++++---------- 1 file changed, 35 insertions(+), 28 deletions(-) diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index c5a1d7d0..89a41456 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -34,7 +34,7 @@ class SolarPvRecommendations: ] ) - PANEL_SIZES = [400, 435, 440] + PANEL_SIZES = [400, 435, 440, 445] def __init__(self, property_instance, materials: list): """ @@ -153,8 +153,6 @@ class SolarPvRecommendations: if not self.property.is_solar_pv_valid(): return - raise ValueError("DOO BUILDING") - # If we have a buiilding level analysis, we implement separate logic if self.property.building_id is not None: self.recommend_building_analysis(phase) @@ -196,36 +194,49 @@ class SolarPvRecommendations: # We combine each of these configurations with estimates with and without a battery for rank, recommendation_config in solar_configurations.iterrows(): - roof_coverage_percent = round(recommendation_config["panneled_roof_area"] / roof_area * 100) - # We round up to the nearest 5 - roof_coverage_percent = np.ceil(roof_coverage_percent / 5) * 5 - # Typically, we've observed that every 5% of additional roof coverage will result in at least - # an additional 1 SAP points (though often 2 points) Given this, we can add a reasonable minimum - # for the number of SAP points we might expect. We've observed that for some cases where properties - # are hitting the higher SAP scores (e.g. EPC A and above), the model can sometimes under-predict - # the number of SAP points. This appears to be due to a relatively small number of properties - # actually achieving the upper echelons of EPC rating. This can be the case if we're simulating a - # whole house retrofit where the home is getting complete insulation, a heat pump and solar panels. - # Because panels are the final recommendation, they are often the measure that takes the home - # into the medium to high EPC A ranges and so because of a lack of training data, this means that - # we might sometime under-predict. This minimum is intended to try and reduce the negative impact - # of this. This minimum is used in Recommendations.calculate_recommendation_impact - minimum_sap_points = (roof_coverage_percent / 5) * self.SAP_POINTS_PER_5_PERCENT_ROOF_COVERAGE - - n_panels = recommendation_config["n_panels"] - - # Different panel sizes: 400, 435, 440 available_products = [] for panel_size in self.PANEL_SIZES: system_size = (n_panels * panel_size) / 1000 - available_products.extend([ + prods = [ x for x in self.panels_products if abs(x["size"] - system_size) < 0.01 - ]) + ] + for x in prods: + x["panel_size"] = panel_size + available_products.extend(prods) # Given the available products in the database, we product the possible array of recommendations for solar_pv_product in available_products: + # we take the paneled roof area and this tells us the roof coverage, based on 400W panels + # We then look at the equivalent for larger panels, which will produce more energy in the same area + + paneled_roof_area = recommendation_config["panneled_roof_area"] + + roof_coverage_percent = round( + ((paneled_roof_area / 400) * solar_pv_product["panel_size"]) / roof_area * 100 + ) + # We round up to the nearest 5 + roof_coverage_percent = np.ceil(roof_coverage_percent / 5) * 5 + + # Note roof_coverage_percent is based on 400 watt panels, so we need to scale it up based on + # largest panels that will produce more energy in the same area + + # Typically, we've observed that every 5% of additional roof coverage will result in at least + # an additional 1 SAP points (though often 2 points) Given this, we can add a reasonable minimum + # for the number of SAP points we might expect. We've observed that for some cases where properties + # are hitting the higher SAP scores (e.g. EPC A and above), the model can sometimes under-predict + # the number of SAP points. This appears to be due to a relatively small number of properties + # actually achieving the upper echelons of EPC rating. This can be the case if we're simulating a + # whole house retrofit where the home is getting complete insulation, a heat pump and solar panels. + # Because panels are the final recommendation, they are often the measure that takes the home + # into the medium to high EPC A ranges and so because of a lack of training data, this means that + # we might sometime under-predict. This minimum is intended to try and reduce the negative impact + # of this. This minimum is used in Recommendations.calculate_recommendation_impact + minimum_sap_points = (roof_coverage_percent / 5) * self.SAP_POINTS_PER_5_PERCENT_ROOF_COVERAGE + + n_panels = recommendation_config["n_panels"] + cost_result = self.costs.solar_pv( product=solar_pv_product, scaffolding_options=self.scaffolding_options, @@ -252,10 +263,6 @@ class SolarPvRecommendations: "sap_points": minimum_sap_points, "already_installed": already_installed, **cost_result, - # This is required for simulating the SAP impact. solar_pv_percentage is between 0 & 1 so we - # scale - # back up here - "photo_supply": roof_coverage_percent, "has_battery": has_battery, "initial_ac_kwh_per_year": recommendation_config["initial_ac_kwh_per_year"], "description_simulation": {"photo-supply": roof_coverage_percent}, From b7c913ec3f2d7a7ec0b920205cf079974286a23c Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Aug 2025 16:57:52 +0100 Subject: [PATCH 57/73] added the beginnings of the building level analysis but incomplete --- recommendations/SolarPvRecommendations.py | 53 +++++++++++++++-------- 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 89a41456..3f32da25 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -95,17 +95,25 @@ class SolarPvRecommendations: else: raise Exception("IMPLEMENT ME") + # We get solar PV options + solar_product = [x for x in self.panels_products if x["id"] == recommendation_config["solar_product_id"]] + if not solar_product: + raise NotImplementedError( + f"Solar product with id {recommendation_config['solar_product_id']} not found in " + "panels_products" + ) + solar_product = solar_product[0] + n_floors = ( self.property.number_of_storeys["number_of_storeys"] if self.property.number_of_storeys["number_of_storeys"] is not None else 3 ) total_cost = self.costs.solar_pv( - array_cost=recommendation_config.get("cost", None), - n_panels=recommendation_config["n_panels"], + solar_product=solar_product, + scaffolding_options=self.scaffolding_options, n_floors=n_floors, - needs_inverter=True, - )["total"] / n_units + )["total"] kw = np.floor(recommendation_config["array_wattage"] / 100) / 10 # Default to a weeks work for a team of 3 people doing 8 hour days @@ -137,10 +145,29 @@ class SolarPvRecommendations: "has_battery": False, "initial_ac_kwh_per_year": initial_ac_kwh_per_year, "description_simulation": {"photo-supply": roof_coverage_percent}, - "rank": rank # Rank is used to get the representative recommendation - rank 0 will be chosen + "rank": rank, # Rank is used to get the representative recommendation - rank 0 will be chosen + "innovation_rate": solar_product["innovation_rate"], } ) + def _get_available_products(self, n_panels): + """ + Utility function to get the available solar PV products based on the number of panels + :param n_panels: + :return: + """ + available_products = [] + for panel_size in self.PANEL_SIZES: + system_size = (n_panels * panel_size) / 1000 + prods = [ + x for x in self.panels_products if abs(x["size"] - system_size) < 0.01 + ] + for x in prods: + x["panel_size"] = panel_size + available_products.extend(prods) + + return available_products + def recommend(self, phase): """ We check if a property is potentially suitable for solar PV based on the following criteria: @@ -195,15 +222,9 @@ class SolarPvRecommendations: # We combine each of these configurations with estimates with and without a battery for rank, recommendation_config in solar_configurations.iterrows(): - available_products = [] - for panel_size in self.PANEL_SIZES: - system_size = (n_panels * panel_size) / 1000 - prods = [ - x for x in self.panels_products if abs(x["size"] - system_size) < 0.01 - ] - for x in prods: - x["panel_size"] = panel_size - available_products.extend(prods) + n_panels = recommendation_config["n_panels"] + + available_products = self._get_available_products(n_panels) # Given the available products in the database, we product the possible array of recommendations for solar_pv_product in available_products: @@ -235,10 +256,8 @@ class SolarPvRecommendations: # of this. This minimum is used in Recommendations.calculate_recommendation_impact minimum_sap_points = (roof_coverage_percent / 5) * self.SAP_POINTS_PER_5_PERCENT_ROOF_COVERAGE - n_panels = recommendation_config["n_panels"] - cost_result = self.costs.solar_pv( - product=solar_pv_product, + solar_product=solar_pv_product, scaffolding_options=self.scaffolding_options, n_floors=self.property.number_of_floors ) From 8e5388b1ea9bb36dd5d3e2e157bce70b545cf8ce Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Mon, 18 Aug 2025 18:02:56 +0100 Subject: [PATCH 58/73] adding materials to recommender --- backend/apis/GoogleSolarApi.py | 38 ++++++++++++++++----- backend/engine/engine.py | 5 +-- recommendations/FireplaceRecommendations.py | 2 +- recommendations/HeatingRecommender.py | 10 +++--- recommendations/Recommendations.py | 6 ++-- 5 files changed, 41 insertions(+), 20 deletions(-) diff --git a/backend/apis/GoogleSolarApi.py b/backend/apis/GoogleSolarApi.py index cda32faa..51e9c893 100644 --- a/backend/apis/GoogleSolarApi.py +++ b/backend/apis/GoogleSolarApi.py @@ -60,7 +60,7 @@ class GoogleSolarApi: # Error Messages ENTITY_NOT_FOUND_ERROR = 'Requested entity was not found.' - def __init__(self, api_key, max_retries=5): + def __init__(self, api_key, solar_materials: list, max_retries=5): """ Initialize the GoogleSolarApi class with the provided API key and maximum retries. @@ -87,6 +87,7 @@ class GoogleSolarApi: # Indicates if we think we have both units attached to a semi-detached property self.double_property = False + self.solar_materials = solar_materials def get_building_insights(self, longitude, latitude, required_quality="MEDIUM", max_retries=None): """ @@ -208,13 +209,13 @@ class GoogleSolarApi: self.optimise_solar_configuration( energy_consumption=energy_consumption, is_building=is_building, - property_instance=property_instance + property_instance=property_instance, ) # Finally, if we have a double property, we half the data we stored area if self.double_property: self.roof_area = self.roof_area / 2 - self.floor_area = self.floor_area / 2 + self.floor_area = float(self.floor_area) / 2 def save_to_db(self, session, uprns_to_location, scenario_type): if self.insights_data is None: @@ -279,7 +280,9 @@ class GoogleSolarApi: installation_life_span)) / (1 - efficiency_depreciation_factor)) - def optimise_solar_configuration(self, energy_consumption, is_building=False, property_instance=None): + def optimise_solar_configuration( + self, energy_consumption, is_building=False, property_instance=None + ): """ Optimise the solar panel configuration for the building. :return: @@ -321,9 +324,25 @@ class GoogleSolarApi: if roi_summary["n_panels"].sum() < min_panels: continue + total_panels = roi_summary["n_panels"].sum() + # find a product which is suitable for the ROI calc, without a battery. 400 Watts for the baseline + solar_product = next( + (m for m in self.solar_materials if m["type"] == "solar_pv" and + abs(m["size"] - (400 * total_panels) / 1000) < 0.1 and not m["includes_battery"]), + None + ) + + if solar_product is None: + logger.info("No suitable solar product found for the configuration with %d panels.", total_panels) + continue + total_cost = Costs.solar_pv( - n_panels=roi_summary["n_panels"].sum(), - has_battery=False, + solar_product=solar_product, + # We don't actually need scaffolding for the ROI calc + scaffolding_options=[ + {"total_cost": 1000, "size": property_instance.number_of_floors}, + {"total_cost": 1000, "size": 3} + ], # Assume the most amount of scaffolding n_floors=3 if property_instance is None else property_instance.number_of_floors )["total"] @@ -805,7 +824,8 @@ class GoogleSolarApi: @classmethod def unit_solar_analysis( - cls, unit_solar_config: List, input_properties: List[Property], session, body, google_solar_api_key: str + cls, unit_solar_config: List, input_properties: List[Property], session, body, google_solar_api_key: str, + solar_materials: list ): if not unit_solar_config: @@ -844,7 +864,7 @@ class GoogleSolarApi: ) continue - solar_api_client = cls(api_key=google_solar_api_key) + solar_api_client = cls(api_key=google_solar_api_key, solar_materials=solar_materials) solar_api_client.get( longitude=unit["longitude"], latitude=unit["latitude"], @@ -852,7 +872,7 @@ class GoogleSolarApi: is_building=False, session=session, uprn=unit["uprn"], - property_instance=property_instance + property_instance=property_instance, ) # Store the data in the database diff --git a/backend/engine/engine.py b/backend/engine/engine.py index 7bc083d8..14e5d85a 100644 --- a/backend/engine/engine.py +++ b/backend/engine/engine.py @@ -689,7 +689,7 @@ async def model_engine(body: PlanTriggerRequest): building_solar_config=building_solar_config, input_properties=input_properties, session=session, - google_solar_api_key=get_settings().GOOGLE_SOLAR_API_KEY + google_solar_api_key=get_settings().GOOGLE_SOLAR_API_KEY, ) input_properties = GoogleSolarApi.unit_solar_analysis( @@ -697,7 +697,8 @@ async def model_engine(body: PlanTriggerRequest): input_properties=input_properties, session=session, body=body, - google_solar_api_key=get_settings().GOOGLE_SOLAR_API_KEY + solar_materials=[m for m in materials if m["type"] == "solar_pv"], + google_solar_api_key=get_settings().GOOGLE_SOLAR_API_KEY, ) logger.info("Identifying property recommendations") diff --git a/recommendations/FireplaceRecommendations.py b/recommendations/FireplaceRecommendations.py index 60e54073..60445821 100644 --- a/recommendations/FireplaceRecommendations.py +++ b/recommendations/FireplaceRecommendations.py @@ -11,7 +11,7 @@ class FireplaceRecommendations(Definitions): def __init__( self, property_instance: Property, - materials: list = None, + materials: list, ): self.property = property_instance diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index 60163090..e7e008d5 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -1,11 +1,11 @@ import re import backend.app.assumptions as assumptions -from recommendations.Costs import Costs, BOILER_UPGRADE_SCHEME_ASHP_VALUE from recommendations.recommendation_utils import ( check_simulation_difference, override_costs, combine_recommendation_configs ) from backend.Property import Property from backend.app.plan.schemas import MEASURE_MAP +from recommendations.Costs import Costs from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes from etl.epc_clean.epc_attributes.HotWaterAttributes import HotWaterAttributes from etl.epc_clean.epc_attributes.MainFuelAttributes import MainFuelAttributes @@ -85,7 +85,7 @@ class HeatingRecommender: } } - def __init__(self, property_instance: Property, materials: list = None): + def __init__(self, property_instance: Property, materials: list): self.property = property_instance self.costs = Costs(self.property) @@ -573,12 +573,12 @@ class HeatingRecommender: if has_cavity_or_loft_recommendations: description = description + ( f" You must ensure that the property has an insulated cavity and " - f"270mm+ loft insulation to qualify for the grant, to claim £" - f"{BOILER_UPGRADE_SCHEME_ASHP_VALUE} of funding from the boiler upgrade scheme grant. " + f"270mm+ loft insulation to qualify for the grant, to claim £7,500" + f" of funding from the boiler upgrade scheme grant. " ) else: description = description + ( - f" £{BOILER_UPGRADE_SCHEME_ASHP_VALUE} of funding can be claimed from the boiler upgrade scheme" + f" £7,500 of funding can be claimed from the boiler upgrade scheme" ) simulation_config = { diff --git a/recommendations/Recommendations.py b/recommendations/Recommendations.py index 462d43aa..614e4a4a 100644 --- a/recommendations/Recommendations.py +++ b/recommendations/Recommendations.py @@ -65,11 +65,11 @@ class Recommendations: property_instance=property_instance, materials=materials ) self.draught_proofing_recommender = DraughtProofingRecommendations(property_instance=property_instance) - self.fireplace_recommender = FireplaceRecommendations(property_instance=property_instance) + self.fireplace_recommender = FireplaceRecommendations(property_instance=property_instance, materials=materials) self.lighting_recommender = LightingRecommendations(property_instance=property_instance, materials=materials) self.windows_recommender = WindowsRecommendations(property_instance=property_instance, materials=materials) - self.solar_recommender = SolarPvRecommendations(property_instance=property_instance) - self.heating_recommender = HeatingRecommender(property_instance=property_instance) + self.solar_recommender = SolarPvRecommendations(property_instance=property_instance, materials=materials) + self.heating_recommender = HeatingRecommender(property_instance=property_instance, materials=materials) self.hotwater_recommender = HotwaterRecommendations(property_instance=property_instance) self.secondary_heating_recommender = SecondaryHeating(property_instance=property_instance) From 7b1b1e0c118642ccf79957785e88361662bd93bc Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 19 Aug 2025 11:27:17 +0100 Subject: [PATCH 59/73] implementing funding optimiser and fixing some bugs in sal --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- asset_list/AssetList.py | 35 +- asset_list/app.py | 753 +++++++++++----------- asset_list/mappings/property_type.py | 6 +- backend/Property.py | 5 +- backend/apis/GoogleSolarApi.py | 43 +- backend/engine/engine.py | 40 +- recommendations/SolarPvRecommendations.py | 8 +- 9 files changed, 491 insertions(+), 403 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index c6561970..09f2e496 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 50cad4ca..fb10c6b0 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/asset_list/AssetList.py b/asset_list/AssetList.py index eca4ae1f..3c5627fc 100644 --- a/asset_list/AssetList.py +++ b/asset_list/AssetList.py @@ -303,7 +303,7 @@ class AssetList: # Another version of non-intrusives: NON_INTRUSIVES_NEW_FORMAT_COLNAMES_V2 = [ - 'Archetype', 'Archetype 2', 'Construction', 'Insulated', 'Material', 'Boroscoped?', + 'Archetype', 'Archetype 2', 'Construction', 'Insulated', 'Material', 'Borescoped?', 'CIGA Check Required', 'ROOF ORIENTATION', 'TILE HUNG', 'RENDERED', 'CLADDING', 'ACCESS ISSUES', 'FURTHER SURVEYOR NOTES', 'DATE', 'NAME OF SURVEYOR' @@ -2119,6 +2119,7 @@ class AssetList: RANGE_RE = re.compile(r'\b(\d+[A-Za-z]?)\s*[-–]\s*(\d+[A-Za-z]?)\b') NUM_RE = re.compile(r'\b\d+[A-Za-z]?\b') # captures 12, 12A, etc. TO_RANGE_RE = re.compile(r'\b(\d+[A-Za-z]?)\s+(?:to|To|TO)\s+(\d+[A-Za-z]?)\b') # captures "13 to 15" + LETTER_RANGE_RE = re.compile(r'\b(\d+)([A-Za-z]?)\s*[-–]\s*(\d+)([A-Za-z]?)\b') # captures "1A-3B" expanded_rows = [] @@ -2175,7 +2176,7 @@ class AssetList: # We update the full address new[self.DOMNA_PROPERTY_ID] = f"{row[self.DOMNA_PROPERTY_ID]}-{new_addr}" - expanded_rows.append(new) + expanded_rows.append(new.to_dict()) continue # 2 ─ Explicit list (e.g. 1, 2, 5 Block) or split by an ampersand (e.g. 1 & 2 Block) @@ -2186,12 +2187,36 @@ class AssetList: new_addr = re.sub(NUM_RE, n, addr, count=1) # replace the first number only new[self.STANDARD_ADDRESS_1] = new_addr new[self.DOMNA_PROPERTY_ID] = f"{row[self.DOMNA_PROPERTY_ID]}-{new_addr}" - expanded_rows.append(new) + expanded_rows.append(new.to_dict()) continue - # 3 ─ Single number or no number, treat as individual dwelling + # Check for a range of lettered addresses e.g 31A - 31D + letter_range = LETTER_RANGE_RE.search(full_addr) + if letter_range: + start_num, start_letter, end_num, end_letter = letter_range.groups() + start_num, end_num = int(start_num), int(end_num) + if start_num != end_num: + raise NotImplementedError(f"Unusual range - handle me") + + # We define the looping range on whether we have odd, even or all numbers + house_number_range = range(start_num, end_num + 1) + if has_odd: + house_number_range = [x for x in house_number_range if x % 2 != 0] + if has_even: + house_number_range = [x for x in house_number_range if x % 2 == 0] + + for n in house_number_range: + for letter in range(ord(start_letter), ord(end_letter) + 1): + new = row.copy() + new_addr = f"{n}{chr(letter)}" + new[self.STANDARD_ADDRESS_1] = new_addr + new[self.DOMNA_PROPERTY_ID] = f"{row[self.DOMNA_PROPERTY_ID]}-{new_addr}" + expanded_rows.append(new.to_dict()) + continue + + # 4 ─ Single number or no number, treat as individual dwelling if (len(nums) == 1) or not nums: - expanded_rows.append(row) + expanded_rows.append(row.to_dict()) continue # Anything else with digits is unrecognised diff --git a/asset_list/app.py b/asset_list/app.py index 763f245f..cf64a02d 100644 --- a/asset_list/app.py +++ b/asset_list/app.py @@ -58,23 +58,24 @@ def app(): EPC recommendations Property UPRN """ - # Abri - data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Abri/Post Inspections" - data_filename = "Desktop ABRI data - Standardised After Programmes (2).xlsx" - sheet_name = "Reviewed List" + + # Colchester + data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Colchester/Aug2025 202 inspections" + data_filename = "Colchester Borough Homes - Inspections - Additional 202 Addresses JW 280725 copy.xlsx" + sheet_name = "Extra 202 Colchester Addresses" postcode_column = 'domna_postcode' address1_column = "domna_address_1" address1_method = None fulladdress_column = "domna_full_address" address_cols_to_concat = [] missing_postcodes_method = None - landlord_year_built = "landlord_year_built" + landlord_year_built = None landlord_os_uprn = None - landlord_property_type = "PropertyType_original_from_landlord" - landlord_built_form = "BuildForm_original_from_landlord" - landlord_wall_construction = "Wall Construction_original_from_landlord" + landlord_property_type = "landlord_property_type" + landlord_built_form = "landlord_built_form" + landlord_wall_construction = None landlord_roof_construction = None - landlord_heating_system = "HeatingType_original_from_landlord" + landlord_heating_system = None landlord_existing_pv = None landlord_property_id = "landlord_property_id" landlord_sap = None @@ -90,360 +91,394 @@ def app(): phase = False ecosurv_landlords = None asset_list_header = 0 - landlord_block_reference = None + landlord_block_reference = "landlord_block_reference" + + # # Abri + # data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Abri/Post Inspections" + # data_filename = "Desktop ABRI data - Standardised After Programmes (2).xlsx" + # sheet_name = "Reviewed List" + # postcode_column = 'domna_postcode' + # address1_column = "domna_address_1" + # address1_method = None + # fulladdress_column = "domna_full_address" + # address_cols_to_concat = [] + # missing_postcodes_method = None + # landlord_year_built = "landlord_year_built" + # landlord_os_uprn = None + # landlord_property_type = "PropertyType_original_from_landlord" + # landlord_built_form = "BuildForm_original_from_landlord" + # landlord_wall_construction = "Wall Construction_original_from_landlord" + # landlord_roof_construction = None + # landlord_heating_system = "HeatingType_original_from_landlord" + # landlord_existing_pv = None + # landlord_property_id = "landlord_property_id" + # landlord_sap = None + # outcomes_filename = None + # outcomes_sheetname = None + # outcomes_postcode = None + # outcomes_houseno = None + # outcomes_id = None + # outcomes_address = None + # master_filepaths = [] + # master_id_colnames = [] + # master_to_asset_list_filepath = None + # phase = False + # ecosurv_landlords = None + # asset_list_header = 0 + # landlord_block_reference = None # Freebridge - data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Freebridge" - data_filename = "Domna - FCH property data May 25 copy.xlsx" - sheet_name = "EPC Data" - postcode_column = 'Post Code' - address1_column = "Address 1" - address1_method = None - fulladdress_column = None - address_cols_to_concat = ["Address 1", "Address 4"] - missing_postcodes_method = None - landlord_year_built = "Build Date" - landlord_os_uprn = None - landlord_property_type = "Property Type" - landlord_built_form = None - landlord_wall_construction = "Walls Description" - landlord_heating_system = "Heating Type" - landlord_existing_pv = None - landlord_property_id = "Place Ref" - landlord_roof_construction = "Roof Description" - landlord_sap = "Current SAP" - outcomes_filename = [] - outcomes_sheetname = [] - outcomes_postcode = [] - outcomes_houseno = [] - outcomes_address = [] - outcomes_id = [] - master_filepaths = [] - master_to_asset_list_filepath = None - asset_list_header = 0 - landlord_block_reference = None - master_id_colnames = [] - phase = True # Inspections not complete, produce a partial view - ecosurv_landlords = None + # data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Freebridge" + # data_filename = "Domna - FCH property data May 25 copy.xlsx" + # sheet_name = "EPC Data" + # postcode_column = 'Post Code' + # address1_column = "Address 1" + # address1_method = None + # fulladdress_column = None + # address_cols_to_concat = ["Address 1", "Address 4"] + # missing_postcodes_method = None + # landlord_year_built = "Build Date" + # landlord_os_uprn = None + # landlord_property_type = "Property Type" + # landlord_built_form = None + # landlord_wall_construction = "Walls Description" + # landlord_heating_system = "Heating Type" + # landlord_existing_pv = None + # landlord_property_id = "Place Ref" + # landlord_roof_construction = "Roof Description" + # landlord_sap = "Current SAP" + # outcomes_filename = [] + # outcomes_sheetname = [] + # outcomes_postcode = [] + # outcomes_houseno = [] + # outcomes_address = [] + # outcomes_id = [] + # master_filepaths = [] + # master_to_asset_list_filepath = None + # asset_list_header = 0 + # landlord_block_reference = None + # master_id_colnames = [] + # phase = True # Inspections not complete, produce a partial view + # ecosurv_landlords = None - data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Broadlands" - data_filename = "Broadlands Asset List.xlsx" - sheet_name = "Assets" - postcode_column = 'POSTCODE' - fulladdress_column = None - address1_column = "Address1" - address1_method = None - address_cols_to_concat = ["Address1"] - missing_postcodes_method = None - landlord_year_built = "DATEBUILT" - landlord_os_uprn = None - landlord_property_type = "PropertyType" - landlord_built_form = "PropertyType" - landlord_wall_construction = None - landlord_heating_system = "Heating Fuel" - landlord_existing_pv = None - landlord_property_id = "Row ID" - outcomes_filename = [os.path.join(data_folder, "outcomes.xlsx")] - outcomes_sheetname = ["Sheet1"] - outcomes_postcode = ["Postcode"] - outcomes_houseno = ["No."] - outcomes_address = ["Address"] - outcomes_id = [None] - master_filepaths = [ - os.path.join(data_folder, "eco3 submissions.csv"), - os.path.join(data_folder, "eco4 submissions.csv"), - ] - master_to_asset_list_filepath = None - asset_list_header = 0 - landlord_block_reference = None - master_id_colnames = [None, None] - landlord_roof_construction = None - phase = False - landlord_sap = None - ecosurv_landlords = "broadland" + # data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Broadlands" + # data_filename = "Broadlands Asset List.xlsx" + # sheet_name = "Assets" + # postcode_column = 'POSTCODE' + # fulladdress_column = None + # address1_column = "Address1" + # address1_method = None + # address_cols_to_concat = ["Address1"] + # missing_postcodes_method = None + # landlord_year_built = "DATEBUILT" + # landlord_os_uprn = None + # landlord_property_type = "PropertyType" + # landlord_built_form = "PropertyType" + # landlord_wall_construction = None + # landlord_heating_system = "Heating Fuel" + # landlord_existing_pv = None + # landlord_property_id = "Row ID" + # outcomes_filename = [os.path.join(data_folder, "outcomes.xlsx")] + # outcomes_sheetname = ["Sheet1"] + # outcomes_postcode = ["Postcode"] + # outcomes_houseno = ["No."] + # outcomes_address = ["Address"] + # outcomes_id = [None] + # master_filepaths = [ + # os.path.join(data_folder, "eco3 submissions.csv"), + # os.path.join(data_folder, "eco4 submissions.csv"), + # ] + # master_to_asset_list_filepath = None + # asset_list_header = 0 + # landlord_block_reference = None + # master_id_colnames = [None, None] + # landlord_roof_construction = None + # phase = False + # landlord_sap = None + # ecosurv_landlords = "broadland" + # # # - - # Community: - data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Community Housing/New Programme" - data_filename = "SUB EPC C to DOMNA - 24.07.25.xlsx" - sheet_name = "Sheet1" - postcode_column = 'POSTCODE' - fulladdress_column = "ADDRESS" - address1_column = None - address1_method = "house_number_extraction" - address_cols_to_concat = [] - missing_postcodes_method = None - landlord_year_built = "BUILD DATE" - landlord_os_uprn = None - landlord_property_type = "PROPERTY TYPE" - landlord_built_form = "Archetype" # Using the inspections archetype - landlord_wall_construction = "CONSTRUCTION TYPE" - landlord_roof_construction = None - landlord_heating_system = None - landlord_existing_pv = None - landlord_property_id = "UPRN" - landlord_sap = None - outcomes_filename = [] - outcomes_sheetname = [] - outcomes_postcode = [] - outcomes_houseno = [] - outcomes_id = [] - outcomes_address = [] - master_filepaths = [] - master_to_asset_list_filepath = None - phase = False - ecosurv_landlords = None - asset_list_header = 1 - landlord_block_reference = None - master_id_colnames = [] - - data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Ealing/Programme Analysis" - data_filename = "EalingProjectRebuildJW210725.xlsx" - sheet_name = "Refine & Houses" - postcode_column = 'Postcode' - fulladdress_column = "Address" - address1_column = None - address1_method = "house_number_extraction" - address_cols_to_concat = [] - missing_postcodes_method = None - landlord_year_built = None - landlord_os_uprn = None - landlord_property_type = None # Using the inspections property type - landlord_built_form = None - landlord_wall_construction = None - landlord_roof_construction = None - landlord_heating_system = None - landlord_existing_pv = None - landlord_property_id = "Property ref" - landlord_sap = None - outcomes_filename = [] - outcomes_sheetname = [] - outcomes_postcode = [] - outcomes_houseno = [] - outcomes_id = [] - outcomes_address = [] - master_filepaths = [] - master_to_asset_list_filepath = None - phase = False - ecosurv_landlords = None - asset_list_header = 0 - landlord_block_reference = "Block Reference" - master_id_colnames = [] - - # TODO: Delete me - data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/NRLA/" - data_filename = "20250716 Asset List.xlsx" - sheet_name = "Sheet 1" - postcode_column = 'Postcode' - fulladdress_column = "Full Address" - address1_column = None - address1_method = "house_number_extraction" - address_cols_to_concat = [] - missing_postcodes_method = None - landlord_year_built = None - landlord_os_uprn = None - landlord_property_type = None - landlord_built_form = None - landlord_wall_construction = None - landlord_heating_system = None - landlord_existing_pv = None - landlord_property_id = "Row ID" - outcomes_filename = [] - outcomes_sheetname = [] - outcomes_postcode = [] - outcomes_houseno = [] - outcomes_address = [] - outcomes_id = [] - master_filepaths = [] - master_to_asset_list_filepath = None - asset_list_header = 0 - landlord_block_reference = None - master_id_colnames = [] - landlord_roof_construction = None - phase = False - landlord_sap = None - ecosurv_landlords = None - - # Southend - data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Southend/July 2025 Programme" - data_filename = "SOUTHEND - RYAN.xlsx" - sheet_name = "July 2025 Surveys" - postcode_column = 'Postcode' - fulladdress_column = "Full postal address" - address1_column = None - address1_method = "house_number_extraction" - address_cols_to_concat = [] - missing_postcodes_method = None - landlord_year_built = "Property age" - landlord_os_uprn = None - landlord_property_type = "Property type" - landlord_built_form = "Property type" - landlord_wall_construction = None - landlord_heating_system = None - landlord_existing_pv = None - landlord_property_id = "ID" - outcomes_filename = [] - outcomes_sheetname = [] - outcomes_postcode = [] - outcomes_houseno = [] - outcomes_address = [] - outcomes_id = [] - master_filepaths = [] - master_to_asset_list_filepath = None - asset_list_header = 0 - landlord_block_reference = None - master_id_colnames = [] - landlord_roof_construction = None - phase = False - landlord_sap = None - ecosurv_landlords = None - - # For Rooftop - data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Rooftop" - data_filename = "Rooftop Asset List - July 2025.xlsx" - sheet_name = "Sheet1" - postcode_column = 'post_code' - fulladdress_column = None - address1_column = "add_1" - address1_method = None - address_cols_to_concat = [ - "add_1", "add_2", "add_3", "add_4" - ] - missing_postcodes_method = None - landlord_year_built = "date_built" - landlord_os_uprn = None - landlord_property_type = "ConstructionStyle" - landlord_built_form = "ConstructionStyle" - landlord_wall_construction = None - landlord_heating_system = "Description" - landlord_existing_pv = None - landlord_property_id = "PropertyCode" - outcomes_filename = [os.path.join(data_folder, "Rooftop_Outcomes.xlsx")] - outcomes_sheetname = ["OUTCOMES"] - outcomes_postcode = ["POSTCODE"] - outcomes_houseno = ["NO"] - outcomes_address = ["ADDRESS"] - outcomes_id = [None] - master_filepaths = [os.path.join(data_folder, "Master.csv")] - master_to_asset_list_filepath = None - asset_list_header = 1 - landlord_block_reference = "bl_rec_ref" - master_id_colnames = [None] - landlord_roof_construction = None - phase = False - landlord_sap = None - ecosurv_landlords = "rooftop" - - # For Housing - data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/For Housing/New Programme July 2025" - data_filename = "FOR HOUSING Asset List (Combined).xlsx" - sheet_name = "Asset List" - postcode_column = 'Postcode' - fulladdress_column = "Address" - address1_column = None - address1_method = "house_number_extraction" - address_cols_to_concat = [] - missing_postcodes_method = None - landlord_year_built = None - landlord_os_uprn = None - landlord_property_type = "Type" - landlord_built_form = "Type" - landlord_wall_construction = None - landlord_heating_system = "Heating - full" - landlord_existing_pv = None - landlord_property_id = "UPRN" - outcomes_filename = [os.path.join(data_folder, "Khalim Combined - for analysis.xlsx")] - outcomes_sheetname = ["Sheet1"] - outcomes_postcode = ["POSTCODE"] - outcomes_houseno = ["NO"] - outcomes_address = ["ADDRESS"] - outcomes_id = [None] - master_filepaths = [os.path.join(data_folder, "submissions.csv")] - master_to_asset_list_filepath = None - asset_list_header = 0 - landlord_block_reference = None - master_id_colnames = [None] - landlord_roof_construction = None - phase = False - landlord_sap = "SAP" - ecosurv_landlords = "for housing" - - # CDS - data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/CDS" - data_filename = "Founder Estates - Asset List.xlsx" - sheet_name = "Combined" - postcode_column = 'Postcode' - fulladdress_column = "Address" - address1_column = None - address1_method = "house_number_extraction" - address_cols_to_concat = [] - missing_postcodes_method = None - landlord_year_built = None - landlord_os_uprn = None - landlord_property_type = None - landlord_built_form = None - landlord_wall_construction = None - landlord_heating_system = "Heating Type" - landlord_existing_pv = None - landlord_property_id = "Row ID" - outcomes_filename = [] - outcomes_sheetname = [] - outcomes_postcode = [] - outcomes_houseno = [] - outcomes_address = [] - outcomes_id = [] - master_filepaths = [os.path.join(data_folder, "submissions.csv")] - master_to_asset_list_filepath = None - asset_list_header = 0 - landlord_block_reference = None - master_id_colnames = [None] - landlord_roof_construction = None - phase = False - landlord_sap = None - ecosurv_landlords = "cds" - - # Plus Dane - data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Plus Dane/New Programme July 2025/" - data_filename = "20250711 Plus Dane Asset List.xlsx" - sheet_name = "Sheet1" - postcode_column = 'Postcode' - fulladdress_column = "Address" - address1_column = None - address1_method = "house_number_extraction" - address_cols_to_concat = [] - missing_postcodes_method = None - landlord_year_built = "Property Age" - landlord_os_uprn = None - landlord_property_type = "Property Type" - landlord_built_form = "Built Form" - landlord_wall_construction = "Wall Construction" - landlord_heating_system = "Full Heating System" - landlord_existing_pv = None - landlord_property_id = "UPRN" - outcomes_filename = [ - os.path.join(data_folder, "Outcomes - Plus Dane_CWI_2024.xlsx"), - os.path.join(data_folder, "Outcomes - Plus Dane_CWI_2025.xlsx"), - os.path.join(data_folder, "Outcomes - Plus Dane_PV_2025.xlsx"), - ] - outcomes_sheetname = [ - "CWI & LI - 2024", "2025 - CWI", "PV - 2025", - ] - outcomes_postcode = ["Postcode", "Postcode", "Postcode"] - outcomes_houseno = ["No.", "No", "No"] - outcomes_address = ["Address", "Address", "Address"] - outcomes_id = ["Asset Reference", "LL UPRN", "LL UPRN"] - master_filepaths = [ - os.path.join(data_folder, "submissions/JJC-Table 1.csv"), - os.path.join(data_folder, "submissions/SCIS-Table 1.csv") - ] - master_to_asset_list_filepath = None - asset_list_header = 1 - landlord_block_reference = None - master_id_colnames = [None, None] - landlord_roof_construction = None - phase = False - landlord_sap = "SAP Rating" - ecosurv_landlords = "plus dane" + # # Community: + # data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Community Housing/New Programme" + # data_filename = "SUB EPC C to DOMNA - 24.07.25.xlsx" + # sheet_name = "Sheet1" + # postcode_column = 'POSTCODE' + # fulladdress_column = "ADDRESS" + # address1_column = None + # address1_method = "house_number_extraction" + # address_cols_to_concat = [] + # missing_postcodes_method = None + # landlord_year_built = "BUILD DATE" + # landlord_os_uprn = None + # landlord_property_type = "PROPERTY TYPE" + # landlord_built_form = "Archetype" # Using the inspections archetype + # landlord_wall_construction = "CONSTRUCTION TYPE" + # landlord_roof_construction = None + # landlord_heating_system = None + # landlord_existing_pv = None + # landlord_property_id = "UPRN" + # landlord_sap = None + # outcomes_filename = [] + # outcomes_sheetname = [] + # outcomes_postcode = [] + # outcomes_houseno = [] + # outcomes_id = [] + # outcomes_address = [] + # master_filepaths = [] + # master_to_asset_list_filepath = None + # phase = False + # ecosurv_landlords = None + # asset_list_header = 1 + # landlord_block_reference = None + # master_id_colnames = [] + # + # data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Ealing/Programme Analysis" + # data_filename = "EalingProjectRebuildJW210725.xlsx" + # sheet_name = "Refine & Houses" + # postcode_column = 'Postcode' + # fulladdress_column = "Address" + # address1_column = None + # address1_method = "house_number_extraction" + # address_cols_to_concat = [] + # missing_postcodes_method = None + # landlord_year_built = None + # landlord_os_uprn = None + # landlord_property_type = None # Using the inspections property type + # landlord_built_form = None + # landlord_wall_construction = None + # landlord_roof_construction = None + # landlord_heating_system = None + # landlord_existing_pv = None + # landlord_property_id = "Property ref" + # landlord_sap = None + # outcomes_filename = [] + # outcomes_sheetname = [] + # outcomes_postcode = [] + # outcomes_houseno = [] + # outcomes_id = [] + # outcomes_address = [] + # master_filepaths = [] + # master_to_asset_list_filepath = None + # phase = False + # ecosurv_landlords = None + # asset_list_header = 0 + # landlord_block_reference = "Block Reference" + # master_id_colnames = [] + # + # # TODO: Delete me + # data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/NRLA/" + # data_filename = "20250716 Asset List.xlsx" + # sheet_name = "Sheet 1" + # postcode_column = 'Postcode' + # fulladdress_column = "Full Address" + # address1_column = None + # address1_method = "house_number_extraction" + # address_cols_to_concat = [] + # missing_postcodes_method = None + # landlord_year_built = None + # landlord_os_uprn = None + # landlord_property_type = None + # landlord_built_form = None + # landlord_wall_construction = None + # landlord_heating_system = None + # landlord_existing_pv = None + # landlord_property_id = "Row ID" + # outcomes_filename = [] + # outcomes_sheetname = [] + # outcomes_postcode = [] + # outcomes_houseno = [] + # outcomes_address = [] + # outcomes_id = [] + # master_filepaths = [] + # master_to_asset_list_filepath = None + # asset_list_header = 0 + # landlord_block_reference = None + # master_id_colnames = [] + # landlord_roof_construction = None + # phase = False + # landlord_sap = None + # ecosurv_landlords = None + # + # # Southend + # data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Southend/July 2025 Programme" + # data_filename = "SOUTHEND - RYAN.xlsx" + # sheet_name = "July 2025 Surveys" + # postcode_column = 'Postcode' + # fulladdress_column = "Full postal address" + # address1_column = None + # address1_method = "house_number_extraction" + # address_cols_to_concat = [] + # missing_postcodes_method = None + # landlord_year_built = "Property age" + # landlord_os_uprn = None + # landlord_property_type = "Property type" + # landlord_built_form = "Property type" + # landlord_wall_construction = None + # landlord_heating_system = None + # landlord_existing_pv = None + # landlord_property_id = "ID" + # outcomes_filename = [] + # outcomes_sheetname = [] + # outcomes_postcode = [] + # outcomes_houseno = [] + # outcomes_address = [] + # outcomes_id = [] + # master_filepaths = [] + # master_to_asset_list_filepath = None + # asset_list_header = 0 + # landlord_block_reference = None + # master_id_colnames = [] + # landlord_roof_construction = None + # phase = False + # landlord_sap = None + # ecosurv_landlords = None + # + # # For Rooftop + # data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Rooftop" + # data_filename = "Rooftop Asset List - July 2025.xlsx" + # sheet_name = "Sheet1" + # postcode_column = 'post_code' + # fulladdress_column = None + # address1_column = "add_1" + # address1_method = None + # address_cols_to_concat = [ + # "add_1", "add_2", "add_3", "add_4" + # ] + # missing_postcodes_method = None + # landlord_year_built = "date_built" + # landlord_os_uprn = None + # landlord_property_type = "ConstructionStyle" + # landlord_built_form = "ConstructionStyle" + # landlord_wall_construction = None + # landlord_heating_system = "Description" + # landlord_existing_pv = None + # landlord_property_id = "PropertyCode" + # outcomes_filename = [os.path.join(data_folder, "Rooftop_Outcomes.xlsx")] + # outcomes_sheetname = ["OUTCOMES"] + # outcomes_postcode = ["POSTCODE"] + # outcomes_houseno = ["NO"] + # outcomes_address = ["ADDRESS"] + # outcomes_id = [None] + # master_filepaths = [os.path.join(data_folder, "Master.csv")] + # master_to_asset_list_filepath = None + # asset_list_header = 1 + # landlord_block_reference = "bl_rec_ref" + # master_id_colnames = [None] + # landlord_roof_construction = None + # phase = False + # landlord_sap = None + # ecosurv_landlords = "rooftop" + # + # # For Housing + # data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/For Housing/New Programme July 2025" + # data_filename = "FOR HOUSING Asset List (Combined).xlsx" + # sheet_name = "Asset List" + # postcode_column = 'Postcode' + # fulladdress_column = "Address" + # address1_column = None + # address1_method = "house_number_extraction" + # address_cols_to_concat = [] + # missing_postcodes_method = None + # landlord_year_built = None + # landlord_os_uprn = None + # landlord_property_type = "Type" + # landlord_built_form = "Type" + # landlord_wall_construction = None + # landlord_heating_system = "Heating - full" + # landlord_existing_pv = None + # landlord_property_id = "UPRN" + # outcomes_filename = [os.path.join(data_folder, "Khalim Combined - for analysis.xlsx")] + # outcomes_sheetname = ["Sheet1"] + # outcomes_postcode = ["POSTCODE"] + # outcomes_houseno = ["NO"] + # outcomes_address = ["ADDRESS"] + # outcomes_id = [None] + # master_filepaths = [os.path.join(data_folder, "submissions.csv")] + # master_to_asset_list_filepath = None + # asset_list_header = 0 + # landlord_block_reference = None + # master_id_colnames = [None] + # landlord_roof_construction = None + # phase = False + # landlord_sap = "SAP" + # ecosurv_landlords = "for housing" + # + # # CDS + # data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/CDS" + # data_filename = "Founder Estates - Asset List.xlsx" + # sheet_name = "Combined" + # postcode_column = 'Postcode' + # fulladdress_column = "Address" + # address1_column = None + # address1_method = "house_number_extraction" + # address_cols_to_concat = [] + # missing_postcodes_method = None + # landlord_year_built = None + # landlord_os_uprn = None + # landlord_property_type = None + # landlord_built_form = None + # landlord_wall_construction = None + # landlord_heating_system = "Heating Type" + # landlord_existing_pv = None + # landlord_property_id = "Row ID" + # outcomes_filename = [] + # outcomes_sheetname = [] + # outcomes_postcode = [] + # outcomes_houseno = [] + # outcomes_address = [] + # outcomes_id = [] + # master_filepaths = [os.path.join(data_folder, "submissions.csv")] + # master_to_asset_list_filepath = None + # asset_list_header = 0 + # landlord_block_reference = None + # master_id_colnames = [None] + # landlord_roof_construction = None + # phase = False + # landlord_sap = None + # ecosurv_landlords = "cds" + # + # # Plus Dane + # data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Plus Dane/New Programme July 2025/" + # data_filename = "20250711 Plus Dane Asset List.xlsx" + # sheet_name = "Sheet1" + # postcode_column = 'Postcode' + # fulladdress_column = "Address" + # address1_column = None + # address1_method = "house_number_extraction" + # address_cols_to_concat = [] + # missing_postcodes_method = None + # landlord_year_built = "Property Age" + # landlord_os_uprn = None + # landlord_property_type = "Property Type" + # landlord_built_form = "Built Form" + # landlord_wall_construction = "Wall Construction" + # landlord_heating_system = "Full Heating System" + # landlord_existing_pv = None + # landlord_property_id = "UPRN" + # outcomes_filename = [ + # os.path.join(data_folder, "Outcomes - Plus Dane_CWI_2024.xlsx"), + # os.path.join(data_folder, "Outcomes - Plus Dane_CWI_2025.xlsx"), + # os.path.join(data_folder, "Outcomes - Plus Dane_PV_2025.xlsx"), + # ] + # outcomes_sheetname = [ + # "CWI & LI - 2024", "2025 - CWI", "PV - 2025", + # ] + # outcomes_postcode = ["Postcode", "Postcode", "Postcode"] + # outcomes_houseno = ["No.", "No", "No"] + # outcomes_address = ["Address", "Address", "Address"] + # outcomes_id = ["Asset Reference", "LL UPRN", "LL UPRN"] + # master_filepaths = [ + # os.path.join(data_folder, "submissions/JJC-Table 1.csv"), + # os.path.join(data_folder, "submissions/SCIS-Table 1.csv") + # ] + # master_to_asset_list_filepath = None + # asset_list_header = 1 + # landlord_block_reference = None + # master_id_colnames = [None, None] + # landlord_roof_construction = None + # phase = False + # landlord_sap = "SAP Rating" + # ecosurv_landlords = "plus dane" # data_folder = "/Users/khalimconn-kowlessar/Documents/hestia/Customers/Brentwood/July 2025 New Programme" # data_filename = "20250710 Asset List Brentwood.xlsx" diff --git a/asset_list/mappings/property_type.py b/asset_list/mappings/property_type.py index c6539465..5c3a2b29 100644 --- a/asset_list/mappings/property_type.py +++ b/asset_list/mappings/property_type.py @@ -337,5 +337,9 @@ PROPERTY_MAPPING = { 'Maisonette - Mid Terrace': 'maisonette', 'Chalet - Wheelchair': 'other', 'Amenity Block - Detached': 'other', - 'Amenity Block - Semi detached': 'other' + 'Amenity Block - Semi detached': 'other', + 'house': 'house', + 'block of flats': 'block of flats', + 'bungalow': 'bungalow', + 'flat': 'flat' } diff --git a/backend/Property.py b/backend/Property.py index 82c60439..66ca84e3 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -531,7 +531,7 @@ class Property: "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", "cylinder_thermostat", "loft_insulation", "room_roof_insulation", "flat_roof_insulation", "solid_floor_insulation", "suspended_floor_insulation", "mixed_glazing", - "windows_glazing", "mechanical_ventilation" + "windows_glazing", "mechanical_ventilation", "solar_pv" ]: # We update the data, as defined in the recommendaton for prefix in ["walls", "roof", "floor"]: @@ -547,9 +547,6 @@ class Property: output.update(simulation_config) - if recommendation["type"] == "solar_pv": - output["photo_supply_ending"] = recommendation["photo_supply"] - if recommendation["type"] not in [ "sealing_open_fireplace", "low_energy_lighting", "internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation", diff --git a/backend/apis/GoogleSolarApi.py b/backend/apis/GoogleSolarApi.py index 51e9c893..9d136b22 100644 --- a/backend/apis/GoogleSolarApi.py +++ b/backend/apis/GoogleSolarApi.py @@ -77,7 +77,6 @@ class GoogleSolarApi: # property attributes: self.floor_area = None self.roof_area = None - self.roof_segment_indexes = None self.panel_area = assumptions.RDSAP_AREA_PER_PANEL self.panel_wattage = None self.panel_performance = None @@ -89,6 +88,8 @@ class GoogleSolarApi: self.double_property = False self.solar_materials = solar_materials + self.allowed_segment_indices = None + def get_building_insights(self, longitude, latitude, required_quality="MEDIUM", max_retries=None): """ Make an API request to retrieve building insights based on the given longitude and latitude, with retry @@ -203,8 +204,6 @@ class GoogleSolarApi: # It should be straightforward, but I'd rather see an actual instance of this happening raise NotImplementedError("Panel wattage is not 400W - implement me") - self.roof_segment_indexes = [segment['segmentIndex'] for segment in self.roof_segments] - # We now start finding the solar panel configurations self.optimise_solar_configuration( energy_consumption=energy_consumption, @@ -294,10 +293,10 @@ class GoogleSolarApi: # Remove any north facing roof segments panel_performance = [] for config in self.insights_data["solarPotential"].get("solarPanelConfigs", []): - roof_segment_summaries = config["roofSegmentSummaries"] - # Filter on just the segments in self.roof_segment_indexes + roof_segment_summaries = [ - segment for segment in roof_segment_summaries if segment["segmentIndex"] in self.roof_segment_indexes + s for s in config.get("roofSegmentSummaries", []) + if s["segmentIndex"] in self.allowed_segment_indices ] roi_summary = [] @@ -544,24 +543,28 @@ class GoogleSolarApi: def exclude_north_facing_segments(self, property_instance): """ - Filter out any north-facing roof segments from the roof_segments attribute. - - North-facing segments are defined as those with an azimuth between -30 and 30 degrees. + Filter out any north-facing roof segments from self.roof_segments. + Keep API's original segmentIndex; optionally add a localIndex. """ + is_flat = property_instance.roof["is_flat"] filtered_segments = [] - for segment_index, segment in enumerate(self.roof_segments): - segment["segmentIndex"] = segment_index - # Check if the segment is north-facing - if ( - self.NORTH_FACING_AZIMUTH_RANGE[0] <= segment['azimuthDegrees'] <= self.NORTH_FACING_AZIMUTH_RANGE[1] - ) and not property_instance.roof["is_flat"]: - continue + for i, seg in enumerate(self.roof_segments): + # DO NOT overwrite seg["segmentIndex"] + keep = True + if not is_flat: + if self.NORTH_FACING_AZIMUTH_RANGE[0] <= seg['azimuthDegrees'] <= self.NORTH_FACING_AZIMUTH_RANGE[1]: + keep = False - filtered_segments.append(segment) + if keep: + seg = dict(**seg) # shallow copy + seg["localIndex"] = i # optional local index as a reference from this loop + filtered_segments.append(seg) self.roof_segments = filtered_segments + self.allowed_segment_indices = {s["segmentIndex"] for s in self.roof_segments} + @staticmethod def haversine(lat1, lon1, lat2, lon2): """ @@ -742,7 +745,8 @@ class GoogleSolarApi: @classmethod def building_solar_analysis( - cls, building_solar_config: List, input_properties: List[Property], session, google_solar_api_key: str + cls, building_solar_config: List, input_properties: List[Property], session, google_solar_api_key: str, + solar_materials: list ): """ Perform the solar analysis for the building level @@ -750,6 +754,7 @@ class GoogleSolarApi: :param input_properties: List of properties :param session: Database session :param google_solar_api_key: Google Solar API key + :param solar_materials: List of solar materials :return: """ @@ -788,7 +793,7 @@ class GoogleSolarApi: energy_consumption = sum( [entry['energy_consumption'] for entry in building_solar_config if entry['building_id'] == building_id] ) - solar_api_client = cls(api_key=google_solar_api_key) + solar_api_client = cls(api_key=google_solar_api_key, solar_materials=solar_materials) solar_api_client.get( longitude=coordinates["longitude"], latitude=coordinates["latitude"], diff --git a/backend/engine/engine.py b/backend/engine/engine.py index 14e5d85a..026b0405 100644 --- a/backend/engine/engine.py +++ b/backend/engine/engine.py @@ -415,13 +415,25 @@ def get_funding_data(): project_scores_matrix.columns = ['Floor Area Segment', 'Starting Band', 'Finishing Band', 'Cost Savings'] project_scores_matrix["Cost Savings"] = project_scores_matrix["Cost Savings"].astype(float) + partial_project_scores_matrix = read_csv_from_s3( + bucket_name=get_settings().DATA_BUCKET, + filepath="funding/ECO4_Partial_Project_Scores_Matrix_v6.csv", + ) + partial_project_scores_matrix = pd.DataFrame(partial_project_scores_matrix) + partial_project_scores_matrix.columns = [ + 'Measure category', 'Measure_Type', 'Pre_Main_Heating_Source', + 'Post_Main_Heating_Source', 'Total Floor Area Band', 'Starting Band', + 'Average Treatable Factor', 'Cost Savings', 'SAP Savings' + ] + partial_project_scores_matrix["Cost Savings"] = partial_project_scores_matrix["Cost Savings"].astype(float) + whlg_eligible_postcodes = read_csv_from_s3( bucket_name=get_settings().DATA_BUCKET, filepath="funding/whlg eligible postcodes.csv", ) whlg_eligible_postcodes = pd.DataFrame(whlg_eligible_postcodes) - return project_scores_matrix, whlg_eligible_postcodes + return project_scores_matrix, partial_project_scores_matrix, whlg_eligible_postcodes async def model_engine(body: PlanTriggerRequest): @@ -648,7 +660,7 @@ async def model_engine(body: PlanTriggerRequest): logger.info("Reading in materials and cleaned datasets") materials = get_materials(session) cleaned = get_cleaned() - eco_project_scores_matrix, whlg_eligible_postcodes = get_funding_data() + project_scores_matrix, partial_project_scores_matrix, whlg_eligible_postcodes = get_funding_data() kwh_client = KwhData(bucket=get_settings().DATA_BUCKET, read_consumption_data=True) @@ -690,6 +702,7 @@ async def model_engine(body: PlanTriggerRequest): input_properties=input_properties, session=session, google_solar_api_key=get_settings().GOOGLE_SOLAR_API_KEY, + solar_materials=[m for m in materials if m["type"] == "solar_pv"] ) input_properties = GoogleSolarApi.unit_solar_analysis( @@ -819,21 +832,24 @@ async def model_engine(body: PlanTriggerRequest): ) continue - # We layer funding on top of the recommendations - # We take one of these options - funding_paths = [ - [["internal_wall_insulation", "external_wall_insulation"]], - ["air_source_heat_pump"], - # We must have both of these options (though we check if the property doesn't already have HHRSH and - # is recommended it - [["solar_pv"], ["high_heat_retention_storage_heaters"]] - ] - fixed_gain = optimiser_functions.calculate_fixed_gain( property_required_measures, recommendations, p, needs_ventilation ) gain = optimiser_functions.calculate_gain(body=body, p=p, fixed_gain=fixed_gain) + from backend.Funding import Funding + funding = Funding( + project_scores_matrix=project_scores_matrix, + partial_project_scores_matrix=partial_project_scores_matrix, + whlg_eligible_postcodes=whlg_eligible_postcodes, + eco4_social_cavity_abs_rate=13, + eco4_social_solid_abs_rate=17, + gbis_social_cavity_abs_rate=21, + gbis_social_solid_abs_rate=25, + gbis_private_cavity_abs_rate=21, + gbis_private_solid_abs_rate=28, + ) + if not body.optimise: if body.goal != "Increasing EPC": raise NotImplementedError("Only EPC optimisation is currently supported") diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 3f32da25..1a9b47ac 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -143,6 +143,9 @@ class SolarPvRecommendations: # back up here "photo_supply": roof_coverage_percent, "has_battery": False, + "simulation_config": { + "photo_supply_ending": roof_coverage_percent + }, "initial_ac_kwh_per_year": initial_ac_kwh_per_year, "description_simulation": {"photo-supply": roof_coverage_percent}, "rank": rank, # Rank is used to get the representative recommendation - rank 0 will be chosen @@ -282,7 +285,10 @@ class SolarPvRecommendations: "sap_points": minimum_sap_points, "already_installed": already_installed, **cost_result, - "has_battery": has_battery, + "has_battery": solar_pv_product["includes_battery"], + "simulation_config": { + "photo_supply_ending": roof_coverage_percent + }, "initial_ac_kwh_per_year": recommendation_config["initial_ac_kwh_per_year"], "description_simulation": {"photo-supply": roof_coverage_percent}, } From 01722a94e24720141077897472c3853347961dd3 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 19 Aug 2025 16:17:24 +0100 Subject: [PATCH 60/73] handling single tariff ashp --- .idea/Model.iml | 2 +- .idea/misc.xml | 2 +- backend/Funding.py | 2 +- backend/Property.py | 12 ++-- backend/apis/GoogleSolarApi.py | 27 ++++----- backend/engine/engine.py | 67 +++++++++++++++++++++-- etl/epc/DataProcessor.py | 9 --- etl/epc/Record.py | 6 +- recommendations/HeatingRecommender.py | 17 +++--- recommendations/SolarPvRecommendations.py | 1 + 10 files changed, 90 insertions(+), 55 deletions(-) diff --git a/.idea/Model.iml b/.idea/Model.iml index 09f2e496..c6561970 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -7,7 +7,7 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index fb10c6b0..50cad4ca 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/backend/Funding.py b/backend/Funding.py index 4a198bf9..4609e3d4 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -1041,7 +1041,7 @@ class Funding: pre_heating_system=pre_heating_system ) - innovation_uplift = pps * measure["uplift"] + innovation_uplift = pps * measure["innovation_rate"] if self.tenure == "Private": # We return ECO4 rates diff --git a/backend/Property.py b/backend/Property.py index 66ca84e3..d6f43b8a 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -1238,15 +1238,11 @@ class Property: ): return True - suitable_house = self.data["property-type"] == "House" and self.data["built-form"] in [ - "Detached", "Semi-Detached", "End-Terrace", - ] + suitable_property_type = ( + self.data["property-type"] in ["House", "Bungalow"] and + self.data["built-form"] not in ["Enclosed Mid-Terrace", "Enclosed End-Terrace"] + ) - suitable_bungalow = self.data["property-type"] == "Bungalow" and self.data["built-form"] in [ - "Detached", "Semi-Detached" - ] - - suitable_property_type = suitable_house or suitable_bungalow has_air_source_heat_pump = self.main_heating["has_air_source_heat_pump"] return suitable_property_type and not has_air_source_heat_pump diff --git a/backend/apis/GoogleSolarApi.py b/backend/apis/GoogleSolarApi.py index 9d136b22..9073b307 100644 --- a/backend/apis/GoogleSolarApi.py +++ b/backend/apis/GoogleSolarApi.py @@ -548,22 +548,19 @@ class GoogleSolarApi: """ is_flat = property_instance.roof["is_flat"] - filtered_segments = [] - for i, seg in enumerate(self.roof_segments): - # DO NOT overwrite seg["segmentIndex"] - keep = True - if not is_flat: - if self.NORTH_FACING_AZIMUTH_RANGE[0] <= seg['azimuthDegrees'] <= self.NORTH_FACING_AZIMUTH_RANGE[1]: - keep = False + kept = [] + allowed = set() + for i, seg in enumerate(self.roof_segments): # i is the API segmentIndex + if not is_flat and ( + self.NORTH_FACING_AZIMUTH_RANGE[0] <= seg['azimuthDegrees'] <= self.NORTH_FACING_AZIMUTH_RANGE[1]): + continue + s = dict(seg) + s["localIndex"] = len(kept) # for charts/UI only + kept.append(s) + allowed.add(i) # this i IS the API segmentIndex - if keep: - seg = dict(**seg) # shallow copy - seg["localIndex"] = i # optional local index as a reference from this loop - filtered_segments.append(seg) - - self.roof_segments = filtered_segments - - self.allowed_segment_indices = {s["segmentIndex"] for s in self.roof_segments} + self.roof_segments = kept + self.allowed_segment_indices = allowed @staticmethod def haversine(lat1, lon1, lat2, lon2): diff --git a/backend/engine/engine.py b/backend/engine/engine.py index 026b0405..d97d96ab 100644 --- a/backend/engine/engine.py +++ b/backend/engine/engine.py @@ -1,5 +1,6 @@ import ast import json +from copy import deepcopy from datetime import datetime from tqdm import tqdm @@ -547,7 +548,6 @@ async def model_engine(body: PlanTriggerRequest): epc_searcher.ordnance_survey_client.property_type = config.get("property_type", None) # For the moment, our OS API access is unavailable, so we skip and interpolate epc_searcher.find_property(skip_os=True) - # TODO: Placeholder if epc_searcher.newest_epc.get("estimated") and body.file_format == "domna_asset_list": epc_searcher.newest_epc["uprn-source"] = epc_searcher.UPRN_SOURCE_SIMULATED @@ -821,11 +821,7 @@ async def model_engine(body: PlanTriggerRequest): x in property_measure_types for x in assumptions.measures_needing_ventilation ) and not p.has_ventilation - input_measures = optimiser_functions.prepare_input_measures( - measures_to_optimise, body.goal, needs_ventilation - ) - - if not input_measures[0]: + if not measures_to_optimise: # Nothing to do, we just reshape the recommendations recommendations[p.id] = optimiser_functions.flatten_recommendations_with_defaults( p.id, recommendations, set() @@ -838,18 +834,77 @@ async def model_engine(body: PlanTriggerRequest): gain = optimiser_functions.calculate_gain(body=body, p=p, fixed_gain=fixed_gain) from backend.Funding import Funding + from recommendations.optimiser.funding_optimiser import optimise_with_funding_paths + from recommendations.recommendation_utils import convert_thickness_to_numeric, get_wall_u_value + funding = Funding( + tenure=body.housing_type, project_scores_matrix=project_scores_matrix, partial_project_scores_matrix=partial_project_scores_matrix, whlg_eligible_postcodes=whlg_eligible_postcodes, eco4_social_cavity_abs_rate=13, eco4_social_solid_abs_rate=17, + eco4_private_cavity_abs_rate=13, + eco4_private_solid_abs_rate=17, gbis_social_cavity_abs_rate=21, gbis_social_solid_abs_rate=25, gbis_private_cavity_abs_rate=21, gbis_private_solid_abs_rate=28, ) + # When the goal is Increasing EPC, we can run the funding optimiser + if body.goal == "Increasing EPC": + + # We insert the innovation uplift + measures_to_optimise_with_uplift = deepcopy(measures_to_optimise) + + li_thickness = convert_thickness_to_numeric( + p.roof["insulation_thickness"], p.roof["is_pitched"], p.roof["is_flat"] + ) + current_wall_u_value = p.walls["thermal_transmittance"] + if current_wall_u_value is None: + current_wall_u_value = get_wall_u_value( + clean_description=p.walls["clean_description"], + age_band=p.age_band, + is_granite_or_whinstone=p.walls["is_granite_or_whinstone"], + is_sandstone_or_limestone=p.walls["is_sandstone_or_limestone"], + ) + + for group in measures_to_optimise_with_uplift: + for r in group: + if r["type"] in ["mechanical_ventilation", "low_energy_lighting", "secondary_heating"]: + r["innovation_uplift"] = 0 + continue + + r["innovation_uplift"] = funding.get_innovation_uplift( + measure=r, + starting_sap=p.data["current-energy-efficiency"], + floor_area=p.floor_area, + is_cavity=p.walls["is_cavity_wall"], + current_wall_uvalue=current_wall_u_value, + is_partial="partial" in p.walls["clean_description"].lower(), + existing_li_thickness=li_thickness, + mainheating=p.main_heating, + main_fuel=p.main_fuel, + mainheat_energy_eff=p.data["mainheat-energy-eff"], + ) + + input_measures = optimiser_functions.prepare_input_measures( + measures_to_optimise_with_uplift, body.goal, needs_ventilation, funding=True + ) + + solutions = optimise_with_funding_paths( + p=p, + input_measures=input_measures, + housing_type=body.housing_type, + budget=body.budget, + target_gain=gain, + funding=funding + ) + + # Given the solutions we select the optimal one + # optimal_solution = + if not body.optimise: if body.goal != "Increasing EPC": raise NotImplementedError("Only EPC optimisation is currently supported") diff --git a/etl/epc/DataProcessor.py b/etl/epc/DataProcessor.py index 9655cf77..f5fc3582 100644 --- a/etl/epc/DataProcessor.py +++ b/etl/epc/DataProcessor.py @@ -11,7 +11,6 @@ from etl.epc.settings import ( IGNORED_TENURES, FULLY_GLAZED_DESCRIPTIONS, AVERAGE_FIXED_FEATURES, - BUILT_FORM_REMAP, COLUMNS_TO_MERGE_ON, FIXED_FEATURES, COLUMNTYPES, @@ -123,7 +122,6 @@ class EPCDataProcessor: self.confine_data(ignore_step=ignore_step) self.remap_anomalies() self.remap_floor_level(ignore_step=ignore_step) - self.remap_build_form() self.cast_data_column_values_to_lower() self.standardise_construction_age_band(ignore_step=ignore_step) self.clean_missing_rooms(ignore_step=ignore_step) @@ -240,13 +238,6 @@ class EPCDataProcessor: for col in convert_to_lower: self.data[col] = self.data[col].str.lower() - def remap_build_form(self): - """ - Remap build form to standard values - No Violation mode or newdata modes required - """ - self.data["BUILT_FORM"] = self.data["BUILT_FORM"].replace(BUILT_FORM_REMAP) - def remap_anomalies(self): """ Remap anomalies to None diff --git a/etl/epc/Record.py b/etl/epc/Record.py index b8950757..8e6be5d0 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -7,7 +7,7 @@ from etl.epc.ValidationConfiguration import ( ) from etl.epc.DataProcessor import EPCDataProcessor from recommendations.rdsap_tables import england_wales_age_band_lookup, FLOOR_LEVEL_MAP -from etl.epc.settings import DATA_ANOMALY_MATCHES, BUILT_FORM_REMAP +from etl.epc.settings import DATA_ANOMALY_MATCHES import re import os import numpy as np @@ -748,10 +748,6 @@ class EPCRecord: if not self.prepared_epc: raise ValueError("EPC Recrod doesn not contain epc data") - self.prepared_epc["built-form"] = BUILT_FORM_REMAP.get( - self.prepared_epc["built-form"], self.prepared_epc["built-form"] - ) - if self.prepared_epc["built-form"] in DATA_ANOMALY_MATCHES: if self.prepared_epc["property-type"] in ["Flat", "Maisonette"]: self.prepared_epc["built-form"] = "End-Terrace" diff --git a/recommendations/HeatingRecommender.py b/recommendations/HeatingRecommender.py index e7e008d5..d2bccbcc 100644 --- a/recommendations/HeatingRecommender.py +++ b/recommendations/HeatingRecommender.py @@ -526,9 +526,8 @@ class HeatingRecommender: ashp_descriptions = { "Time and temperature zone control": ( f"Install two cascaded air source heat pumps, and upgrade heating controls to Smart Thermostats, " - "room sensors and smart radiator valves (time & temperature zone control). Ensure you have an 18 " - "or " - "24 hour tariff" + "room sensors and smart radiator valves (time & temperature zone control). Ensure you have single " + "tariff" ) } else: @@ -536,9 +535,8 @@ class HeatingRecommender: ashp_descriptions = { "Time and temperature zone control": ( f"Install a {ashp_size}KW air source heat pump, and upgrade heating controls to Smart Thermostats, " - "room sensors and smart radiator valves (time & temperature zone control). Ensure you have an 18 " - "or " - "24 hour tariff" + "room sensors and smart radiator valves (time & temperature zone control). Ensure you have a " + "single tariff" ), "Programmer, TRVs and bypass": ( f"Install a {ashp_size}KW air source heat pump, with programmer, TRVs and a Bypass valve. Ensure " @@ -560,7 +558,7 @@ class HeatingRecommender: ashp_costs_with_controls[key] += controls_rec[key] if controls_rec is None: - description = f"Install a {ashp_size}KW Air source heat pump. Ensure you have an 18 or 24 hour tariff" + description = f"Install a {ashp_size}KW Air source heat pump. Ensure you have a single tariff" elif already_installed: description = "The property already has an air source heat pump, no further action needed." else: @@ -581,9 +579,10 @@ class HeatingRecommender: f" £7,500 of funding can be claimed from the boiler upgrade scheme" ) + # These are the impacts based on a single tariff with an ashp simulation_config = { - "mainheat_energy_eff_ending": "Very Good", - "hot_water_energy_eff_ending": "Very Good" + "mainheat_energy_eff_ending": "Good", + "hot_water_energy_eff_ending": "Average" } description_simulation = { "mainheat-description": new_heating_description, diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 1a9b47ac..f21b7bf3 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -291,5 +291,6 @@ class SolarPvRecommendations: }, "initial_ac_kwh_per_year": recommendation_config["initial_ac_kwh_per_year"], "description_simulation": {"photo-supply": roof_coverage_percent}, + "innovation_rate": solar_pv_product["innovation_rate"], } ) From ce362f5262eb3e9b31d4740a380537f97e4f1683 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 19 Aug 2025 17:58:02 +0100 Subject: [PATCH 61/73] implementing gain --- backend/Funding.py | 21 ++++++++++++++++ backend/engine/engine.py | 10 ++++++++ .../optimiser/funding_optimiser.py | 25 +++++++++++++++++-- 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index 4609e3d4..d08744b9 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -320,6 +320,17 @@ class Funding: return data["Cost Savings"].values[0] + def _calculate_full_project_abs(self, floor_area_band: str, starting_sap_band: str, ending_sap_band: str): + data = self.project_scores_matrix[ + (self.project_scores_matrix["Floor Area Segment"] == floor_area_band) & + (self.project_scores_matrix["Starting Band"] == starting_sap_band) & + (self.project_scores_matrix["Finishing Band"] == ending_sap_band) + ] + + if data.empty: + raise ValueError("Missing ABS rate, check the project scores matrix") + return data["Cost Savings"].values[0] + @staticmethod def get_starting_ending_uvalues(current_uvalue: float) -> tuple[str, str]: """ @@ -1058,3 +1069,13 @@ class Funding: ) raise ValueError("Invalid tenure type for innovation uplift calculation: {}".format(self.tenure)) + + def get_abs_rate(self, is_cavity: bool) -> float: + if self.tenure == "Social": + return self.eco4_social_cavity_abs_rate if is_cavity else self.eco4_social_solid_abs_rate + if self.tenure == "Private": + return self.eco4_private_cavity_abs_rate if is_cavity else self.eco4_private_solid_abs_rate + + raise NotImplementedError( + "Only 'Private' and 'Social' tenures are supported for ABS rate calculation." + ) diff --git a/backend/engine/engine.py b/backend/engine/engine.py index d97d96ab..808837ba 100644 --- a/backend/engine/engine.py +++ b/backend/engine/engine.py @@ -903,6 +903,16 @@ async def model_engine(body: PlanTriggerRequest): ) # Given the solutions we select the optimal one + solutions["cost_less_full_project_funding"] = solutions["total_cost"] - solutions[ + "eco4_full_project_funding"] + solutions = solutions.sort_values("cost_less_full_project_funding", ascending=True) + + if solutions["meets_upgrade_target"].any(): + # If we have a solution that meets the upgrade target, we select that one + optimal_solution = solutions[solutions["meets_upgrade_target"]].iloc[0] + else: + optimal_solution = optimal_solution.iloc[0] + # optimal_solution = if not body.optimise: diff --git a/recommendations/optimiser/funding_optimiser.py b/recommendations/optimiser/funding_optimiser.py index 65335e02..6116b868 100644 --- a/recommendations/optimiser/funding_optimiser.py +++ b/recommendations/optimiser/funding_optimiser.py @@ -290,7 +290,7 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin if scheme == "eco4": # Need to strip out any measure types that are not eligible for ECO4 funding (e.g. secondary heating) - raise ValueError() + sub_measures = _filter_fundable_subgroups(sub_measures, scheme) # 4) run your existing optimiser for the remaining groups # If we have a budget, we need to ensure the subproblem respects it so we remove the fixed cost (which @@ -338,6 +338,26 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin if not solutions[solutions["is_eligible"] & ~solutions["meets_upgrade_target"]].empty: raise NotImplementedError("Implement me") + # We now can calculate the project ABS, which subtracts from the cost, but this is only relevant for ECO4 + solutions["starting_sap"] = p.data["current-energy-efficiency"] + solutions["floor_area"] = p.floor_area + solutions["ending_sap"] = solutions["starting_sap"] + solutions["total_gain"] + solutions["starting_band"] = solutions["starting_sap"].apply(funding.get_sap_band) + solutions["ending_band"] = solutions["ending_sap"].apply(funding.get_sap_band) + solutions["floor_area_band"] = solutions["floor_area"].apply(funding.get_floor_area_band) + solutions["project_score"] = solutions.apply( + lambda x: funding._calculate_full_project_abs( + floor_area_band=x["floor_area_band"], + starting_sap_band=x["starting_band"], + ending_sap_band=x["ending_band"], + ), + axis=1 + ) + rate = funding.get_abs_rate(is_cavity=p.walls["is_cavity_wall"]) + solutions["eco4_full_project_funding"] = solutions["project_score"] * rate + # if the scheme is not ECO4, we set the funding to 0 with iloc + solutions.loc[solutions["scheme"] != "eco4", "eco4_full_project_funding"] = 0.0 + return solutions @@ -759,7 +779,8 @@ def make_funding_paths(p, input_measures, housing_type, funding: Funding): input_gbis_measures = [] for measures in input_measures: for measure in measures: - if measure["type"] in remaining_insulation_type + other_gbis_insulation_measures: + type_to_check = measure["type"].split("+")[0] if "+" in measure["type"] else measure["type"] + if type_to_check in remaining_insulation_type + other_gbis_insulation_measures: input_gbis_measures.append([measure]) funding_paths = _make_generic_gbis_funding_paths(input_gbis_measures, funding_paths) From 0b6bc9588151f01a67af33c26e502638070c047a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 19 Aug 2025 19:52:53 +0100 Subject: [PATCH 62/73] implementing funding optimiser --- backend/Funding.py | 7 ++- backend/app/plan/schemas.py | 1 - backend/engine/engine.py | 23 ++++---- .../optimiser/funding_optimiser.py | 56 +++++++++++++++++-- .../optimiser/optimiser_functions.py | 10 +++- 5 files changed, 76 insertions(+), 21 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index d08744b9..9ab301cd 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -1056,17 +1056,20 @@ class Funding: if self.tenure == "Private": # We return ECO4 rates - return innovation_uplift * ( + rate = ( self.eco4_private_cavity_abs_rate if is_cavity else self.eco4_private_solid_abs_rate ) + return pps, pps * rate, innovation_uplift * rate + if self.tenure == "Social": # We return ECO4 rates - return innovation_uplift * ( + rate = ( self.eco4_social_cavity_abs_rate if is_cavity else self.eco4_social_solid_abs_rate ) + return pps, pps * rate, innovation_uplift * rate raise ValueError("Invalid tenure type for innovation uplift calculation: {}".format(self.tenure)) diff --git a/backend/app/plan/schemas.py b/backend/app/plan/schemas.py index 5b59b699..36755665 100644 --- a/backend/app/plan/schemas.py +++ b/backend/app/plan/schemas.py @@ -107,7 +107,6 @@ class PlanTriggerRequest(BaseModel): scenario_name: Optional[str] = "" scenario_id: Optional[str | int] = None # Used to utilise and existing scenario for a engine run multi_plan: Optional[bool] = False - optimise: Optional[bool] = True default_u_values: Optional[bool] = True ashp_cop: Optional[float] = 2.8 diff --git a/backend/engine/engine.py b/backend/engine/engine.py index 808837ba..d3595d38 100644 --- a/backend/engine/engine.py +++ b/backend/engine/engine.py @@ -870,13 +870,16 @@ async def model_engine(body: PlanTriggerRequest): is_sandstone_or_limestone=p.walls["is_sandstone_or_limestone"], ) + # TODO: Turn this into a function and store the innovaiton uplift for group in measures_to_optimise_with_uplift: for r in group: if r["type"] in ["mechanical_ventilation", "low_energy_lighting", "secondary_heating"]: r["innovation_uplift"] = 0 continue - r["innovation_uplift"] = funding.get_innovation_uplift( + ( + r["partial_project_score"], r["partial_project_funding"], r["innovation_uplift"] + ) = funding.get_innovation_uplift( measure=r, starting_sap=p.data["current-energy-efficiency"], floor_area=p.floor_area, @@ -903,26 +906,26 @@ async def model_engine(body: PlanTriggerRequest): ) # Given the solutions we select the optimal one - solutions["cost_less_full_project_funding"] = solutions["total_cost"] - solutions[ - "eco4_full_project_funding"] + solutions["cost_less_full_project_funding"] = ( + solutions["total_cost"] - solutions["eco4_full_project_funding"] - solutions["total_uplift"] + ) solutions = solutions.sort_values("cost_less_full_project_funding", ascending=True) if solutions["meets_upgrade_target"].any(): # If we have a solution that meets the upgrade target, we select that one optimal_solution = solutions[solutions["meets_upgrade_target"]].iloc[0] else: - optimal_solution = optimal_solution.iloc[0] + optimal_solution = solutions.iloc[0] - # optimal_solution = + solution = optimal_solution["items"] + optimal_solution["unfunded_items"] + full_project_funding = optimal_solution["eco4_full_project_funding"] + scheme = optimal_solution["scheme"] - if not body.optimise: - if body.goal != "Increasing EPC": - raise NotImplementedError("Only EPC optimisation is currently supported") - solution = [max(sub_list, key=lambda x: (x['gain'], -x['cost'])) for sub_list in input_measures] else: + # We optimise and then we determine eligibility for funding, based on the measures selected optimiser = ( GainOptimiser( - input_measures, max_cost=body.budget, max_gain=gain, allow_slack=body.goal == "Increasing EPC" + input_measures, max_cost=body.budget, max_gain=gain, allow_slack=False ) if body.budget else CostOptimiser(input_measures, min_gain=gain) ) optimiser.setup() diff --git a/recommendations/optimiser/funding_optimiser.py b/recommendations/optimiser/funding_optimiser.py index 6116b868..053413a5 100644 --- a/recommendations/optimiser/funding_optimiser.py +++ b/recommendations/optimiser/funding_optimiser.py @@ -172,10 +172,8 @@ def _ensure_unfunded_costs(groups): for grp in groups: for opt in grp: base = opt.get("cost_minus_uplift") - upl = opt.get("innovation_uplift", 0.0) if base is not None: - opt["cost"] = float(base) + float(upl) - # else: assume opt["cost"] already includes uplift + opt["cost"] = opt["raw_cost"] return groups @@ -250,7 +248,8 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin "total_gain": sub_gain, "path": path_spec, "scheme": scheme, - "is_eligible": _is_eligible_funding_package(scheme, p.data["current-energy-efficiency"], sub_gain) + "is_eligible": _is_eligible_funding_package(scheme, p.data["current-energy-efficiency"], sub_gain), + "unfunded_items": [] } ) @@ -318,6 +317,43 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin scheme = _path_scheme(path_spec) + unfunded_picked = [] + if total_gain - target_gain < -0.1: + # In this case, we have a funded package that does not meet the target gain, so we look at the remaining + # measures and see if we can include them + picked_types = {opt["type"] for opt in total_picks} + + # We find the indexes of the picked types + picked_group_index = {} + for pt in picked_types: + for gi, grp in enumerate(optimisation_input_measures): + if any(pt in opt["type"] for opt in grp): + picked_group_index[pt] = gi + break + # We get the remaining types + # ECO4 case + remaining = [] + for i, grp in enumerate(optimisation_input_measures): + if i in picked_group_index.values(): + continue + keep = [x for x in grp if x["type"] not in picked_types] + if keep: + for x in keep: + # Adjust to raw cost (without funding) + x["cost"] = x["raw_cost"] + remaining.append(keep) + + if remaining: + # If we have remaining measures we can optimise, we run them down an unfunded route + unfunded_picked, unfunded_cost, unfunded_gain = run_optimizer( + remaining, + budget - total_cost if budget is not None else None, + sub_target_gain=target_gain - total_gain if target_gain is not None else None + ) + + total_cost += unfunded_cost + total_gain += unfunded_gain + solutions.append({ "fixed_ids": fixed_ids, "items": total_picks, @@ -325,14 +361,15 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin "total_gain": total_gain, "path": path_spec, "scheme": scheme, - "is_eligible": _is_eligible_funding_package(scheme, p.data["current-energy-efficiency"], total_gain) + "is_eligible": _is_eligible_funding_package(scheme, p.data["current-energy-efficiency"], total_gain), + "unfunded_items": unfunded_picked, }) solutions = pd.DataFrame(solutions) # Given the scheme, we now check if the packages are eligible. If they *are* eligible, but they don't meet the # final upgrade target, we then look to perform a final optimisation pass to meet the target gain. - solutions["meets_upgrade_target"] = solutions["total_gain"] >= target_gain + solutions["meets_upgrade_target"] = solutions["total_gain"] >= target_gain - 0.1 # If we have packages that are fundable, but do not meet the upgrade target, we can run a final optimisation pass if not solutions[solutions["is_eligible"] & ~solutions["meets_upgrade_target"]].empty: @@ -358,12 +395,19 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin # if the scheme is not ECO4, we set the funding to 0 with iloc solutions.loc[solutions["scheme"] != "eco4", "eco4_full_project_funding"] = 0.0 + # We pull out uplifts + solutions["total_uplift"] = solutions.apply(lambda x: get_total_uplift(x), axis=1) + return solutions # ---- helpers ------------------------------------------------------------- +def get_total_uplift(x): + return sum([y["innovation_uplift"] for y in x["items"]]) + + def sum_cost_gain(items): c = sum(float(x['cost']) for x in items) g = sum(float(x['gain']) for x in items) diff --git a/recommendations/optimiser/optimiser_functions.py b/recommendations/optimiser/optimiser_functions.py index 5175c6b6..1cf14916 100644 --- a/recommendations/optimiser/optimiser_functions.py +++ b/recommendations/optimiser/optimiser_functions.py @@ -78,6 +78,9 @@ def prepare_input_measures(property_recommendations, goal, needs_ventilation, fu # Build enriched measure data to_append = [] for rec in recs: + + raw_cost = rec["total"] + if funding: total = ( rec["total"] - rec["innovation_uplift"] + ventilation_recommendation["total"] @@ -108,9 +111,12 @@ def prepare_input_measures(property_recommendations, goal, needs_ventilation, fu # We also include the innovation uplift to_append.append( { - "id": rec["recommendation_id"], "cost": non_negative_total, "gain": gain, "type": rec_type, + "id": rec["recommendation_id"], + "cost": non_negative_total, + "gain": gain, "type": rec_type, "innovation_uplift": rec["innovation_uplift"] if funding else 0, - "cost_minus_uplift": total + "cost_minus_uplift": total, + "raw_cost": raw_cost } ) From 2595d3a2de23edb030479b3dc881eb68bc51549e Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 19 Aug 2025 21:48:16 +0100 Subject: [PATCH 63/73] added gbis pps --- backend/engine/engine.py | 12 +++++++-- .../optimiser/funding_optimiser.py | 25 ++++++++++++++++--- .../optimiser/optimiser_functions.py | 3 ++- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/backend/engine/engine.py b/backend/engine/engine.py index d3595d38..b5330c47 100644 --- a/backend/engine/engine.py +++ b/backend/engine/engine.py @@ -874,7 +874,9 @@ async def model_engine(body: PlanTriggerRequest): for group in measures_to_optimise_with_uplift: for r in group: if r["type"] in ["mechanical_ventilation", "low_energy_lighting", "secondary_heating"]: - r["innovation_uplift"] = 0 + r["partial_project_score"], r["partial_project_funding"], r["innovation_uplift"] = ( + 0, 0, 0 + ) continue ( @@ -906,8 +908,14 @@ async def model_engine(body: PlanTriggerRequest): ) # Given the solutions we select the optimal one + solutions["cost_less_full_project_funding"] = np.where( + solutions["scheme"] == "eco4", + solutions["total_cost"] - solutions["full_project_funding"] - solutions["total_uplift"], + solutions["total_cost"] - solutions["partial_project_funding"] - solutions["total_uplift"] + ) + solutions["cost_less_full_project_funding"] = ( - solutions["total_cost"] - solutions["eco4_full_project_funding"] - solutions["total_uplift"] + solutions["total_cost"] - solutions["full_project_funding"] - solutions["total_uplift"] ) solutions = solutions.sort_values("cost_less_full_project_funding", ascending=True) diff --git a/recommendations/optimiser/funding_optimiser.py b/recommendations/optimiser/funding_optimiser.py index 053413a5..999355ee 100644 --- a/recommendations/optimiser/funding_optimiser.py +++ b/recommendations/optimiser/funding_optimiser.py @@ -272,6 +272,12 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin # 3) compute fixed cost/gain, and strip those groups from subproblem fixed_items = [opt for (_, _, opt) in fixed] + + if scheme == "gbis": + # Re-set costs as the only funding we get is the PPS + for x in fixed_items: + x["cost"] = x["raw_cost"] + fixed_ids = [opt['id'] for opt in fixed_items] fixed_cost, fixed_gain = sum_cost_gain(fixed_items) fixed_groups = {gi for (gi, _, _) in fixed} @@ -285,7 +291,7 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin # do this by adding innovation back onto the cost for grp in sub_measures: for opt in grp: - opt["cost"] = opt["cost_minus_uplift"] + opt.get("innovation_uplift", 0.0) + opt["cost"] = x["raw_cost"] if scheme == "eco4": # Need to strip out any measure types that are not eligible for ECO4 funding (e.g. secondary heating) @@ -391,9 +397,13 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin axis=1 ) rate = funding.get_abs_rate(is_cavity=p.walls["is_cavity_wall"]) - solutions["eco4_full_project_funding"] = solutions["project_score"] * rate + solutions["full_project_funding"] = solutions["project_score"] * rate # if the scheme is not ECO4, we set the funding to 0 with iloc - solutions.loc[solutions["scheme"] != "eco4", "eco4_full_project_funding"] = 0.0 + solutions.loc[solutions["scheme"] != "eco4", "full_project_funding"] = 0.0 + solutions["partial_project_funding"] = solutions.apply( + lambda x: get_gbis_pps(x), + axis=1 + ) # We pull out uplifts solutions["total_uplift"] = solutions.apply(lambda x: get_total_uplift(x), axis=1) @@ -404,6 +414,15 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin # ---- helpers ------------------------------------------------------------- +def get_gbis_pps(x): + if x["scheme"] != "gbis": + return 0 + fixed_ids = row["fixed_ids"] + if len(fixed_ids) != 1: + raise ValueError("More than one fixed ID for GBIS") + return [x for x in row["items"] if x["id"] in fixed_ids][0]["partial_project_funding"] + + def get_total_uplift(x): return sum([y["innovation_uplift"] for y in x["items"]]) diff --git a/recommendations/optimiser/optimiser_functions.py b/recommendations/optimiser/optimiser_functions.py index 1cf14916..4ffe9ef3 100644 --- a/recommendations/optimiser/optimiser_functions.py +++ b/recommendations/optimiser/optimiser_functions.py @@ -116,7 +116,8 @@ def prepare_input_measures(property_recommendations, goal, needs_ventilation, fu "gain": gain, "type": rec_type, "innovation_uplift": rec["innovation_uplift"] if funding else 0, "cost_minus_uplift": total, - "raw_cost": raw_cost + "raw_cost": raw_cost, + "partial_project_funding": rec["partial_project_funding"] } ) From b715402999041dba52fd9d33269d8755b31fd6f4 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 20 Aug 2025 17:37:26 +0100 Subject: [PATCH 64/73] added funding calulator to backend --- backend/Funding.py | 48 ++++- backend/Property.py | 34 +++- backend/engine/engine.py | 172 +++++++++++++----- .../optimiser/funding_optimiser.py | 29 ++- .../optimiser/optimiser_functions.py | 4 +- 5 files changed, 212 insertions(+), 75 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index 9ab301cd..05c2921d 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -70,6 +70,7 @@ class Funding: self.gbis_funding = None self.eco4_funding = None self.eco4_uplift = 0 + self.gbis_uplift = 0 self.partial_project_abs = None @@ -118,7 +119,7 @@ class Funding: """ measure_types = [m["type"] for m in measures] innovation_flags = [m.get("is_innovation", False) for m in measures] - uplifts = [m["uplift"] for m in measures] + uplifts = [m["innovation_uplift"] for m in measures] innovation_measures = [m["type"] for m in measures if m.get("is_innovation", False)] return measure_types, uplifts, innovation_flags, innovation_measures @@ -952,8 +953,7 @@ class Funding: existing_li_thickness=existing_li_thickness, ) - self.full_project_abs += self.eco4_uplift - self.eco4_funding = self.full_project_abs * ( + self.eco4_funding = (self.full_project_abs + self.eco4_uplift) * ( self.eco4_social_cavity_abs_rate if is_cavity else self.eco4_social_solid_abs_rate ) @@ -966,7 +966,22 @@ class Funding: filtered_pps_matrix=filtered_pps_matrix, pre_heating_system=pre_heating_system ) - self.gbis_funding = self.partial_project_abs * ( + + self.gbis_uplift = self.calc_innovation_uplift( + measure_types=measure_types, + innovation_flags=innovation_flags, + uplifts=uplifts, + filtered_pps_matrix=filtered_pps_matrix, + pre_heating_system=pre_heating_system, + mainheating=mainheating, + main_fuel=main_fuel, + mainheat_energy_eff=mainheat_energy_eff, + current_wall_uvalue=current_wall_uvalue, + is_partial=is_partial, + existing_li_thickness=existing_li_thickness, + ) + + self.gbis_funding = (self.partial_project_abs + self.gbis_uplift) * ( self.gbis_private_cavity_abs_rate if is_cavity else self.gbis_private_solid_abs_rate ) @@ -997,8 +1012,7 @@ class Funding: existing_li_thickness=existing_li_thickness, ) - self.full_project_abs += self.eco4_uplift - self.eco4_funding = self.full_project_abs * ( + self.eco4_funding = (self.full_project_abs + self.eco4_uplift) * ( self.eco4_social_cavity_abs_rate if is_cavity else self.eco4_social_solid_abs_rate ) @@ -1012,7 +1026,21 @@ class Funding: filtered_pps_matrix=filtered_pps_matrix, pre_heating_system=pre_heating_system ) - self.gbis_funding = self.partial_project_abs * ( + self.gbis_uplift = self.calc_innovation_uplift( + measure_types=measure_types, + innovation_flags=innovation_flags, + uplifts=uplifts, + filtered_pps_matrix=filtered_pps_matrix, + pre_heating_system=pre_heating_system, + mainheating=mainheating, + main_fuel=main_fuel, + mainheat_energy_eff=mainheat_energy_eff, + current_wall_uvalue=current_wall_uvalue, + is_partial=is_partial, + existing_li_thickness=existing_li_thickness, + ) + + self.gbis_funding = (self.partial_project_abs + self.gbis_uplift) * ( self.gbis_social_cavity_abs_rate if is_cavity else self.gbis_social_solid_abs_rate ) @@ -1061,7 +1089,7 @@ class Funding: else self.eco4_private_solid_abs_rate ) - return pps, pps * rate, innovation_uplift * rate + return pps, pps * rate, innovation_uplift * rate, innovation_uplift if self.tenure == "Social": # We return ECO4 rates @@ -1069,11 +1097,11 @@ class Funding: self.eco4_social_cavity_abs_rate if is_cavity else self.eco4_social_solid_abs_rate ) - return pps, pps * rate, innovation_uplift * rate + return pps, pps * rate, innovation_uplift * rate, innovation_uplift raise ValueError("Invalid tenure type for innovation uplift calculation: {}".format(self.tenure)) - def get_abs_rate(self, is_cavity: bool) -> float: + def get_eco4_abs_rate(self, is_cavity: bool) -> float: if self.tenure == "Social": return self.eco4_social_cavity_abs_rate if is_cavity else self.eco4_social_solid_abs_rate if self.tenure == "Private": diff --git a/backend/Property.py b/backend/Property.py index d6f43b8a..5b96d413 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -213,9 +213,16 @@ class Property: self.parse_kwargs(kwargs) # Funding - self.gbis_eligibiltiy = None - self.eco4_eligibility = None - self.whlg_eligibility = None + # self.gbis_eligibiltiy = None + # self.eco4_eligibility = None + # self.whlg_eligibility = None + self.scheme = None + self.funded_measures = None + self.full_project_funding = None + self.total_uplift = None + self.full_project_score = None + self.partial_project_score = None + self.uplift_project_score = None # Ventilation self.has_ventilation = self.identify_ventilation() @@ -1336,13 +1343,26 @@ class Property: return electric_consumption - def insert_funding(self, funding_calulator: Funding): + def insert_funding( + self, + scheme, + funded_measures, + full_project_funding, + total_uplift, + full_project_score, + partial_project_score, + uplift_project_score + ): """ This method inserts the funding into the property object """ - self.gbis_eligibiltiy = funding_calulator.gbis_eligibiltiy - self.eco4_eligibility = funding_calulator.eco4_eligibility - self.whlg_eligibility = funding_calulator.whlg_eligibility + self.scheme = scheme + self.funded_measures = funded_measures, + self.full_project_funding = full_project_funding, + self.total_uplift = total_uplift, + self.full_project_score = full_project_score, + self.partial_project_score = partial_project_score, + self.uplift_project_score = uplift_project_score def identify_ventilation(self): diff --git a/backend/engine/engine.py b/backend/engine/engine.py index b5330c47..1a94919c 100644 --- a/backend/engine/engine.py +++ b/backend/engine/engine.py @@ -25,7 +25,7 @@ from backend.app.db.functions.recommendations_functions import ( ) from backend.app.db.functions.energy_assessment_functions import get_latest_assessment_by_uprn from backend.app.db.models.portfolio import rating_lookup -from backend.app.plan.schemas import PlanTriggerRequest +from backend.app.plan.schemas import PlanTriggerRequest, WALL_INSULATION_MEASURES, ROOF_INSULATION_MEASURES from backend.app.plan.utils import get_cleaned from backend.app.utils import sap_to_epc import backend.app.assumptions as assumptions @@ -46,6 +46,10 @@ from etl.bill_savings.KwhData import KwhData from etl.spatial.OpenUprnClient import OpenUprnClient from etl.find_my_epc.RetrieveFindMyEpc import RetrieveFindMyEpc +from backend.Funding import Funding +from recommendations.optimiser.funding_optimiser import optimise_with_funding_paths +from recommendations.recommendation_utils import convert_thickness_to_numeric, get_wall_u_value + logger = setup_logger() BATCH_SIZE = 5 @@ -833,10 +837,6 @@ async def model_engine(body: PlanTriggerRequest): ) gain = optimiser_functions.calculate_gain(body=body, p=p, fixed_gain=fixed_gain) - from backend.Funding import Funding - from recommendations.optimiser.funding_optimiser import optimise_with_funding_paths - from recommendations.recommendation_utils import convert_thickness_to_numeric, get_wall_u_value - funding = Funding( tenure=body.housing_type, project_scores_matrix=project_scores_matrix, @@ -852,51 +852,57 @@ async def model_engine(body: PlanTriggerRequest): gbis_private_solid_abs_rate=28, ) - # When the goal is Increasing EPC, we can run the funding optimiser - if body.goal == "Increasing EPC": - - # We insert the innovation uplift - measures_to_optimise_with_uplift = deepcopy(measures_to_optimise) - - li_thickness = convert_thickness_to_numeric( - p.roof["insulation_thickness"], p.roof["is_pitched"], p.roof["is_flat"] + li_thickness = convert_thickness_to_numeric( + p.roof["insulation_thickness"], p.roof["is_pitched"], p.roof["is_flat"] + ) + current_wall_u_value = p.walls["thermal_transmittance"] + if current_wall_u_value is None: + current_wall_u_value = get_wall_u_value( + clean_description=p.walls["clean_description"], + age_band=p.age_band, + is_granite_or_whinstone=p.walls["is_granite_or_whinstone"], + is_sandstone_or_limestone=p.walls["is_sandstone_or_limestone"], ) - current_wall_u_value = p.walls["thermal_transmittance"] - if current_wall_u_value is None: - current_wall_u_value = get_wall_u_value( - clean_description=p.walls["clean_description"], - age_band=p.age_band, - is_granite_or_whinstone=p.walls["is_granite_or_whinstone"], - is_sandstone_or_limestone=p.walls["is_sandstone_or_limestone"], + + # We insert the innovation uplift + measures_to_optimise_with_uplift = deepcopy(measures_to_optimise) + + # TODO: Turn this into a function and store the innovaiton uplift + for group in measures_to_optimise_with_uplift: + for r in group: + + if r["type"] in ["mechanical_ventilation", "low_energy_lighting", "secondary_heating"]: + ( + r["partial_project_score"], + r["partial_project_funding"], + r["innovation_uplift"], + r["uplift_project_score"], + ) = ( + 0, 0, 0, 0 + ) + continue + ( + r["partial_project_score"], r["partial_project_funding"], r["innovation_uplift"], + r["uplift_project_score"] + ) = funding.get_innovation_uplift( + measure=r, + starting_sap=p.data["current-energy-efficiency"], + floor_area=p.floor_area, + is_cavity=p.walls["is_cavity_wall"], + current_wall_uvalue=current_wall_u_value, + is_partial="partial" in p.walls["clean_description"].lower(), + existing_li_thickness=li_thickness, + mainheating=p.main_heating, + main_fuel=p.main_fuel, + mainheat_energy_eff=p.data["mainheat-energy-eff"], ) - # TODO: Turn this into a function and store the innovaiton uplift - for group in measures_to_optimise_with_uplift: - for r in group: - if r["type"] in ["mechanical_ventilation", "low_energy_lighting", "secondary_heating"]: - r["partial_project_score"], r["partial_project_funding"], r["innovation_uplift"] = ( - 0, 0, 0 - ) - continue + input_measures = optimiser_functions.prepare_input_measures( + measures_to_optimise_with_uplift, body.goal, needs_ventilation, funding=True + ) - ( - r["partial_project_score"], r["partial_project_funding"], r["innovation_uplift"] - ) = funding.get_innovation_uplift( - measure=r, - starting_sap=p.data["current-energy-efficiency"], - floor_area=p.floor_area, - is_cavity=p.walls["is_cavity_wall"], - current_wall_uvalue=current_wall_u_value, - is_partial="partial" in p.walls["clean_description"].lower(), - existing_li_thickness=li_thickness, - mainheating=p.main_heating, - main_fuel=p.main_fuel, - mainheat_energy_eff=p.data["mainheat-energy-eff"], - ) - - input_measures = optimiser_functions.prepare_input_measures( - measures_to_optimise_with_uplift, body.goal, needs_ventilation, funding=True - ) + # When the goal is Increasing EPC, we can run the funding optimiser + if body.goal == "Increasing EPC": solutions = optimise_with_funding_paths( p=p, @@ -925,10 +931,21 @@ async def model_engine(body: PlanTriggerRequest): else: optimal_solution = solutions.iloc[0] - solution = optimal_solution["items"] + optimal_solution["unfunded_items"] - full_project_funding = optimal_solution["eco4_full_project_funding"] + # This is the list of measures that we will recommend + funded_measures = optimal_solution["items"] + solution = funded_measures + optimal_solution["unfunded_items"] + # This is the total amount of funding that the project will product (£) + full_project_funding = optimal_solution["full_project_funding"] + # This is the total amount of funding associated to the uplift (£) + total_uplift = optimal_solution["total_uplift"] + # This is the funding scheme selected scheme = optimal_solution["scheme"] - + # This is the full project ABS + full_project_score = optimal_solution["full_project_funding"] + # This is the partial project ABS + partial_project_score = optimal_solution["partial_project_score"] + # This is the uplift score ABS + uplift_project_score = optimal_solution["total_uplift_score"] else: # We optimise and then we determine eligibility for funding, based on the measures selected optimiser = ( @@ -940,6 +957,53 @@ async def model_engine(body: PlanTriggerRequest): optimiser.solve() solution = optimiser.solution + recommendation_types = [] + for measures in input_measures: + for measure in measures: + recommendation_types.append(measure["type"]) + recommendation_types = set(recommendation_types) + + has_wall_insulation_recommendation = any( + (m in recommendation_types or "+".join([m, "mechanical_ventilation"])) for m in + WALL_INSULATION_MEASURES + ) + has_roof_insulation_recommendation = any( + (m in recommendation_types or "+".join([m, "mechanical_ventilation"])) for m in + ROOF_INSULATION_MEASURES + ) + + funding.check_funding( + measures=solution, + starting_sap=p.data["current-energy-efficiency"], + ending_sap=p.data["current-energy-efficiency"] + sum([x["gain"] for x in solution]), + floor_area=p.floor_area, + mainheat_description=p.main_heating["clean_description"], + heating_control_description=p.main_heating_controls["clean_description"], + is_cavity=p.walls["is_cavity_wall"], + current_wall_uvalue=current_wall_u_value, + is_partial="partial" in p.walls["clean_description"].lower(), + existing_li_thickness=li_thickness, + mainheating=p.main_heating, + main_fuel=p.main_fuel, + mainheat_energy_eff=p.data["mainheat-energy-eff"], + has_wall_insulation_recommendation=has_wall_insulation_recommendation, + has_roof_insulation_recommendation=has_roof_insulation_recommendation, + ) + + # Determine the scheme + scheme = "none" + if funding.eco4_eligible: + scheme = "eco4" + if scheme == "none" and funding.gbis_eligible: + scheme = "gbis" + + funded_measures = solution if scheme in ["gbis", "eco4"] else [] + full_project_funding = 0 if funding.full_project_abs is not None else funding.full_project_abs + total_uplift = funding.eco4_uplift + full_project_score = 0 if funding.full_project_abs is not None else funding.full_project_abs + partial_project_score = funding.partial_project_abs + uplift_project_score = funding.eco4_uplift if scheme == "eco4" else funding.gbis_uplift + selected = {r["id"] for r in solution} if property_required_measures: @@ -955,6 +1019,16 @@ async def model_engine(body: PlanTriggerRequest): p.id, recommendations, selected ) + p.insert_funding( + scheme=scheme, + funded_measures=funded_measures, + full_project_funding=full_project_funding, + total_uplift=total_uplift, + full_project_score=full_project_score, + partial_project_score=partial_project_score, + uplift_project_score=uplift_project_score + ) + # when we have buildings, we tweak our solar PV recommendations as if one unit needs it, we apply it to all # of them # TODO: We can probably do better and optimise at the building level - this is temp diff --git a/recommendations/optimiser/funding_optimiser.py b/recommendations/optimiser/funding_optimiser.py index 999355ee..060826cd 100644 --- a/recommendations/optimiser/funding_optimiser.py +++ b/recommendations/optimiser/funding_optimiser.py @@ -201,6 +201,7 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin "path": {"reference": "unfunded:all"}, "scheme": "none", "is_eligible": False, # no funding scheme applied + "unfunded_items": [] }) # This function will filter down on innovation measures if we are social EPC D @@ -291,7 +292,7 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin # do this by adding innovation back onto the cost for grp in sub_measures: for opt in grp: - opt["cost"] = x["raw_cost"] + opt["cost"] = opt["raw_cost"] if scheme == "eco4": # Need to strip out any measure types that are not eligible for ECO4 funding (e.g. secondary heating) @@ -396,17 +397,16 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin ), axis=1 ) - rate = funding.get_abs_rate(is_cavity=p.walls["is_cavity_wall"]) + rate = funding.get_eco4_abs_rate(is_cavity=p.walls["is_cavity_wall"]) solutions["full_project_funding"] = solutions["project_score"] * rate # if the scheme is not ECO4, we set the funding to 0 with iloc solutions.loc[solutions["scheme"] != "eco4", "full_project_funding"] = 0.0 - solutions["partial_project_funding"] = solutions.apply( - lambda x: get_gbis_pps(x), - axis=1 - ) + solutions["partial_project_funding"] = solutions.apply(lambda x: get_gbis_pp_funding(x), axis=1) + solutions["partial_project_score"] = solutions.apply(lambda x: get_gbis_pps(x), axis=1) # We pull out uplifts solutions["total_uplift"] = solutions.apply(lambda x: get_total_uplift(x), axis=1) + solutions["total_uplift_score"] = solutions.apply(lambda x: get_total_innovation_score(x), axis=1) return solutions @@ -414,19 +414,32 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin # ---- helpers ------------------------------------------------------------- +def get_gbis_pp_funding(x): + if x["scheme"] != "gbis": + return 0 + fixed_ids = x["fixed_ids"] + if len(fixed_ids) != 1: + raise ValueError("More than one fixed ID for GBIS") + return [x for x in x["items"] if x["id"] in fixed_ids][0]["partial_project_funding"] + + def get_gbis_pps(x): if x["scheme"] != "gbis": return 0 - fixed_ids = row["fixed_ids"] + fixed_ids = x["fixed_ids"] if len(fixed_ids) != 1: raise ValueError("More than one fixed ID for GBIS") - return [x for x in row["items"] if x["id"] in fixed_ids][0]["partial_project_funding"] + return [x for x in x["items"] if x["id"] in fixed_ids][0]["partial_project_score"] def get_total_uplift(x): return sum([y["innovation_uplift"] for y in x["items"]]) +def get_total_innovation_score(x): + return sum([y["uplift_project_score"] for y in x["items"]]) + + def sum_cost_gain(items): c = sum(float(x['cost']) for x in items) g = sum(float(x['gain']) for x in items) diff --git a/recommendations/optimiser/optimiser_functions.py b/recommendations/optimiser/optimiser_functions.py index 4ffe9ef3..98725138 100644 --- a/recommendations/optimiser/optimiser_functions.py +++ b/recommendations/optimiser/optimiser_functions.py @@ -117,7 +117,9 @@ def prepare_input_measures(property_recommendations, goal, needs_ventilation, fu "innovation_uplift": rec["innovation_uplift"] if funding else 0, "cost_minus_uplift": total, "raw_cost": raw_cost, - "partial_project_funding": rec["partial_project_funding"] + "partial_project_funding": rec["partial_project_funding"], + "partial_project_score": rec["partial_project_score"], + "uplift_project_score": rec["uplift_project_score"], } ) From 529830ee0fc64dec3bf4677e1f53cc9ba99d2af2 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 20 Aug 2025 19:26:05 +0100 Subject: [PATCH 65/73] implementing database call for funding --- backend/Property.py | 14 ++--- backend/app/db/functions/funding_functions.py | 60 +++++++++++++++++++ backend/app/db/models/funding.py | 45 ++++++++++++++ backend/engine/engine.py | 34 +++-------- recommendations/SolarPvRecommendations.py | 2 +- 5 files changed, 121 insertions(+), 34 deletions(-) create mode 100644 backend/app/db/functions/funding_functions.py create mode 100644 backend/app/db/models/funding.py diff --git a/backend/Property.py b/backend/Property.py index 5b96d413..6d17f0e2 100644 --- a/backend/Property.py +++ b/backend/Property.py @@ -218,7 +218,7 @@ class Property: # self.whlg_eligibility = None self.scheme = None self.funded_measures = None - self.full_project_funding = None + self.project_funding = None self.total_uplift = None self.full_project_score = None self.partial_project_score = None @@ -1347,7 +1347,7 @@ class Property: self, scheme, funded_measures, - full_project_funding, + project_funding, total_uplift, full_project_score, partial_project_score, @@ -1357,11 +1357,11 @@ class Property: This method inserts the funding into the property object """ self.scheme = scheme - self.funded_measures = funded_measures, - self.full_project_funding = full_project_funding, - self.total_uplift = total_uplift, - self.full_project_score = full_project_score, - self.partial_project_score = partial_project_score, + self.funded_measures = funded_measures + self.project_funding = project_funding + self.total_uplift = total_uplift + self.full_project_score = full_project_score + self.partial_project_score = partial_project_score self.uplift_project_score = uplift_project_score def identify_ventilation(self): diff --git a/backend/app/db/functions/funding_functions.py b/backend/app/db/functions/funding_functions.py new file mode 100644 index 00000000..2b9f73a3 --- /dev/null +++ b/backend/app/db/functions/funding_functions.py @@ -0,0 +1,60 @@ +from sqlalchemy.orm import Session +from sqlalchemy.exc import SQLAlchemyError +from backend.app.db.models.funding import FundingPackage, FundingPackageMeasures + + +def upload_funding(session: Session, p, plan_id, property_recommendations): + try: + # Prepare data for bulk insert for Recommendation + funding_package_data = { + "plan_id": plan_id, + "scheme": p.scheme, + "full_project_funding": p.full_project_funding, + "total_uplift": p.total_uplift, + "full_project_score": p.full_project_score, + "partial_project_score": p.partial_project_score, + "uplift_project_score": p.uplift_project_score + } + + # upload the funding package data and get back the ID + new_funding_package = FundingPackage(**funding_package_data) + session.add(new_funding_package) + session.flush() + session.commit() + + funding_package_id = new_funding_package.id + + # We now prepare the list of funding measures to be uploaded + funding_measures_data = [] + for part in p.funded_measures: + recommendation_id = part["id"] + recommendation = next( + (x for x in property_recommendations if x["recommendation_id"] == recommendation_id), {} + ) + material_id = None + if recommendation["parts"]: + material_id = recommendation["parts"][0]["id"] + funding_measures_data.append({ + "funding_package_id": funding_package_id, + "measure": part["type"], + "material_id": material_id, + "innovation_uplift": float(part["innovation_uplift"]), + "partial_project_score": float(part["partial_project_score"]), + "uplift_project_score": float(part["uplift_project_score"]) + }) + + session.bulk_insert_mappings(FundingPackageMeasures, funding_measures_data) + + # flush the changes to get the newly created IDs + session.flush() + + # Commit the transaction + session.commit() + + return True + + except SQLAlchemyError as e: + # Rollback the transaction in case of an error + session.rollback() + print(f"An error occurred: {e}") + return False diff --git a/backend/app/db/models/funding.py b/backend/app/db/models/funding.py new file mode 100644 index 00000000..78ba7ff1 --- /dev/null +++ b/backend/app/db/models/funding.py @@ -0,0 +1,45 @@ +import enum + +from sqlalchemy import Column, Integer, String, Float, Enum, TIMESTAMP, BigInteger, ForeignKey +from sqlalchemy.orm import declarative_base +from sqlalchemy.sql import func +from backend.app.db.models.recommendations import Plan +from backend.app.db.models.materials import MaterialType, Material + +Base = declarative_base() + + +class SchemeEnum(enum.Enum): + eco4 = "eco4" + gbis = "gbis" + whlg = "whlg" + none = "none" + + +class FundingPackage(Base): + __tablename__ = 'funding_package' + + id = Column(Integer, primary_key=True, autoincrement=True) + plan_id = Column(BigInteger, ForeignKey(Plan.id), nullable=False) + scheme = Column(String, nullable=False) # Assuming Scheme is a string representation + created_at = Column(TIMESTAMP, nullable=False, server_default=func.now()) + project_funding = Column(Float) + total_uplift = Column(Float) + full_project_score = Column(Float) + partial_project_score = Column(Float) + uplift_project_score = Column(Float) + + +class FundingPackageMeasures(Base): + __tablename__ = 'funding_package_measures' + + id = Column(Integer, primary_key=True, autoincrement=True) + funding_package_id = Column(BigInteger, ForeignKey(FundingPackage.id), nullable=False) + measure = Column( + Enum(MaterialType, values_callable=lambda x: [e.value for e in x], create_constraint=False), + nullable=False + ) + material_id = Column(BigInteger, ForeignKey(Material.id), nullable=False) # Assuming material table exists + innovation_uplift = Column(Float) + partial_project_score = Column(Float) + uplift_project_score = Column(Float) diff --git a/backend/engine/engine.py b/backend/engine/engine.py index 1a94919c..108f5091 100644 --- a/backend/engine/engine.py +++ b/backend/engine/engine.py @@ -934,8 +934,8 @@ async def model_engine(body: PlanTriggerRequest): # This is the list of measures that we will recommend funded_measures = optimal_solution["items"] solution = funded_measures + optimal_solution["unfunded_items"] - # This is the total amount of funding that the project will product (£) - full_project_funding = optimal_solution["full_project_funding"] + # This is the total amount of funding that the project will produce (including uplifts) (£) + project_funding = optimal_solution["full_project_funding"] # This is the total amount of funding associated to the uplift (£) total_uplift = optimal_solution["total_uplift"] # This is the funding scheme selected @@ -998,7 +998,7 @@ async def model_engine(body: PlanTriggerRequest): scheme = "gbis" funded_measures = solution if scheme in ["gbis", "eco4"] else [] - full_project_funding = 0 if funding.full_project_abs is not None else funding.full_project_abs + project_funding = 0 if funding.full_project_abs is not None else funding.full_project_abs total_uplift = funding.eco4_uplift full_project_score = 0 if funding.full_project_abs is not None else funding.full_project_abs partial_project_score = funding.partial_project_abs @@ -1022,7 +1022,7 @@ async def model_engine(body: PlanTriggerRequest): p.insert_funding( scheme=scheme, funded_measures=funded_measures, - full_project_funding=full_project_funding, + project_funding=project_funding, total_uplift=total_uplift, full_project_score=full_project_score, partial_project_score=partial_project_score, @@ -1055,28 +1055,6 @@ async def model_engine(body: PlanTriggerRequest): # need to be updated rec["default"] = True - # ~~~~~~~~~~~~~~~~ - # Funding - # ~~~~~~~~~~~~~~~~ - - # for p in input_properties: - # funding_calulator = Funding( - # tenure=body.housing_type, - # starting_epc=p.data["current-energy-rating"], - # starting_sap=int(p.data["current-energy-efficiency"]), - # postcode=p.postcode, - # floor_area=p.floor_area, - # council_tax_band=None, # This is seemingly always None at the moment - # property_recommendations=recommendations[p.id], - # project_scores_matrix=eco_project_scores_matrix, - # whlg_eligible_postcodes=whlg_eligible_postcodes, - # gbis_abs_rate=15, - # eco4_abs_rate=15, - # ) - # funding_calulator.check_eligibiltiy() - # # Insert finding - # p.insert_funding(funding_calulator) - logger.info("Uploading recommendations to the database") # If we have any work to do, we create a new scenario if body.scenario_id: @@ -1165,6 +1143,10 @@ async def model_engine(body: PlanTriggerRequest): session, recommendations_to_upload, p.id, new_plan_id ) + upload_funding( + session, + ) + property_valuation_increases.append( valuations["average_increased_value"] - valuations["current_value"] ) diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index f21b7bf3..dad9530a 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -276,7 +276,7 @@ class SolarPvRecommendations: self.recommendation.append( { "phase": phase, - "parts": [], + "parts": [solar_pv_product], "type": "solar_pv", "measure_type": "solar_pv", "description": description, From 9963151944fc2be087c7099dc02632237ed54bb6 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 21 Aug 2025 18:53:43 +0100 Subject: [PATCH 66/73] debugging upload of funding data to db --- backend/app/db/functions/funding_functions.py | 26 ++++++++++--------- .../app/db/functions/portfolio_functions.py | 1 + .../db/functions/recommendations_functions.py | 21 ++++++++++++--- backend/app/db/models/funding.py | 5 +++- backend/app/db/models/recommendations.py | 2 ++ backend/engine/engine.py | 20 +++++++++----- 6 files changed, 52 insertions(+), 23 deletions(-) diff --git a/backend/app/db/functions/funding_functions.py b/backend/app/db/functions/funding_functions.py index 2b9f73a3..86611b9f 100644 --- a/backend/app/db/functions/funding_functions.py +++ b/backend/app/db/functions/funding_functions.py @@ -3,17 +3,17 @@ from sqlalchemy.exc import SQLAlchemyError from backend.app.db.models.funding import FundingPackage, FundingPackageMeasures -def upload_funding(session: Session, p, plan_id, property_recommendations): +def upload_funding(session: Session, p, plan_id, recommendations_to_upload): try: # Prepare data for bulk insert for Recommendation funding_package_data = { "plan_id": plan_id, "scheme": p.scheme, - "full_project_funding": p.full_project_funding, - "total_uplift": p.total_uplift, - "full_project_score": p.full_project_score, - "partial_project_score": p.partial_project_score, - "uplift_project_score": p.uplift_project_score + "project_funding": float(p.project_funding), + "total_uplift": float(p.total_uplift), + "full_project_score": float(p.full_project_score), + "partial_project_score": float(p.partial_project_score), + "uplift_project_score": float(p.uplift_project_score) } # upload the funding package data and get back the ID @@ -29,7 +29,7 @@ def upload_funding(session: Session, p, plan_id, property_recommendations): for part in p.funded_measures: recommendation_id = part["id"] recommendation = next( - (x for x in property_recommendations if x["recommendation_id"] == recommendation_id), {} + (x for x in recommendations_to_upload if x["recommendation_id"] == recommendation_id), {} ) material_id = None if recommendation["parts"]: @@ -43,13 +43,15 @@ def upload_funding(session: Session, p, plan_id, property_recommendations): "uplift_project_score": float(part["uplift_project_score"]) }) - session.bulk_insert_mappings(FundingPackageMeasures, funding_measures_data) + # Bulk insert the funding measures data + if funding_measures_data: + session.bulk_insert_mappings(FundingPackageMeasures, funding_measures_data) - # flush the changes to get the newly created IDs - session.flush() + # flush the changes to get the newly created IDs + session.flush() - # Commit the transaction - session.commit() + # Commit the transaction + session.commit() return True diff --git a/backend/app/db/functions/portfolio_functions.py b/backend/app/db/functions/portfolio_functions.py index ac340ab5..fa97c206 100644 --- a/backend/app/db/functions/portfolio_functions.py +++ b/backend/app/db/functions/portfolio_functions.py @@ -29,6 +29,7 @@ def aggregate_portfolio_recommendations( .one() ) + # Contingeny and funding are in the aggregated data aggregates_dict = { "cost": aggregates.cost or 0, "total_work_hours": aggregates.total_work_hours or 0, diff --git a/backend/app/db/functions/recommendations_functions.py b/backend/app/db/functions/recommendations_functions.py index 41501270..f42f66e1 100644 --- a/backend/app/db/functions/recommendations_functions.py +++ b/backend/app/db/functions/recommendations_functions.py @@ -7,6 +7,7 @@ from backend.app.db.models.recommendations import ( from backend.app.db.models.portfolio import ( PropertyModel, PropertyTargetsModel, PropertyDetailsEpcModel ) +from backend.app.db.models.funding import FundingPackageMeasures, FundingPackage def create_plan(session: Session, plan): @@ -138,9 +139,9 @@ def upload_recommendations(session: Session, recommendations_to_upload, property "recommendation_id": recommendation_id, "material_id": part["id"], "depth": int(part["depth"]) if part["depth"] else None, - "quantity": float(part["quantity"]), - "quantity_unit": part["quantity_unit"], - "estimated_cost": part["total"], + "quantity": float(part["quantity"]) if part.get("quantity") else None, + "quantity_unit": part.get("quantity_unit", None), + "estimated_cost": float(part.get("total", part.get("total_cost"))), } for rec, recommendation_id in zip(recommendations_to_upload, uploaded_recommendation_ids) for part in rec["parts"] @@ -176,6 +177,10 @@ def clear_portfolio(session: Session, portfolio_id: int): recommendation_ids = session.query(Recommendation.id).filter(Recommendation.property_id.in_(property_ids)).all() recommendation_ids = [r.id for r in recommendation_ids] + # Fetch all plan IDs associated with the portfolio + plan_ids = session.query(Plan.id).filter(Plan.portfolio_id == portfolio_id).all() + plan_ids = [p.id for p in plan_ids] + # Delete all entries from RecommendationMaterials for these recommendations session.execute( delete(RecommendationMaterials).where(RecommendationMaterials.recommendation_id.in_(recommendation_ids)) @@ -186,6 +191,16 @@ def clear_portfolio(session: Session, portfolio_id: int): session.query(Plan.id).filter(Plan.portfolio_id == portfolio_id).subquery().as_scalar() ))) + # Delete FundingPackageMeasures → FundingPackage → Plan + session.execute( + delete(FundingPackageMeasures).where(FundingPackageMeasures.funding_package_id.in_( + session.query(FundingPackage.id).filter(FundingPackage.plan_id.in_(plan_ids)) + )) + ) + session.execute( + delete(FundingPackage).where(FundingPackage.plan_id.in_(plan_ids)) + ) + # Delete all Plans associated with the portfolio session.execute(delete(Plan).where(Plan.portfolio_id == portfolio_id)) diff --git a/backend/app/db/models/funding.py b/backend/app/db/models/funding.py index 78ba7ff1..6ea8364e 100644 --- a/backend/app/db/models/funding.py +++ b/backend/app/db/models/funding.py @@ -21,7 +21,10 @@ class FundingPackage(Base): id = Column(Integer, primary_key=True, autoincrement=True) plan_id = Column(BigInteger, ForeignKey(Plan.id), nullable=False) - scheme = Column(String, nullable=False) # Assuming Scheme is a string representation + scheme = Column( + Enum(SchemeEnum, values_callable=lambda x: [e.value for e in x], create_constraint=False), + nullable=False + ) created_at = Column(TIMESTAMP, nullable=False, server_default=func.now()) project_funding = Column(Float) total_uplift = Column(Float) diff --git a/backend/app/db/models/recommendations.py b/backend/app/db/models/recommendations.py index 54a876d7..bd5c4e20 100644 --- a/backend/app/db/models/recommendations.py +++ b/backend/app/db/models/recommendations.py @@ -91,6 +91,8 @@ class Scenario(Base): # Add in the fields we need, which were previously sitting at the portfolio level cost = Column(Float) + contingency = Column(Float) + funding = Column(Float) total_work_hours = Column(Float) energy_savings = Column(Float) co2_equivalent_savings = Column(Float) diff --git a/backend/engine/engine.py b/backend/engine/engine.py index 108f5091..86294b07 100644 --- a/backend/engine/engine.py +++ b/backend/engine/engine.py @@ -23,6 +23,7 @@ from backend.app.db.functions.property_functions import ( from backend.app.db.functions.recommendations_functions import ( create_plan, upload_recommendations, create_scenario ) +from backend.app.db.functions.funding_functions import upload_funding from backend.app.db.functions.energy_assessment_functions import get_latest_assessment_by_uprn from backend.app.db.models.portfolio import rating_lookup from backend.app.plan.schemas import PlanTriggerRequest, WALL_INSULATION_MEASURES, ROOF_INSULATION_MEASURES @@ -166,7 +167,9 @@ def extract_portfolio_aggregation_data( "sap_point_improvement": sap_point_improvement, "lower_bound_valuation_uplift": lower_bound_valuation_uplift, "upper_bound_valuation_uplift": upper_bound_valuation_uplift, - "has_recommendations": has_recommendations + "has_recommendations": has_recommendations, + "funding": float(p.project_funding) if p.project_funding is not None else 0, + "contingency": float(sum([x.get("contingency", 0) for x in default_recommendations])) }) agg_data = pd.DataFrame(agg_data) @@ -214,6 +217,9 @@ def extract_portfolio_aggregation_data( cost_per_sap_point = agg_data["cost"].sum() / total_sap_points if total_sap_points > 0 else 0 cost_per_sap_point = format_money(cost_per_sap_point) + total_funding = agg_data["funding"].sum() + total_contingency = agg_data["contingency"].sum() + aggregation_data = { "epc_breakdown_pre_retrofit": json.dumps( reformat_epc_data(agg_data["pre_retrofit_epc"].value_counts().to_dict()) @@ -236,6 +242,8 @@ def extract_portfolio_aggregation_data( "cost_per_co2_saved": cost_per_co2_saved, "cost_per_sap_point": cost_per_sap_point, "valuation_return_on_investment": valuation_return_on_investment, + "funding": float(total_funding), + "contingency": float(total_contingency) } return aggregation_data @@ -932,14 +940,14 @@ async def model_engine(body: PlanTriggerRequest): optimal_solution = solutions.iloc[0] # This is the list of measures that we will recommend - funded_measures = optimal_solution["items"] - solution = funded_measures + optimal_solution["unfunded_items"] + scheme = optimal_solution["scheme"] + funded_measures = optimal_solution["items"] if scheme != "none" else [] + solution = optimal_solution["items"] + optimal_solution["unfunded_items"] # This is the total amount of funding that the project will produce (including uplifts) (£) project_funding = optimal_solution["full_project_funding"] # This is the total amount of funding associated to the uplift (£) total_uplift = optimal_solution["total_uplift"] # This is the funding scheme selected - scheme = optimal_solution["scheme"] # This is the full project ABS full_project_score = optimal_solution["full_project_funding"] # This is the partial project ABS @@ -1143,9 +1151,7 @@ async def model_engine(body: PlanTriggerRequest): session, recommendations_to_upload, p.id, new_plan_id ) - upload_funding( - session, - ) + upload_funding(session, p, new_plan_id, recommendations_to_upload) property_valuation_increases.append( valuations["average_increased_value"] - valuations["current_value"] From cc187fe8d6c0b7b4cd84791cc763fa4ddc7ca753 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Thu, 21 Aug 2025 19:00:53 +0100 Subject: [PATCH 67/73] Implemented poc for funding optmiser --- backend/engine/engine.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/backend/engine/engine.py b/backend/engine/engine.py index 86294b07..d81063a0 100644 --- a/backend/engine/engine.py +++ b/backend/engine/engine.py @@ -1027,6 +1027,11 @@ async def model_engine(body: PlanTriggerRequest): p.id, recommendations, selected ) + # TODO: functionise + for measure in funded_measures: + if "+mechanical_ventilation" in measure["type"]: + measure["type"] = measure["type"].split("+mechanical_ventilation")[0] + p.insert_funding( scheme=scheme, funded_measures=funded_measures, From a9fd7254536f1cb8a821fbcb0968ce27a42b9f52 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 22 Aug 2025 01:34:16 +0100 Subject: [PATCH 68/73] debugging etl clean --- backend/Funding.py | 36 ++++++++++++++++++++++ backend/engine/engine.py | 2 +- etl/customers/remote_assessments/app.py | 31 +++++++++++++------ etl/epc_clean/EpcClean.py | 8 +++-- recommendations/Costs.py | 1 + recommendations/LightingRecommendations.py | 2 +- recommendations/SolarPvRecommendations.py | 2 +- 7 files changed, 68 insertions(+), 14 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index 05c2921d..50960eb7 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -322,6 +322,10 @@ class Funding: return data["Cost Savings"].values[0] def _calculate_full_project_abs(self, floor_area_band: str, starting_sap_band: str, ending_sap_band: str): + + if starting_sap_band == ending_sap_band: + return 0 + data = self.project_scores_matrix[ (self.project_scores_matrix["Floor Area Segment"] == floor_area_band) & (self.project_scores_matrix["Starting Band"] == starting_sap_band) & @@ -638,6 +642,38 @@ class Funding: # If we don't have a pre heating system, we assume the measure is not applicable return 0 + if measure_type in ["double_glazing", "secondary_glazing"]: + # pps is under the WG_singletodouble Measure_Type + pps = filtered_pps_matrix[ + filtered_pps_matrix["Measure_Type"] == "WG_singletodouble" + ] + return pps.squeeze()["Cost Savings"] + + if measure_type == "roomstat_programmer_trvs": + # We can get funding for TRVs + pps = filtered_pps_matrix[ + filtered_pps_matrix["Measure_Type"] == "TRV" + ] + if pre_heating_system in pps["Pre_Main_Heating_Source"].values: + pps = pps[pps["Pre_Main_Heating_Source"] == pre_heating_system] + if pps.shape[0] != 1: + raise ValueError("something went wrong, more than one pps for TRV") + return pps.squeeze()["Cost Savings"] + # If we don't have a pre heating system, we assume the measure is not applicable + return 0 + + if measure_type == "time_temperature_zone_control": + pps = filtered_pps_matrix[ + filtered_pps_matrix["Measure_Type"] == "TTZC" + ] + if pre_heating_system in pps["Pre_Main_Heating_Source"].values: + pps = pps[pps["Pre_Main_Heating_Source"] == pre_heating_system] + if pps.shape[0] != 1: + raise ValueError("something went wrong, more than one pps for TTZC") + return pps.squeeze()["Cost Savings"] + # If we don't have a pre heating system, we assume the measure is not applicable + return 0 + raise ValueError(f"Invalid measure type for partial project ABS calculation: {measure_type}") # ----------------------- diff --git a/backend/engine/engine.py b/backend/engine/engine.py index d81063a0..e8c5884e 100644 --- a/backend/engine/engine.py +++ b/backend/engine/engine.py @@ -949,7 +949,7 @@ async def model_engine(body: PlanTriggerRequest): total_uplift = optimal_solution["total_uplift"] # This is the funding scheme selected # This is the full project ABS - full_project_score = optimal_solution["full_project_funding"] + full_project_score = optimal_solution["project_score"] # This is the partial project ABS partial_project_score = optimal_solution["partial_project_score"] # This is the uplift score ABS diff --git a/etl/customers/remote_assessments/app.py b/etl/customers/remote_assessments/app.py index df4a16fe..9b5bf7c1 100644 --- a/etl/customers/remote_assessments/app.py +++ b/etl/customers/remote_assessments/app.py @@ -17,15 +17,28 @@ def app(): :return: """ - asset_list = pd.read_excel( - "/Users/khalimconn-kowlessar/Downloads/Energy Information MASTER June 2025 - Standardised.xlsx", - sheet_name="Solar Properties", - ) - asset_list = asset_list[~asset_list["estimated"]] - asset_list["domna_address_1"] = asset_list["domna_address_1"].astype(str) - asset_list = asset_list[["domna_address_1", "domna_postcode", "epc_os_uprn"]].rename( - columns={"domna_address_1": "address", "domna_postcode": "postcode", "epc_os_uprn": "uprn"} - ) + # asset_list = pd.read_excel( + # "/Users/khalimconn-kowlessar/Downloads/Energy Information MASTER June 2025 - Standardised.xlsx", + # sheet_name="Solar Properties", + # ) + # asset_list = asset_list[~asset_list["estimated"]] + # asset_list["domna_address_1"] = asset_list["domna_address_1"].astype(str) + # asset_list = asset_list[["domna_address_1", "domna_postcode", "epc_os_uprn"]].rename( + # columns={"domna_address_1": "address", "domna_postcode": "postcode", "epc_os_uprn": "uprn"} + # ) + + asset_list = [ + { + "address": "7 Crawley Road", + "postcode": "N22 6AN", + "uprn": 100021169757 + }, + { + "address": "7 Crawley Road", + "postcode": "N22 6AN", + "uprn": 100021169757 + }, + ] # Store the asset list in s3 filename = f"{USER_ID}/{PORTFOLIO_ID}/asset_list.csv" diff --git a/etl/epc_clean/EpcClean.py b/etl/epc_clean/EpcClean.py index 10b5095d..4b1beebe 100644 --- a/etl/epc_clean/EpcClean.py +++ b/etl/epc_clean/EpcClean.py @@ -75,6 +75,9 @@ class EpcClean: ] ] + # Average + filtered_data.groupby("lighting-description")["low-energy-lighting"].mean().reset_index() + # Convert low-energy-lighting to float for row in filtered_data: row["low-energy-lighting"] = float(row["low-energy-lighting"]) @@ -88,9 +91,10 @@ class EpcClean: sums[description] += row["low-energy-lighting"] counts[description] += 1 + # Scale to between 0 and 1 averages = [{ - "lighting-description": correct_spelling(description.lower()), - "low-energy-lighting": total / counts[description] + "lighting-description": correct_spelling(description.lower()) / 100, + "low-energy-lighting": total / counts[description] / 100 } for description, total in sums.items()] return averages diff --git a/recommendations/Costs.py b/recommendations/Costs.py index aa6f5a38..fccc2fc8 100644 --- a/recommendations/Costs.py +++ b/recommendations/Costs.py @@ -181,6 +181,7 @@ class Costs: "solid_floor_insulation": 0.26, "low_energy_lighting": 0.26, "high_heat_retention_storage_heaters": 0.1, + "windows_glazing": 0.15, } # Preliminaries are a percentage of the total cost of the work and covers the cost of site-specific costs diff --git a/recommendations/LightingRecommendations.py b/recommendations/LightingRecommendations.py index b96cefb2..6fa93fb8 100644 --- a/recommendations/LightingRecommendations.py +++ b/recommendations/LightingRecommendations.py @@ -100,7 +100,7 @@ class LightingRecommendations: :return: """ - if self.property.lighting["low_energy_proportion"] == 100: + if self.property.lighting["low_energy_proportion"] >= 1: return leds_recommendation_config = next( diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index dad9530a..cf18e0cd 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -264,7 +264,7 @@ class SolarPvRecommendations: scaffolding_options=self.scaffolding_options, n_floors=self.property.number_of_floors ) - description = f"Install a {solar_pv_product['description']}" + description = solar_pv_product['description'] if self.property.in_conservation_area: description += " Property is in a consevation area - please check with local planning authority." From f39b3d3f529a46ef6765aca94cde24a142fd886f Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 22 Aug 2025 03:15:43 +0100 Subject: [PATCH 69/73] debuggin db upload --- backend/Funding.py | 4 +- backend/app/db/functions/funding_functions.py | 8 +- backend/app/plan/schemas.py | 2 +- backend/engine/engine.py | 12 ++- etl/customers/remote_assessments/app.py | 84 +++++++++++++++---- .../optimiser/funding_optimiser.py | 28 ++++++- 6 files changed, 110 insertions(+), 28 deletions(-) diff --git a/backend/Funding.py b/backend/Funding.py index 50960eb7..5405943b 100644 --- a/backend/Funding.py +++ b/backend/Funding.py @@ -109,7 +109,7 @@ class Funding: return "73-97" if floor_area <= 199: return "98-199" - return "200" + return "200+" @staticmethod def _split_measures(measures: List[dict]): @@ -614,7 +614,7 @@ class Funding: raise ValueError("something went wrong, more than one pps for ashp") return pps.squeeze()["Cost Savings"] - if measure_type == "high_heat_retention_storage_heater": + if measure_type == "high_heat_retention_storage_heaters": pps_data = filtered_pps_matrix[ filtered_pps_matrix["Post_Main_Heating_Source"] == "High Heat Retention Storage Heaters" ] diff --git a/backend/app/db/functions/funding_functions.py b/backend/app/db/functions/funding_functions.py index 86611b9f..3c001266 100644 --- a/backend/app/db/functions/funding_functions.py +++ b/backend/app/db/functions/funding_functions.py @@ -34,9 +34,15 @@ def upload_funding(session: Session, p, plan_id, recommendations_to_upload): material_id = None if recommendation["parts"]: material_id = recommendation["parts"][0]["id"] + + part_type = part["type"] + if part_type == "extension_cavity_wall_insulation": + part_type = "cavity_wall_insulation" + if part_type == "sealing_open_fireplace": + part_type = "sealing_fireplace" funding_measures_data.append({ "funding_package_id": funding_package_id, - "measure": part["type"], + "measure": part_type, "material_id": material_id, "innovation_uplift": float(part["innovation_uplift"]), "partial_project_score": float(part["partial_project_score"]), diff --git a/backend/app/plan/schemas.py b/backend/app/plan/schemas.py index 36755665..feff11fd 100644 --- a/backend/app/plan/schemas.py +++ b/backend/app/plan/schemas.py @@ -23,7 +23,7 @@ ECO4_ELIGIBLE_HEATING_MEASURES = [ SPECIFIC_MEASURES = ( WALL_INSULATION_MEASURES + ROOF_INSULATION_MEASURES + ECO4_ELIGIBILE_FABRIC_MEASURES + ECO4_ELIGIBLE_HEATING_MEASURES + [ - "secondary_heating" "ventilation", "low_energy_lighting", "fireplace", + "secondary_heating", "ventilation", "low_energy_lighting", "fireplace", "hot_water_tank_insulation", "cylinder_thermostat" ] diff --git a/backend/engine/engine.py b/backend/engine/engine.py index e8c5884e..64bb8d65 100644 --- a/backend/engine/engine.py +++ b/backend/engine/engine.py @@ -438,6 +438,10 @@ def get_funding_data(): 'Post_Main_Heating_Source', 'Total Floor Area Band', 'Starting Band', 'Average Treatable Factor', 'Cost Savings', 'SAP Savings' ] + # Replace 200 with 200+ in floor area band + partial_project_scores_matrix["Total Floor Area Band"] = partial_project_scores_matrix[ + "Total Floor Area Band" + ].replace({"200": "200+"}) partial_project_scores_matrix["Cost Savings"] = partial_project_scores_matrix["Cost Savings"].astype(float) whlg_eligible_postcodes = read_csv_from_s3( @@ -850,9 +854,9 @@ async def model_engine(body: PlanTriggerRequest): project_scores_matrix=project_scores_matrix, partial_project_scores_matrix=partial_project_scores_matrix, whlg_eligible_postcodes=whlg_eligible_postcodes, - eco4_social_cavity_abs_rate=13, + eco4_social_cavity_abs_rate=12.5, eco4_social_solid_abs_rate=17, - eco4_private_cavity_abs_rate=13, + eco4_private_cavity_abs_rate=12.5, eco4_private_solid_abs_rate=17, gbis_social_cavity_abs_rate=21, gbis_social_solid_abs_rate=25, @@ -879,7 +883,8 @@ async def model_engine(body: PlanTriggerRequest): for group in measures_to_optimise_with_uplift: for r in group: - if r["type"] in ["mechanical_ventilation", "low_energy_lighting", "secondary_heating"]: + if r["type"] in ["mechanical_ventilation", "low_energy_lighting", "secondary_heating", + "extension_cavity_wall_insulation", "draught_proofing", "sealing_open_fireplace"]: ( r["partial_project_score"], r["partial_project_funding"], @@ -1170,6 +1175,7 @@ async def model_engine(body: PlanTriggerRequest): session.rollback() print("Failed i = %s" % str(i)) logger.error(f"An error occurred during batch starting at index {i}: {e}") + logger.error(f"property is uprn {p.uprn} id {p.id} address {p.address}") logger.info("Creating portfolio aggregations") # We implement this in the simplest way possible which will be just to query the database for all diff --git a/etl/customers/remote_assessments/app.py b/etl/customers/remote_assessments/app.py index 9b5bf7c1..5fbae1d0 100644 --- a/etl/customers/remote_assessments/app.py +++ b/etl/customers/remote_assessments/app.py @@ -4,7 +4,7 @@ from dotenv import load_dotenv from utils.s3 import save_csv_to_s3 from etl.find_my_epc.AssetListEpcData import AssetListEpcData -PORTFOLIO_ID = 212 +PORTFOLIO_ID = 235 USER_ID = 8 load_dotenv(dotenv_path="backend/.env") @@ -29,17 +29,34 @@ def app(): asset_list = [ { - "address": "7 Crawley Road", - "postcode": "N22 6AN", - "uprn": 100021169757 + "address": "9 Reeds Place", + "postcode": "PO12 3HR", + "uprn": 37017508 }, { "address": "7 Crawley Road", "postcode": "N22 6AN", "uprn": 100021169757 }, + { + "address": "20 Main Street", + "postcode": "NG32 1SE", + "uprn": 200002698370 + }, + { + "address": "19 Wolley Avenue", + "postcode": "LS12 5DX", + "uprn": 72234517 + }, + { + "address": "45 Bolton Lane, Hose", + "postcode": "LE14 4JE", + "uprn": 100030535501 + } ] + asset_list = pd.DataFrame(asset_list) + # Store the asset list in s3 filename = f"{USER_ID}/{PORTFOLIO_ID}/asset_list.csv" save_csv_to_s3( @@ -77,16 +94,24 @@ def app(): valuation_data = [ { - "valuation": 339_000, - "uprn": 200003423454, + "valuation": 201000, + "uprn": 37017508, }, { - "valuation": 374_000, - "uprn": 200003423194 + "valuation": 810000, + "uprn": 100021169757, }, { - "valuation": 719_000, - "uprn": 200003423607 + "valuation": 228_000, + "uprn": 72234517 + }, + { + "valuation": 236_000, + "uprn": 100030535501 + }, + { + "valuation": 509000, + "uprn": 200002698370 }, ] # Store valuation data to s3 @@ -97,19 +122,42 @@ def app(): file_name=valuation_filename ) - body = { + body1 = { "portfolio_id": str(PORTFOLIO_ID), - "housing_type": "Private", - "goal": "Increasing EPC", - "goal_value": "A", + "housing_type": "Social", + "goal": "EPC B", + "goal_value": "B", "trigger_file_path": filename, "already_installed_file_path": "", - "patches_file_path": patches_filename, - "non_invasive_recommendations_file_path": non_invasive_recommendations_filename, + "patches_file_path": "", + "non_invasive_recommendations_file_path": "", "valuation_file_path": "", "scenario_name": "Full package remote assessment", "multi_plan": True, "budget": None, - "inclusions": ["cavity_wall_insulation", "ventilation"] + "ashp_cop": 3.5, + "event_type": "remote_assessment", + "default_u_values": True, + } - print(body) + print(body1) + + body2 = { + "portfolio_id": str(PORTFOLIO_ID), + "housing_type": "Social", + "goal": "EPC C", + "goal_value": "C", + "trigger_file_path": filename, + "already_installed_file_path": "", + "patches_file_path": "", + "non_invasive_recommendations_file_path": "", + "valuation_file_path": "", + "scenario_name": "Full package remote assessment", + "multi_plan": True, + "budget": None, + "ashp_cop": 3.5, + "event_type": "remote_assessment", + "default_u_values": True, + + } + print(body2) diff --git a/recommendations/optimiser/funding_optimiser.py b/recommendations/optimiser/funding_optimiser.py index 060826cd..f48ce024 100644 --- a/recommendations/optimiser/funding_optimiser.py +++ b/recommendations/optimiser/funding_optimiser.py @@ -227,6 +227,19 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin # ECO4 fabric only path = special case if isinstance(path_spec, dict) and path_spec.get("reference") == "fabric-only:eco4": sub_measures = _filter_measures_by_types(optimisation_input_measures, path_spec["allowed_types"]) + # If the property is EPC D and socil, we also include just innovation measures + if housing_type == "Social" and p.data["current-energy-rating"] == "D": + # We add in a second option which is just innovation measures + sub_measures_innovation = [] + for measures in sub_measures: + group = [] + for measure in measures: + if measure["innovation_uplift"]: + group.append(measure) + if group: + sub_measures_innovation.append(group) + sub_measures = deepcopy(sub_measures_innovation) + if not sub_measures: continue @@ -380,7 +393,7 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin # If we have packages that are fundable, but do not meet the upgrade target, we can run a final optimisation pass if not solutions[solutions["is_eligible"] & ~solutions["meets_upgrade_target"]].empty: - raise NotImplementedError("Implement me") + logger.info("We have some packages that are fundable but do not meet the target gain") # We now can calculate the project ABS, which subtracts from the cost, but this is only relevant for ECO4 solutions["starting_sap"] = p.data["current-energy-efficiency"] @@ -397,6 +410,7 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin ), axis=1 ) + rate = funding.get_eco4_abs_rate(is_cavity=p.walls["is_cavity_wall"]) solutions["full_project_funding"] = solutions["project_score"] * rate # if the scheme is not ECO4, we set the funding to 0 with iloc @@ -809,14 +823,22 @@ def make_funding_paths(p, input_measures, housing_type, funding: Funding): input_measures_innovation = [] input_gbis_measures_innovation = [] for measures in input_measures: + group_of_innovation_measures = [] + group_of_gbis_innovation_measures = [] for measure in measures: if measure["innovation_uplift"] or measure["type"] in remaining_insulation_type: - input_measures_innovation.append([measure]) + group_of_innovation_measures.append(measure) if measure["innovation_uplift"] and measure["type"] in ( remaining_insulation_type + other_gbis_insulation_measures ): - input_gbis_measures_innovation.append([measure]) + group_of_gbis_innovation_measures.append([measure]) + + if group_of_innovation_measures: + input_measures_innovation.append(group_of_innovation_measures) + + if group_of_gbis_innovation_measures: + input_gbis_measures_innovation.extend(group_of_gbis_innovation_measures) funding_paths = _make_solar_heating_funding_paths( p, input_measures_innovation, funding_paths, remaining_insulation_type, housing_type, funding From d297f6c2ceeb673d7732150449f3def7ce0a08f7 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 22 Aug 2025 03:25:47 +0100 Subject: [PATCH 70/73] debugging backend --- etl/customers/remote_assessments/app.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/etl/customers/remote_assessments/app.py b/etl/customers/remote_assessments/app.py index 5fbae1d0..e22dd93d 100644 --- a/etl/customers/remote_assessments/app.py +++ b/etl/customers/remote_assessments/app.py @@ -125,14 +125,14 @@ def app(): body1 = { "portfolio_id": str(PORTFOLIO_ID), "housing_type": "Social", - "goal": "EPC B", + "goal": "Increasing EPC", "goal_value": "B", "trigger_file_path": filename, "already_installed_file_path": "", "patches_file_path": "", "non_invasive_recommendations_file_path": "", - "valuation_file_path": "", - "scenario_name": "Full package remote assessment", + "valuation_file_path": valuation_filename, + "scenario_name": "EPC B", "multi_plan": True, "budget": None, "ashp_cop": 3.5, @@ -145,14 +145,14 @@ def app(): body2 = { "portfolio_id": str(PORTFOLIO_ID), "housing_type": "Social", - "goal": "EPC C", + "goal": "Increasing EPC", "goal_value": "C", "trigger_file_path": filename, "already_installed_file_path": "", "patches_file_path": "", "non_invasive_recommendations_file_path": "", - "valuation_file_path": "", - "scenario_name": "Full package remote assessment", + "valuation_file_path": valuation_filename, + "scenario_name": "EPC C", "multi_plan": True, "budget": None, "ashp_cop": 3.5, From 9cbd8e8db06b2b7500781cbb65f1827130104f64 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 22 Aug 2025 03:36:04 +0100 Subject: [PATCH 71/73] added to excluded eco measures --- recommendations/optimiser/funding_optimiser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recommendations/optimiser/funding_optimiser.py b/recommendations/optimiser/funding_optimiser.py index f48ce024..952e4725 100644 --- a/recommendations/optimiser/funding_optimiser.py +++ b/recommendations/optimiser/funding_optimiser.py @@ -21,7 +21,7 @@ from backend.Funding import Funding logger = setup_logger() # measures we DO NOT treat as fundable in the ECO4 'funded' pass -_ECO4_EXCLUDE_TYPES = {"secondary_heating"} +_ECO4_EXCLUDE_TYPES = {"secondary_heating", "extension_cavity_wall_insulation", "sealing_open_fireplace"} def _path_scheme(path_spec): From 62fa27bb1b314f946a4ab4f5818ece979a364af2 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 22 Aug 2025 04:09:15 +0100 Subject: [PATCH 72/73] fixing funding paths for eco --- recommendations/SolarPvRecommendations.py | 2 +- .../optimiser/funding_optimiser.py | 24 ++++++++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index cf18e0cd..40d355a6 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -264,7 +264,7 @@ class SolarPvRecommendations: scaffolding_options=self.scaffolding_options, n_floors=self.property.number_of_floors ) - description = solar_pv_product['description'] + description = f"solar_pv_product['description'] - {solar_pv_product['size']} kWp system" if self.property.in_conservation_area: description += " Property is in a consevation area - please check with local planning authority." diff --git a/recommendations/optimiser/funding_optimiser.py b/recommendations/optimiser/funding_optimiser.py index 952e4725..d62b4f46 100644 --- a/recommendations/optimiser/funding_optimiser.py +++ b/recommendations/optimiser/funding_optimiser.py @@ -314,11 +314,17 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin # 4) run your existing optimiser for the remaining groups # If we have a budget, we need to ensure the subproblem respects it so we remove the fixed cost (which # may already be over budget) and the fixed gain (which may not be achievable) - picked, sub_cost, sub_gain = run_optimizer( - sub_measures, - budget - fixed_cost if budget is not None else None, - sub_target_gain=target_gain - fixed_gain if target_gain is not None else None - ) + + if fixed_gain > target_gain: + picked, sub_cost, sub_gain = ([], 0.0, 0.0) + elif fixed_gain < target_gain and not sub_measures: + picked, sub_cost, sub_gain = ([], 0.0, 0.0) + else: + picked, sub_cost, sub_gain = run_optimizer( + sub_measures, + budget - fixed_cost if budget is not None else None, + sub_target_gain=target_gain - fixed_gain if target_gain is not None else None + ) if picked is None: continue @@ -346,14 +352,14 @@ def optimise_with_funding_paths(p, input_measures, housing_type, funding: Fundin # We find the indexes of the picked types picked_group_index = {} for pt in picked_types: - for gi, grp in enumerate(optimisation_input_measures): + for gi, grp in enumerate(input_measures): if any(pt in opt["type"] for opt in grp): picked_group_index[pt] = gi break # We get the remaining types # ECO4 case remaining = [] - for i, grp in enumerate(optimisation_input_measures): + for i, grp in enumerate(input_measures): if i in picked_group_index.values(): continue keep = [x for x in grp if x["type"] not in picked_types] @@ -677,8 +683,8 @@ def _make_solar_heating_funding_paths( # Solar PV with existing eligible heating system # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ has_eligible_heating_system = funding.check_solar_eligible_heating_system( - mainheat_description=p.main_heating["clean_description"], - heating_control_description=p.main_heating_controls["clean_description"] + mainheat_description=p.main_heating["clean_description"].lower(), + heating_control_description=p.main_heating_controls["clean_description"].lower() ) if has_eligible_heating_system and _find_measure(input_measures, "solar_pv"): From 6e030d9137e03d6832492e578f94826ae28b7439 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 22 Aug 2025 04:15:43 +0100 Subject: [PATCH 73/73] solar pv recomendation description --- recommendations/SolarPvRecommendations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recommendations/SolarPvRecommendations.py b/recommendations/SolarPvRecommendations.py index 40d355a6..cb20ea71 100644 --- a/recommendations/SolarPvRecommendations.py +++ b/recommendations/SolarPvRecommendations.py @@ -264,7 +264,7 @@ class SolarPvRecommendations: scaffolding_options=self.scaffolding_options, n_floors=self.property.number_of_floors ) - description = f"solar_pv_product['description'] - {solar_pv_product['size']} kWp system" + description = f"{solar_pv_product['description']} - {solar_pv_product['size']} kWp system" if self.property.in_conservation_area: description += " Property is in a consevation area - please check with local planning authority."