Model/tests/fixtures/epc_prediction/EN12PU/cert-60e676acb734.json
Khalim Conn-Kowlessar 008c1922c4 feat(epc-prediction): anonymised Tier-1 fixture + builder (ADR-0030)
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>
2026-06-14 09:17:27 +00:00

1 line
No EOL
7.5 KiB
JSON

{"uprn": 207112000, "roofs": [{"description": "Pitched, insulated at rafters", "energy_efficiency_rating": 2, "environmental_efficiency_rating": 2}], "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", "tenure": 1, "windows": [{"description": "Single glazed", "energy_efficiency_rating": 1, "environmental_efficiency_rating": 1}], "lighting": {"description": "No low energy lighting", "energy_efficiency_rating": 1, "environmental_efficiency_rating": 1}, "postcode": "EN1 2PU", "hot_water": {"description": "Gas instantaneous at point of use", "energy_efficiency_rating": 4, "environmental_efficiency_rating": 4}, "post_town": "", "built_form": 2, "created_at": "2013-05-14 21:06:09.000000", "door_count": 3, "glazed_area": 4, "region_code": 17, "report_type": 2, "sap_heating": {"wwhrs": {"rooms_with_bath_and_or_shower": 3, "rooms_with_mixer_shower_no_bath": 3, "rooms_with_bath_and_mixer_shower": 0}, "cylinder_size": 1, "water_heating_code": 907, "water_heating_fuel": 26, "secondary_fuel_type": 29, "main_heating_details": [{"has_fghrs": "N", "main_fuel_type": 26, "boiler_flue_type": 2, "fan_flue_present": "Y", "heat_emitter_type": 1, "boiler_index_number": 9720, "main_heating_number": 1, "main_heating_control": 2104, "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.91, "sap_windows": [{"orientation": 4, "window_area": 19.231, "window_type": 1, "glazing_type": 5, "window_location": 0}], "schema_type": "SAP-Schema-16.2", "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": "addr-d8c6c3b09af9", "schema_version": "LIG-16.1", "assessment_type": "RdSAP", "completion_date": "2013-05-14", "inspection_date": "2013-05-14", "extensions_count": 1, "measurement_type": 1, "total_floor_area": 362, "transaction_type": 1, "conservatory_type": 1, "heated_room_count": 13, "registration_date": "2013-05-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": 1}, "secondary_heating": {"description": "Room heaters, electric", "energy_efficiency_rating": 0, "environmental_efficiency_rating": 0}, "sap_building_parts": [{"identifier": "Main Dwelling", "wall_dry_lined": "N", "wall_thickness": 360, "floor_heat_loss": 7, "roof_construction": 4, "wall_construction": 3, "building_part_number": 1, "sap_floor_dimensions": [{"floor": 0, "room_height": 2.444, "floor_insulation": 1, "total_floor_area": 48.061, "floor_construction": 1, "heat_loss_perimeter": 17.848}, {"floor": 1, "room_height": 3.142, "total_floor_area": 113.76, "heat_loss_perimeter": 29.394}, {"floor": 2, "room_height": 2.897, "total_floor_area": 104.486, "heat_loss_perimeter": 26.946}, {"floor": 3, "room_height": 2.415, "total_floor_area": 76.753, "heat_loss_perimeter": 24.088}], "wall_insulation_type": 4, "construction_age_band": "B", "wall_thickness_measured": "Y", "roof_insulation_location": 1, "roof_insulation_thickness": "NI", "rafter_insulation_thickness": "NI"}, {"identifier": "Extension", "wall_dry_lined": "N", "wall_thickness": 360, "floor_heat_loss": 7, "roof_construction": 5, "wall_construction": 3, "building_part_number": 2, "sap_floor_dimensions": [{"floor": 0, "room_height": 2.444, "floor_insulation": 1, "total_floor_area": 6.365, "floor_construction": 1, "heat_loss_perimeter": 7.143}, {"floor": 1, "room_height": 2.38, "total_floor_area": 6.365, "heat_loss_perimeter": 7.143}, {"floor": 2, "room_height": 1.966, "total_floor_area": 6.365, "heat_loss_perimeter": 7.143}], "wall_insulation_type": 4, "construction_age_band": "B", "wall_thickness_measured": "Y", "roof_insulation_location": 4, "roof_insulation_thickness": "NI"}], "low_energy_lighting": 0, "solar_water_heating": "N", "bedf_revision_number": 338, "habitable_room_count": 13, "heating_cost_current": {"value": 3219, "currency": "GBP"}, "insulated_door_count": 0, "co2_emissions_current": 18, "energy_rating_average": 60, "energy_rating_current": 46, "lighting_cost_current": {"value": 267, "currency": "GBP"}, "main_heating_controls": [{"description": "Programmer and room thermostat", "energy_efficiency_rating": 3, "environmental_efficiency_rating": 3}], "multiple_glazing_type": "ND", "open_fireplaces_count": 9, "has_hot_water_cylinder": "false", "heating_cost_potential": {"value": 1848, "currency": "GBP"}, "hot_water_cost_current": {"value": 78, "currency": "GBP"}, "mechanical_ventilation": 0, "percent_draughtproofed": 94, "suggested_improvements": [{"sequence": 1, "typical_saving": {"value": 1057, "currency": "GBP"}, "indicative_cost": "\u00a34,000 - \u00a314,000", "improvement_type": "Q", "improvement_details": {"improvement_number": 7}, "improvement_category": 5, "energy_performance_rating": 62, "environmental_impact_rating": 58}, {"sequence": 2, "typical_saving": {"value": 152, "currency": "GBP"}, "indicative_cost": "\u00a3800 - \u00a31,200", "improvement_type": "W", "improvement_details": {"improvement_number": 47}, "improvement_category": 5, "energy_performance_rating": 65, "environmental_impact_rating": 61}, {"sequence": 3, "typical_saving": {"value": 108, "currency": "GBP"}, "indicative_cost": "\u00a3145", "improvement_type": "E", "improvement_details": {"improvement_number": 35}, "improvement_category": 5, "energy_performance_rating": 66, "environmental_impact_rating": 62}, {"sequence": 4, "typical_saving": {"value": 117, "currency": "GBP"}, "indicative_cost": "\u00a3350 - \u00a3450", "improvement_type": "G", "improvement_details": {"improvement_number": 13}, "improvement_category": 5, "energy_performance_rating": 68, "environmental_impact_rating": 64}, {"sequence": 5, "typical_saving": {"value": 68, "currency": "GBP"}, "indicative_cost": "\u00a33,300 - \u00a36,500", "improvement_type": "O", "improvement_details": {"improvement_number": 8}, "improvement_category": 5, "energy_performance_rating": 69, "environmental_impact_rating": 65}, {"sequence": 6, "typical_saving": {"value": 236, "currency": "GBP"}, "indicative_cost": "\u00a39,000 - \u00a314,000", "improvement_type": "U", "improvement_details": {"improvement_number": 34}, "improvement_category": 5, "energy_performance_rating": 72, "environmental_impact_rating": 68}], "co2_emissions_potential": 9.0, "energy_rating_potential": 72, "lighting_cost_potential": {"value": 136, "currency": "GBP"}, "hot_water_cost_potential": {"value": 78, "currency": "GBP"}, "renewable_heat_incentive": {"water_heating": 1559, "impact_of_loft_insulation": -454, "impact_of_solid_wall_insulation": -22147, "space_heating_existing_dwelling": 64000}, "seller_commission_report": "Y", "energy_consumption_current": 256, "has_fixed_air_conditioning": "false", "calculation_software_version": 8.3, "energy_consumption_potential": 130, "environmental_impact_current": 42, "fixed_lighting_outlets_count": 29, "current_energy_efficiency_band": "E", "environmental_impact_potential": 68, "has_heated_separate_conservatory": "false", "potential_energy_efficiency_band": "C", "co2_emissions_current_per_floor_area": 49, "low_energy_fixed_lighting_outlets_count": 0}