Reject CEPC (commercial EPC) certs explicitly at the API mapper boundary

epb-data-warehouse's fixture set covers CEPC-7.0/7.1/8.0.0 (SBEM
non-domestic certs) alongside the RdSAP/SAP families we already map.
CEPC has no sensible EpcPropertyData shape (asset_rating/BER instead of
a SAP score, activities/hvac_systems instead of building elements), so
from_api_response now raises a typed NonDomesticSchema instead of
falling through to the generic "Unsupported EPC schema" ValueError.
This commit is contained in:
Jun-te Kim 2026-07-09 14:58:25 +00:00
parent 84c259c17e
commit 93b34981c9
5 changed files with 963 additions and 0 deletions

View file

@ -2985,6 +2985,13 @@ class EpcPropertyDataMapper:
mapped = EpcPropertyDataMapper.from_sap_schema_16_2(data)
elif schema == "SAP-Schema-16.3":
mapped = EpcPropertyDataMapper.from_sap_schema_16_3(data)
# CEPC family: commercial/non-domestic certs (SBEM methodology). Out of
# scope for a single-dwelling SAP engine — see `NonDomesticSchema`.
elif schema in ("CEPC-7.0", "CEPC-7.1", "CEPC-8.0.0"):
raise NonDomesticSchema(
f"{schema!r} is a commercial (non-domestic) EPC and cannot be "
"mapped to EpcPropertyData, which models a single dwelling."
)
else:
raise ValueError(f"Unsupported EPC schema: {schema!r}")
@ -4229,6 +4236,20 @@ def _elmhurst_party_wall_construction_int(coded: str) -> Optional[int]:
return _ELMHURST_PARTY_WALL_CODE_TO_SAP10[code]
class NonDomesticSchema(ValueError):
"""The cert is a commercial/non-domestic EPC (CEPC — SBEM methodology),
not a dwelling. `EpcPropertyData` models a single-dwelling SAP/RdSAP cert
(roofs/walls/floors, sap_heating, dwelling_type, ...); a CEPC cert has no
equivalent shape (asset_rating/BER instead of a SAP score, activities/
hvac_systems instead of building elements) so there is nothing sensible
to map it onto. Raised explicitly at the `from_api_response` dispatch
boundary added to `datatypes/epc/schema/` samples via the
epb-data-warehouse fixtures so callers get a clear, typed signal
rather than falling through to the generic "Unsupported EPC schema"
ValueError.
"""
class UnmappedApiCode(ValueError):
"""A GOV.UK API integer enum that the mapper does not yet know how
to translate to the SAP10 cascade-domain value.

View file

@ -0,0 +1,35 @@
"""CEPC (commercial/non-domestic EPC) certs are out of scope for this
single-dwelling SAP engine `from_api_response` must reject them explicitly
via `NonDomesticSchema` rather than falling through to the generic
"Unsupported EPC schema" `ValueError`, or silently mis-mapping SBEM fields
onto `EpcPropertyData`.
Fixtures are the epb-data-warehouse sample CEPC certs (also mirrored at
`backend/epc_api/json_samples/CEPC-*/cepc.json`).
"""
import json
import os
from typing import Any, Dict
import pytest
from datatypes.epc.domain.mapper import EpcPropertyDataMapper, NonDomesticSchema
FIXTURES = os.path.join(os.path.dirname(__file__), "../../schema/tests/fixtures")
_CEPC_FIXTURES = ("cepc_7_0.json", "cepc_7_1.json", "cepc_8_0_0.json")
def load(filename: str) -> Dict[str, Any]:
with open(os.path.join(FIXTURES, filename)) as f:
return json.load(f) # type: ignore[no-any-return]
class TestCepcRejected:
@pytest.mark.parametrize("fixture", _CEPC_FIXTURES)
def test_raises_non_domestic_schema(self, fixture: str) -> None:
data = load(fixture)
with pytest.raises(NonDomesticSchema):
EpcPropertyDataMapper.from_api_response(data)

View file

@ -0,0 +1,285 @@
{
"ber": 67.09,
"ser": 42.07,
"ter": 23.2,
"tyr": 67.98,
"uprn": 12457,
"status": "entered",
"postcode": "SW1A 2AA",
"post_town": "Whitbury",
"issue_date": "2020-05-14",
"report_type": 3,
"schema_type": "CEPC-7.0",
"uprn_source": "Energy Assessor",
"valid_until": "2026-05-04",
"asset_rating": 80,
"language_code": 1,
"property_type": "B1 Offices and Workshop businesses",
"address_line_1": "Some Unit",
"address_line_2": "2 Lonely Street",
"address_line_3": "Some Area",
"address_line_4": "Some County",
"assessment_type": "CEPC",
"inspection_date": "2020-05-04",
"ac_questionnaire": {
"ac_present": "No",
"ac_rated_output": {
"ac_kw_rating": 100
},
"ac_estimated_output": 3,
"ac_inspection_commissioned": 1
},
"calculation_tool": "Casio fx-39",
"is_heritage_site": "N",
"or_building_data": {
"hvac_system": "Yes",
"other_hvac_system": "Yes",
"internal_environment": "Yes",
"assessment_period_alignment": "Yes"
},
"transaction_type": 1,
"or_benchmark_data": {
"benchmarks": [
{
"floor_area": 403,
"benchmark_id": 1
}
]
},
"registration_date": "2020-05-04",
"building_complexity": "Level 3",
"new_build_benchmark": 28,
"or_usable_floor_area": {
"ufa_1": {
"floor_area": 100
}
},
"or_energy_consumption": {
"anthracite": {
"end_date": "2030-12-25",
"estimate": 3,
"start_date": "2019-12-25",
"consumption": 12.6
}
},
"technical_information": {
"floor_area": 403,
"building_level": 3,
"main_heating_fuel": "Natural Gas",
"renewable_sources": "Renewable sources test",
"special_energy_uses": "Test sp",
"building_environment": "Air Conditioning",
"or_availability_date": "2020-01-04",
"other_fuel_description": "Test"
},
"or_assessment_end_date": "2030-05-14",
"summary_of_performance": {
"building_data": [
{
"area": 402.6,
"weather": "LON",
"activities": [
{
"id": 1005,
"area": 402.6
}
],
"building_w_k": 411.86,
"hvac_systems": [
{
"area": 402.6,
"type": "Fan coil systems",
"fuel_type": "Natural Gas",
"activities": [
{
"id": 1005,
"area": 402.6
}
],
"heat_source": "LTHW boiler",
"cooling_sseer": 1.963,
"heating_sseff": 0.827,
"kwh_m2_cooling": 25.3865,
"kwh_m2_heating": 41.0355,
"cooling_gen_seer": 2.5,
"heating_gen_seff": 0.89,
"kwh_m2_auxiliary": 39.0832,
"mj_m2_cooling_dem": 179.401,
"mj_m2_heating_dem": 122.171
}
],
"analysis_type": "ACTUAL",
"area_exterior": 1058.32,
"building_alpha": 18.3412,
"building_w_m2k": 0.389164,
"q50_infiltration": 10,
"global_performance": {
"kwh_m2_chp": 0,
"kwh_m2_dhw": 2.77834,
"kwh_m2_lpg": 0,
"kwh_m2_oil": 0,
"kwh_m2_pvs": 3.07665,
"kwh_m2_ses": 0.801605,
"kwh_m2_coal": 0,
"kwh_m2_wind": 3.02777,
"kwh_m2_biogas": 0,
"kwh_m2_biomass": 0,
"kwh_m2_cooling": 25.3865,
"kwh_m2_heating": 41.0355,
"kwh_m2_lighting": 54.0787,
"kwh_m2_supplied": 121.327,
"kwh_m2_auxiliary": 39.0832,
"kwh_m2_displaced": 6.10442,
"kwh_m2_dual_fuel": 0,
"kwh_m2_equipment": 42.185,
"kwh_m2_smokeless": 0,
"kwh_m2_anthracite": 0,
"kwh_m2_waste_heat": 0,
"kwh_m2_natural_gas": 41.0355,
"kwh_m2_district_heating": 0
}
},
{
"area": 402.6,
"weather": "LON",
"activities": [
{
"id": 1005,
"area": 402.6
}
],
"building_w_k": 362.524,
"hvac_systems": [
{
"area": 402.6,
"type": "Fan coil systems",
"fuel_type": "Natural Gas",
"activities": [
{
"id": 1005,
"area": 402.6
}
],
"heat_source": "LTHW boiler",
"cooling_sseer": 3.6,
"heating_sseff": 0.819,
"kwh_m2_cooling": 7.46769,
"kwh_m2_heating": 18.1581,
"cooling_gen_seer": 0,
"heating_gen_seff": 0,
"kwh_m2_auxiliary": 14.0716,
"mj_m2_cooling_dem": 96.7814,
"mj_m2_heating_dem": 53.5375
}
],
"analysis_type": "NOTIONAL",
"area_exterior": 1058.32,
"building_alpha": 11.2489,
"building_w_m2k": 0.342547,
"q50_infiltration": 3,
"global_performance": {
"kwh_m2_chp": 0,
"kwh_m2_dhw": 3.33761,
"kwh_m2_lpg": 0,
"kwh_m2_oil": 3.33761,
"kwh_m2_pvs": 0,
"kwh_m2_ses": 0,
"kwh_m2_coal": 0,
"kwh_m2_wind": 0,
"kwh_m2_biogas": 0,
"kwh_m2_biomass": 0,
"kwh_m2_cooling": 7.46769,
"kwh_m2_heating": 18.1582,
"kwh_m2_lighting": 14.4489,
"kwh_m2_supplied": 35.9883,
"kwh_m2_auxiliary": 14.0716,
"kwh_m2_displaced": 0,
"kwh_m2_dual_fuel": 0,
"kwh_m2_equipment": 42.185,
"kwh_m2_smokeless": 0,
"kwh_m2_anthracite": 0,
"kwh_m2_waste_heat": 0,
"kwh_m2_natural_gas": 18.1582,
"kwh_m2_district_heating": 0
}
},
{
"area": 402.6,
"weather": "LON",
"activities": [
{
"id": 1005,
"area": 402.6
}
],
"building_w_k": 718.761,
"hvac_systems": [
{
"area": 402.6,
"type": "Fan coil systems",
"fuel_type": "Natural Gas",
"activities": [
{
"id": 1005,
"area": 402.6
}
],
"heat_source": "LTHW boiler",
"cooling_sseer": 2.25,
"heating_sseff": 0.73,
"kwh_m2_cooling": 25.6538,
"kwh_m2_heating": 71.9516,
"cooling_gen_seer": 0,
"heating_gen_seff": 0,
"kwh_m2_auxiliary": 2.16062,
"mj_m2_cooling_dem": 207.795,
"mj_m2_heating_dem": 189.088
}
],
"analysis_type": "REFERENCE",
"area_exterior": 1058.32,
"building_alpha": 10,
"building_w_m2k": 0.679153,
"q50_infiltration": 10,
"global_performance": {
"kwh_m2_chp": 0,
"kwh_m2_dhw": 6.41192,
"kwh_m2_lpg": 0,
"kwh_m2_oil": 0,
"kwh_m2_pvs": 0,
"kwh_m2_ses": 0,
"kwh_m2_coal": 0,
"kwh_m2_wind": 0,
"kwh_m2_biogas": 0,
"kwh_m2_biomass": 0,
"kwh_m2_cooling": 25.6538,
"kwh_m2_heating": 71.9516,
"kwh_m2_lighting": 45.54,
"kwh_m2_supplied": 73.3544,
"kwh_m2_auxiliary": 2.16062,
"kwh_m2_displaced": 0,
"kwh_m2_dual_fuel": 0,
"kwh_m2_equipment": 42.185,
"kwh_m2_smokeless": 0,
"kwh_m2_anthracite": 0,
"kwh_m2_waste_heat": 0,
"kwh_m2_natural_gas": 78.3634,
"kwh_m2_district_heating": 0
}
}
]
},
"renewable_energy_source": [
{
"name": "Solar panel",
"end_date": "2030-12-25",
"generation": 20,
"start_date": "2019-12-25",
"energy_type": 2
}
],
"existing_stock_benchmark": 81,
"or_assessment_start_date": "2020-05-14",
"related_certificate_number": "4192-1535-8427-8844-6702",
"current_energy_efficiency_band": "D"
}

View file

@ -0,0 +1,288 @@
{
"ber": 67.09,
"ser": 42.07,
"ter": 23.2,
"tyr": 67.98,
"uprn": 12457,
"status": "entered",
"postcode": "BT4 3SR",
"post_town": "Whitbury",
"energy_use": {
"energy_consumption_current": 413.22
},
"issue_date": "2020-05-14",
"report_type": 3,
"schema_type": "CEPC-7.1",
"uprn_source": "Energy Assessor",
"valid_until": "2026-05-04",
"asset_rating": 80,
"language_code": 1,
"property_type": "B1 Offices and Workshop businesses",
"address_line_1": "Some Unit",
"address_line_2": "2 Lonely Street",
"address_line_3": "Some Area",
"address_line_4": "Some County",
"assessment_type": "CEPC",
"inspection_date": "2020-05-04",
"ac_questionnaire": {
"ac_present": "No",
"ac_rated_output": {
"ac_kw_rating": 100
},
"ac_estimated_output": 3,
"ac_inspection_commissioned": 1
},
"calculation_tool": "Casio fx-39",
"is_heritage_site": "N",
"or_building_data": {
"hvac_system": "Yes",
"other_hvac_system": "Yes",
"internal_environment": "Yes",
"assessment_period_alignment": "Yes"
},
"transaction_type": 1,
"or_benchmark_data": {
"benchmarks": [
{
"floor_area": 403,
"benchmark_id": 1
}
]
},
"registration_date": "2020-05-04",
"building_complexity": "Level 3",
"new_build_benchmark": 28,
"or_usable_floor_area": {
"ufa_1": {
"floor_area": 100
}
},
"or_energy_consumption": {
"anthracite": {
"end_date": "2030-12-25",
"estimate": 3,
"start_date": "2019-12-25",
"consumption": 12.6
}
},
"technical_information": {
"floor_area": 403,
"building_level": 3,
"main_heating_fuel": "Natural Gas",
"renewable_sources": "Renewable sources test",
"special_energy_uses": "Test sp",
"building_environment": "Air Conditioning",
"or_availability_date": "2020-01-04",
"other_fuel_description": "Test"
},
"or_assessment_end_date": "2030-05-14",
"summary_of_performance": {
"building_data": [
{
"area": 402.6,
"weather": "LON",
"activities": [
{
"id": 1005,
"area": 402.6
}
],
"building_w_k": 411.86,
"hvac_systems": [
{
"area": 402.6,
"type": "Fan coil systems",
"fuel_type": "Natural Gas",
"activities": [
{
"id": 1005,
"area": 402.6
}
],
"heat_source": "LTHW boiler",
"cooling_sseer": 1.963,
"heating_sseff": 0.827,
"kwh_m2_cooling": 25.3865,
"kwh_m2_heating": 41.0355,
"cooling_gen_seer": 2.5,
"heating_gen_seff": 0.89,
"kwh_m2_auxiliary": 39.0832,
"mj_m2_cooling_dem": 179.401,
"mj_m2_heating_dem": 122.171
}
],
"analysis_type": "ACTUAL",
"area_exterior": 1058.32,
"building_alpha": 18.3412,
"building_w_m2k": 0.389164,
"q50_infiltration": 10,
"global_performance": {
"kwh_m2_chp": 0,
"kwh_m2_dhw": 2.77834,
"kwh_m2_lpg": 0,
"kwh_m2_oil": 0,
"kwh_m2_pvs": 3.07665,
"kwh_m2_ses": 0.801605,
"kwh_m2_coal": 0,
"kwh_m2_wind": 3.02777,
"kwh_m2_biogas": 0,
"kwh_m2_biomass": 0,
"kwh_m2_cooling": 25.3865,
"kwh_m2_heating": 41.0355,
"kwh_m2_lighting": 54.0787,
"kwh_m2_supplied": 121.327,
"kwh_m2_auxiliary": 39.0832,
"kwh_m2_displaced": 6.10442,
"kwh_m2_dual_fuel": 0,
"kwh_m2_equipment": 42.185,
"kwh_m2_smokeless": 0,
"kwh_m2_anthracite": 0,
"kwh_m2_waste_heat": 0,
"kwh_m2_natural_gas": 41.0355,
"kwh_m2_district_heating": 0
}
},
{
"area": 402.6,
"weather": "LON",
"activities": [
{
"id": 1005,
"area": 402.6
}
],
"building_w_k": 362.524,
"hvac_systems": [
{
"area": 402.6,
"type": "Fan coil systems",
"fuel_type": "Natural Gas",
"activities": [
{
"id": 1005,
"area": 402.6
}
],
"heat_source": "LTHW boiler",
"cooling_sseer": 3.6,
"heating_sseff": 0.819,
"kwh_m2_cooling": 7.46769,
"kwh_m2_heating": 18.1581,
"cooling_gen_seer": 0,
"heating_gen_seff": 0,
"kwh_m2_auxiliary": 14.0716,
"mj_m2_cooling_dem": 96.7814,
"mj_m2_heating_dem": 53.5375
}
],
"analysis_type": "NOTIONAL",
"area_exterior": 1058.32,
"building_alpha": 11.2489,
"building_w_m2k": 0.342547,
"q50_infiltration": 3,
"global_performance": {
"kwh_m2_chp": 0,
"kwh_m2_dhw": 3.33761,
"kwh_m2_lpg": 0,
"kwh_m2_oil": 3.33761,
"kwh_m2_pvs": 0,
"kwh_m2_ses": 0,
"kwh_m2_coal": 0,
"kwh_m2_wind": 0,
"kwh_m2_biogas": 0,
"kwh_m2_biomass": 0,
"kwh_m2_cooling": 7.46769,
"kwh_m2_heating": 18.1582,
"kwh_m2_lighting": 14.4489,
"kwh_m2_supplied": 35.9883,
"kwh_m2_auxiliary": 14.0716,
"kwh_m2_displaced": 0,
"kwh_m2_dual_fuel": 0,
"kwh_m2_equipment": 42.185,
"kwh_m2_smokeless": 0,
"kwh_m2_anthracite": 0,
"kwh_m2_waste_heat": 0,
"kwh_m2_natural_gas": 18.1582,
"kwh_m2_district_heating": 0
}
},
{
"area": 402.6,
"weather": "LON",
"activities": [
{
"id": 1005,
"area": 402.6
}
],
"building_w_k": 718.761,
"hvac_systems": [
{
"area": 402.6,
"type": "Fan coil systems",
"fuel_type": "Natural Gas",
"activities": [
{
"id": 1005,
"area": 402.6
}
],
"heat_source": "LTHW boiler",
"cooling_sseer": 2.25,
"heating_sseff": 0.73,
"kwh_m2_cooling": 25.6538,
"kwh_m2_heating": 71.9516,
"cooling_gen_seer": 0,
"heating_gen_seff": 0,
"kwh_m2_auxiliary": 2.16062,
"mj_m2_cooling_dem": 207.795,
"mj_m2_heating_dem": 189.088
}
],
"analysis_type": "REFERENCE",
"area_exterior": 1058.32,
"building_alpha": 10,
"building_w_m2k": 0.679153,
"q50_infiltration": 10,
"global_performance": {
"kwh_m2_chp": 0,
"kwh_m2_dhw": 6.41192,
"kwh_m2_lpg": 0,
"kwh_m2_oil": 0,
"kwh_m2_pvs": 0,
"kwh_m2_ses": 0,
"kwh_m2_coal": 0,
"kwh_m2_wind": 0,
"kwh_m2_biogas": 0,
"kwh_m2_biomass": 0,
"kwh_m2_cooling": 25.6538,
"kwh_m2_heating": 71.9516,
"kwh_m2_lighting": 45.54,
"kwh_m2_supplied": 73.3544,
"kwh_m2_auxiliary": 2.16062,
"kwh_m2_displaced": 0,
"kwh_m2_dual_fuel": 0,
"kwh_m2_equipment": 42.185,
"kwh_m2_smokeless": 0,
"kwh_m2_anthracite": 0,
"kwh_m2_waste_heat": 0,
"kwh_m2_natural_gas": 78.3634,
"kwh_m2_district_heating": 0
}
}
]
},
"renewable_energy_source": [
{
"name": "Solar panel",
"end_date": "2030-12-25",
"generation": 20,
"start_date": "2019-12-25",
"energy_type": 2
}
],
"existing_stock_benchmark": 81,
"or_assessment_start_date": "2020-05-14",
"related_certificate_number": "4192-1535-8427-8844-6702",
"current_energy_efficiency_band": "D"
}

View file

@ -0,0 +1,334 @@
{
"ber": 76.29,
"ser": 45.61,
"ter": 31.05,
"tyr": 90.98,
"uprn": 12457,
"status": "entered",
"postcode": "NE0 0AA",
"post_town": "Big Rock",
"energy_use": {
"energy_consumption_current": 451.27
},
"issue_date": "2021-03-19",
"methodology": "SBEM",
"report_type": 3,
"schema_type": "CEPC-8.0.0",
"uprn_source": "Energy Assessor",
"valid_until": "2031-03-18",
"asset_rating": 84,
"language_code": 1,
"output_engine": "EPCgen, v5.6.b.0",
"property_type": "A1/A2 Retail and Financial/Professional services",
"address_line_1": "60 Maple Syrup Road",
"address_line_2": "Candy Mountain",
"assessment_type": "CEPC",
"inspection_date": "2021-03-19",
"inspection_type": "Physical",
"ac_questionnaire": {
"ac_present": "No",
"ac_rated_output": {
"ac_kw_rating": 100,
"ac_rating_unknown_flag": 0
},
"ac_estimated_output": 3,
"ac_inspection_commissioned": 4
},
"calculation_tool": "G-ISBEM Ltd, G-ISBEM, v24.0, SBEM, v5.6.b.0",
"is_heritage_site": "N",
"transaction_type": 1,
"registration_date": "2021-03-19",
"building_complexity": "Level 3",
"new_build_benchmark": 34,
"technical_information": {
"floor_area": 951,
"building_level": 3,
"main_heating_fuel": "Grid Supplied Electricity",
"renewable_sources": "Renewable sources test",
"special_energy_uses": "Test sp",
"building_environment": "Air Conditioning",
"other_fuel_description": "Other fuel test"
},
"summary_of_performance": {
"building_data": [
{
"area": 951.34,
"weather": "NEW",
"activities": [
{
"id": 1067,
"area": 81.32
},
{
"id": 1070,
"area": 13.9
},
{
"id": 1074,
"area": 258.42
},
{
"id": 1078,
"area": 76.99
},
{
"id": 1071,
"area": 490.62
},
{
"id": 1077,
"area": 30.09
}
],
"building_w_k": 193.204,
"hvac_systems": [
{
"area": 353.64,
"type": "No Heating or Cooling",
"fuel_type": "Natural Gas",
"activities": [
{
"id": 1067,
"area": 81.32
},
{
"id": 1070,
"area": 13.9
},
{
"id": 1074,
"area": 258.42
}
],
"heat_source": "LTHW boiler",
"cooling_sseer": 0,
"heating_sseff": 0,
"kwh_m2_cooling": 0,
"kwh_m2_heating": 0,
"cooling_gen_seer": 0,
"heating_gen_seff": 0,
"kwh_m2_auxiliary": 0,
"mj_m2_cooling_dem": 13.1255,
"mj_m2_heating_dem": 71.1616
},
{
"area": 567.61,
"type": "Split or multi-split system",
"fuel_type": "Natural Gas",
"activities": [
{
"id": 1078,
"area": 76.99
},
{
"id": 1071,
"area": 490.62
}
],
"heat_source": "LTHW boiler",
"cooling_sseer": 2.25,
"heating_sseff": 0.73,
"kwh_m2_cooling": 49.5997,
"kwh_m2_heating": 6.49072,
"cooling_gen_seer": 0,
"heating_gen_seff": 0,
"kwh_m2_auxiliary": 2.47934,
"mj_m2_cooling_dem": 401.756,
"mj_m2_heating_dem": 17.0576
},
{
"area": 30.09,
"type": "Other local room heater - unfanned",
"fuel_type": "Natural Gas",
"activities": [
{
"id": 1077,
"area": 30.09
}
],
"heat_source": "LTHW boiler",
"cooling_sseer": 2.25,
"heating_sseff": 0.73,
"kwh_m2_cooling": 25.4056,
"kwh_m2_heating": 84.553,
"cooling_gen_seer": 0,
"heating_gen_seff": 0,
"kwh_m2_auxiliary": 12.1545,
"mj_m2_cooling_dem": 205.785,
"mj_m2_heating_dem": 222.205
}
],
"analysis_type": "REFERENCE",
"area_exterior": 509.17,
"building_alpha": 10,
"building_w_m2k": 0.379449,
"q50_infiltration": 10,
"global_performance": {
"kwh_m2_chp": 0,
"kwh_m2_dhw": 2.7961,
"kwh_m2_lpg": 0,
"kwh_m2_oil": 0,
"kwh_m2_pvs": 0,
"kwh_m2_ses": 0,
"kwh_m2_coal": 0,
"kwh_m2_wind": 0,
"kwh_m2_biogas": 0,
"kwh_m2_biomass": 0,
"kwh_m2_cooling": 30.3968,
"kwh_m2_heating": 6.54699,
"kwh_m2_lighting": 78.7393,
"kwh_m2_supplied": 110.999,
"kwh_m2_auxiliary": 1.86372,
"kwh_m2_displaced": 0,
"kwh_m2_dual_fuel": 0,
"kwh_m2_equipment": 19.5261,
"kwh_m2_smokeless": 0,
"kwh_m2_anthracite": 0,
"kwh_m2_waste_heat": 0,
"kwh_m2_natural_gas": 9.34308,
"kwh_m2_district_heating": 0
}
},
{
"area": 951.34,
"weather": "NEW",
"activities": [
{
"id": 1067,
"area": 81.32
},
{
"id": 1070,
"area": 13.9
},
{
"id": 1074,
"area": 258.42
},
{
"id": 1078,
"area": 76.99
},
{
"id": 1071,
"area": 490.62
},
{
"id": 1077,
"area": 30.09
}
],
"building_w_k": 193.204,
"hvac_systems": [
{
"area": 353.64,
"type": "No Heating or Cooling",
"fuel_type": "Natural Gas",
"activities": [
{
"id": 1067,
"area": 81.32
},
{
"id": 1070,
"area": 13.9
},
{
"id": 1074,
"area": 258.42
}
],
"heat_source": "LTHW boiler",
"cooling_sseer": 0,
"heating_sseff": 0,
"kwh_m2_cooling": 0,
"kwh_m2_heating": 0,
"cooling_gen_seer": 0,
"heating_gen_seff": 0,
"kwh_m2_auxiliary": 0,
"mj_m2_cooling_dem": 13.1255,
"mj_m2_heating_dem": 71.1616
},
{
"area": 567.61,
"type": "Split or multi-split system",
"fuel_type": "Natural Gas",
"activities": [
{
"id": 1078,
"area": 76.99
},
{
"id": 1071,
"area": 490.62
}
],
"heat_source": "LTHW boiler",
"cooling_sseer": 2.25,
"heating_sseff": 0.73,
"kwh_m2_cooling": 49.5997,
"kwh_m2_heating": 6.49072,
"cooling_gen_seer": 0,
"heating_gen_seff": 0,
"kwh_m2_auxiliary": 2.47934,
"mj_m2_cooling_dem": 401.756,
"mj_m2_heating_dem": 17.0576
},
{
"area": 30.09,
"type": "Other local room heater - unfanned",
"fuel_type": "Natural Gas",
"activities": [
{
"id": 1077,
"area": 30.09
}
],
"heat_source": "LTHW boiler",
"cooling_sseer": 2.25,
"heating_sseff": 0.73,
"kwh_m2_cooling": 25.4056,
"kwh_m2_heating": 84.553,
"cooling_gen_seer": 0,
"heating_gen_seff": 0,
"kwh_m2_auxiliary": 12.1545,
"mj_m2_cooling_dem": 205.785,
"mj_m2_heating_dem": 222.205
}
],
"analysis_type": "ACTUAL",
"area_exterior": 509.17,
"building_alpha": 10,
"building_w_m2k": 0.379449,
"q50_infiltration": 10,
"global_performance": {
"kwh_m2_chp": 0,
"kwh_m2_dhw": 2.7961,
"kwh_m2_lpg": 0,
"kwh_m2_oil": 0,
"kwh_m2_pvs": 0,
"kwh_m2_ses": 0,
"kwh_m2_coal": 0,
"kwh_m2_wind": 0,
"kwh_m2_biogas": 0,
"kwh_m2_biomass": 0,
"kwh_m2_cooling": 30.3968,
"kwh_m2_heating": 6.54699,
"kwh_m2_lighting": 78.7393,
"kwh_m2_supplied": 110.999,
"kwh_m2_auxiliary": 1.86372,
"kwh_m2_displaced": 0,
"kwh_m2_dual_fuel": 0,
"kwh_m2_equipment": 19.5261,
"kwh_m2_smokeless": 0,
"kwh_m2_anthracite": 0,
"kwh_m2_waste_heat": 0,
"kwh_m2_natural_gas": 9.34308,
"kwh_m2_district_heating": 0
}
}
]
},
"existing_stock_benchmark": 100,
"current_energy_efficiency_band": "D"
}