mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
A full-SAP export-capable PV cert reproduces its lodged SAP 10.2 score 🟥
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
7abf466b56
commit
6656d8dec2
2 changed files with 530 additions and 0 deletions
|
|
@ -0,0 +1,507 @@
|
|||
{
|
||||
"der": 3.23,
|
||||
"ter": 13.27,
|
||||
"dfee": 35.2,
|
||||
"dper": 41.21,
|
||||
"tfee": 36.7,
|
||||
"tper": 70.27,
|
||||
"uprn": 10094615101,
|
||||
"roofs": [
|
||||
{
|
||||
"description": {
|
||||
"value": "Average thermal transmittance 0.09 W/m\u00b2K",
|
||||
"language": "1"
|
||||
},
|
||||
"energy_efficiency_rating": 5,
|
||||
"environmental_efficiency_rating": 5
|
||||
}
|
||||
],
|
||||
"walls": [
|
||||
{
|
||||
"description": {
|
||||
"value": "Average thermal transmittance 0.19 W/m\u00b2K",
|
||||
"language": "1"
|
||||
},
|
||||
"energy_efficiency_rating": 5,
|
||||
"environmental_efficiency_rating": 5
|
||||
}
|
||||
],
|
||||
"floors": [
|
||||
{
|
||||
"description": {
|
||||
"value": "(other premises below)",
|
||||
"language": "1"
|
||||
},
|
||||
"energy_efficiency_rating": 0,
|
||||
"environmental_efficiency_rating": 0
|
||||
}
|
||||
],
|
||||
"status": "entered",
|
||||
"tenure": "ND",
|
||||
"windows": {
|
||||
"description": {
|
||||
"value": "High performance glazing",
|
||||
"language": "1"
|
||||
},
|
||||
"energy_efficiency_rating": 5,
|
||||
"environmental_efficiency_rating": 5
|
||||
},
|
||||
"lighting": {
|
||||
"description": {
|
||||
"value": "Good lighting efficiency",
|
||||
"language": "1"
|
||||
},
|
||||
"energy_efficiency_rating": 4,
|
||||
"environmental_efficiency_rating": 4
|
||||
},
|
||||
"postcode": "TN37 7GF",
|
||||
"data_type": 2,
|
||||
"hot_water": {
|
||||
"description": {
|
||||
"value": "From main system, waste water heat recovery",
|
||||
"language": "1"
|
||||
},
|
||||
"energy_efficiency_rating": 5,
|
||||
"environmental_efficiency_rating": 5
|
||||
},
|
||||
"post_town": "ST LEONARDS-ON-SEA",
|
||||
"built_form": 1,
|
||||
"created_at": "2025-03-04 11:13:23",
|
||||
"living_area": 28.88,
|
||||
"orientation": 2,
|
||||
"region_code": 14,
|
||||
"report_type": 3,
|
||||
"sap_heating": {
|
||||
"number_baths": 1,
|
||||
"thermal_store": 1,
|
||||
"shower_outlets": [
|
||||
{
|
||||
"shower_wwhrs": 2,
|
||||
"shower_flow_rate": 8,
|
||||
"shower_outlet_type": 3
|
||||
}
|
||||
],
|
||||
"water_fuel_type": 39,
|
||||
"water_heating_code": 914,
|
||||
"instantaneous_wwhrs": {
|
||||
"wwhrs_index_number1": 80140
|
||||
},
|
||||
"main_heating_details": [
|
||||
{
|
||||
"has_fghrs": "false",
|
||||
"main_fuel_type": 39,
|
||||
"storage_heaters": [
|
||||
{
|
||||
"index_number": 230003,
|
||||
"number_of_heaters": 4,
|
||||
"high_heat_retention": "true"
|
||||
}
|
||||
],
|
||||
"main_heating_code": 409,
|
||||
"main_heating_number": 1,
|
||||
"is_condensing_boiler": "false",
|
||||
"main_heating_control": 2404,
|
||||
"main_heating_category": 7,
|
||||
"main_heating_fraction": 1,
|
||||
"main_heating_data_source": 3,
|
||||
"is_oil_pump_in_heated_space": "false",
|
||||
"is_main_heating_hetas_approved": "false"
|
||||
},
|
||||
{
|
||||
"has_fghrs": "false",
|
||||
"main_fuel_type": 39,
|
||||
"main_heating_number": 2,
|
||||
"main_heating_control": 2100,
|
||||
"main_heating_category": 4,
|
||||
"main_heating_fraction": 0,
|
||||
"main_heating_data_source": 1,
|
||||
"main_heating_index_number": 104014,
|
||||
"is_oil_pump_in_heated_space": "false",
|
||||
"is_main_heating_hetas_approved": "false"
|
||||
}
|
||||
],
|
||||
"has_hot_water_cylinder": "false",
|
||||
"has_cylinder_thermostat": "true",
|
||||
"has_fixed_air_conditioning": "false",
|
||||
"secondary_heating_category": 1,
|
||||
"is_immersion_for_summer_use": "false",
|
||||
"is_heat_pump_installed_to_mis": "false",
|
||||
"is_hot_water_separately_timed": "true",
|
||||
"main_heating_systems_interaction": 2,
|
||||
"is_heat_pump_assisted_by_immersion": "false"
|
||||
},
|
||||
"sap_version": 10.2,
|
||||
"schema_type": "SAP-Schema-19.1.0",
|
||||
"uprn_source": "Address Matched",
|
||||
"country_code": "ENG",
|
||||
"main_heating": [
|
||||
{
|
||||
"description": {
|
||||
"value": "Electric storage heaters",
|
||||
"language": "1"
|
||||
},
|
||||
"energy_efficiency_rating": 3,
|
||||
"environmental_efficiency_rating": 5
|
||||
}
|
||||
],
|
||||
"sap_lighting": [
|
||||
[
|
||||
{
|
||||
"lighting_power": 10,
|
||||
"lighting_outlets": 18,
|
||||
"lighting_efficacy": 90
|
||||
}
|
||||
]
|
||||
],
|
||||
"terrain_type": 2,
|
||||
"air_tightness": {
|
||||
"description": {
|
||||
"value": "Air permeability [AP50] = 4.7 m\u00b3/h.m\u00b2 (as tested)",
|
||||
"language": "1"
|
||||
},
|
||||
"energy_efficiency_rating": 4,
|
||||
"environmental_efficiency_rating": 4
|
||||
},
|
||||
"dwelling_type": "Top-floor flat",
|
||||
"language_code": 1,
|
||||
"property_type": 2,
|
||||
"pv_connection": 2,
|
||||
"address_line_1": "7 Tyler House",
|
||||
"address_line_2": "51 Potter Street",
|
||||
"assessment_date": "2025-03-04",
|
||||
"assessment_type": "SAP",
|
||||
"completion_date": "2025-03-04",
|
||||
"inspection_date": "2025-03-04",
|
||||
"sap_ventilation": {
|
||||
"psv_count": 0,
|
||||
"wall_type": 1,
|
||||
"pressure_test": 1,
|
||||
"wet_rooms_count": 1,
|
||||
"air_permeability": 4.65,
|
||||
"open_flues_count": 0,
|
||||
"ventilation_type": 8,
|
||||
"has_draught_lobby": "false",
|
||||
"other_flues_count": 0,
|
||||
"closed_flues_count": 0,
|
||||
"extract_fans_count": 0,
|
||||
"boilers_flues_count": 0,
|
||||
"open_chimneys_count": 0,
|
||||
"sheltered_sides_count": 1,
|
||||
"blocked_chimneys_count": 0,
|
||||
"flueless_gas_fires_count": 0,
|
||||
"mechanical_vent_duct_type": 2,
|
||||
"mechanical_vent_duct_placement": 1,
|
||||
"mechanical_ventilation_data_source": 1,
|
||||
"mechanical_vent_system_index_number": 500298,
|
||||
"mechanical_vent_duct_insulation_level": 2,
|
||||
"is_mechanical_vent_approved_installer_scheme": "false"
|
||||
},
|
||||
"design_water_use": 1,
|
||||
"sap_data_version": 10.2,
|
||||
"sap_flat_details": {
|
||||
"level": 3,
|
||||
"storeys": 4
|
||||
},
|
||||
"total_floor_area": 76,
|
||||
"transaction_type": 6,
|
||||
"cold_water_source": 1,
|
||||
"conservatory_type": 1,
|
||||
"registration_date": "2025-03-04",
|
||||
"sap_energy_source": {
|
||||
"pv_arrays": [
|
||||
{
|
||||
"pitch": 1,
|
||||
"peak_power": 1.26,
|
||||
"orientation": 8,
|
||||
"overshading": 1
|
||||
}
|
||||
],
|
||||
"electricity_tariff": 2
|
||||
},
|
||||
"sap_opening_types": [
|
||||
{
|
||||
"name": "Window",
|
||||
"type": 4,
|
||||
"u_value": 1.2,
|
||||
"data_source": 2,
|
||||
"frame_factor": 0.7,
|
||||
"glazing_type": 7,
|
||||
"isargonfilled": "false",
|
||||
"solar_transmittance": 0.52
|
||||
},
|
||||
{
|
||||
"name": "Apt door",
|
||||
"type": 1,
|
||||
"u_value": 0.71,
|
||||
"data_source": 2,
|
||||
"glazing_type": 1,
|
||||
"isargonfilled": "false"
|
||||
}
|
||||
],
|
||||
"secondary_heating": {
|
||||
"description": {
|
||||
"value": "None",
|
||||
"language": "1"
|
||||
},
|
||||
"energy_efficiency_rating": 0,
|
||||
"environmental_efficiency_rating": 0
|
||||
},
|
||||
"lowest_storey_area": 75.94,
|
||||
"lzc_energy_sources": [
|
||||
11
|
||||
],
|
||||
"sap_building_parts": [
|
||||
{
|
||||
"sap_roofs": [
|
||||
{
|
||||
"name": "Roof (1)",
|
||||
"u_value": 0.09,
|
||||
"roof_type": 2,
|
||||
"total_roof_area": 75.94
|
||||
},
|
||||
{
|
||||
"name": "Party roof 1",
|
||||
"u_value": 0,
|
||||
"roof_type": 4,
|
||||
"total_roof_area": 20
|
||||
}
|
||||
],
|
||||
"sap_walls": [
|
||||
{
|
||||
"name": "Walls (1)",
|
||||
"u_value": 0.21,
|
||||
"wall_type": 2,
|
||||
"total_wall_area": 61.26,
|
||||
"is_curtain_walling": "false"
|
||||
},
|
||||
{
|
||||
"name": "Walls (2)",
|
||||
"u_value": 0.14,
|
||||
"wall_type": 2,
|
||||
"total_wall_area": 24.82,
|
||||
"is_curtain_walling": "false"
|
||||
}
|
||||
],
|
||||
"sap_openings": [
|
||||
{
|
||||
"name": "Opening 1",
|
||||
"type": "Window",
|
||||
"width": 8.28,
|
||||
"height": 1,
|
||||
"location": "Walls (1)",
|
||||
"orientation": 2
|
||||
},
|
||||
{
|
||||
"name": "Opening 2",
|
||||
"type": "Window",
|
||||
"width": 3.2,
|
||||
"height": 1,
|
||||
"location": "Walls (1)",
|
||||
"orientation": 4
|
||||
},
|
||||
{
|
||||
"name": "Opening 4",
|
||||
"type": "Apt door",
|
||||
"width": 2.12,
|
||||
"height": 1,
|
||||
"location": "Walls (2)",
|
||||
"orientation": 5
|
||||
},
|
||||
{
|
||||
"name": "Opening 3",
|
||||
"type": "Window",
|
||||
"width": 2.56,
|
||||
"height": 1,
|
||||
"location": "Walls (1)",
|
||||
"orientation": 8
|
||||
}
|
||||
],
|
||||
"construction_year": 2023,
|
||||
"sap_thermal_bridges": {
|
||||
"thermal_bridges": [
|
||||
{
|
||||
"length": 10.1,
|
||||
"psi_value": 0.08,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E2"
|
||||
},
|
||||
{
|
||||
"length": 5.91,
|
||||
"psi_value": 0.063,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E3"
|
||||
},
|
||||
{
|
||||
"length": 24.94,
|
||||
"psi_value": 0.06,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E4"
|
||||
},
|
||||
{
|
||||
"length": 0,
|
||||
"psi_value": 0.107,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E5"
|
||||
},
|
||||
{
|
||||
"length": 0,
|
||||
"psi_value": 0.076,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E5"
|
||||
},
|
||||
{
|
||||
"length": 25.74,
|
||||
"psi_value": 0.037,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E7"
|
||||
},
|
||||
{
|
||||
"length": 10.43,
|
||||
"psi_value": 0.026,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E7"
|
||||
},
|
||||
{
|
||||
"length": 11.9,
|
||||
"psi_value": 0.043,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E16"
|
||||
},
|
||||
{
|
||||
"length": 0,
|
||||
"psi_value": 0.12,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E25"
|
||||
},
|
||||
{
|
||||
"length": 0,
|
||||
"psi_value": 0.045,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "P1"
|
||||
},
|
||||
{
|
||||
"length": 2.38,
|
||||
"psi_value": -0.044,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E17"
|
||||
},
|
||||
{
|
||||
"length": 15.34,
|
||||
"psi_value": 0.064,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E10"
|
||||
},
|
||||
{
|
||||
"length": 10.4,
|
||||
"psi_value": 0.053,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E12"
|
||||
},
|
||||
{
|
||||
"length": 10.43,
|
||||
"psi_value": 0.038,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E12"
|
||||
},
|
||||
{
|
||||
"length": 0,
|
||||
"psi_value": 0.05,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E18"
|
||||
},
|
||||
{
|
||||
"length": 0,
|
||||
"psi_value": 0.15,
|
||||
"psi_value_source": 4,
|
||||
"thermal_bridge_type": "E11"
|
||||
},
|
||||
{
|
||||
"length": 0,
|
||||
"psi_value": 0.012,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "E13"
|
||||
},
|
||||
{
|
||||
"length": 0,
|
||||
"psi_value": 0.24,
|
||||
"psi_value_source": 1,
|
||||
"thermal_bridge_type": "P5"
|
||||
}
|
||||
],
|
||||
"thermal_bridge_code": 5
|
||||
},
|
||||
"building_part_number": 1,
|
||||
"sap_floor_dimensions": [
|
||||
{
|
||||
"storey": 1,
|
||||
"u_value": 0,
|
||||
"floor_type": 4,
|
||||
"storey_height": 2.38,
|
||||
"heat_loss_area": 0,
|
||||
"total_floor_area": 75.94
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"user_interface_name": "Design SAP 10",
|
||||
"windows_overshading": 2,
|
||||
"heating_cost_current": {
|
||||
"value": 269,
|
||||
"currency": "GBP"
|
||||
},
|
||||
"co2_emissions_current": 0.2,
|
||||
"energy_rating_average": 60,
|
||||
"energy_rating_current": 92,
|
||||
"lighting_cost_current": {
|
||||
"value": 51,
|
||||
"currency": "GBP"
|
||||
},
|
||||
"main_heating_controls": [
|
||||
{
|
||||
"description": {
|
||||
"value": "Controls for high heat retention storage heaters",
|
||||
"language": "1"
|
||||
},
|
||||
"energy_efficiency_rating": 4,
|
||||
"environmental_efficiency_rating": 4
|
||||
}
|
||||
],
|
||||
"has_hot_water_cylinder": "false",
|
||||
"heating_cost_potential": {
|
||||
"value": 269,
|
||||
"currency": "GBP"
|
||||
},
|
||||
"hot_water_cost_current": {
|
||||
"value": 94,
|
||||
"currency": "GBP"
|
||||
},
|
||||
"thermal_mass_parameter": 64,
|
||||
"user_interface_version": "2.21.9",
|
||||
"co2_emissions_potential": 0.2,
|
||||
"energy_rating_potential": 92,
|
||||
"gas_smart_meter_present": "false",
|
||||
"lighting_cost_potential": {
|
||||
"value": 51,
|
||||
"currency": "GBP"
|
||||
},
|
||||
"schema_version_original": "SAP-Schema-19.1.0",
|
||||
"hot_water_cost_potential": {
|
||||
"value": 94,
|
||||
"currency": "GBP"
|
||||
},
|
||||
"is_in_smoke_control_area": "unknown",
|
||||
"seller_commission_report": "Y",
|
||||
"energy_consumption_current": 35,
|
||||
"has_fixed_air_conditioning": "false",
|
||||
"is_dwelling_export_capable": "true",
|
||||
"multiple_glazed_percentage": 100,
|
||||
"calculation_software_version": "2.21.9",
|
||||
"energy_consumption_potential": 35,
|
||||
"environmental_impact_current": 97,
|
||||
"current_energy_efficiency_band": "A",
|
||||
"environmental_impact_potential": 97,
|
||||
"electricity_smart_meter_present": "true",
|
||||
"has_heated_separate_conservatory": "false",
|
||||
"potential_energy_efficiency_band": "A",
|
||||
"co2_emissions_current_per_floor_area": 2.6
|
||||
}
|
||||
|
|
@ -309,6 +309,29 @@ _EXPECTATIONS: Final[tuple[RealCertExpectation, ...]] = (
|
|||
cert_num="0390-3321-6060-2405-7985",
|
||||
sap_score=84,
|
||||
),
|
||||
# UPRN 10094615101 → cert 0380-3044-6070-2305-5925. SAP-Schema-19.1.0 — a
|
||||
# FULL-SAP TOP-FLOOR FLAT (2023 new build, St Leonards-on-Sea, TFA 76 m²,
|
||||
# PRD #1435 WS3 evidence property 741840): PCDB HHRSH (230003 ×4) on an
|
||||
# off-peak tariff, hot-water heat pump (code 914) + WWHRS, MEV (PCDB
|
||||
# 500298), measured AP50 4.65, calculated per-junction thermal bridges, and
|
||||
# a 1.26 kWp EXPORT-CAPABLE PV array (`is_dwelling_export_capable: true`,
|
||||
# pv_connection 2). Lodged under SAP 10.2 itself (Design SAP 10 2.21.9), so
|
||||
# the lodged 92 is the same-spec accredited ground truth — no Elmhurst
|
||||
# rebuild needed. The engine produced 89 until the full-SAP export-capable
|
||||
# mapping landed: `from_sap_schema_17_1` hardcoded
|
||||
# `is_dwelling_export_capable=False` (the flag and `pv_connection` are
|
||||
# top-level full-SAP fields the schema dataclass never parsed), so SAP 10.2
|
||||
# Appendix M1 zeroed the PV export credit (~460 kWh × 13.19p ≈ £61/yr).
|
||||
# Carrying the lodged flag restores the credit and the engine reproduces
|
||||
# the lodged 92 EXACTLY. Residual CO2/PE deltas (~252 vs ~200 kg CO2/yr;
|
||||
# PE 41.7 vs 35) are demand-side follow-ups (lodged TMP 64 vs default 250,
|
||||
# WWHRS, MEV PCDB fan power) — within SAP tolerance, tracked separately.
|
||||
RealCertExpectation(
|
||||
schema="SAP-Schema-19.1.0",
|
||||
sample="uprn_10094615101",
|
||||
cert_num="0380-3044-6070-2305-5925",
|
||||
sap_score=92,
|
||||
),
|
||||
# UPRN 44012843 → cert 0775-2898-6628-9594-8005. SAP-Schema-16.3 — a
|
||||
# reduced-field (RdSAP-shaped) ground-floor FLAT, band K (2007-2011), cavity
|
||||
# insulated, mains-gas REGULAR boiler (PCDB 9895 Ideal icos HE15) + cylinder,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue