diff --git a/.claude/skills/expand-sap-accuracy-corpus/worklist.md b/.claude/skills/expand-sap-accuracy-corpus/worklist.md index 58f3b9842..f797cfe81 100644 --- a/.claude/skills/expand-sap-accuracy-corpus/worklist.md +++ b/.claude/skills/expand-sap-accuracy-corpus/worklist.md @@ -385,3 +385,41 @@ Skip the ๐Ÿšฉ MVHR / ๐Ÿšฉ heat-pump-fuel and โ›” sparse certs. - [โš ] 10090343767 โ€” SAP-17.0 ยท eng 79 / lodged 91 ยท ๐Ÿšฉ MVHR idx 500352 not credited (flagged) - [ ] 10090845805 โ€” SAP-17.0 ยท eng 82 / lodged 87 - [ ] 10013924858 โ€” SAP-17.0 ยท eng 81 / lodged 84 + +# SAP-Schema-15.0 mapper validation (task a40e71c4-fd56-4a33-8677-e8643e6a5bb4) +๐Ÿ”ง New schema โ€” `from_sap_schema_15_0` added in mapper.py (PR #1531). No +Elmhurst rebuild done for this batch โ€” and unlike every other entry in this +file, **lodged is NOT the comparison target here**: these are 2011 SAP-2009 +lodgements, but this calculator implements current RdSAP10, which has since +revised several U-value tables. A gap from lodged is expected either way and +is not, by itself, evidence of a mapper bug โ€” nor is closeness to lodged +evidence of correctness. What this batch actually validates: all 20 +structurally distinct real certs (different fuels, meters, secondary-heating +types, wall constructions) map without error and produce plausible scores +through `from_sap_schema_15_0`'s three schema-wide defaults. The 4 solid-brick +cases below show the largest gap from lodged; `u_wall` was spot-checked +directly against RdSAP10 Table 6 for that construction/age band and returns +the spec-correct value, so at minimum the wall U-value lookup isn't the +source. Real accuracy validation (engine vs Elmhurst on the SAME RdSAP10 +methodology) is still open โ€” see comment in test_real_cert_sap_accuracy.py. +All 20 pinned as `RealCertExpectation`s to the engine's OWN observed output. +- [x] ๐Ÿ”ง 100010359769 โ€” SAP-15.0 ยท eng 68 (2011 lodged 68, not a target) +- [x] ๐Ÿ”ง 100010359788 โ€” SAP-15.0 ยท eng 72 (2011 lodged 73, not a target) +- [x] ๐Ÿ” 100010086084 โ€” SAP-15.0 ยท eng 53, Elmhurst worksheet 51 (2011 lodged 45, not a target) ยท FULL Elmhurst RdSAP10 rebuild REDONE 2026-07-10 โ€” the prior 46/48 readings were CONTAMINATED (stale open-chimneys=2 and wall-thickness=280mm carried over from a PRIOR cert build in the shared Elmhurst session; the build script never explicitly zeroed `TextBoxOpenChimneys`). Fixed the build script (explicit chimney zeroing + wall thickness set to 220mm, since `CheckBoxWallThicknessUnknown` doesn't persist via Playwright and leaving it blank makes the Walls section invalid) and a real build-script bug (`ref.input_value()` truthiness check treated the string `"0"` as truthy, causing spurious navigation to Home.aspx that broke the SpaceHeating nav). Clean rebuild: eng 53 vs Elmhurst 51 โ€” only a ~2pt gap now (was ~5-7pt). No mapper.py change was needed/made โ€” the gov-API mapper's open_chimneys_count=0 was correct all along; the register itself lodges open_fireplaces_count=0. Remaining ~2pt gap not chased further: single-window-orientation approximation (South, max solar gain) plus untriaged minor divergences. FOLLOW-UP (2026-07-10): root-caused + fixed the cylinder_size / boiler_flue_type mismatches, both (a) Elmhurst input errors (same silent-stale-value class as chimneys/wall-thickness) โ€” build script's cylinder-size select assumed option VALUE==numeric code, but this DOM's option values are the visible litre-band text, so it silently no-opped and left a prior cert's "Medium" selected (fixed: match by text, "Normal"); the boiler-code dialog's combined "Balanced/Open Flue" category doesn't drive the separate FlueType field, which was left at a stale "Balanced" (fixed: explicit select to "Open"). Added mapper dict entries for the litre-suffixed cylinder labels (mapper.py `_ELMHURST_CYLINDER_SIZE_LABEL_TO_SAP10`). boiler_flue_type isn't consumed by the calculator at all (ML/generator-only), so zero SAP-score effect; cylinder fix moved Elmhurst-PDF-inputs SAP 46โ†’47 only. gov-API SAP (53) and Elmhurst worksheet (51) unchanged. Full suite re-run clean (67 passed/67 skipped/1 xfailed). FOLLOW-UP (2026-07-10, multi-orientation window attempt): tried rebuilding Openings as 4 separate N/E/S/W rows (2.516 mยฒ each, matching gov-API `sap_windows` codes 1/3/5/7) instead of 1 combined South row, to test whether it closes the residual ~2pt gap. CONFIRMED LIVE the documented `elmhurst_lib.py` window-grid limitation: adding a 2nd row wipes the previously-added row's width/height to 0.00 (reproduced with both same-session and fresh-session-per-window attempts) โ€” not fixable via this tool's current Playwright automation. Assessment restored to the original single South 10.06 mยฒ row (no PDFs re-downloaded, nothing changed on Elmhurst's side). Separately confirmed our OWN engine already models this cert's 4 windows per-orientation correctly from the gov-API `sap_windows` (N/E/S/W) via `solar_gains.py`'s `ORIENTATION_BY_SAP10_CODE` cascade โ€” not an engine bug, purely an Elmhurst build-tooling ceiling. Conclusion: the ~2pt gap (eng 53 vs Elmhurst worksheet 51) is accepted as closed-out/final for this cert โ€” a ground-truth construction limit, not a mapper or calculator defect. sap_score=53 expectation unchanged, no calculator/mapper code changes. See test_real_cert_sap_accuracy.py comment for full detail. +- [x] ๐Ÿ”ง 100010090369 โ€” SAP-15.0 ยท eng 53 (2011 lodged 47, not a target) ยท ditto +- [x] ๐Ÿ”ง 100010074470 โ€” SAP-15.0 ยท eng 46 (2011 lodged 39, not a target) ยท ditto +- [x] ๐Ÿ”ง 100010100813 โ€” SAP-15.0 ยท eng 59 (2011 lodged 47, not a target) ยท ditto +- [x] ๐Ÿ”ง 77179816 โ€” SAP-15.0 ยท eng 76 (2011 lodged 75, not a target) +- [x] ๐Ÿ”ง 10070400619 โ€” SAP-15.0 ยท eng 77 (2011 lodged 77, not a target) +- [x] ๐Ÿ”ง 77179820 โ€” SAP-15.0 ยท eng 77 (2011 lodged 77, not a target) +- [x] ๐Ÿ”ง 10070394806 โ€” SAP-15.0 ยท eng 78 (2011 lodged 77, not a target) +- [x] ๐Ÿ”ง 77181233 โ€” SAP-15.0 ยท eng 68 (2011 lodged 69, not a target) +- [x] ๐Ÿ”ง 77180626 โ€” SAP-15.0 ยท eng 68 (2011 lodged 68, not a target) +- [x] ๐Ÿ”ง 10070400618 โ€” SAP-15.0 ยท eng 70 (2011 lodged 69, not a target) +- [x] ๐Ÿ”ง 100010350459 โ€” SAP-15.0 ยท eng 65 (2011 lodged 65, not a target) +- [x] ๐Ÿ”ง 100010350468 โ€” SAP-15.0 ยท eng 66 (2011 lodged 66, not a target) +- [x] ๐Ÿ”ง 100010333531 โ€” SAP-15.0 ยท eng 73 (2011 lodged 74, not a target) +- [x] ๐Ÿ”ง 100010341489 โ€” SAP-15.0 ยท eng 65 (2011 lodged 64, not a target) +- [x] ๐Ÿ”ง 100010341491 โ€” SAP-15.0 ยท eng 62 (2011 lodged 59, not a target) +- [x] ๐Ÿ”ง 100010347646 โ€” SAP-15.0 ยท eng 75 (2011 lodged 75, not a target) +- [x] ๐Ÿ”ง 100010347637 โ€” SAP-15.0 ยท eng 72 (2011 lodged 72, not a target) diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010074470/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010074470/epc.json new file mode 100644 index 000000000..973dd30bd --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010074470/epc.json @@ -0,0 +1,299 @@ +{ + "uprn": 100010074470, + "roofs": [ + { + "description": "Pitched, 75 mm loft insulation", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "walls": [ + { + "description": "Solid brick, as built, no insulation (assumed)", + "energy_efficiency_rating": 1, + "environmental_efficiency_rating": 1 + } + ], + "floors": [ + { + "description": "Solid, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Some double glazing", + "energy_efficiency_rating": 2, + "environmental_efficiency_rating": 2 + } + ], + "lighting": { + "description": "Low energy lighting in 78% of fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "CW2 7RZ", + "hot_water": { + "description": "From main system, no cylinderstat", + "energy_efficiency_rating": 2, + "environmental_efficiency_rating": 2 + }, + "post_town": "CREWE", + "built_form": 2, + "created_at": "2012-02-28 17:44:26", + "glazed_area": 1, + "region_code": 9, + "report_type": 2, + "sap_heating": { + "cylinder_size": 2, + "water_heating_code": 901, + "water_heating_fuel": 26, + "cylinder_thermostat": "N", + "secondary_fuel_type": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 1, + "fan_flue_present": "N", + "heat_emitter_type": 1, + "main_heating_number": 1, + "main_heating_control": 2104, + "main_heating_category": 2, + "main_heating_fraction": 1, + "sap_main_heating_code": 119, + "main_heating_data_source": 2 + } + ], + "secondary_heating_type": 604, + "cylinder_insulation_type": 2, + "has_fixed_air_conditioning": "false", + "cylinder_insulation_thickness": 38 + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 3 + } + ], + "dwelling_type": "Semi-detached house", + "language_code": 1, + "property_type": 0, + "address_line_1": "23, Davenham Crescent", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2012-02-28", + "inspection_date": "2012-02-28", + "extensions_count": 0, + "measurement_type": 2, + "total_floor_area": 87, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 4, + "registration_date": "2012-02-28", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "Room heaters, mains gas", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 3, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.62, + "floor_insulation": 1, + "total_floor_area": 49.83, + "floor_construction": 1, + "heat_loss_perimeter": 22.56 + }, + { + "floor": 1, + "room_height": 2.5, + "total_floor_area": 48.18, + "heat_loss_perimeter": 21.36 + } + ], + "wall_insulation_type": 4, + "construction_age_band": "B", + "roof_insulation_location": 2, + "roof_insulation_thickness": "75mm" + } + ], + "low_energy_lighting": 78, + "solar_water_heating": "N", + "bedf_revision_number": 317, + "habitable_room_count": 4, + "heating_cost_current": 1042, + "co2_emissions_current": 7.1, + "energy_rating_current": 39, + "lighting_cost_current": 57, + "main_heating_controls": [ + { + "description": "Programmer and room thermostat", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "multiple_glazing_type": 3, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "true", + "heating_cost_potential": 762, + "hot_water_cost_current": 245, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 30, + "indicative_cost": "?100 - ?300", + "improvement_type": "A", + "improvement_details": { + "improvement_number": 5 + }, + "improvement_category": 1, + "energy_performance_rating": 40, + "environmental_impact_rating": 37 + }, + { + "sequence": 2, + "typical_saving": 30, + "indicative_cost": "?15 - ?30", + "improvement_type": "C", + "improvement_details": { + "improvement_number": 2 + }, + "improvement_category": 1, + "energy_performance_rating": 42, + "environmental_impact_rating": 38 + }, + { + "sequence": 3, + "typical_saving": 107, + "indicative_cost": "?200 - ?400", + "improvement_type": "F", + "improvement_details": { + "improvement_number": 4 + }, + "improvement_category": 1, + "energy_performance_rating": 46, + "environmental_impact_rating": 42 + }, + { + "sequence": 4, + "typical_saving": 32, + "indicative_cost": "?350 - ?450", + "improvement_type": "G", + "improvement_details": { + "improvement_number": 13 + }, + "improvement_category": 1, + "energy_performance_rating": 48, + "environmental_impact_rating": 43 + }, + { + "sequence": 5, + "typical_saving": 226, + "indicative_cost": "?1,500 - ?3,500", + "improvement_type": "I", + "improvement_details": { + "improvement_number": 20 + }, + "improvement_category": 2, + "energy_performance_rating": 58, + "environmental_impact_rating": 54 + }, + { + "sequence": 6, + "typical_saving": 33, + "indicative_cost": "?4,000 - ?6,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 60, + "environmental_impact_rating": 56 + }, + { + "sequence": 7, + "typical_saving": 54, + "indicative_cost": "?2,500 - ?6,500", + "improvement_type": "O", + "improvement_details": { + "improvement_number": 8 + }, + "improvement_category": 3, + "energy_performance_rating": 62, + "environmental_impact_rating": 59 + }, + { + "sequence": 8, + "typical_saving": 243, + "indicative_cost": "?5,500 - ?14,500", + "improvement_type": "Q", + "improvement_details": { + "improvement_number": 7 + }, + "improvement_category": 3, + "energy_performance_rating": 72, + "environmental_impact_rating": 73 + }, + { + "sequence": 9, + "typical_saving": 219, + "indicative_cost": "?11,000 - ?20,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 82, + "environmental_impact_rating": 82 + } + ], + "co2_emissions_potential": 4.6, + "energy_rating_potential": 58, + "lighting_cost_potential": 57, + "hot_water_cost_potential": 101, + "renewable_heat_incentive": { + "water_heating": 4086, + "space_heating_existing_dwelling": 17203, + "space_heating_with_loft_insulation": 16856, + "space_heating_with_loft_and_cavity_insulation": 16856 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 421, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 30, + "calculation_software_version": "1.3.1.0", + "energy_consumption_potential": 273, + "environmental_impact_current": 36, + "fixed_lighting_outlets_count": 9, + "current_energy_efficiency_band": "E", + "environmental_impact_potential": 54, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "D", + "co2_emissions_current_per_floor_area": 81, + "low_energy_fixed_lighting_outlets_count": 7 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010086084/elmhurst_summary.pdf b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010086084/elmhurst_summary.pdf new file mode 100644 index 000000000..6ce8e8ebb Binary files /dev/null and b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010086084/elmhurst_summary.pdf differ diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010086084/elmhurst_worksheet.pdf b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010086084/elmhurst_worksheet.pdf new file mode 100644 index 000000000..00c6fb183 Binary files /dev/null and b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010086084/elmhurst_worksheet.pdf differ diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010086084/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010086084/epc.json new file mode 100644 index 000000000..e2d4ab3b9 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010086084/epc.json @@ -0,0 +1,286 @@ +{ + "uprn": 100010086084, + "roofs": [ + { + "description": "Pitched, 300+ mm loft insulation", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + } + ], + "walls": [ + { + "description": "Solid brick, as built, no insulation (assumed)", + "energy_efficiency_rating": 1, + "environmental_efficiency_rating": 1 + } + ], + "floors": [ + { + "description": "Solid, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Partial double glazing", + "energy_efficiency_rating": 2, + "environmental_efficiency_rating": 2 + } + ], + "lighting": { + "description": "Low energy lighting in 43% of fixed outlets", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + }, + "postcode": "CW1 3SH", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + }, + "post_town": "CREWE", + "built_form": 2, + "created_at": "2011-12-14 15:24:30", + "glazed_area": 1, + "region_code": 9, + "report_type": 2, + "sap_heating": { + "cylinder_size": 2, + "water_heating_code": 901, + "water_heating_fuel": 26, + "cylinder_thermostat": "Y", + "secondary_fuel_type": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 1, + "fan_flue_present": "N", + "heat_emitter_type": 1, + "main_heating_number": 1, + "main_heating_control": 2104, + "main_heating_category": 2, + "main_heating_fraction": 1, + "sap_main_heating_code": 115, + "main_heating_data_source": 2 + } + ], + "secondary_heating_type": 603, + "cylinder_insulation_type": 1, + "has_fixed_air_conditioning": "false", + "cylinder_insulation_thickness": 25 + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 3 + } + ], + "dwelling_type": "Semi-detached house", + "language_code": 1, + "property_type": 0, + "address_line_1": "9, Pear Tree Avenue", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-12-14", + "inspection_date": "2011-12-13", + "extensions_count": 0, + "measurement_type": 2, + "total_floor_area": 68, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 3, + "registration_date": "2011-12-14", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "Room heaters, mains gas", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 3, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.41, + "floor_insulation": 0, + "total_floor_area": 37.74, + "floor_construction": 1, + "heat_loss_perimeter": 21.05 + }, + { + "floor": 1, + "room_height": 2.45, + "total_floor_area": 39.48, + "heat_loss_perimeter": 18.45 + } + ], + "wall_insulation_type": 4, + "construction_age_band": "C", + "roof_insulation_location": 2, + "roof_insulation_thickness": "300mm+" + } + ], + "low_energy_lighting": 43, + "solar_water_heating": "N", + "bedf_revision_number": 316, + "habitable_room_count": 3, + "heating_cost_current": 816, + "co2_emissions_current": 5.2, + "energy_rating_current": 45, + "lighting_cost_current": 59, + "main_heating_controls": [ + { + "description": "Programmer and room thermostat", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "multiple_glazing_type": 1, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "true", + "heating_cost_potential": 647, + "hot_water_cost_current": 146, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 18, + "indicative_cost": "?10", + "improvement_type": "E", + "improvement_details": { + "improvement_number": 35 + }, + "improvement_category": 1, + "energy_performance_rating": 46, + "environmental_impact_rating": 43 + }, + { + "sequence": 2, + "typical_saving": 20, + "indicative_cost": "?350 - ?450", + "improvement_type": "G", + "improvement_details": { + "improvement_number": 13 + }, + "improvement_category": 1, + "energy_performance_rating": 47, + "environmental_impact_rating": 44 + }, + { + "sequence": 3, + "typical_saving": 193, + "indicative_cost": "?1,500 - ?3,500", + "improvement_type": "I", + "improvement_details": { + "improvement_number": 20 + }, + "improvement_category": 2, + "energy_performance_rating": 58, + "environmental_impact_rating": 54 + }, + { + "sequence": 4, + "typical_saving": 33, + "indicative_cost": "?4,000 - ?6,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 59, + "environmental_impact_rating": 57 + }, + { + "sequence": 5, + "typical_saving": 40, + "indicative_cost": "?2,500 - ?6,500", + "improvement_type": "O", + "improvement_details": { + "improvement_number": 8 + }, + "improvement_category": 3, + "energy_performance_rating": 62, + "environmental_impact_rating": 59 + }, + { + "sequence": 6, + "typical_saving": 207, + "indicative_cost": "?5,500 - ?14,500", + "improvement_type": "Q", + "improvement_details": { + "improvement_number": 7 + }, + "improvement_category": 3, + "energy_performance_rating": 72, + "environmental_impact_rating": 73 + }, + { + "sequence": 7, + "typical_saving": 214, + "indicative_cost": "?11,000 - ?20,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 84, + "environmental_impact_rating": 84 + }, + { + "sequence": 8, + "typical_saving": 18, + "indicative_cost": "?1,500 - ?4,000", + "improvement_type": "V", + "improvement_details": { + "improvement_number": 44 + }, + "improvement_category": 3, + "energy_performance_rating": 85, + "environmental_impact_rating": 85 + } + ], + "co2_emissions_potential": 3.9, + "energy_rating_potential": 58, + "lighting_cost_potential": 38, + "hot_water_cost_potential": 105, + "renewable_heat_incentive": { + "water_heating": 2634, + "space_heating_existing_dwelling": 13795, + "space_heating_with_loft_and_cavity_insulation": 13795 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 396, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 50, + "calculation_software_version": "1.3.1.0", + "energy_consumption_potential": 295, + "environmental_impact_current": 42, + "fixed_lighting_outlets_count": 7, + "current_energy_efficiency_band": "E", + "environmental_impact_potential": 54, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "D", + "co2_emissions_current_per_floor_area": 76, + "low_energy_fixed_lighting_outlets_count": 3 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010090369/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010090369/epc.json new file mode 100644 index 000000000..742010b81 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010090369/epc.json @@ -0,0 +1,305 @@ +{ + "uprn": 100010090369, + "roofs": [ + { + "description": "Pitched, 200 mm loft insulation", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "walls": [ + { + "description": "Solid brick, as built, no insulation (assumed)", + "energy_efficiency_rating": 1, + "environmental_efficiency_rating": 1 + } + ], + "floors": [ + { + "description": "Suspended, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + { + "description": "Solid, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "No low energy lighting", + "energy_efficiency_rating": 1, + "environmental_efficiency_rating": 1 + }, + "postcode": "CW2 7RW", + "hot_water": { + "description": "From main system, no cylinder thermostat", + "energy_efficiency_rating": 2, + "environmental_efficiency_rating": 2 + }, + "post_town": "CREWE", + "built_form": 4, + "created_at": "2012-01-19 20:19:08", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 2, + "water_heating_code": 901, + "water_heating_fuel": 26, + "cylinder_thermostat": "N", + "secondary_fuel_type": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "heat_emitter_type": 1, + "main_heating_number": 1, + "main_heating_control": 2102, + "main_heating_category": 2, + "main_heating_fraction": 1, + "sap_main_heating_code": 119, + "main_heating_data_source": 2 + } + ], + "secondary_heating_type": 601, + "cylinder_insulation_type": 2, + "has_fixed_air_conditioning": "false", + "cylinder_insulation_thickness": 80 + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Mid-terrace house", + "language_code": 1, + "property_type": 0, + "address_line_1": "3, Stewart Street", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2012-01-19", + "inspection_date": "2012-01-19", + "extensions_count": 1, + "measurement_type": 1, + "total_floor_area": 80, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 3, + "registration_date": "2012-01-19", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 1, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 1 + }, + "secondary_heating": { + "description": "Room heaters, mains gas", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 3, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.78, + "floor_insulation": 1, + "total_floor_area": 32.92, + "floor_construction": 2, + "heat_loss_perimeter": 6.48 + }, + { + "floor": 1, + "room_height": 2.71, + "total_floor_area": 33.2, + "heat_loss_perimeter": 6.48 + } + ], + "wall_insulation_type": 4, + "construction_age_band": "A", + "roof_insulation_location": 2, + "roof_insulation_thickness": "200mm" + }, + { + "identifier": "Extension 1", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 3, + "building_part_number": 2, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.75, + "floor_insulation": 1, + "total_floor_area": 6.91, + "floor_construction": 1, + "heat_loss_perimeter": 5.28 + }, + { + "floor": 1, + "room_height": 2.39, + "total_floor_area": 6.9, + "heat_loss_perimeter": 5.25 + } + ], + "wall_insulation_type": 4, + "construction_age_band": "A", + "roof_insulation_location": 2, + "roof_insulation_thickness": "200mm" + } + ], + "low_energy_lighting": 0, + "solar_water_heating": "N", + "bedf_revision_number": 317, + "habitable_room_count": 4, + "heating_cost_current": 791, + "co2_emissions_current": 5.5, + "energy_rating_current": 47, + "lighting_cost_current": 95, + "main_heating_controls": [ + { + "description": "Programmer, no room thermostat", + "energy_efficiency_rating": 1, + "environmental_efficiency_rating": 1 + } + ], + "multiple_glazing_type": 1, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "true", + "heating_cost_potential": 570, + "hot_water_cost_current": 212, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 39, + "indicative_cost": "\u00a325", + "improvement_type": "E", + "improvement_details": { + "improvement_number": 35 + }, + "improvement_category": 1, + "energy_performance_rating": 49, + "environmental_impact_rating": 45 + }, + { + "sequence": 2, + "typical_saving": 33, + "indicative_cost": "\u00a3200 - \u00a3400", + "improvement_type": "F", + "improvement_details": { + "improvement_number": 4 + }, + "improvement_category": 1, + "energy_performance_rating": 50, + "environmental_impact_rating": 46 + }, + { + "sequence": 3, + "typical_saving": 144, + "indicative_cost": "\u00a3350 - \u00a3450", + "improvement_type": "G", + "improvement_details": { + "improvement_number": 12 + }, + "improvement_category": 1, + "energy_performance_rating": 57, + "environmental_impact_rating": 53 + }, + { + "sequence": 4, + "typical_saving": 153, + "indicative_cost": "\u00a31,500 - \u00a33,500", + "improvement_type": "I", + "improvement_details": { + "improvement_number": 20 + }, + "improvement_category": 2, + "energy_performance_rating": 65, + "environmental_impact_rating": 63 + }, + { + "sequence": 5, + "typical_saving": 33, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 66, + "environmental_impact_rating": 65 + }, + { + "sequence": 6, + "typical_saving": 123, + "indicative_cost": "\u00a35,500 - \u00a314,500", + "improvement_type": "Q", + "improvement_details": { + "improvement_number": 7 + }, + "improvement_category": 3, + "energy_performance_rating": 72, + "environmental_impact_rating": 73 + }, + { + "sequence": 7, + "typical_saving": 227, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 83, + "environmental_impact_rating": 83 + } + ], + "co2_emissions_potential": 3.5, + "energy_rating_potential": 65, + "lighting_cost_potential": 48, + "hot_water_cost_potential": 111, + "renewable_heat_incentive": { + "water_heating": 3531, + "space_heating_existing_dwelling": 11202, + "space_heating_with_loft_and_cavity_insulation": 11202 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 360, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": "19.06r14", + "energy_consumption_potential": 225, + "environmental_impact_current": 44, + "fixed_lighting_outlets_count": 10, + "current_energy_efficiency_band": "E", + "environmental_impact_potential": 63, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "D", + "co2_emissions_current_per_floor_area": 69, + "low_energy_fixed_lighting_outlets_count": 0 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010100813/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010100813/epc.json new file mode 100644 index 000000000..0829e2df5 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010100813/epc.json @@ -0,0 +1,274 @@ +{ + "uprn": 100010100813, + "roofs": [ + { + "description": "Pitched, 100 mm loft insulation", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "walls": [ + { + "description": "Solid brick, as built, no insulation (assumed)", + "energy_efficiency_rating": 1, + "environmental_efficiency_rating": 1 + } + ], + "floors": [ + { + "description": "Solid, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "lighting": { + "description": "Low energy lighting in all fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "CW5 5NJ", + "hot_water": { + "description": "From main system, no cylinderstat", + "energy_efficiency_rating": 2, + "environmental_efficiency_rating": 2 + }, + "post_town": "NANTWICH", + "built_form": 3, + "created_at": "2011-10-16 22:45:08", + "glazed_area": 1, + "region_code": 9, + "report_type": 2, + "sap_heating": { + "cylinder_size": 2, + "water_heating_code": 901, + "water_heating_fuel": 26, + "cylinder_thermostat": "N", + "secondary_fuel_type": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "main_heating_number": 1, + "main_heating_control": 2104, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 2 + } + ], + "secondary_heating_type": 603, + "cylinder_insulation_type": 1, + "has_fixed_air_conditioning": "false", + "cylinder_insulation_thickness": 25 + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "End-Terrace house", + "language_code": 1, + "property_type": 0, + "address_line_1": "15, Weaver Road", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-10-16", + "inspection_date": "2011-10-14", + "extensions_count": 0, + "measurement_type": 1, + "total_floor_area": 67, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 3, + "registration_date": "2011-10-16", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "Room heaters, mains gas", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 3, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.42, + "floor_insulation": 0, + "total_floor_area": 33.32, + "floor_construction": 1, + "heat_loss_perimeter": 16.6 + }, + { + "floor": 1, + "room_height": 2.58, + "total_floor_area": 33.32, + "heat_loss_perimeter": 16.6 + } + ], + "wall_insulation_type": 4, + "construction_age_band": "B", + "roof_insulation_location": 2, + "roof_insulation_thickness": "100mm" + } + ], + "low_energy_lighting": 100, + "solar_water_heating": "N", + "bedf_revision_number": 314, + "habitable_room_count": 3, + "heating_cost_current": 742, + "co2_emissions_current": 4.9, + "energy_rating_current": 47, + "lighting_cost_current": 37, + "main_heating_controls": [ + { + "description": "Programmer and room thermostat", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "multiple_glazing_type": 2, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "true", + "heating_cost_potential": 585, + "hot_water_cost_current": 197, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 85, + "indicative_cost": "?200 - ?400", + "improvement_type": "F", + "improvement_details": { + "improvement_number": 4 + }, + "improvement_category": 1, + "energy_performance_rating": 52, + "environmental_impact_rating": 48 + }, + { + "sequence": 2, + "typical_saving": 24, + "indicative_cost": "?350 - ?450", + "improvement_type": "G", + "improvement_details": { + "improvement_number": 13 + }, + "improvement_category": 1, + "energy_performance_rating": 53, + "environmental_impact_rating": 49 + }, + { + "sequence": 3, + "typical_saving": 139, + "indicative_cost": "?1,500 - ?3,500", + "improvement_type": "I", + "improvement_details": { + "improvement_number": 20 + }, + "improvement_category": 2, + "energy_performance_rating": 61, + "environmental_impact_rating": 58 + }, + { + "sequence": 4, + "typical_saving": 33, + "indicative_cost": "?4,000 - ?6,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 63, + "environmental_impact_rating": 60 + }, + { + "sequence": 5, + "typical_saving": 177, + "indicative_cost": "?5,500 - ?14,500", + "improvement_type": "Q", + "improvement_details": { + "improvement_number": 7 + }, + "improvement_category": 3, + "energy_performance_rating": 72, + "environmental_impact_rating": 73 + }, + { + "sequence": 6, + "typical_saving": 214, + "indicative_cost": "?11,000 - ?20,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 83, + "environmental_impact_rating": 84 + }, + { + "sequence": 7, + "typical_saving": 18, + "indicative_cost": "?1,500 - ?4,000", + "improvement_type": "V", + "improvement_details": { + "improvement_number": 44 + }, + "improvement_category": 3, + "energy_performance_rating": 84, + "environmental_impact_rating": 85 + } + ], + "co2_emissions_potential": 3.5, + "energy_rating_potential": 61, + "lighting_cost_potential": 37, + "hot_water_cost_potential": 105, + "renewable_heat_incentive": { + "water_heating": 3413, + "space_heating_existing_dwelling": 11875, + "space_heating_with_loft_insulation": 11728, + "space_heating_with_loft_and_cavity_insulation": 11728 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 383, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": "1.3.1.0", + "energy_consumption_potential": 271, + "environmental_impact_current": 44, + "fixed_lighting_outlets_count": 9, + "current_energy_efficiency_band": "E", + "environmental_impact_potential": 58, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "D", + "co2_emissions_current_per_floor_area": 74, + "low_energy_fixed_lighting_outlets_count": 9 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010333531/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010333531/epc.json new file mode 100644 index 000000000..96678f6eb --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010333531/epc.json @@ -0,0 +1,207 @@ +{ + "uprn": 100010333531, + "roofs": [ + { + "description": "Pitched, 200 mm loft insulation", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "walls": [ + { + "description": "Cavity wall, filled cavity", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "(other premises below)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in 29% of fixed outlets", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + }, + "postcode": "BB10 4NX", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "BURNLEY", + "built_form": 3, + "created_at": "2011-11-14 07:10:26", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 8358, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Top-floor maisonette", + "language_code": 1, + "property_type": 3, + "address_line_1": "13, Chatburn Avenue", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-11-14", + "inspection_date": "2011-11-14", + "extensions_count": 0, + "measurement_type": 1, + "sap_flat_details": { + "level": 3, + "top_storey": "Y", + "flat_location": 1, + "heat_loss_corridor": 0 + }, + "total_floor_area": 70, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 2, + "registration_date": "2011-11-14", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "None", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 6, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.48, + "total_floor_area": 70, + "heat_loss_perimeter": 25.8 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "E", + "roof_insulation_location": 2, + "roof_insulation_thickness": "200mm" + } + ], + "low_energy_lighting": 29, + "solar_water_heating": "N", + "bedf_revision_number": 315, + "habitable_room_count": 2, + "heating_cost_current": 338, + "co2_emissions_current": 2.1, + "energy_rating_current": 74, + "lighting_cost_current": 69, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 1, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": 320, + "hot_water_cost_current": 92, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 24, + "indicative_cost": "\u00a313", + "improvement_type": "E", + "improvement_details": { + "improvement_number": 35 + }, + "improvement_category": 1, + "energy_performance_rating": 75, + "environmental_impact_rating": 77 + }, + { + "sequence": 2, + "typical_saving": 33, + "indicative_cost": "\u00a31,500 - \u00a33,500", + "improvement_type": "I", + "improvement_details": { + "improvement_number": 20 + }, + "improvement_category": 2, + "energy_performance_rating": 77, + "environmental_impact_rating": 79 + } + ], + "co2_emissions_potential": 1.8, + "energy_rating_potential": 77, + "lighting_cost_potential": 40, + "hot_water_cost_potential": 81, + "renewable_heat_incentive": { + "water_heating": 2005, + "space_heating_existing_dwelling": 4620, + "space_heating_with_loft_and_cavity_insulation": 4620 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 158, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": "19.05r18", + "energy_consumption_potential": 136, + "environmental_impact_current": 75, + "fixed_lighting_outlets_count": 7, + "current_energy_efficiency_band": "C", + "environmental_impact_potential": 79, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": 30, + "low_energy_fixed_lighting_outlets_count": 2 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010341489/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010341489/epc.json new file mode 100644 index 000000000..0e2736e1c --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010341489/epc.json @@ -0,0 +1,198 @@ +{ + "uprn": 100010341489, + "roofs": [ + { + "description": "(another dwelling above)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "walls": [ + { + "description": "Cavity wall, as built, no insulation (assumed)", + "energy_efficiency_rating": 2, + "environmental_efficiency_rating": 2 + } + ], + "floors": [ + { + "description": "Suspended, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in all fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "BB11 4EB", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "BURNLEY", + "built_form": 3, + "created_at": "2012-01-23 08:15:11", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 10110, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Ground-floor maisonette", + "language_code": 1, + "property_type": 3, + "address_line_1": "83, Harold Street", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2012-01-23", + "inspection_date": "2012-01-23", + "extensions_count": 0, + "measurement_type": 1, + "sap_flat_details": { + "level": 1, + "top_storey": "N", + "flat_location": 0, + "heat_loss_corridor": 0 + }, + "total_floor_area": 43, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 3, + "registration_date": "2012-01-23", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "None", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 3, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.6, + "floor_insulation": 1, + "total_floor_area": 42.7, + "floor_construction": 2, + "heat_loss_perimeter": 23 + } + ], + "wall_insulation_type": 4, + "construction_age_band": "C", + "roof_insulation_location": "ND", + "roof_insulation_thickness": "ND" + } + ], + "low_energy_lighting": 100, + "solar_water_heating": "N", + "bedf_revision_number": 317, + "habitable_room_count": 3, + "heating_cost_current": 408, + "co2_emissions_current": 2.3, + "energy_rating_current": 64, + "lighting_cost_current": 26, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 1, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": 321, + "hot_water_cost_current": 84, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 87, + "indicative_cost": "\u00a3100 - \u00a3300", + "improvement_type": "B", + "improvement_details": { + "improvement_number": 6 + }, + "improvement_category": 1, + "energy_performance_rating": 70, + "environmental_impact_rating": 73 + } + ], + "co2_emissions_potential": 1.8, + "energy_rating_potential": 70, + "lighting_cost_potential": 26, + "hot_water_cost_potential": 84, + "renewable_heat_incentive": { + "water_heating": 2051, + "space_heating_existing_dwelling": 6808, + "space_heating_with_cavity_insulation": 4625, + "space_heating_with_loft_and_cavity_insulation": 4625 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 279, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": "19.06r14", + "energy_consumption_potential": 217, + "environmental_impact_current": 65, + "fixed_lighting_outlets_count": 4, + "current_energy_efficiency_band": "D", + "environmental_impact_potential": 73, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": 54, + "low_energy_fixed_lighting_outlets_count": 4 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010341491/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010341491/epc.json new file mode 100644 index 000000000..e33bd3d61 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010341491/epc.json @@ -0,0 +1,247 @@ +{ + "uprn": 100010341491, + "roofs": [ + { + "description": "Pitched, 200 mm loft insulation", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "walls": [ + { + "description": "Cavity wall, as built, no insulation (assumed)", + "energy_efficiency_rating": 1, + "environmental_efficiency_rating": 1 + }, + { + "description": "Timber frame, as built, no insulation (assumed)", + "energy_efficiency_rating": 1, + "environmental_efficiency_rating": 1 + } + ], + "floors": [ + { + "description": "Suspended, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in 88% of fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "BB11 4EB", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "BURNLEY", + "built_form": 2, + "created_at": "2012-01-26 20:02:54", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "secondary_fuel_type": 29, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 10315, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "secondary_heating_type": 691, + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Semi-detached house", + "language_code": 1, + "property_type": 0, + "address_line_1": "87, Harold Street", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2012-01-26", + "inspection_date": "2012-01-26", + "extensions_count": 0, + "measurement_type": 1, + "total_floor_area": 63, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 4, + "registration_date": "2012-01-26", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "Room heaters, electric", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.5, + "floor_insulation": 1, + "total_floor_area": 31.58, + "floor_construction": 2, + "heat_loss_perimeter": 16 + }, + { + "floor": 1, + "room_height": 2.5, + "total_floor_area": 31.58, + "heat_loss_perimeter": 16 + } + ], + "wall_insulation_type": 4, + "construction_age_band": "C", + "roof_insulation_location": 2, + "roof_insulation_thickness": "200mm" + }, + { + "wall_area": 27.5, + "wall_location": 0, + "wall_construction": 5, + "wall_insulation_type": 4 + } + ], + "low_energy_lighting": 88, + "solar_water_heating": "N", + "bedf_revision_number": 317, + "habitable_room_count": 4, + "heating_cost_current": 614, + "co2_emissions_current": 3.3, + "energy_rating_current": 59, + "lighting_cost_current": 41, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 1, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": 534, + "hot_water_cost_current": 75, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 79, + "indicative_cost": "\u00a3100 - \u00a3300", + "improvement_type": "B", + "improvement_details": { + "improvement_number": 6 + }, + "improvement_category": 1, + "energy_performance_rating": 64, + "environmental_impact_rating": 65 + }, + { + "sequence": 2, + "typical_saving": 22, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 65, + "environmental_impact_rating": 67 + }, + { + "sequence": 3, + "typical_saving": 219, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 77, + "environmental_impact_rating": 78 + }, + { + "sequence": 4, + "typical_saving": 18, + "indicative_cost": "\u00a31,500 - \u00a34,000", + "improvement_type": "V", + "improvement_details": { + "improvement_number": 44 + }, + "improvement_category": 3, + "energy_performance_rating": 78, + "environmental_impact_rating": 79 + } + ], + "co2_emissions_potential": 2.8, + "energy_rating_potential": 64, + "lighting_cost_potential": 41, + "hot_water_cost_potential": 76, + "renewable_heat_incentive": { + "water_heating": 1910, + "space_heating_existing_dwelling": 9884, + "space_heating_with_cavity_insulation": 8246, + "space_heating_with_loft_and_cavity_insulation": 8246 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 273, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": "19.06r14", + "energy_consumption_potential": 238, + "environmental_impact_current": 59, + "fixed_lighting_outlets_count": 8, + "current_energy_efficiency_band": "D", + "environmental_impact_potential": 65, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "D", + "co2_emissions_current_per_floor_area": 52, + "low_energy_fixed_lighting_outlets_count": 7 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010347637/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010347637/epc.json new file mode 100644 index 000000000..f95b4a741 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010347637/epc.json @@ -0,0 +1,249 @@ +{ + "uprn": 100010347637, + "roofs": [ + { + "description": "Pitched, 200 mm loft insulation", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "walls": [ + { + "description": "System built, with external insulation", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + { + "description": "Cavity wall, filled cavity", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "Solid, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in 50% of fixed outlets", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "postcode": "BB12 7DT", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "BURNLEY", + "built_form": 3, + "created_at": "2011-10-17 19:02:44", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 10031, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "End-terrace house", + "language_code": 1, + "property_type": 0, + "address_line_1": "45, Malvern Avenue", + "address_line_2": "Padiham", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-10-17", + "inspection_date": "2011-10-17", + "extensions_count": 1, + "measurement_type": 1, + "total_floor_area": 89, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 5, + "registration_date": "2011-10-17", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "None", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 8, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.3, + "floor_insulation": 1, + "total_floor_area": 42.3, + "floor_construction": 1, + "heat_loss_perimeter": 18.47 + }, + { + "floor": 1, + "room_height": 2.3, + "total_floor_area": 42.37, + "heat_loss_perimeter": 21 + } + ], + "wall_insulation_type": 1, + "construction_age_band": "E", + "roof_insulation_location": 2, + "roof_insulation_thickness": "200mm" + }, + { + "identifier": "Extension 1", + "floor_heat_loss": 7, + "roof_construction": 5, + "wall_construction": 4, + "building_part_number": 2, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 1.9, + "floor_insulation": 1, + "total_floor_area": 4.28, + "floor_construction": 1, + "heat_loss_perimeter": 6 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "E", + "roof_insulation_location": 4, + "roof_insulation_thickness": "NI" + } + ], + "low_energy_lighting": 50, + "solar_water_heating": "N", + "bedf_revision_number": 313, + "habitable_room_count": 5, + "heating_cost_current": 472, + "co2_emissions_current": 2.9, + "energy_rating_current": 72, + "lighting_cost_current": 70, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 1, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": 476, + "hot_water_cost_current": 87, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 20, + "indicative_cost": "\u00a313", + "improvement_type": "E", + "improvement_details": { + "improvement_number": 35 + }, + "improvement_category": 1, + "energy_performance_rating": 73, + "environmental_impact_rating": 72 + }, + { + "sequence": 2, + "typical_saving": 25, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 74, + "environmental_impact_rating": 74 + }, + { + "sequence": 3, + "typical_saving": 214, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 83, + "environmental_impact_rating": 83 + } + ], + "co2_emissions_potential": 2.8, + "energy_rating_potential": 73, + "lighting_cost_potential": 47, + "hot_water_cost_potential": 87, + "renewable_heat_incentive": { + "water_heating": 2183, + "space_heating_existing_dwelling": 8680, + "space_heating_with_loft_insulation": 8455, + "space_heating_with_loft_and_cavity_insulation": 8455 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 168, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": "19.05r18", + "energy_consumption_potential": 163, + "environmental_impact_current": 71, + "fixed_lighting_outlets_count": 10, + "current_energy_efficiency_band": "C", + "environmental_impact_potential": 72, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": 32, + "low_energy_fixed_lighting_outlets_count": 5 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010347646/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010347646/epc.json new file mode 100644 index 000000000..7f074e073 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010347646/epc.json @@ -0,0 +1,197 @@ +{ + "uprn": 100010347646, + "roofs": [ + { + "description": "Pitched, 200 mm loft insulation", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "walls": [ + { + "description": "System built, with external insulation", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "(other premises below)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in 80% of fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "BB12 7DT", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "BURNLEY", + "built_form": 4, + "created_at": "2011-10-18 16:31:58", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 1749, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Top-floor flat", + "language_code": 1, + "property_type": 2, + "address_line_1": "62, Malvern Avenue", + "address_line_2": "Padiham", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-10-18", + "inspection_date": "2011-10-18", + "extensions_count": 0, + "measurement_type": 1, + "sap_flat_details": { + "level": 3, + "top_storey": "Y", + "flat_location": 1, + "heat_loss_corridor": 2, + "unheated_corridor_length": 2.8 + }, + "total_floor_area": 47, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 2, + "registration_date": "2011-10-18", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "None", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 6, + "roof_construction": 4, + "wall_construction": 8, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.3, + "total_floor_area": 47.3, + "heat_loss_perimeter": 17.2 + } + ], + "wall_insulation_type": 1, + "construction_age_band": "E", + "roof_insulation_location": 2, + "roof_insulation_thickness": "200mm" + } + ], + "low_energy_lighting": 80, + "solar_water_heating": "N", + "bedf_revision_number": 313, + "habitable_room_count": 2, + "heating_cost_current": 265, + "co2_emissions_current": 1.5, + "energy_rating_current": 75, + "lighting_cost_current": 33, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 1, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": 247, + "hot_water_cost_current": 79, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 30, + "indicative_cost": "\u00a31,500 - \u00a33,500", + "improvement_type": "I", + "improvement_details": { + "improvement_number": 20 + }, + "improvement_category": 2, + "energy_performance_rating": 77, + "environmental_impact_rating": 81 + } + ], + "co2_emissions_potential": 1.3, + "energy_rating_potential": 77, + "lighting_cost_potential": 33, + "hot_water_cost_potential": 67, + "renewable_heat_incentive": { + "water_heating": 1660, + "space_heating_existing_dwelling": 2877, + "space_heating_with_loft_and_cavity_insulation": 2877 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 161, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": "19.05r18", + "energy_consumption_potential": 143, + "environmental_impact_current": 79, + "fixed_lighting_outlets_count": 5, + "current_energy_efficiency_band": "C", + "environmental_impact_potential": 81, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": 31, + "low_energy_fixed_lighting_outlets_count": 4 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010350459/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010350459/epc.json new file mode 100644 index 000000000..1e6b9cf9a --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010350459/epc.json @@ -0,0 +1,230 @@ +{ + "uprn": 100010350459, + "roofs": [ + { + "description": "Pitched, 200 mm loft insulation", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "walls": [ + { + "description": "Cavity wall, filled cavity", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "Solid, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in 40% of fixed outlets", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + }, + "postcode": "BB10 3NS", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "BURNLEY", + "built_form": 2, + "created_at": "2011-09-22 14:53:31", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "secondary_fuel_type": 29, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 10030, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "secondary_heating_type": 691, + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Semi-detached bungalow", + "language_code": 1, + "property_type": 1, + "address_line_1": "5, Old Hall Square", + "address_line_2": "Worsthorne", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-09-22", + "inspection_date": "2011-09-22", + "extensions_count": 0, + "measurement_type": 1, + "total_floor_area": 42, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 2, + "registration_date": "2011-09-22", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 3 + }, + "secondary_heating": { + "description": "Room heaters, electric", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.3, + "floor_insulation": 1, + "total_floor_area": 41.5, + "floor_construction": 1, + "heat_loss_perimeter": 23.2 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "D", + "roof_insulation_location": 2, + "roof_insulation_thickness": "200mm" + } + ], + "low_energy_lighting": 40, + "solar_water_heating": "N", + "bedf_revision_number": 313, + "habitable_room_count": 2, + "heating_cost_current": 391, + "co2_emissions_current": 2.0, + "energy_rating_current": 65, + "lighting_cost_current": 39, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 3, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": 393, + "hot_water_cost_current": 62, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 12, + "indicative_cost": "\u00a38", + "improvement_type": "E", + "improvement_details": { + "improvement_number": 35 + }, + "improvement_category": 1, + "energy_performance_rating": 66, + "environmental_impact_rating": 70 + }, + { + "sequence": 2, + "typical_saving": 19, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 68, + "environmental_impact_rating": 72 + }, + { + "sequence": 3, + "typical_saving": 214, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 83, + "environmental_impact_rating": 86 + }, + { + "sequence": 4, + "typical_saving": 76, + "indicative_cost": "\u00a31,500 - \u00a34,000", + "improvement_type": "V", + "improvement_details": { + "improvement_number": 44 + }, + "improvement_category": 3, + "energy_performance_rating": 88, + "environmental_impact_rating": 91 + } + ], + "co2_emissions_potential": 2.0, + "energy_rating_potential": 66, + "lighting_cost_potential": 25, + "hot_water_cost_potential": 62, + "renewable_heat_incentive": { + "water_heating": 1571, + "space_heating_existing_dwelling": 5377, + "space_heating_with_loft_and_cavity_insulation": 5377 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 255, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": "19.05r15", + "energy_consumption_potential": 249, + "environmental_impact_current": 69, + "fixed_lighting_outlets_count": 5, + "current_energy_efficiency_band": "D", + "environmental_impact_potential": 70, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "D", + "co2_emissions_current_per_floor_area": 48, + "low_energy_fixed_lighting_outlets_count": 2 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010350468/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010350468/epc.json new file mode 100644 index 000000000..5bf9addd9 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010350468/epc.json @@ -0,0 +1,275 @@ +{ + "uprn": 100010350468, + "roofs": [ + { + "description": "Pitched, 100 mm loft insulation", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + }, + { + "description": "Flat, no insulation (assumed)", + "energy_efficiency_rating": 1, + "environmental_efficiency_rating": 1 + } + ], + "walls": [ + { + "description": "Cavity wall, filled cavity", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "Solid, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in 38% of fixed outlets", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + }, + "postcode": "BB10 3NS", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "BURNLEY", + "built_form": 3, + "created_at": "2011-05-25 20:30:10", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "secondary_fuel_type": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 8358, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "secondary_heating_type": 603, + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "End-terrace house", + "language_code": 1, + "property_type": 0, + "address_line_1": "14, Old Hall Square", + "address_line_2": "Worsthorne", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-05-25", + "inspection_date": "2011-05-25", + "extensions_count": 1, + "measurement_type": 1, + "total_floor_area": 94, + "transaction_type": 5, + "conservatory_type": 1, + "heated_room_count": 5, + "registration_date": "2011-05-25", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 3 + }, + "secondary_heating": { + "description": "Room heaters, mains gas", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.5, + "floor_insulation": 1, + "total_floor_area": 43.7, + "floor_construction": 1, + "heat_loss_perimeter": 19.37 + }, + { + "floor": 1, + "room_height": 2.5, + "total_floor_area": 43.7, + "heat_loss_perimeter": 21.5 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "D", + "roof_insulation_location": 2, + "roof_insulation_thickness": "100mm" + }, + { + "identifier": "Extension 1", + "floor_heat_loss": 7, + "roof_construction": 1, + "wall_construction": 4, + "building_part_number": 2, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.1, + "floor_insulation": 1, + "total_floor_area": 6.52, + "floor_construction": 1, + "heat_loss_perimeter": 8.12 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "D", + "roof_insulation_location": 4, + "roof_insulation_thickness": "NI" + } + ], + "low_energy_lighting": 38, + "solar_water_heating": "N", + "bedf_revision_number": 309, + "habitable_room_count": 5, + "heating_cost_current": 597, + "co2_emissions_current": 3.8, + "energy_rating_current": 66, + "lighting_cost_current": 77, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 1, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": 558, + "hot_water_cost_current": 97, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 25, + "indicative_cost": "\u00a313", + "improvement_type": "E", + "improvement_details": { + "improvement_number": 35 + }, + "improvement_category": 1, + "energy_performance_rating": 67, + "environmental_impact_rating": 64 + }, + { + "sequence": 2, + "typical_saving": 55, + "indicative_cost": "\u00a31,500 - \u00a33,500", + "improvement_type": "I", + "improvement_details": { + "improvement_number": 20 + }, + "improvement_category": 2, + "energy_performance_rating": 69, + "environmental_impact_rating": 68 + }, + { + "sequence": 3, + "typical_saving": 24, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 70, + "environmental_impact_rating": 69 + }, + { + "sequence": 4, + "typical_saving": 207, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 80, + "environmental_impact_rating": 78 + }, + { + "sequence": 5, + "typical_saving": 74, + "indicative_cost": "\u00a31,500 - \u00a34,000", + "improvement_type": "V", + "improvement_details": { + "improvement_number": 44 + }, + "improvement_category": 3, + "energy_performance_rating": 83, + "environmental_impact_rating": 81 + } + ], + "co2_emissions_potential": 3.4, + "energy_rating_potential": 69, + "lighting_cost_potential": 47, + "hot_water_cost_potential": 86, + "renewable_heat_incentive": { + "water_heating": 2212, + "space_heating_existing_dwelling": 10467, + "space_heating_with_loft_insulation": 10267, + "space_heating_with_loft_and_cavity_insulation": 10267 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 210, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": "19.03r10", + "energy_consumption_potential": 186, + "environmental_impact_current": 63, + "fixed_lighting_outlets_count": 8, + "current_energy_efficiency_band": "D", + "environmental_impact_potential": 68, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": 40, + "low_energy_fixed_lighting_outlets_count": 3 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010359769/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010359769/epc.json new file mode 100644 index 000000000..572bbb0e3 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010359769/epc.json @@ -0,0 +1,255 @@ +{ + "uprn": 100010359769, + "roofs": [ + { + "description": "Pitched, 250 mm loft insulation", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + { + "description": "Flat, limited insulation (assumed)", + "energy_efficiency_rating": 1, + "environmental_efficiency_rating": 1 + } + ], + "walls": [ + { + "description": "Cavity wall, filled cavity", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "Suspended, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + { + "description": "Solid, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in 91% of fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "BB12 7BY", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "BURNLEY", + "built_form": 4, + "created_at": "2011-07-25 16:35:41", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "secondary_fuel_type": 29, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 8358, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "secondary_heating_type": 691, + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Mid-terrace house", + "language_code": 1, + "property_type": 0, + "address_line_1": "3, Warwick Drive", + "address_line_2": "Padiham", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-07-25", + "inspection_date": "2011-07-25", + "extensions_count": 1, + "measurement_type": 1, + "total_floor_area": 76, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 5, + "registration_date": "2011-07-25", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "Room heaters, electric", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.58, + "floor_insulation": 1, + "total_floor_area": 35.59, + "floor_construction": 2, + "heat_loss_perimeter": 9 + }, + { + "floor": 1, + "room_height": 2.43, + "total_floor_area": 34.75, + "heat_loss_perimeter": 10.86 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "C", + "roof_insulation_location": 2, + "roof_insulation_thickness": "250mm" + }, + { + "identifier": "Extension 1", + "floor_heat_loss": 7, + "roof_construction": 1, + "wall_construction": 4, + "building_part_number": 2, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.33, + "floor_insulation": 1, + "total_floor_area": 5.37, + "floor_construction": 1, + "heat_loss_perimeter": 4.66 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "E", + "roof_insulation_location": 4, + "roof_insulation_thickness": "NI" + } + ], + "low_energy_lighting": 91, + "solar_water_heating": "N", + "bedf_revision_number": 311, + "habitable_room_count": 5, + "heating_cost_current": 501, + "co2_emissions_current": 2.8, + "energy_rating_current": 68, + "lighting_cost_current": 45, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 3, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": 471, + "hot_water_cost_current": 95, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 41, + "indicative_cost": "\u00a31,500 - \u00a33,500", + "improvement_type": "I", + "improvement_details": { + "improvement_number": 20 + }, + "improvement_category": 2, + "energy_performance_rating": 70, + "environmental_impact_rating": 71 + }, + { + "sequence": 2, + "typical_saving": 24, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 71, + "environmental_impact_rating": 73 + }, + { + "sequence": 3, + "typical_saving": 214, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 82, + "environmental_impact_rating": 83 + } + ], + "co2_emissions_potential": 2.6, + "energy_rating_potential": 70, + "lighting_cost_potential": 45, + "hot_water_cost_potential": 83, + "renewable_heat_incentive": { + "water_heating": 2071, + "space_heating_existing_dwelling": 6949, + "space_heating_with_loft_and_cavity_insulation": 6949 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 196, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": "19.05r12", + "energy_consumption_potential": 180, + "environmental_impact_current": 69, + "fixed_lighting_outlets_count": 11, + "current_energy_efficiency_band": "D", + "environmental_impact_potential": 71, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": 37, + "low_energy_fixed_lighting_outlets_count": 10 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010359788/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010359788/epc.json new file mode 100644 index 000000000..1a80fde24 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_100010359788/epc.json @@ -0,0 +1,248 @@ +{ + "uprn": 100010359788, + "roofs": [ + { + "description": "Pitched, 150 mm loft insulation", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + { + "description": "Flat, limited insulation (assumed)", + "energy_efficiency_rating": 2, + "environmental_efficiency_rating": 2 + } + ], + "walls": [ + { + "description": "Cavity wall, filled cavity", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "Solid, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in 89% of fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "BB12 7BY", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "BURNLEY", + "built_form": 4, + "created_at": "2011-08-04 07:03:30", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 8358, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Mid-terrace house", + "language_code": 1, + "property_type": 0, + "address_line_1": "22, Warwick Drive", + "address_line_2": "Padiham", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-08-04", + "inspection_date": "2011-08-04", + "extensions_count": 1, + "measurement_type": 1, + "total_floor_area": 77, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 5, + "registration_date": "2011-08-04", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "None", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.35, + "floor_insulation": 1, + "total_floor_area": 35, + "floor_construction": 1, + "heat_loss_perimeter": 8.3 + }, + { + "floor": 1, + "room_height": 2.4, + "total_floor_area": 35, + "heat_loss_perimeter": 11 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "C", + "roof_insulation_location": 2, + "roof_insulation_thickness": "150mm" + }, + { + "identifier": "Extension 1", + "floor_heat_loss": 7, + "roof_construction": 1, + "wall_construction": 4, + "building_part_number": 2, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2, + "floor_insulation": 1, + "total_floor_area": 6.63, + "floor_construction": 1, + "heat_loss_perimeter": 5.16 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "F", + "roof_insulation_location": 4, + "roof_insulation_thickness": "NI" + } + ], + "low_energy_lighting": 89, + "solar_water_heating": "N", + "bedf_revision_number": 312, + "habitable_room_count": 5, + "heating_cost_current": 409, + "co2_emissions_current": 2.4, + "energy_rating_current": 73, + "lighting_cost_current": 46, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 1, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": 379, + "hot_water_cost_current": 95, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 41, + "indicative_cost": "\u00a31,500 - \u00a33,500", + "improvement_type": "I", + "improvement_details": { + "improvement_number": 20 + }, + "improvement_category": 2, + "energy_performance_rating": 75, + "environmental_impact_rating": 76 + }, + { + "sequence": 2, + "typical_saving": 25, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 76, + "environmental_impact_rating": 77 + }, + { + "sequence": 3, + "typical_saving": 214, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 86, + "environmental_impact_rating": 87 + } + ], + "co2_emissions_potential": 2.2, + "energy_rating_potential": 75, + "lighting_cost_potential": 46, + "hot_water_cost_potential": 84, + "renewable_heat_incentive": { + "water_heating": 2080, + "space_heating_existing_dwelling": 6207, + "space_heating_with_loft_and_cavity_insulation": 6207 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 166, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": "19.05r15", + "energy_consumption_potential": 150, + "environmental_impact_current": 73, + "fixed_lighting_outlets_count": 9, + "current_energy_efficiency_band": "C", + "environmental_impact_potential": 76, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": 32, + "low_energy_fixed_lighting_outlets_count": 8 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_10070394806/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_10070394806/epc.json new file mode 100644 index 000000000..577b83ab2 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_10070394806/epc.json @@ -0,0 +1,253 @@ +{ + "uprn": 10070394806, + "roofs": [ + { + "description": "Pitched, 300+ mm loft insulation", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + } + ], + "walls": [ + { + "description": "System built, as built, insulated (assumed)", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + { + "description": "Cavity wall, as built, insulated (assumed)", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "Suspended, insulated (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in all fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "M11 4TL", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "MANCHESTER", + "built_form": 4, + "created_at": "2011-05-17 16:23:24", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 10032, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Mid-terrace house", + "language_code": 1, + "property_type": 0, + "address_line_1": "4, Stillwater Drive", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-05-17", + "inspection_date": "2011-05-17", + "extensions_count": 0, + "measurement_type": 1, + "total_floor_area": 73, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 4, + "registration_date": "2011-05-17", + "restricted_access": 1, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 3, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "None", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.38, + "floor_insulation": 0, + "total_floor_area": 36.63, + "floor_construction": 2, + "heat_loss_perimeter": 10.81 + }, + { + "floor": 1, + "room_height": 2.36, + "total_floor_area": 36.63, + "heat_loss_perimeter": 10.81 + } + ], + "wall_insulation_type": 5, + "construction_age_band": "J", + "roof_insulation_location": 2, + "roof_insulation_thickness": "300mm+" + }, + { + "wall_area": 20.33, + "wall_location": 0, + "wall_construction": 8, + "wall_insulation_type": 5 + } + ], + "low_energy_lighting": 100, + "solar_water_heating": "N", + "bedf_revision_number": 308, + "habitable_room_count": 4, + "heating_cost_current": { + "value": 315, + "currency": "GBP" + }, + "co2_emissions_current": { + "value": 1.8, + "quantity": "tonnes per year" + }, + "energy_rating_current": 77, + "lighting_cost_current": { + "value": 42, + "currency": "GBP" + }, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 3, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": { + "value": 315, + "currency": "GBP" + }, + "hot_water_cost_current": { + "value": 79, + "currency": "GBP" + }, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": { + "value": 23, + "currency": "GBP" + }, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 78, + "environmental_impact_rating": 81 + }, + { + "sequence": 2, + "typical_saving": { + "value": 207, + "currency": "GBP" + }, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 89, + "environmental_impact_rating": 91 + } + ], + "co2_emissions_potential": { + "value": 1.8, + "quantity": "tonnes per year" + }, + "energy_rating_potential": 77, + "lighting_cost_potential": { + "value": 42, + "currency": "GBP" + }, + "hot_water_cost_potential": { + "value": 79, + "currency": "GBP" + }, + "renewable_heat_incentive": { + "water_heating": 2044, + "space_heating_existing_dwelling": 4689, + "space_heating_with_loft_and_cavity_insulation": 4689 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 130, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": 4.0, + "energy_consumption_potential": 130, + "environmental_impact_current": 79, + "fixed_lighting_outlets_count": 6, + "current_energy_efficiency_band": "C", + "environmental_impact_potential": 79, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": { + "value": 25, + "quantity": "kg/m2 per year" + }, + "low_energy_fixed_lighting_outlets_count": 6 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_10070400618/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_10070400618/epc.json new file mode 100644 index 000000000..d607204fd --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_10070400618/epc.json @@ -0,0 +1,261 @@ +{ + "uprn": 10070400618, + "roofs": [ + { + "description": "Pitched, 300+ mm loft insulation", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + } + ], + "walls": [ + { + "description": "Cavity wall, as built, partial insulation (assumed)", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "floors": [ + { + "description": "Suspended, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in all fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "M11 4DN", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "MANCHESTER", + "built_form": 3, + "created_at": "2011-10-24 15:47:53", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 4, + "water_heating_code": 901, + "water_heating_fuel": 26, + "cylinder_thermostat": "Y", + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 10314, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "cylinder_insulation_type": 1, + "has_fixed_air_conditioning": "false", + "cylinder_insulation_thickness": 50 + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "End-terrace house", + "language_code": 1, + "property_type": 0, + "address_line_1": "10, Stuart Street", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-10-24", + "inspection_date": "2011-10-24", + "extensions_count": 0, + "measurement_type": 1, + "total_floor_area": 79, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 4, + "registration_date": "2011-10-24", + "restricted_access": 1, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 3, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "None", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.37, + "floor_insulation": 0, + "total_floor_area": 39.46, + "floor_construction": 2, + "heat_loss_perimeter": 18.85 + }, + { + "floor": 1, + "room_height": 2.31, + "total_floor_area": 39.46, + "heat_loss_perimeter": 18.85 + } + ], + "wall_insulation_type": 4, + "construction_age_band": "F", + "roof_insulation_location": 2, + "roof_insulation_thickness": "300mm+" + } + ], + "low_energy_lighting": 100, + "solar_water_heating": "N", + "bedf_revision_number": 314, + "habitable_room_count": 4, + "heating_cost_current": { + "value": 488, + "currency": "GBP" + }, + "co2_emissions_current": { + "value": 3.0, + "quantity": "tonnes per year" + }, + "energy_rating_current": 69, + "lighting_cost_current": { + "value": 43, + "currency": "GBP" + }, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 3, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "true", + "heating_cost_potential": { + "value": 413, + "currency": "GBP" + }, + "hot_water_cost_current": { + "value": 109, + "currency": "GBP" + }, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": { + "value": 74, + "currency": "GBP" + }, + "indicative_cost": "\u00a3100 - \u00a3300", + "improvement_type": "B", + "improvement_details": { + "improvement_number": 6 + }, + "improvement_category": 1, + "energy_performance_rating": 72, + "environmental_impact_rating": 73 + }, + { + "sequence": 2, + "typical_saving": { + "value": 37, + "currency": "GBP" + }, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 74, + "environmental_impact_rating": 75 + }, + { + "sequence": 3, + "typical_saving": { + "value": 214, + "currency": "GBP" + }, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 85, + "environmental_impact_rating": 85 + } + ], + "co2_emissions_potential": { + "value": 2.5, + "quantity": "tonnes per year" + }, + "energy_rating_potential": 72, + "lighting_cost_potential": { + "value": 43, + "currency": "GBP" + }, + "hot_water_cost_potential": { + "value": 110, + "currency": "GBP" + }, + "renewable_heat_incentive": { + "water_heating": 2720, + "space_heating_existing_dwelling": 9003, + "space_heating_with_cavity_insulation": 7103, + "space_heating_with_loft_and_cavity_insulation": 7103 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 196, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": 4.0, + "energy_consumption_potential": 167, + "environmental_impact_current": 68, + "fixed_lighting_outlets_count": 7, + "current_energy_efficiency_band": "C", + "environmental_impact_potential": 73, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": { + "value": 38, + "quantity": "kg/m2 per year" + }, + "low_energy_fixed_lighting_outlets_count": 7 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_10070400619/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_10070400619/epc.json new file mode 100644 index 000000000..df07a7f69 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_10070400619/epc.json @@ -0,0 +1,242 @@ +{ + "uprn": 10070400619, + "roofs": [ + { + "description": "Pitched, 300+ mm loft insulation", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + } + ], + "walls": [ + { + "description": "Cavity wall, as built, insulated (assumed)", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "Suspended, insulated (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in all fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "M11 4DN", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "MANCHESTER", + "built_form": 4, + "created_at": "2011-06-22 16:05:03", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 10032, + "main_heating_number": 1, + "main_heating_control": 2104, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Mid-terrace house", + "language_code": 1, + "property_type": 0, + "address_line_1": "12, Stuart Street", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-06-22", + "inspection_date": "2011-06-22", + "extensions_count": 0, + "measurement_type": 1, + "total_floor_area": 73, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 3, + "registration_date": "2011-06-22", + "restricted_access": 1, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 3, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "None", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.39, + "floor_insulation": 0, + "total_floor_area": 36.55, + "floor_construction": 2, + "heat_loss_perimeter": 10.79 + }, + { + "floor": 1, + "room_height": 2.28, + "total_floor_area": 36.55, + "heat_loss_perimeter": 10.79 + } + ], + "wall_insulation_type": 4, + "construction_age_band": "J", + "roof_insulation_location": 2, + "roof_insulation_thickness": "300mm+" + } + ], + "low_energy_lighting": 100, + "solar_water_heating": "N", + "bedf_revision_number": 310, + "habitable_room_count": 3, + "heating_cost_current": { + "value": 324, + "currency": "GBP" + }, + "co2_emissions_current": { + "value": 1.9, + "quantity": "tonnes per year" + }, + "energy_rating_current": 77, + "lighting_cost_current": { + "value": 42, + "currency": "GBP" + }, + "main_heating_controls": [ + { + "description": "Programmer and room thermostat", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "multiple_glazing_type": 3, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": { + "value": 324, + "currency": "GBP" + }, + "hot_water_cost_current": { + "value": 79, + "currency": "GBP" + }, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": { + "value": 23, + "currency": "GBP" + }, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 78, + "environmental_impact_rating": 80 + }, + { + "sequence": 2, + "typical_saving": { + "value": 207, + "currency": "GBP" + }, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 89, + "environmental_impact_rating": 91 + } + ], + "co2_emissions_potential": { + "value": 1.9, + "quantity": "tonnes per year" + }, + "energy_rating_potential": 77, + "lighting_cost_potential": { + "value": 42, + "currency": "GBP" + }, + "hot_water_cost_potential": { + "value": 79, + "currency": "GBP" + }, + "renewable_heat_incentive": { + "water_heating": 2042, + "space_heating_existing_dwelling": 4940, + "space_heating_with_loft_and_cavity_insulation": 4940 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 135, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": 4.0, + "energy_consumption_potential": 135, + "environmental_impact_current": 79, + "fixed_lighting_outlets_count": 7, + "current_energy_efficiency_band": "C", + "environmental_impact_potential": 79, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": { + "value": 26, + "quantity": "kg/m2 per year" + }, + "low_energy_fixed_lighting_outlets_count": 7 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_77179816/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_77179816/epc.json new file mode 100644 index 000000000..c9b6146c0 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_77179816/epc.json @@ -0,0 +1,242 @@ +{ + "uprn": 77179816, + "roofs": [ + { + "description": "Pitched, 300+ mm loft insulation", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + } + ], + "walls": [ + { + "description": "Cavity wall, as built, insulated (assumed)", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "Suspended, insulated (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in all fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "M11 4NL", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "MANCHESTER", + "built_form": 3, + "created_at": "2011-05-17 16:16:10", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 15710, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "End-terrace house", + "language_code": 1, + "property_type": 0, + "address_line_1": "55, Canberra Street", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-05-17", + "inspection_date": "2011-05-17", + "extensions_count": 0, + "measurement_type": 1, + "total_floor_area": 71, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 3, + "registration_date": "2011-05-17", + "restricted_access": 1, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 3, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "None", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.77, + "floor_insulation": 0, + "total_floor_area": 38.12, + "floor_construction": 2, + "heat_loss_perimeter": 19.03 + }, + { + "floor": 1, + "room_height": 2.9, + "total_floor_area": 33.07, + "heat_loss_perimeter": 16.31 + } + ], + "wall_insulation_type": 5, + "construction_age_band": "K", + "roof_insulation_location": 2, + "roof_insulation_thickness": "300mm+" + } + ], + "low_energy_lighting": 100, + "solar_water_heating": "N", + "bedf_revision_number": 308, + "habitable_room_count": 3, + "heating_cost_current": { + "value": 347, + "currency": "GBP" + }, + "co2_emissions_current": { + "value": 2.0, + "quantity": "tonnes per year" + }, + "energy_rating_current": 75, + "lighting_cost_current": { + "value": 41, + "currency": "GBP" + }, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 3, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": { + "value": 347, + "currency": "GBP" + }, + "hot_water_cost_current": { + "value": 78, + "currency": "GBP" + }, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": { + "value": 23, + "currency": "GBP" + }, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 77, + "environmental_impact_rating": 79 + }, + { + "sequence": 2, + "typical_saving": { + "value": 207, + "currency": "GBP" + }, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 88, + "environmental_impact_rating": 89 + } + ], + "co2_emissions_potential": { + "value": 2.0, + "quantity": "tonnes per year" + }, + "energy_rating_potential": 75, + "lighting_cost_potential": { + "value": 41, + "currency": "GBP" + }, + "hot_water_cost_potential": { + "value": 78, + "currency": "GBP" + }, + "renewable_heat_incentive": { + "water_heating": 2020, + "space_heating_existing_dwelling": 5555, + "space_heating_with_loft_and_cavity_insulation": 5555 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 147, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": 4.0, + "energy_consumption_potential": 147, + "environmental_impact_current": 77, + "fixed_lighting_outlets_count": 5, + "current_energy_efficiency_band": "C", + "environmental_impact_potential": 77, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": { + "value": 28, + "quantity": "kg/m2 per year" + }, + "low_energy_fixed_lighting_outlets_count": 5 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_77179820/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_77179820/epc.json new file mode 100644 index 000000000..11b3a3fce --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_77179820/epc.json @@ -0,0 +1,242 @@ +{ + "uprn": 77179820, + "roofs": [ + { + "description": "Pitched, 300+ mm loft insulation", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + } + ], + "walls": [ + { + "description": "Cavity wall, as built, insulated (assumed)", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "Suspended, insulated (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in all fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "M11 4NL", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "MANCHESTER", + "built_form": 4, + "created_at": "2011-05-17 16:13:22", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 15710, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Mid-terrace house", + "language_code": 1, + "property_type": 0, + "address_line_1": "63, Canberra Street", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-05-17", + "inspection_date": "2011-05-17", + "extensions_count": 0, + "measurement_type": 1, + "total_floor_area": 74, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 3, + "registration_date": "2011-05-17", + "restricted_access": 1, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 3, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "None", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.85, + "floor_insulation": 0, + "total_floor_area": 40.7, + "floor_construction": 2, + "heat_loss_perimeter": 12.97 + }, + { + "floor": 1, + "room_height": 2.81, + "total_floor_area": 33.01, + "heat_loss_perimeter": 9.64 + } + ], + "wall_insulation_type": 5, + "construction_age_band": "K", + "roof_insulation_location": 2, + "roof_insulation_thickness": "300mm+" + } + ], + "low_energy_lighting": 100, + "solar_water_heating": "N", + "bedf_revision_number": 308, + "habitable_room_count": 3, + "heating_cost_current": { + "value": 325, + "currency": "GBP" + }, + "co2_emissions_current": { + "value": 1.9, + "quantity": "tonnes per year" + }, + "energy_rating_current": 77, + "lighting_cost_current": { + "value": 42, + "currency": "GBP" + }, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 3, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": { + "value": 325, + "currency": "GBP" + }, + "hot_water_cost_current": { + "value": 79, + "currency": "GBP" + }, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": { + "value": 23, + "currency": "GBP" + }, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 78, + "environmental_impact_rating": 80 + }, + { + "sequence": 2, + "typical_saving": { + "value": 207, + "currency": "GBP" + }, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 89, + "environmental_impact_rating": 91 + } + ], + "co2_emissions_potential": { + "value": 1.9, + "quantity": "tonnes per year" + }, + "energy_rating_potential": 77, + "lighting_cost_potential": { + "value": 42, + "currency": "GBP" + }, + "hot_water_cost_potential": { + "value": 79, + "currency": "GBP" + }, + "renewable_heat_incentive": { + "water_heating": 2049, + "space_heating_existing_dwelling": 4978, + "space_heating_with_loft_and_cavity_insulation": 4978 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 134, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": 4.0, + "energy_consumption_potential": 134, + "environmental_impact_current": 79, + "fixed_lighting_outlets_count": 5, + "current_energy_efficiency_band": "C", + "environmental_impact_potential": 79, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": { + "value": 26, + "quantity": "kg/m2 per year" + }, + "low_energy_fixed_lighting_outlets_count": 5 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_77180626/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_77180626/epc.json new file mode 100644 index 000000000..038611142 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_77180626/epc.json @@ -0,0 +1,312 @@ +{ + "uprn": 77180626, + "roofs": [ + { + "description": "Pitched, 100mm loft insulation", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "walls": [ + { + "description": "Cavity wall, filled cavity", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "Solid, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "lighting": { + "description": "Low energy lighting in 40% of fixed outlets", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + }, + "postcode": "M11 4PG", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "MANCHESTER", + "built_form": 4, + "created_at": "2011-11-29 20:16:44", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 8587, + "main_heating_number": 1, + "main_heating_control": 2107, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Mid-terrace bungalow", + "language_code": 1, + "property_type": 0, + "address_line_1": "45, Seymour Road South", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-11-29", + "inspection_date": "2011-11-29", + "extensions_count": 0, + "measurement_type": 1, + "total_floor_area": 46, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 2, + "registration_date": "2011-11-29", + "restricted_access": 1, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "None", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.482, + "floor_insulation": 1, + "total_floor_area": 45.611, + "floor_construction": 0, + "heat_loss_perimeter": 13.73 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "E", + "roof_insulation_location": 2, + "roof_insulation_thickness": "100mm" + } + ], + "low_energy_lighting": 40, + "solar_water_heating": "N", + "bedf_revision_number": 314, + "habitable_room_count": 2, + "heating_cost_current": { + "value": 360, + "currency": "GBP" + }, + "co2_emissions_current": { + "value": 2.0, + "quantity": "tonnes per year" + }, + "energy_rating_current": 68, + "lighting_cost_current": { + "value": 43, + "currency": "GBP" + }, + "main_heating_controls": [ + { + "description": "Programmer, TRVs and bypass", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "multiple_glazing_type": 2, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": { + "value": 300, + "currency": "GBP" + }, + "hot_water_cost_current": { + "value": 75, + "currency": "GBP" + }, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": { + "value": 24, + "currency": "GBP" + }, + "indicative_cost": "\u00a3100 - \u00a3300", + "improvement_type": "A", + "improvement_details": { + "improvement_number": 5 + }, + "improvement_category": 1, + "energy_performance_rating": 70, + "environmental_impact_rating": 72 + }, + { + "sequence": 2, + "typical_saving": { + "value": 13, + "currency": "GBP" + }, + "indicative_cost": "\u00a38", + "improvement_type": "E", + "improvement_details": { + "improvement_number": 35 + }, + "improvement_category": 1, + "energy_performance_rating": 71, + "environmental_impact_rating": 73 + }, + { + "sequence": 3, + "typical_saving": { + "value": 18, + "currency": "GBP" + }, + "indicative_cost": "\u00a3350 - \u00a3450", + "improvement_type": "G", + "improvement_details": { + "improvement_number": 14 + }, + "improvement_category": 1, + "energy_performance_rating": 72, + "environmental_impact_rating": 74 + }, + { + "sequence": 4, + "typical_saving": { + "value": 30, + "currency": "GBP" + }, + "indicative_cost": "\u00a31,500 - \u00a33,500", + "improvement_type": "I", + "improvement_details": { + "improvement_number": 20 + }, + "improvement_category": 2, + "energy_performance_rating": 74, + "environmental_impact_rating": 77 + }, + { + "sequence": 5, + "typical_saving": { + "value": 21, + "currency": "GBP" + }, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 75, + "environmental_impact_rating": 79 + }, + { + "sequence": 6, + "typical_saving": { + "value": 214, + "currency": "GBP" + }, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 89, + "environmental_impact_rating": 92 + }, + { + "sequence": 7, + "typical_saving": { + "value": 18, + "currency": "GBP" + }, + "indicative_cost": "\u00a31,500 - \u00a34,000", + "improvement_type": "V", + "improvement_details": { + "improvement_number": 44 + }, + "improvement_category": 3, + "energy_performance_rating": 90, + "environmental_impact_rating": 93 + } + ], + "co2_emissions_potential": { + "value": 1.6, + "quantity": "tonnes per year" + }, + "energy_rating_potential": 74, + "lighting_cost_potential": { + "value": 27, + "currency": "GBP" + }, + "hot_water_cost_potential": { + "value": 66, + "currency": "GBP" + }, + "renewable_heat_incentive": { + "water_heating": 1634, + "space_heating_existing_dwelling": 4686, + "space_heating_with_loft_insulation": 4450, + "space_heating_with_loft_and_cavity_insulation": 4450 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 231, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": 4.0, + "energy_consumption_potential": 178, + "environmental_impact_current": 70, + "fixed_lighting_outlets_count": 5, + "current_energy_efficiency_band": "D", + "environmental_impact_potential": 77, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": { + "value": 44, + "quantity": "kg/m2 per year" + }, + "low_energy_fixed_lighting_outlets_count": 2 +} \ No newline at end of file diff --git a/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_77181233/epc.json b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_77181233/epc.json new file mode 100644 index 000000000..a3e09d806 --- /dev/null +++ b/backend/epc_api/json_samples/real_life_examples/SAP-Schema-15.0/uprn_77181233/epc.json @@ -0,0 +1,243 @@ +{ + "uprn": 77181233, + "roofs": [ + { + "description": "Pitched, 100mm loft insulation", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "walls": [ + { + "description": "Cavity wall, as built, insulated (assumed)", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "Solid, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in 90% of fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "M11 4WU", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "MANCHESTER", + "built_form": 1, + "created_at": "2011-09-06 16:39:42", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 10328, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Detached house", + "language_code": 1, + "property_type": 0, + "address_line_1": "48, Hackle Street", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-09-06", + "inspection_date": "2011-09-06", + "extensions_count": 0, + "measurement_type": 1, + "total_floor_area": 73, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 5, + "registration_date": "2011-09-06", + "restricted_access": 1, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "None", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.37, + "floor_insulation": 1, + "total_floor_area": 36.54, + "floor_construction": 1, + "heat_loss_perimeter": 25.8 + }, + { + "floor": 1, + "room_height": 2.36, + "total_floor_area": 36.54, + "heat_loss_perimeter": 25.8 + } + ], + "wall_insulation_type": 4, + "construction_age_band": "G", + "roof_insulation_location": 2, + "roof_insulation_thickness": "100mm" + } + ], + "low_energy_lighting": 90, + "solar_water_heating": "N", + "bedf_revision_number": 312, + "habitable_room_count": 5, + "heating_cost_current": { + "value": 487, + "currency": "GBP" + }, + "co2_emissions_current": { + "value": 2.8, + "quantity": "tonnes per year" + }, + "energy_rating_current": 69, + "lighting_cost_current": { + "value": 44, + "currency": "GBP" + }, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 3, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": { + "value": 487, + "currency": "GBP" + }, + "hot_water_cost_current": { + "value": 83, + "currency": "GBP" + }, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": { + "value": 24, + "currency": "GBP" + }, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 70, + "environmental_impact_rating": 70 + }, + { + "sequence": 2, + "typical_saving": { + "value": 214, + "currency": "GBP" + }, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 81, + "environmental_impact_rating": 80 + } + ], + "co2_emissions_potential": { + "value": 2.8, + "quantity": "tonnes per year" + }, + "energy_rating_potential": 69, + "lighting_cost_potential": { + "value": 44, + "currency": "GBP" + }, + "hot_water_cost_potential": { + "value": 83, + "currency": "GBP" + }, + "renewable_heat_incentive": { + "water_heating": 2082, + "space_heating_existing_dwelling": 9000, + "space_heating_with_loft_insulation": 8839, + "space_heating_with_loft_and_cavity_insulation": 8839 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 201, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": 4.0, + "energy_consumption_potential": 201, + "environmental_impact_current": 68, + "fixed_lighting_outlets_count": 10, + "current_energy_efficiency_band": "C", + "environmental_impact_potential": 68, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": { + "value": 39, + "quantity": "kg/m2 per year" + }, + "low_energy_fixed_lighting_outlets_count": 9 +} \ No newline at end of file diff --git a/datatypes/epc/domain/mapper.py b/datatypes/epc/domain/mapper.py index 842bcc689..064a42d09 100644 --- a/datatypes/epc/domain/mapper.py +++ b/datatypes/epc/domain/mapper.py @@ -1101,6 +1101,62 @@ class EpcPropertyDataMapper: schema convention.""" return EpcPropertyDataMapper.from_sap_schema_17_1(schema) + @staticmethod + def from_sap_schema_15_0(data: Dict[str, Any]) -> EpcPropertyData: + """Map a reduced-field `SAP-Schema-15.0` cert. + + Structurally the same LIG-lodged reduced-field shape as the + `SAP-Schema-16.x` family (`schema_version: "LIG-15.0"`, `assessment_type: + "RdSAP"`) โ€” see `from_sap_schema_16_2`. One further gap on top of that + family's normalisation: these 2011-era certs never lodge `door_count` + at all (confirmed on two real certs, UPRNs 100010359769/100010359788 โ€” + it is absent from the payload entirely, not blank). Unlike a 16.x cert + that omits `door_count` on an otherwise-complete lodgement (a per-cert + data gap the mapper correctly fails loud on), the whole 15.0 schema + never carried the field โ€” so default to 1 (a single external door, + the standard RdSAP assumption when unrecorded) rather than treating it + as insufficient data. + + These certs also predate WWHRS and FGHRS lodging altogether โ€” + `sap_heating` has no `wwhrs` key for `_normalize_sap_schema_16_x` to + rename, and `main_heating_details[]` never carries `has_fghrs`. Both + default to "not present" ("N" / all-zero counts), the same + absence-means-none-fitted convention used elsewhere in this mapper + (e.g. the full-SAP mappers' bare `InstantaneousWwhrs()`). + """ + from datatypes.epc.schema.rdsap_schema_17_1 import RdSapSchema17_1 + + normalized = _normalize_sap_schema_16_x(data) + normalized.setdefault("door_count", 1) + # `energy_rating_average` is the fixed national-average marker (60 on + # every fixture in this repo, `RdSapSchema17_1`-required, inert + # metadata never read by the SAP calculator) โ€” these certs omit it. + normalized.setdefault("energy_rating_average", 60) + # Draught-proofing extent is unrecorded on these certs; 0% is the same + # "assume none if unknown" convention the cascade already applies to + # `has_draught_lobby` (see `_has_draught_lobby` in cert_to_inputs.py) โ€” + # conservative (no draught-proofing credit), not a guessed value. + normalized.setdefault("percent_draughtproofed", 0) + sap_heating: Any = normalized.get("sap_heating") + if isinstance(sap_heating, dict): + heating: Dict[str, Any] = cast(Dict[str, Any], sap_heating) + heating.setdefault( + "instantaneous_wwhrs", + { + "rooms_with_bath_and_or_shower": 0, + "rooms_with_mixer_shower_no_bath": 0, + "rooms_with_bath_and_mixer_shower": 0, + }, + ) + main_heating_details: Any = heating.get("main_heating_details") or [] + for mh in cast(List[Any], main_heating_details): + if isinstance(mh, dict): + cast(Dict[str, Any], mh).setdefault("has_fghrs", "N") + + return EpcPropertyDataMapper.from_rdsap_schema_17_1( + from_dict(RdSapSchema17_1, normalized) + ) + @staticmethod def from_sap_schema_16_0(data: Dict[str, Any]) -> EpcPropertyData: """Map a reduced-field `SAP-Schema-16.0` cert (see `from_sap_schema_16_2`).""" @@ -2974,6 +3030,10 @@ class EpcPropertyDataMapper: mapped = EpcPropertyDataMapper.from_sap_schema_19_1_0( from_dict(SapSchema17_1, data) ) + # SAP-Schema-15.0: same reduced-field (RdSAP-shaped) family as 16.x, one + # revision older โ€” see `from_sap_schema_15_0`. + elif schema == "SAP-Schema-15.0": + mapped = EpcPropertyDataMapper.from_sap_schema_15_0(data) # SAP-Schema-16.x family: reduced-field (RdSAP-shaped) certs. Each gets a # dedicated mapper that normalises onto the RdSAP-17.1 shape via the # shared `_normalize_sap_schema_16_x` and reuses `from_rdsap_schema_17_1`. @@ -7513,6 +7573,12 @@ _ELMHURST_CYLINDER_SIZE_LABEL_TO_SAP10: Dict[str, int] = { "Normal": 2, "Medium": 3, "Large": 4, + # The live RdSAP10-Online tool renders the size band WITH its litre range + # suffix (observed on the SAP-Schema-15.0 UPRN 100010086084 build) rather + # than the bare label the cohort fixtures used above. + "Normal (Less than 130L)": 2, + "Medium (131-170L)": 3, + "Large (Greater than 171L)": 4, } diff --git a/datatypes/epc/domain/tests/test_from_sap_schema_15_0.py b/datatypes/epc/domain/tests/test_from_sap_schema_15_0.py new file mode 100644 index 000000000..570b84df9 --- /dev/null +++ b/datatypes/epc/domain/tests/test_from_sap_schema_15_0.py @@ -0,0 +1,67 @@ +"""SAP-Schema-15.0 โ€” the same LIG-lodged reduced-field RdSAP-17.1 shape as +`SAP-Schema-16.x` (`schema_version: "LIG-15.0"`), one revision older, from a +2011 lodgement generation that predates `door_count`, WWHRS, and FGHRS +lodging entirely (unlike a 16.x cert omitting one of those fields, which is a +per-cert data gap, this is schema-wide โ€” see `from_sap_schema_15_0`). + +`from_api_response` normalises it onto the RdSAP-17.1 shape via +`_normalize_sap_schema_16_x` plus the three extra defaults, then reuses that +mapper. Regression for the task that first surfaced this gap +(a40e71c4-fd56-4a33-8677-e8643e6a5bb4, portfolio 824 / scenario 1278, +property_id 748445 / 748451 โ€” "Unsupported EPC schema: 'SAP-Schema-15.0'"). +""" + +from typing import Any, Dict +import json +import os + +from datatypes.epc.domain.epc_property_data import EpcPropertyData +from datatypes.epc.domain.mapper import EpcPropertyDataMapper + +FIXTURES = os.path.join(os.path.dirname(__file__), "../../schema/tests/fixtures") + + +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 TestFromSapSchema15_0: + def test_dispatches_and_maps_via_rdsap_17_1(self) -> None: + # Arrange / Act โ€” the raw 15.0 doc must dispatch (no "Unsupported + # schema") and map the 16.x-family seams plus the three schema-wide + # gaps unique to 15.0 (door_count, instantaneous_wwhrs, has_fghrs). + epc = EpcPropertyDataMapper.from_api_response( + load("sap_15_0_uprn_100010359769.json") + ) + + # Assert + assert isinstance(epc, EpcPropertyData) + assert epc.uprn == 100010359769 + assert epc.dwelling_type == "Mid-terrace house" + assert epc.door_count == 1 + mh = epc.sap_heating.main_heating_details[0] + assert mh.main_fuel_type == 26 # mains gas + + def test_produces_a_sap_score(self) -> None: + # The mapped cert must run end-to-end through the SAP-10 engine. + from domain.sap10_calculator.calculator import Sap10Calculator + + epc = EpcPropertyDataMapper.from_api_response( + load("sap_15_0_uprn_100010359769.json") + ) + result = Sap10Calculator().calculate(epc) + # Lodged 68; engine also produces 68. + assert result.sap_score == 68 + + def test_second_property_produces_a_sap_score(self) -> None: + # Second real cert from the same failing task, confirms the fix isn't + # a one-cert coincidence. + from domain.sap10_calculator.calculator import Sap10Calculator + + epc = EpcPropertyDataMapper.from_api_response( + load("sap_15_0_uprn_100010359788.json") + ) + result = Sap10Calculator().calculate(epc) + # Lodged 73; engine produces 72 (Elmhurst validation not yet run). + assert result.sap_score == 72 diff --git a/datatypes/epc/schema/tests/fixtures/sap_15_0_uprn_100010359769.json b/datatypes/epc/schema/tests/fixtures/sap_15_0_uprn_100010359769.json new file mode 100644 index 000000000..572bbb0e3 --- /dev/null +++ b/datatypes/epc/schema/tests/fixtures/sap_15_0_uprn_100010359769.json @@ -0,0 +1,255 @@ +{ + "uprn": 100010359769, + "roofs": [ + { + "description": "Pitched, 250 mm loft insulation", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + { + "description": "Flat, limited insulation (assumed)", + "energy_efficiency_rating": 1, + "environmental_efficiency_rating": 1 + } + ], + "walls": [ + { + "description": "Cavity wall, filled cavity", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "Suspended, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + { + "description": "Solid, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in 91% of fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "BB12 7BY", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "BURNLEY", + "built_form": 4, + "created_at": "2011-07-25 16:35:41", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "secondary_fuel_type": 29, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 8358, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "secondary_heating_type": 691, + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Mid-terrace house", + "language_code": 1, + "property_type": 0, + "address_line_1": "3, Warwick Drive", + "address_line_2": "Padiham", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-07-25", + "inspection_date": "2011-07-25", + "extensions_count": 1, + "measurement_type": 1, + "total_floor_area": 76, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 5, + "registration_date": "2011-07-25", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "Room heaters, electric", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.58, + "floor_insulation": 1, + "total_floor_area": 35.59, + "floor_construction": 2, + "heat_loss_perimeter": 9 + }, + { + "floor": 1, + "room_height": 2.43, + "total_floor_area": 34.75, + "heat_loss_perimeter": 10.86 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "C", + "roof_insulation_location": 2, + "roof_insulation_thickness": "250mm" + }, + { + "identifier": "Extension 1", + "floor_heat_loss": 7, + "roof_construction": 1, + "wall_construction": 4, + "building_part_number": 2, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.33, + "floor_insulation": 1, + "total_floor_area": 5.37, + "floor_construction": 1, + "heat_loss_perimeter": 4.66 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "E", + "roof_insulation_location": 4, + "roof_insulation_thickness": "NI" + } + ], + "low_energy_lighting": 91, + "solar_water_heating": "N", + "bedf_revision_number": 311, + "habitable_room_count": 5, + "heating_cost_current": 501, + "co2_emissions_current": 2.8, + "energy_rating_current": 68, + "lighting_cost_current": 45, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 3, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": 471, + "hot_water_cost_current": 95, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 41, + "indicative_cost": "\u00a31,500 - \u00a33,500", + "improvement_type": "I", + "improvement_details": { + "improvement_number": 20 + }, + "improvement_category": 2, + "energy_performance_rating": 70, + "environmental_impact_rating": 71 + }, + { + "sequence": 2, + "typical_saving": 24, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 71, + "environmental_impact_rating": 73 + }, + { + "sequence": 3, + "typical_saving": 214, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 82, + "environmental_impact_rating": 83 + } + ], + "co2_emissions_potential": 2.6, + "energy_rating_potential": 70, + "lighting_cost_potential": 45, + "hot_water_cost_potential": 83, + "renewable_heat_incentive": { + "water_heating": 2071, + "space_heating_existing_dwelling": 6949, + "space_heating_with_loft_and_cavity_insulation": 6949 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 196, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": "19.05r12", + "energy_consumption_potential": 180, + "environmental_impact_current": 69, + "fixed_lighting_outlets_count": 11, + "current_energy_efficiency_band": "D", + "environmental_impact_potential": 71, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": 37, + "low_energy_fixed_lighting_outlets_count": 10 +} \ No newline at end of file diff --git a/datatypes/epc/schema/tests/fixtures/sap_15_0_uprn_100010359788.json b/datatypes/epc/schema/tests/fixtures/sap_15_0_uprn_100010359788.json new file mode 100644 index 000000000..1a80fde24 --- /dev/null +++ b/datatypes/epc/schema/tests/fixtures/sap_15_0_uprn_100010359788.json @@ -0,0 +1,248 @@ +{ + "uprn": 100010359788, + "roofs": [ + { + "description": "Pitched, 150 mm loft insulation", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + { + "description": "Flat, limited insulation (assumed)", + "energy_efficiency_rating": 2, + "environmental_efficiency_rating": 2 + } + ], + "walls": [ + { + "description": "Cavity wall, filled cavity", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "floors": [ + { + "description": "Solid, no insulation (assumed)", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + } + ], + "status": "entered", + "windows": [ + { + "description": "Fully double glazed", + "energy_efficiency_rating": 3, + "environmental_efficiency_rating": 3 + } + ], + "lighting": { + "description": "Low energy lighting in 89% of fixed outlets", + "energy_efficiency_rating": 5, + "environmental_efficiency_rating": 5 + }, + "postcode": "BB12 7BY", + "hot_water": { + "description": "From main system", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + }, + "post_town": "BURNLEY", + "built_form": 4, + "created_at": "2011-08-04 07:03:30", + "glazed_area": 1, + "region_code": 19, + "report_type": 2, + "sap_heating": { + "cylinder_size": 1, + "water_heating_code": 901, + "water_heating_fuel": 26, + "main_heating_details": [ + { + "main_fuel_type": 26, + "boiler_flue_type": 2, + "fan_flue_present": "Y", + "heat_emitter_type": 1, + "boiler_index_number": 8358, + "main_heating_number": 1, + "main_heating_control": 2106, + "main_heating_category": 2, + "main_heating_fraction": 1, + "main_heating_data_source": 1 + } + ], + "has_fixed_air_conditioning": "false" + }, + "sap_version": 9.9, + "schema_type": "SAP-Schema-15.0", + "uprn_source": "Energy Assessor", + "country_code": "EAW", + "main_heating": [ + { + "description": "Boiler and radiators, mains gas", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "dwelling_type": "Mid-terrace house", + "language_code": 1, + "property_type": 0, + "address_line_1": "22, Warwick Drive", + "address_line_2": "Padiham", + "schema_version": "LIG-15.0", + "assessment_type": "RdSAP", + "completion_date": "2011-08-04", + "inspection_date": "2011-08-04", + "extensions_count": 1, + "measurement_type": 1, + "total_floor_area": 77, + "transaction_type": 3, + "conservatory_type": 1, + "heated_room_count": 5, + "registration_date": "2011-08-04", + "restricted_access": 0, + "sap_energy_source": { + "main_gas": "Y", + "meter_type": 2, + "photovoltaic_supply": { + "percent_roof_area": 0 + }, + "wind_turbines_count": 0, + "wind_turbines_terrain_type": 2 + }, + "secondary_heating": { + "description": "None", + "energy_efficiency_rating": 0, + "environmental_efficiency_rating": 0 + }, + "sap_building_parts": [ + { + "identifier": "Main Dwelling", + "floor_heat_loss": 7, + "roof_construction": 4, + "wall_construction": 4, + "building_part_number": 1, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2.35, + "floor_insulation": 1, + "total_floor_area": 35, + "floor_construction": 1, + "heat_loss_perimeter": 8.3 + }, + { + "floor": 1, + "room_height": 2.4, + "total_floor_area": 35, + "heat_loss_perimeter": 11 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "C", + "roof_insulation_location": 2, + "roof_insulation_thickness": "150mm" + }, + { + "identifier": "Extension 1", + "floor_heat_loss": 7, + "roof_construction": 1, + "wall_construction": 4, + "building_part_number": 2, + "sap_floor_dimensions": [ + { + "floor": 0, + "room_height": 2, + "floor_insulation": 1, + "total_floor_area": 6.63, + "floor_construction": 1, + "heat_loss_perimeter": 5.16 + } + ], + "wall_insulation_type": 2, + "construction_age_band": "F", + "roof_insulation_location": 4, + "roof_insulation_thickness": "NI" + } + ], + "low_energy_lighting": 89, + "solar_water_heating": "N", + "bedf_revision_number": 312, + "habitable_room_count": 5, + "heating_cost_current": 409, + "co2_emissions_current": 2.4, + "energy_rating_current": 73, + "lighting_cost_current": 46, + "main_heating_controls": [ + { + "description": "Programmer, room thermostat and TRVs", + "energy_efficiency_rating": 4, + "environmental_efficiency_rating": 4 + } + ], + "multiple_glazing_type": 1, + "open_fireplaces_count": 0, + "has_hot_water_cylinder": "false", + "heating_cost_potential": 379, + "hot_water_cost_current": 95, + "mechanical_ventilation": 0, + "suggested_improvements": [ + { + "sequence": 1, + "typical_saving": 41, + "indicative_cost": "\u00a31,500 - \u00a33,500", + "improvement_type": "I", + "improvement_details": { + "improvement_number": 20 + }, + "improvement_category": 2, + "energy_performance_rating": 75, + "environmental_impact_rating": 76 + }, + { + "sequence": 2, + "typical_saving": 25, + "indicative_cost": "\u00a34,000 - \u00a36,000", + "improvement_type": "N", + "improvement_details": { + "improvement_number": 19 + }, + "improvement_category": 3, + "energy_performance_rating": 76, + "environmental_impact_rating": 77 + }, + { + "sequence": 3, + "typical_saving": 214, + "indicative_cost": "\u00a311,000 - \u00a320,000", + "improvement_type": "U", + "improvement_details": { + "improvement_number": 34 + }, + "improvement_category": 3, + "energy_performance_rating": 86, + "environmental_impact_rating": 87 + } + ], + "co2_emissions_potential": 2.2, + "energy_rating_potential": 75, + "lighting_cost_potential": 46, + "hot_water_cost_potential": 84, + "renewable_heat_incentive": { + "water_heating": 2080, + "space_heating_existing_dwelling": 6207, + "space_heating_with_loft_and_cavity_insulation": 6207 + }, + "seller_commission_report": "Y", + "energy_consumption_current": 166, + "has_fixed_air_conditioning": "false", + "multiple_glazed_proportion": 100, + "calculation_software_version": "19.05r15", + "energy_consumption_potential": 150, + "environmental_impact_current": 73, + "fixed_lighting_outlets_count": 9, + "current_energy_efficiency_band": "C", + "environmental_impact_potential": 76, + "has_heated_separate_conservatory": "false", + "potential_energy_efficiency_band": "C", + "co2_emissions_current_per_floor_area": 32, + "low_energy_fixed_lighting_outlets_count": 8 +} \ No newline at end of file diff --git a/scripts/hyde/build_100010086084.py b/scripts/hyde/build_100010086084.py new file mode 100644 index 000000000..a700725da --- /dev/null +++ b/scripts/hyde/build_100010086084.py @@ -0,0 +1,316 @@ +"""Elmhurst build for UPRN 100010086084 (SAP-Schema-15.0, cert +8493-5079-7429-8996-5293, SEMI-DETACHED HOUSE, 9 Pear Tree Avenue, Crewe +CW1 3SH, band C 1930-1949, SOLID BRICK uninsulated (thickness not lodged -- +UNKNOWN, not a specific mm value), pitched 300mm loft insulation, SOLID +ground floor uninsulated, mains-gas generic (no-PCDB) REGULAR boiler โ€” SAP +Table 4b code 115 (pre-1998, balanced/open flue, "BGL Pre 98 Wall mount +BF/OF") + programmer/room-thermostat control (2104/CBC) + radiators + +cylinder (size 2 = "Normal (Less than 130L)" on the live tool, foam, 25mm), gas +room-heater SECONDARY (603, approximated as RGB "Modern fire with open flue +post 1980" -- the cert gives no finer detail), TFA 68, single meter, +2-storey / 2 floor-dims (no extensions). Partial double glazing +(multiple_glazing_type 1, multiple_glazed_proportion 50 -- NOT modelled as +partial; this mapper's own `_api_cascade_glazing_type(1)` treats it as 100% +double too, so the Elmhurst build matches the mapper's own simplification), +glazed_area band 1 (Normal): 0.148*68=10.06 m^2 combined window. + +2011 lodged 45; this RdSAP10 engine on gov-API inputs produces 53. Elmhurst's +OWN worksheet, built here, gives 46 (window South-facing: 48 -- see below). +NEITHER is the "right answer" to chase blindly -- see the investigation +write-up in tests/domain/sap10_calculator/test_real_cert_sap_accuracy.py +next to this cert's RealCertExpectation for the full comparison, what was +ruled out, and the two real-but-unfixed bugs this build surfaced (wall- +thickness-unknown U-value fallback mismatch; a window U-value divergence). + +GOTCHAS specific to this build (fold into the next SAP-Schema-15.0 cert): + * The shared assessment WILL carry a stale PCDB boiler ref on Main Heating + 1 from a prior build -- clear `TextBoxPCDFBoilerReference` to "0" (JS + + save) BEFORE `ButtonMainHeatingCode` becomes clickable (mirrors the + documented storage-heater "clear the PCDF boiler first" pattern). + * Wall thickness: use `CheckBoxWallThicknessUnknown`, NOT a blank/skipped + field -- an untouched thickness textbox silently keeps whatever a PRIOR + cert set (bit this build once: inherited a stale 280mm, landing on the + exact documented Table 13 200/280mm edge case). + * `set_single_window`'s orientation choice is NOT neutral for a cert this + reduced-field: North gave 46, South gave 48 (max solar gain) on this + cert. South is the fairer bound (this mapper's own N/E/S/W synthesis + spreads solar gain; a single North-facing pick is the worst case). + * The Roof/Cylinder thickness dropdowns need an EXACT option-text match + ("300 mm" not "300 mm or more"; "25 mm" not "25") -- `set_select` fails + silently (no exception) on a non-matching value and leaves the field at + its previous/inherited state. ALWAYS verify with `.input_value()` after + setting, don't trust the call succeeded. + * Address/region are carried over from whatever cert built the shared + assessment last -- explicitly set them (see `address()` below) even + though region is provably inert for the SAP rating itself (UK-average + weather always, `_region_index` in cert_to_inputs.py) -- other summary + fields (post town) still read from it. + +Run: + DISPLAY=:99 python scripts/hyde/build_100010086084.py +""" +from __future__ import annotations +import sys +import elmhurst_lib as E + +DIM = "TabContainer_TabPanelMain_WebUserControlDimensionsMain_" +WALL = ("TabContainer_TabPanelMain_InnerTabContainerMain_" + "TabPanelExternalWallMain_WebUserControlWallMain_") +PWALL = "TabContainer_TabPanelMain_InnerTabContainerMain_TabPanelPartyWallMain_WebUserControlPartyWallMain_" +ROOF = "TabContainer_TabPanelMain_WebUserControlRoofMain_" +FLOOR = "TabContainer_TabPanelMain_WebUserControlFloorsMain_" +DP = "TabContainer_TabPanelDoorsPanel_" +VP = "TabContainer_TabPanelVentilationPanel_" +APT = "TabContainer_TabPanelAirPressureTest_" +LP = "TabContainer_TabPanelLighting_" +MV = "TabContainer_TabPanelMechVent_" +WH = "TabContainer_TabPanelWaterHeating_" +MH1B = "TabContainer_TabPanelMainHeating1_WebUserControlMainHeating1_" + + +def _pick(page, suffix, contains): + val = page.evaluate( + """(a)=>{const s=document.getElementById(a[0]);if(!s)return null; + for(const o of s.options){if(o.text.toLowerCase().includes(a[1].toLowerCase()))return o.value;}return null;}""", + [f"{E.FP}{suffix}", contains]) + if val is not None: + E.set_select(page, suffix, val) + return val + + +def address(page): + page.goto(E.ENTRY_URL, wait_until="networkidle", timeout=60_000) + E.set_text(page, "TextBoxHouseNo", "9") + E.set_text(page, "TextBoxStreet", "Pear Tree Avenue") + E.set_text(page, "TextBoxTown", "Crewe") + E.set_text(page, "TextBoxPostCode", "CW1 3SH") + page.wait_for_timeout(300) + E.set_select(page, "DropDownListRegion", "West Pennines") + page.click("#ContentBody_ContentPlaceHolderNavigations_ButtonSaveClose", timeout=15_000) + page.wait_for_timeout(1000) + + +def property_description(page): + E.goto(page, "PropertyDescription", "WebFormPropertyDescription.aspx") + E.set_select(page, "DropDownListPropertyType1", "H House") + _pick(page, "DropDownListPropertyType2", "semi") # built_form 2 + E.set_text(page, "TextBoxStoreys", "2") + E.set_text(page, "TextBoxHabitableRooms", "3") + E.set_text(page, "TextBoxHeatedHabitableRooms", "3") + print("date ->", _pick(page, "DropDownListDateBuiltMain", "1930-1949")) # band C + E.set_select(page, "DropDownListDateBuiltFirst", "") + E.set_select(page, "DropDownListRoomInRoofMain", "") + E.save_close(page) + + +def dimensions(page): + E.goto(page, "Dimensions", "WebFormDimensions.aspx") + # Ground floor: area 37.74, heat_loss_perimeter 21.05 -> geometry-derived + # party wall (the shared/depth side) ~4.58m. + E.set_text(page, f"{DIM}TextBoxFloorAreaLowestFloor", "37.74") + E.set_text(page, f"{DIM}TextBoxRoomHeightLowestFloor", "2.41") + E.set_text(page, f"{DIM}TextBoxWallPerimeterLowestFloor", "21.05") + E.set_text(page, f"{DIM}TextBoxPartyWallLengthLowestFloor", "4.58") + # First floor: area 39.48, heat_loss_perimeter 18.45 -> party wall ~6.75m. + E.set_text(page, f"{DIM}TextBoxFloorArea1stFloor", "39.48") + E.set_text(page, f"{DIM}TextBoxRoomHeight1stFloor", "2.45") + E.set_text(page, f"{DIM}TextBoxWallPerimeter1stFloor", "18.45") + E.set_text(page, f"{DIM}TextBoxPartyWallLength1stFloor", "6.75") + E.save_close(page) + + +def walls(page): + E.goto(page, "Walls", "WebFormWalls.aspx") + E.set_select(page, f"{WALL}DropDownListType", "SO Solid brick") + page.wait_for_timeout(400) + print("insulation ->", _pick(page, f"{WALL}DropDownListInsulation", "as built")) + # Thickness NOT lodged on this schema -- mark unknown explicitly, don't + # leave the textbox untouched (it silently inherits a stale value). + cb = page.locator(f"#{E.FP}{WALL}CheckBoxWallThicknessUnknown") + if cb.count() and not cb.is_checked(): + E.commit(page, cb.check) + pw = _pick(page, f"{PWALL}DropDownListPartyWallType", "solid") \ + or _pick(page, f"{PWALL}DropDownListPartyWallType", "determine") + print("party wall ->", pw) + E.save_close(page) + + +def roofs(page): + E.goto(page, "Roofs", "WebFormRoofs.aspx") + _pick(page, f"{ROOF}DropDownListType", "access to loft") + _pick(page, f"{ROOF}DropDownListInsulationAt", "joists") + E.set_select(page, f"{ROOF}DropDownListThickness", "300 mm") # exact match + print("roof thickness now:", page.locator(f"#{E.FP}{ROOF}DropDownListThickness").input_value()) + E.save_close(page) + + +def floors(page): + E.goto(page, "Floors", "WebFormFloors.aspx") + E.set_select(page, f"{FLOOR}DropDownListLocation", "G Ground floor") + _pick(page, f"{FLOOR}DropDownListType", "solid") + E.set_select(page, f"{FLOOR}DropDownListInsulation", "A As built") + E.save_close(page) + + +def openings(page): + E.goto(page, "Openings", "WebFormOpenings.aspx") + E.click_tab(page, "TabContainer_TabPanelWindowsPanel") + # glazed_area band 1 (Normal): total = 0.148*68*1.00 = 10.06 m^2. multiple_ + # glazing_type=1 -> this mapper's own _api_cascade_glazing_type(1) treats + # it as 100% double (ignores multiple_glazed_proportion=50 the same way), + # so "Double, unknown install date" matches the mapper's own assumption. + # South (not North) -- max solar gain, the fairer single-orientation + # bound against this mapper's own N/E/S/W synthesis (see module docstring). + E.set_single_window(page, 10.06, "South", "Double with unknown install date") + E.click_tab(page, "TabContainer_TabPanelDoorsPanel") + E.set_text(page, f"{DP}TextBoxDoors", "1") + E.set_text(page, f"{DP}TextBoxDoorsInsulated", "0") + E.set_text(page, f"{DP}TextBoxDraughtProofedDoors", "0") + E.save_close(page) + + +def ventilation(page): + E.goto(page, "VentilationAndCooling", "WebFormVentilationAndCooling.aspx") + E.click_tab(page, "TabContainer_TabPanelVentilationPanel") + # This cert's register lodges open_fireplaces_count=0 (epc.json) -- the + # shared assessment's ventilation tab silently inherits a stale + # TextBoxOpenChimneys="2" from a PRIOR cert build (same untouched-field- + # keeps-prior-value gotcha documented above for wall thickness) unless + # explicitly zeroed here. + E.set_text(page, f"{VP}TextBoxOpenChimneys", "0") + E.set_text(page, f"{VP}TextBoxChimneysFluesClosedFire", "0") + E.set_text(page, f"{VP}TextBoxBlockedChimneys", "0") + E.set_text(page, f"{VP}TextBoxIntermittentFans", "0") + cool = page.locator(f"#{E.FP}{VP}CheckBoxFixedSpaceCooling") + if cool.count() and cool.is_checked(): + E.commit(page, cool.uncheck) + E.click_tab(page, "TabContainer_TabPanelMechVent") + mv = page.locator(f"#{E.FP}{MV}CheckBoxMechanicalVentilation") + if mv.count() and mv.is_checked(): + E.commit(page, mv.uncheck) + E.click_tab(page, "TabContainer_TabPanelAirPressureTest") + E.set_select(page, f"{APT}DropDownListTestMethod", "Not available") + E.click_tab(page, "TabContainer_TabPanelLighting") + # low_energy_lighting 43% of 7 fixed outlets -> 3 low-energy. + E.set_text(page, f"{LP}TextBoxLightsTotal", "7") + E.set_text(page, f"{LP}TextBoxLedLightsTotal", "3") + E.set_text(page, f"{LP}TextBoxCflLightsTotal", "0") + E.save_close(page) + + +def space_heating(page): + # SAP Table 4b code 115: pre-1998 gas boiler, balanced/open flue, no PCDB + # index (main_heating_data_source=2). Regular boiler (has_hot_water_ + # cylinder=true, water_heating_code 901 "from primary") + radiators + # (heat_emitter_type=1), fan_flue_present=N. + E.goto(page, "SpaceHeating", "WebFormSpaceHeating.aspx") + page.wait_for_timeout(1000) + # The shared assessment's Main Heating 1 slot carries a stale PCDB boiler + # ref from a prior build -- clear it first (JS + save) so the SAP-code + # button appears; mirrors the documented storage-heater pattern. + ref = page.locator(f"#{E.FP}{MH1B}TextBoxPCDFBoilerReference") + if ref.count() and ref.input_value() not in ("", "0"): + print(f"clearing leftover PCDF boiler ref {ref.input_value()}") + page.evaluate("""(id)=>{const e=document.getElementById(id);if(e){e.value='0'; + e.dispatchEvent(new Event('change',{bubbles:true}));}}""", f"{E.FP}{MH1B}TextBoxPCDFBoilerReference") + page.wait_for_timeout(500) + E.save_close(page) + page.wait_for_load_state("networkidle", timeout=20_000) + page.wait_for_selector( + f"#{E.NAV}SpaceHeating_Link", state="visible", timeout=30_000 + ) + E.goto(page, "SpaceHeating", "WebFormSpaceHeating.aspx") + page.wait_for_timeout(1000) + mhc = page.locator(f"#{E.MH1}TextBoxMainHeatingCode") + code = mhc.input_value() if mhc.count() else "" + if code and code not in ("0",): + print(f"clearing leftover MainHeatingCode {code}") + page.evaluate("""(id)=>{const e=document.getElementById(id);if(e){e.value=''; + e.dispatchEvent(new Event('change',{bubbles:true}));}}""", f"{E.MH1}TextBoxMainHeatingCode") + page.wait_for_timeout(400) + E.save_close(page) + return + # Generic (no-PCDB) mains-gas REGULAR boiler, pre-1998 balanced/open flue + # (matches boiler_flue_type=1, fan_flue_present=N) -> Gas -> Mains gas -> + # Boilers -> Pre 1998 - Balanced/Open Flue -> Wall mount (regular, not + # combi/back-boiler -- matches has_hot_water_cylinder=true). + E.set_heating_dialog(page, f"{MH1B}ButtonMainHeatingCode", + "^Gas", "Mains gas", "Boilers", "Balanced.*Open", + "Wall mount") + print("code:", page.locator(f"#{E.MH1}TextBoxMainHeatingCode").input_value()) + # Control 2104 = "Programmer and room thermostat" (matches the cert's own + # main_heating_controls description) -- no TRVs. NB: CBC is "Programmer + # and room thermostat"; CBB is "Room thermostat and TRVs" -- do not swap. + E.set_heating_dialog(page, f"{MH1B}ButtonMainHeatingControls", + "^Boilers", "^Standard", "CBC Programmer and room thermostat") + print("control:", page.locator(f"#{E.MH1}TextBoxMainHeatingControls").input_value()) + # Explicit flue type (BUG fixed): the "Balanced/Open Flue" boiler-code + # CATEGORY picked above is a combined Table 4b group name (BF/OF) that + # does NOT set the separate `RadioButtonListFlueType` select on this + # page -- that field kept its inherited/default "Balanced" from a + # prior cert (silent-stale-value class of bug, see docstring), which + # mismatches the lodged gov-API `boiler_flue_type=1` ("Open"). Set it + # explicitly to match. + E.set_select(page, f"{MH1B}RadioButtonListFlueType", "Open") + print("flue type:", page.locator(f"#{E.FP}{MH1B}RadioButtonListFlueType").input_value()) + E.save_close(page) + + +def secondary(page): + # Lodged secondary: SAP 603 = room heaters, mains gas (no finer detail + # lodged -- RGB "Modern fire with open flue post 1980" is the generic + # approximation). + E.goto(page, "SpaceHeating", "WebFormSpaceHeating.aspx") + page.wait_for_timeout(600) + E.set_select(page, "DropDownListSecondaryHeatingPresent", "Yes") + page.wait_for_timeout(900) + E.set_heating_dialog(page, "ButtonSecondaryHeatingCode", + "^Gas", "Mains gas", "Room Heater", "RGB Modern fire with open flue") + tb = page.locator(f"#{E.FP}TextBoxSecondaryHeatingCode") + print("secondary code:", tb.input_value() if tb.count() else "?") + E.save_close(page) + + +def water_heating(page): + E.goto(page, "WaterHeating", "WebFormWaterHeating.aspx") + E.click_tab(page, "TabContainer_TabPanelWaterHeating") + page.wait_for_timeout(400) + E.set_heating_dialog(page, f"{WH}ButtonWaterHeatingCode", + "From Space Heating", "From the primary heating system") + print("water code:", page.locator(f"#{E.FP}{WH}TextBoxWaterHeatingCode").input_value()) + # cylinder: lodged cylinder_size code 2 = SAP10 "Normal" (110 L; see + # cert_to_inputs.py _CYLINDER_SIZE_CODE_TO_LITRES). BUG (fixed): this + # dropdown's