mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-19 17:03:02 +00:00
The committed gate needs frozen, reproducible data without dumping real UK addresses into the repo. Add: - harness anonymise_payload + stable_hash: hash street address + cert number into opaque, dedup-stable tokens; blank secondary address lines + post_town; keep postcode + all component/lodged fields (gov data is OGL). Unit-tested. - scripts/build_epc_prediction_fixture.py: curate qualifying postcodes (>=1 SAP 10.2 target + >=2 distinct addresses) from the local scratch corpus, anonymise, freeze under tests/fixtures/epc_prediction/. - The frozen fixture: 15 postcodes / 280 certs / 36 SAP-10.2 targets. Verified no plaintext address_line_1 and post_town all blank. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 line
No EOL
12 KiB
JSON
1 line
No EOL
12 KiB
JSON
{"uprn": 100030465811, "roofs": [{"description": "Pitched, 150 mm loft insulation", "energy_efficiency_rating": 4, "environmental_efficiency_rating": 4}, {"description": "Flat, insulated (assumed)", "energy_efficiency_rating": 3, "environmental_efficiency_rating": 3}], "walls": [{"description": "Cavity wall, filled cavity", "energy_efficiency_rating": 4, "environmental_efficiency_rating": 4}, {"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}, {"description": "Suspended, no insulation (assumed)", "energy_efficiency_rating": 0, "environmental_efficiency_rating": 0}, {"description": "Solid, limited insulation (assumed)", "energy_efficiency_rating": 0, "environmental_efficiency_rating": 0}], "status": "entered", "tenure": 1, "window": {"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": "LE11 3PX", "hot_water": {"description": "Electric immersion, off-peak", "energy_efficiency_rating": 1, "environmental_efficiency_rating": 2}, "post_town": "", "built_form": 2, "created_at": "2017-03-10 19:13:52.000000", "door_count": 2, "glazed_area": 1, "region_code": 6, "report_type": 2, "sap_heating": {"cylinder_size": 2, "water_heating_code": 903, "water_heating_fuel": 29, "instantaneous_wwhrs": {"rooms_with_bath_and_or_shower": 1, "rooms_with_mixer_shower_no_bath": 0, "rooms_with_bath_and_mixer_shower": 0}, "secondary_fuel_type": 26, "main_heating_details": [{"has_fghrs": "N", "main_fuel_type": 29, "heat_emitter_type": 0, "emitter_temperature": "NA", "main_heating_number": 1, "main_heating_control": 2401, "main_heating_category": 7, "main_heating_fraction": 0.62, "sap_main_heating_code": 402, "main_heating_data_source": 2}, {"has_fghrs": "N", "main_fuel_type": 29, "heat_emitter_type": 0, "emitter_temperature": "NA", "main_heating_number": 2, "main_heating_control": 2401, "main_heating_category": 7, "main_heating_fraction": 0.38, "sap_main_heating_code": 401, "main_heating_data_source": 2}], "immersion_heating_type": 2, "secondary_heating_type": 605, "cylinder_insulation_type": 2, "has_fixed_air_conditioning": "false", "cylinder_insulation_thickness": 38}, "sap_version": 9.92, "schema_type": "RdSAP-Schema-17.0", "uprn_source": "Energy Assessor", "country_code": "EAW", "main_heating": [{"description": "Electric storage heaters", "energy_efficiency_rating": 3, "environmental_efficiency_rating": 1}, {"description": "Electric storage heaters", "energy_efficiency_rating": 3, "environmental_efficiency_rating": 1}], "dwelling_type": "Semi-detached house", "language_code": 1, "property_type": 0, "address_line_1": "addr-726dc1fc684e", "assessment_type": "RdSAP", "completion_date": "2017-03-10", "inspection_date": "2017-03-09", "extensions_count": 3, "measurement_type": 1, "total_floor_area": 87, "transaction_type": 1, "conservatory_type": 2, "heated_room_count": 5, "pvc_window_frames": "false", "registration_date": "2017-03-10", "sap_energy_source": {"mains_gas": "Y", "meter_type": 1, "photovoltaic_supply": {"none_or_no_details": {"pv_connection": 0, "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", "wall_dry_lined": "N", "wall_thickness": 290, "floor_heat_loss": 7, "roof_construction": 4, "wall_construction": 4, "building_part_number": 1, "sap_floor_dimensions": [{"floor": 0, "room_height": {"value": 2.49, "quantity": "metres"}, "floor_insulation": 1, "total_floor_area": {"value": 16.39, "quantity": "square metres"}, "party_wall_length": {"value": 0, "quantity": "metres"}, "floor_construction": 1, "heat_loss_perimeter": {"value": 7.54, "quantity": "metres"}}, {"floor": 1, "room_height": {"value": 2.43, "quantity": "metres"}, "total_floor_area": {"value": 16.39, "quantity": "square metres"}, "party_wall_length": {"value": 0, "quantity": "metres"}, "heat_loss_perimeter": {"value": 9.12, "quantity": "metres"}}], "wall_insulation_type": 2, "construction_age_band": "D", "party_wall_construction": "NA", "wall_thickness_measured": "Y", "roof_insulation_location": 2, "roof_insulation_thickness": "150mm", "wall_insulation_thickness": "NI"}, {"identifier": "Extension 1", "wall_dry_lined": "N", "wall_thickness": 290, "floor_heat_loss": 7, "roof_construction": 4, "wall_construction": 4, "building_part_number": 2, "sap_floor_dimensions": [{"floor": 0, "room_height": {"value": 2.49, "quantity": "metres"}, "floor_insulation": 1, "total_floor_area": {"value": 14.33, "quantity": "square metres"}, "party_wall_length": {"value": 4.28, "quantity": "metres"}, "floor_construction": 2, "heat_loss_perimeter": {"value": 6.7, "quantity": "metres"}}, {"floor": 1, "room_height": {"value": 2.43, "quantity": "metres"}, "total_floor_area": {"value": 14.33, "quantity": "square metres"}, "party_wall_length": {"value": 4.28, "quantity": "metres"}, "heat_loss_perimeter": {"value": 6.7, "quantity": "metres"}}], "wall_insulation_type": 2, "construction_age_band": "D", "party_wall_construction": 0, "wall_thickness_measured": "Y", "roof_insulation_location": 2, "roof_insulation_thickness": "150mm", "wall_insulation_thickness": "NI"}, {"identifier": "Extension 2", "wall_dry_lined": "N", "wall_thickness": 240, "floor_heat_loss": 7, "roof_construction": 4, "wall_construction": 3, "building_part_number": 3, "sap_floor_dimensions": [{"floor": 0, "room_height": {"value": 2.2, "quantity": "metres"}, "floor_insulation": 1, "total_floor_area": {"value": 9.58, "quantity": "square metres"}, "party_wall_length": {"value": 0, "quantity": "metres"}, "floor_construction": 1, "heat_loss_perimeter": {"value": 6.9, "quantity": "metres"}}, {"floor": 1, "room_height": {"value": 2.44, "quantity": "metres"}, "total_floor_area": {"value": 9.58, "quantity": "square metres"}, "party_wall_length": {"value": 0, "quantity": "metres"}, "heat_loss_perimeter": {"value": 9.62, "quantity": "metres"}}], "wall_insulation_type": 4, "construction_age_band": "D", "party_wall_construction": "NA", "wall_thickness_measured": "Y", "roof_insulation_location": 2, "roof_insulation_thickness": "150mm", "wall_insulation_thickness": "NI"}, {"identifier": "Extension 3", "wall_dry_lined": "N", "wall_thickness": 280, "floor_heat_loss": 7, "roof_construction": 1, "wall_construction": 4, "building_part_number": 4, "sap_floor_dimensions": [{"floor": 0, "room_height": {"value": 2.2, "quantity": "metres"}, "floor_insulation": 1, "total_floor_area": {"value": 6.85, "quantity": "square metres"}, "party_wall_length": {"value": 0, "quantity": "metres"}, "floor_construction": 1, "heat_loss_perimeter": {"value": 11.29, "quantity": "metres"}}], "wall_insulation_type": 2, "construction_age_band": "I", "party_wall_construction": "NA", "wall_thickness_measured": "Y", "roof_insulation_location": 6, "wall_insulation_thickness": "NI", "flat_roof_insulation_thickness": "AB"}], "low_energy_lighting": 0, "solar_water_heating": "N", "habitable_room_count": 5, "heating_cost_current": {"value": 1256, "currency": "GBP"}, "insulated_door_count": 0, "co2_emissions_current": 9.8, "energy_rating_average": 60, "energy_rating_current": 35, "lighting_cost_current": {"value": 128, "currency": "GBP"}, "main_heating_controls": [{"description": "Manual charge control", "energy_efficiency_rating": 2, "environmental_efficiency_rating": 2}], "multiple_glazing_type": 3, "open_fireplaces_count": 0, "has_hot_water_cylinder": "true", "heating_cost_potential": {"value": 932, "currency": "GBP"}, "hot_water_cost_current": {"value": 354, "currency": "GBP"}, "mechanical_ventilation": 0, "percent_draughtproofed": 100, "suggested_improvements": [{"sequence": 1, "typical_saving": {"value": 290, "currency": "GBP"}, "indicative_cost": "14,000", "improvement_type": "Q", "improvement_details": {"improvement_number": 7}, "improvement_category": 5, "energy_performance_rating": 44, "environmental_impact_rating": 31}, {"sequence": 2, "typical_saving": {"value": 28, "currency": "GBP"}, "indicative_cost": "1,200", "improvement_type": "W1", "improvement_details": {"improvement_number": 57}, "improvement_category": 5, "energy_performance_rating": 45, "environmental_impact_rating": 32}, {"sequence": 3, "typical_saving": {"value": 71, "currency": "GBP"}, "indicative_cost": "6,000", "improvement_type": "W2", "improvement_details": {"improvement_number": 58}, "improvement_category": 5, "energy_performance_rating": 48, "environmental_impact_rating": 35}, {"sequence": 4, "typical_saving": {"value": 56, "currency": "GBP"}, "indicative_cost": 30, "improvement_type": "C", "improvement_details": {"improvement_number": 2}, "improvement_category": 5, "energy_performance_rating": 50, "environmental_impact_rating": 35}, {"sequence": 5, "typical_saving": {"value": 48, "currency": "GBP"}, "indicative_cost": 70, "improvement_type": "E", "improvement_details": {"improvement_number": 35}, "improvement_category": 5, "energy_performance_rating": 52, "environmental_impact_rating": 36}, {"sequence": 6, "typical_saving": {"value": 136, "currency": "GBP"}, "indicative_cost": "7,000", "improvement_type": "T", "improvement_details": {"improvement_number": 27}, "improvement_category": 5, "energy_performance_rating": 56, "environmental_impact_rating": 56}, {"sequence": 7, "typical_saving": {"value": 42, "currency": "GBP"}, "indicative_cost": "6,000", "improvement_type": "N", "improvement_details": {"improvement_number": 19}, "improvement_category": 5, "energy_performance_rating": 57, "environmental_impact_rating": 58}, {"sequence": 8, "typical_saving": {"value": 276, "currency": "GBP"}, "indicative_cost": "8,000", "improvement_type": "U", "improvement_details": {"improvement_number": 34}, "improvement_category": 5, "energy_performance_rating": 67, "environmental_impact_rating": 67}], "co2_emissions_potential": 3.1, "energy_rating_potential": 67, "lighting_cost_potential": {"value": 58, "currency": "GBP"}, "schema_version_original": "LIG-17.0", "alternative_improvements": [{"sequence": 1, "typical_saving": {"value": 286, "currency": "GBP"}, "improvement_type": "J2", "improvement_details": {"improvement_number": 54}, "improvement_category": 6, "energy_performance_rating": 60, "environmental_impact_rating": 72}, {"sequence": 2, "typical_saving": {"value": 282, "currency": "GBP"}, "improvement_type": "Z1", "improvement_details": {"improvement_number": 51}, "improvement_category": 6, "energy_performance_rating": 61, "environmental_impact_rating": 58}, {"sequence": 3, "typical_saving": {"value": 430, "currency": "GBP"}, "improvement_type": "Z3", "improvement_details": {"improvement_number": 53}, "improvement_category": 6, "energy_performance_rating": 67, "environmental_impact_rating": 55}], "hot_water_cost_potential": {"value": 76, "currency": "GBP"}, "renewable_heat_incentive": {"water_heating": 2568, "impact_of_loft_insulation": -320, "impact_of_solid_wall_insulation": -3878, "space_heating_existing_dwelling": 15423}, "energy_consumption_current": 657, "has_fixed_air_conditioning": "false", "multiple_glazed_proportion": 100, "calculation_software_version": "2.10r04", "energy_consumption_potential": 201, "environmental_impact_current": 21, "fixed_lighting_outlets_count": 14, "current_energy_efficiency_band": "F", "environmental_impact_potential": 67, "has_heated_separate_conservatory": "false", "potential_energy_efficiency_band": "D", "co2_emissions_current_per_floor_area": 112, "low_energy_fixed_lighting_outlets_count": 0} |