Model/tests/fixtures/epc_prediction/CV78UG/cert-924d78d64f06.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": 9.57, "ter": 9.81, "dfee": 42.7, "dper": 48.39, "tfee": 43.3, "tper": 51.4, "uprn": 10097098975, "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.24 W/m\u00b2K", "language": "1"}, "energy_efficiency_rating": 5, "environmental_efficiency_rating": 5}], "floors": [{"description": {"value": "Average thermal transmittance 0.11 W/m\u00b2K", "language": "1"}, "energy_efficiency_rating": 5, "environmental_efficiency_rating": 5}], "status": "entered", "tenure": 1, "windows": {"description": {"value": "High performance glazing", "language": "1"}, "energy_efficiency_rating": 4, "environmental_efficiency_rating": 4}, "lighting": {"description": {"value": "Excelent lighting efficiency", "language": "1"}, "energy_efficiency_rating": 5, "environmental_efficiency_rating": 5}, "postcode": "CV7 8UG", "data_type": 2, "hot_water": {"description": {"value": "From main system", "language": "1"}, "energy_efficiency_rating": 4, "environmental_efficiency_rating": 4}, "post_town": "", "built_form": 1, "created_at": "2025-08-11 13:32:49", "living_area": 21.6, "orientation": 8, "pv_diverter": "true", "region_code": 6, "report_type": 3, "sap_heating": {"number_baths": 1, "thermal_store": 1, "shower_outlets": [{"shower_wwhrs": 1, "shower_flow_rate": 8, "shower_outlet_type": 3}, {"shower_wwhrs": 1, "shower_flow_rate": 8, "shower_outlet_type": 3}, {"shower_wwhrs": 1, "shower_flow_rate": 8, "shower_outlet_type": 3}], "water_fuel_type": 1, "water_heating_code": 901, "hot_water_store_size": 180, "main_heating_details": [{"has_fghrs": "false", "main_fuel_type": 1, "heat_emitter_type": 1, "is_flue_fan_present": "true", "main_heating_number": 1, "control_index_number": 200122, "is_condensing_boiler": "true", "main_heating_control": 2110, "is_interlocked_system": "true", "main_heating_category": 2, "main_heating_fraction": 1, "gas_or_oil_boiler_type": 1, "main_heating_flue_type": 2, "central_heating_pump_age": 2, "main_heating_data_source": 1, "main_heating_index_number": 18043, "has_separate_delayed_start": "false", "is_oil_pump_in_heated_space": "false", "is_main_heating_hetas_approved": "false", "condensing_boiler_heat_distribution": 55, "is_central_heating_pump_in_heated_space": "true"}], "has_hot_water_cylinder": "true", "has_cylinder_thermostat": "true", "hot_water_store_heat_loss": 1.4, "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_hot_water_separately_timed": "true", "hot_water_store_heat_loss_source": 2, "is_heat_pump_assisted_by_immersion": "false"}, "sap_version": 10.2, "schema_type": "SAP-Schema-19.1.0", "uprn_source": "Energy Assessor", "country_code": "ENG", "main_heating": [{"description": {"value": "Boiler and radiators, mains gas", "language": "1"}, "energy_efficiency_rating": 5, "environmental_efficiency_rating": 4}], "sap_lighting": [[{"lighting_power": 9, "lighting_outlets": 14, "lighting_efficacy": 90}, {"lighting_power": 8, "lighting_outlets": 26, "lighting_efficacy": 100}]], "terrain_type": 2, "air_tightness": {"description": {"value": "Air permeability [AP50] = 4.3 m\u00b3/h.m\u00b2 (as tested)", "language": "1"}, "energy_efficiency_rating": 4, "environmental_efficiency_rating": 4}, "dwelling_type": "Detached house", "language_code": 1, "property_type": 0, "pv_connection": 2, "address_line_1": "addr-e972da98ce68", "assessment_date": "2025-08-11", "assessment_type": "SAP", "completion_date": "2025-08-11", "inspection_date": "2025-08-11", "sap_ventilation": {"psv_count": 0, "wall_type": 2, "pressure_test": 1, "wet_rooms_count": 6, "air_permeability": 4.3, "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": 1, "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": 5, "mechanical_ventilation_data_source": 1, "mechanical_vent_system_index_number": 500755, "is_mechanical_vent_approved_installer_scheme": "true"}, "battery_capacity": 0, "design_water_use": 1, "sap_data_version": 10.2, "total_floor_area": 154, "transaction_type": 6, "cold_water_source": 1, "conservatory_type": 1, "registration_date": "2025-08-11", "sap_energy_source": {"pv_arrays": [{"pitch": 2, "peak_power": 2.345, "orientation": 4, "overshading": 1}, {"pitch": 2, "peak_power": 1.005, "orientation": 6, "overshading": 1}], "electricity_tariff": 1}, "sap_opening_types": [{"name": "front door", "type": 1, "u_value": 1.4, "data_source": 2, "glazing_type": 1, "isargonfilled": "false"}, {"name": "utility rear door", "type": 2, "u_value": 1.1, "data_source": 2, "glazing_type": 7, "isargonfilled": "false"}, {"name": "glazing", "type": 4, "u_value": 1.3, "data_source": 4, "frame_factor": 1.0, "glazing_type": 7, "isargonfilled": "false", "solar_transmittance": 0.46}, {"name": "french door", "type": 4, "u_value": 1.3, "data_source": 2, "frame_factor": 0.7, "glazing_type": 7, "isargonfilled": "false", "solar_transmittance": 0.71}], "secondary_heating": {"description": {"value": "None", "language": "1"}, "energy_efficiency_rating": 0, "environmental_efficiency_rating": 0}, "lowest_storey_area": 76.9, "lzc_energy_sources": [11], "sap_building_parts": [{"sap_roofs": [{"name": "Roof (1)", "u_value": 0.09, "roof_type": 2, "kappa_value": 9, "total_roof_area": 76.9}], "sap_walls": [{"name": "Walls (1)", "u_value": 0.24, "wall_type": 2, "kappa_value": 60, "total_wall_area": 189.4, "is_curtain_walling": "false"}, {"name": "Internal Wall (1)", "u_value": 0, "wall_type": 5, "kappa_value": 9, "total_wall_area": 175.3, "is_curtain_walling": "false"}, {"name": "Internal Wall (2)", "u_value": 0, "wall_type": 5, "kappa_value": 75, "total_wall_area": 64.8, "is_curtain_walling": "false"}], "sap_openings": [{"name": "front", "type": "front door", "width": 2.1, "height": 1, "location": "Walls (1)", "orientation": 8}, {"name": "rear", "type": "utility rear door", "width": 2, "height": 1, "location": "Walls (1)", "orientation": 4}, {"name": "front", "type": "glazing", "width": 11.05, "height": 1, "location": "Walls (1)", "orientation": 8}, {"name": "rear", "type": "glazing", "width": 3.55, "height": 1, "location": "Walls (1)", "orientation": 8}, {"name": "rear french doors", "type": "french door", "width": 10, "height": 1, "location": "Walls (1)", "orientation": 8}, {"name": "side", "type": "glazing", "width": 3.55, "height": 1, "location": "Walls (1)", "orientation": 2}, {"name": "side", "type": "glazing", "width": 4.75, "height": 1, "location": "Walls (1)", "orientation": 6}], "construction_year": 2023, "sap_thermal_bridges": {"thermal_bridges": [{"length": 17.7, "psi_value": 0.043, "psi_value_source": 1, "thermal_bridge_type": "E2"}, {"length": 5.55, "psi_value": 0.021, "psi_value_source": 1, "thermal_bridge_type": "E2"}, {"length": 16.5, "psi_value": 0.009, "psi_value_source": 1, "thermal_bridge_type": "E3"}, {"length": 42.9, "psi_value": 0.014, "psi_value_source": 1, "thermal_bridge_type": "E4"}, {"length": 38, "psi_value": 0.054, "psi_value_source": 1, "thermal_bridge_type": "E5"}, {"length": 20, "psi_value": 0.08, "psi_value_source": 1, "thermal_bridge_type": "E10"}, {"length": 18, "psi_value": 0.048, "psi_value_source": 1, "thermal_bridge_type": "E12"}, {"length": 38, "psi_value": 0, "psi_value_source": 1, "thermal_bridge_type": "E6"}, {"length": 24.95, "psi_value": 0.041, "psi_value_source": 1, "thermal_bridge_type": "E16"}, {"length": 4.99, "psi_value": -0.094, "psi_value_source": 1, "thermal_bridge_type": "E17"}], "thermal_bridge_code": 5}, "building_part_number": 1, "sap_floor_dimensions": [{"storey": 0, "u_value": 0.11, "floor_type": 2, "kappa_value": 75, "storey_height": 2.39, "heat_loss_area": 76.9, "total_floor_area": 76.9}, {"storey": 1, "u_value": 0, "floor_type": 3, "kappa_value": 18, "storey_height": 2.6, "heat_loss_area": 0, "total_floor_area": 76.9, "kappa_value_from_below": 9}]}], "user_interface_name": "Design SAP 10", "windows_overshading": 2, "heating_cost_current": {"value": 509, "currency": "GBP"}, "co2_emissions_current": 1.4, "energy_rating_average": 60, "energy_rating_current": 93, "lighting_cost_current": {"value": 74, "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": 535, "currency": "GBP"}, "hot_water_cost_current": {"value": 123, "currency": "GBP"}, "suggested_improvements": [{"sequence": 1, "typical_saving": {"value": 26, "currency": "GBP"}, "indicative_cost": "\u00a34,000 - \u00a37,000", "improvement_type": "N", "improvement_details": {"improvement_number": 19}, "improvement_category": 5, "energy_performance_rating": 95, "environmental_impact_rating": 91}], "user_interface_version": "2.23.1", "co2_emissions_potential": 1.4, "energy_rating_potential": 95, "gas_smart_meter_present": "true", "lighting_cost_potential": {"value": 74, "currency": "GBP"}, "schema_version_original": "SAP-Schema-19.1.0", "hot_water_cost_potential": {"value": 153, "currency": "GBP"}, "is_in_smoke_control_area": "unknown", "seller_commission_report": "Y", "energy_consumption_current": 46, "has_fixed_air_conditioning": "false", "is_dwelling_export_capable": "true", "multiple_glazed_percentage": 100, "calculation_software_version": "2.23.1", "energy_consumption_potential": 47, "environmental_impact_current": 90, "current_energy_efficiency_band": "A", "environmental_impact_potential": 91, "electricity_smart_meter_present": "true", "has_heated_separate_conservatory": "false", "potential_energy_efficiency_band": "A", "co2_emissions_current_per_floor_area": 9.2}