Model/tests/fixtures/epc_prediction/WA53GF/cert-0bcbc7bf951d.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
10 KiB
JSON

{"der": 3.51, "ter": 11.3, "dfee": 34.4, "dper": 36.87, "tfee": 36.4, "tper": 59.05, "uprn": 10097320589, "roofs": [{"description": {"value": "Average thermal transmittance 0.09 W/m\u00b2K", "language": "1"}, "energy_efficiency_rating": 5, "environmental_efficiency_rating": 5}], "walls": [{"description": {"value": "Average thermal transmittance 0.19 W/m\u00b2K", "language": "1"}, "energy_efficiency_rating": 5, "environmental_efficiency_rating": 5}], "floors": [{"description": {"value": "Average thermal transmittance 0.12 W/m\u00b2K", "language": "1"}, "energy_efficiency_rating": 5, "environmental_efficiency_rating": 5}], "status": "entered", "tenure": "ND", "windows": {"description": {"value": "High performance glazing", "language": "1"}, "energy_efficiency_rating": 4, "environmental_efficiency_rating": 4}, "lighting": {"description": {"value": "Excellent lighting efficiency", "language": "1"}, "energy_efficiency_rating": 5, "environmental_efficiency_rating": 5}, "postcode": "WA5 3GF", "data_type": 2, "hot_water": {"description": {"value": "From main system", "language": "1"}, "energy_efficiency_rating": 4, "environmental_efficiency_rating": 5}, "post_town": "", "built_form": 2, "created_at": "2026-03-13 13:19:52", "living_area": 16.12, "orientation": 3, "region_code": 19, "report_type": 3, "sap_heating": {"number_baths": 1, "thermal_store": 1, "shower_outlets": [{"shower_power": 9.3, "shower_wwhrs": 1, "shower_flow_rate": 6, "shower_outlet_type": 3}], "water_fuel_type": 39, "water_heating_code": 901, "hot_water_store_size": 180, "main_heating_details": [{"has_fghrs": "false", "main_fuel_type": 39, "heat_emitter_type": 1, "main_heating_number": 1, "main_heating_control": 2207, "main_heating_category": 4, "main_heating_fraction": 1, "central_heating_pump_age": 2, "main_heating_data_source": 1, "main_heating_index_number": 107682, "heat_pump_heat_distribution": 45, "is_oil_pump_in_heated_space": "false", "is_main_heating_hetas_approved": "false", "is_central_heating_pump_in_heated_space": "true"}], "has_hot_water_cylinder": "true", "has_cylinder_thermostat": "true", "hot_water_store_heat_loss": 1.39, "has_fixed_air_conditioning": "false", "secondary_heating_category": 1, "is_cylinder_in_heated_space": "true", "is_immersion_for_summer_use": "false", "primary_pipework_insulation": 4, "is_heat_pump_installed_to_mis": "false", "is_hot_water_separately_timed": "true", "hot_water_store_heat_loss_source": 2, "hot_water_store_heat_transfer_area": 2, "is_heat_pump_assisted_by_immersion": "false"}, "sap_version": 10.2, "schema_type": "SAP-Schema-19.1.0", "uprn_source": "Address Matched", "country_code": "ENG", "main_heating": [{"description": {"value": "Air source heat pump, radiators, electric", "language": "1"}, "energy_efficiency_rating": 4, "environmental_efficiency_rating": 5}], "sap_lighting": [[{"lighting_power": 10, "lighting_outlets": 4, "lighting_efficacy": 75}, {"lighting_power": 10, "lighting_outlets": 12, "lighting_efficacy": 96}]], "terrain_type": 2, "air_tightness": {"description": {"value": "Air permeability [AP50] = 4.9 m\u00b3/h.m\u00b2 (as tested)", "language": "1"}, "energy_efficiency_rating": 4, "environmental_efficiency_rating": 4}, "dwelling_type": "Semi-detached house", "language_code": 1, "property_type": 0, "address_line_1": "addr-779245ddda67", "assessment_date": "2026-03-13", "assessment_type": "SAP", "completion_date": "2026-03-13", "inspection_date": "2026-03-13", "sap_ventilation": {"psv_count": 0, "wall_type": 2, "pressure_test": 1, "wet_rooms_count": 3, "air_permeability": 4.92, "open_flues_count": 0, "ventilation_type": 6, "has_draught_lobby": "false", "other_flues_count": 0, "closed_flues_count": 0, "extract_fans_count": 0, "boilers_flues_count": 0, "open_chimneys_count": 0, "sheltered_sides_count": 2, "blocked_chimneys_count": 0, "kitchen_duct_fans_count": 0, "kitchen_room_fans_count": 0, "kitchen_wall_fans_count": 1, "flueless_gas_fires_count": 0, "mechanical_vent_duct_type": 2, "non_kitchen_duct_fans_count": 0, "non_kitchen_room_fans_count": 0, "non_kitchen_wall_fans_count": 2, "mechanical_ventilation_data_source": 1, "mechanical_vent_system_index_number": 500776, "is_mechanical_vent_approved_installer_scheme": "false"}, "design_water_use": 1, "sap_data_version": 10.2, "total_floor_area": 82, "transaction_type": 6, "cold_water_source": 1, "conservatory_type": 1, "registration_date": "2026-03-13", "sap_energy_source": {"electricity_tariff": 1}, "sap_opening_types": [{"name": "Door", "type": 1, "u_value": 1, "data_source": 2, "glazing_type": 1, "isargonfilled": "false"}, {"name": "Windows", "type": 4, "u_value": 1.3, "data_source": 4, "frame_factor": 1.0, "glazing_type": 7, "isargonfilled": "false", "solar_transmittance": 0.43}, {"name": "Half Glazed Door", "type": 2, "u_value": 1.1, "data_source": 4, "glazing_type": 7, "isargonfilled": "false"}, {"name": "French Door", "type": 4, "u_value": 1.3, "data_source": 4, "frame_factor": 1.0, "glazing_type": 7, "isargonfilled": "false", "solar_transmittance": 0.38}], "secondary_heating": {"description": {"value": "None", "language": "1"}, "energy_efficiency_rating": 0, "environmental_efficiency_rating": 0}, "lowest_storey_area": 40.82, "lzc_energy_sources": [9], "sap_building_parts": [{"sap_roofs": [{"name": "Roof (1)", "u_value": 0.09, "roof_type": 2, "kappa_value": 9, "total_roof_area": 40.81999969482422}], "sap_walls": [{"name": "Walls (1)", "u_value": 0.19, "wall_type": 2, "kappa_value": 60, "total_wall_area": 91.61, "is_curtain_walling": "false"}, {"name": "Party Wall (1)", "u_value": 0, "wall_type": 4, "kappa_value": 110, "total_wall_area": 45.36, "is_curtain_walling": "false"}, {"name": "Internal Wall (1)", "u_value": 0, "wall_type": 5, "kappa_value": 9, "total_wall_area": 138.25, "is_curtain_walling": "false"}], "sap_openings": [{"name": "Opening 1", "type": "Door", "width": 2.14, "height": 1, "location": "Walls (1)", "orientation": 3}, {"name": "Opening 2", "type": "Windows", "width": 4.67, "height": 1, "location": "Walls (1)", "orientation": 3}, {"name": "Opening 5", "type": "Windows", "width": 1.44, "height": 1, "location": "Walls (1)", "orientation": 1}, {"name": "Opening 6", "type": "Windows", "width": 1.4, "height": 1, "location": "Walls (1)", "orientation": 7}, {"name": "French Doors", "type": "French Door", "width": 3.8, "height": 1, "location": "Walls (1)", "orientation": 7}], "construction_year": 2022, "sap_thermal_bridges": {"thermal_bridges": [{"length": 4.9, "psi_value": 0.064, "psi_value_source": 1, "thermal_bridge_type": "E2"}, {"length": 3.88, "psi_value": 0.022, "psi_value_source": 1, "thermal_bridge_type": "E3"}, {"length": 13.06, "psi_value": 0.0296, "psi_value_source": 1, "thermal_bridge_type": "E4"}, {"length": 18.07, "psi_value": 0.076, "psi_value_source": 1, "thermal_bridge_type": "E5"}, {"length": 18.07, "psi_value": 0.002, "psi_value_source": 1, "thermal_bridge_type": "E6"}, {"length": 8.95, "psi_value": 0.0383, "psi_value_source": 1, "thermal_bridge_type": "E10"}, {"length": 9.12, "psi_value": 0.057, "psi_value_source": 1, "thermal_bridge_type": "E12"}, {"length": 10.14, "psi_value": 0.047, "psi_value_source": 1, "thermal_bridge_type": "E16"}, {"length": 8.4, "psi_value": 0.1, "psi_value_source": 4, "thermal_bridge_type": "E4"}, {"length": 1.81, "psi_value": 0.064, "psi_value_source": 1, "thermal_bridge_type": "E2"}, {"length": 10.14, "psi_value": 0.0343, "psi_value_source": 1, "thermal_bridge_type": "E18"}, {"length": 8.95, "psi_value": 0.06, "psi_value_source": 1, "thermal_bridge_type": "P1"}, {"length": 8.95, "psi_value": 0, "psi_value_source": 4, "thermal_bridge_type": "P2"}, {"length": 8.95, "psi_value": 0.033, "psi_value_source": 1, "thermal_bridge_type": "P4"}], "thermal_bridge_code": 5}, "building_part_number": 1, "sap_floor_dimensions": [{"storey": 0, "u_value": 0.12, "floor_type": 2, "kappa_value": 160, "storey_height": 2.38, "heat_loss_area": 40.82, "total_floor_area": 40.82}, {"storey": 1, "u_value": 0, "floor_type": 3, "kappa_value": 18, "storey_height": 2.69, "heat_loss_area": 0, "total_floor_area": 40.82, "kappa_value_from_below": 9}]}], "user_interface_name": "Design SAP 10", "windows_overshading": 2, "heating_cost_current": {"value": 184, "currency": "GBP"}, "co2_emissions_current": 0.3, "energy_rating_average": 60, "energy_rating_current": 86, "lighting_cost_current": {"value": 55, "currency": "GBP"}, "main_heating_controls": [{"description": {"value": "Time and temperature zone control", "language": "1"}, "energy_efficiency_rating": 5, "environmental_efficiency_rating": 5}], "has_hot_water_cylinder": "true", "heating_cost_potential": {"value": 207, "currency": "GBP"}, "hot_water_cost_current": {"value": 279, "currency": "GBP"}, "suggested_improvements": [{"sequence": 1, "typical_saving": {"value": 49, "currency": "GBP"}, "indicative_cost": "\u00a34,000 - \u00a37,000", "improvement_type": "N", "improvement_details": {"improvement_number": 19}, "improvement_category": 5, "energy_performance_rating": 87, "environmental_impact_rating": 97}, {"sequence": 2, "typical_saving": {"value": 330, "currency": "GBP"}, "indicative_cost": "\u00a38,000 - \u00a310,000", "improvement_type": "U", "improvement_details": {"improvement_number": 34}, "improvement_category": 5, "energy_performance_rating": 96, "environmental_impact_rating": 100}], "user_interface_version": "2.26.17", "co2_emissions_potential": 0.0, "energy_rating_potential": 96, "gas_smart_meter_present": "false", "lighting_cost_potential": {"value": 55, "currency": "GBP"}, "schema_version_original": "SAP-Schema-19.1.0", "hot_water_cost_potential": {"value": 207, "currency": "GBP"}, "is_in_smoke_control_area": "unknown", "seller_commission_report": "Y", "energy_consumption_current": 34, "has_fixed_air_conditioning": "false", "is_dwelling_export_capable": "true", "multiple_glazed_percentage": 100, "calculation_software_version": "2.26.17", "energy_consumption_potential": 12, "environmental_impact_current": 97, "current_energy_efficiency_band": "B", "environmental_impact_potential": 100, "electricity_smart_meter_present": "false", "has_heated_separate_conservatory": "false", "potential_energy_efficiency_band": "A", "co2_emissions_current_per_floor_area": 3.3}