Model/tests/fixtures/epc_prediction/CV78UG/cert-e8197b1db767.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
13 KiB
JSON

{"der": 10.0, "ter": 10.29, "dfee": 34.5, "dper": 51.82, "tfee": 35.3, "tper": 53.73, "uprn": 10097098984, "roofs": [{"description": {"value": "Average thermal transmittance 0.11 W/m\u00b2K", "language": "1"}, "energy_efficiency_rating": 5, "environmental_efficiency_rating": 5}], "walls": [{"description": {"value": "Average thermal transmittance 0.23 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": 1, "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": "CV7 8UG", "data_type": 2, "hot_water": {"description": {"value": "From main system, waste water heat recovery", "language": "1"}, "energy_efficiency_rating": 5, "environmental_efficiency_rating": 5}, "post_town": "", "built_form": 2, "created_at": "2026-04-22 13:37:32", "living_area": 15.3, "orientation": 8, "pv_diverter": "true", "region_code": 6, "report_type": 3, "sap_heating": {"number_baths": 1, "thermal_store": 1, "shower_outlets": [{"shower_wwhrs": 2, "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, "instantaneous_wwhrs": {"wwhrs_index_number1": 80179}, "hot_water_store_size": 210, "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": 18042, "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.48, "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": 11, "lighting_efficacy": 90}, {"lighting_power": 8, "lighting_outlets": 12, "lighting_efficacy": 100}]], "terrain_type": 2, "air_tightness": {"description": {"value": "Air permeability [AP50] = 4.5 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, "pv_connection": 2, "address_line_1": "addr-975406041479", "assessment_date": "2026-04-22", "assessment_type": "SAP", "completion_date": "2026-04-22", "inspection_date": "2026-04-22", "sap_ventilation": {"psv_count": 0, "wall_type": 1, "pressure_test": 1, "wet_rooms_count": 5, "air_permeability": 4.48, "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": 4, "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": 113, "transaction_type": 6, "cold_water_source": 1, "conservatory_type": 1, "registration_date": "2026-04-22", "sap_energy_source": {"pv_arrays": [{"pitch": 2, "peak_power": 1.67, "orientation": 4, "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": "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}, {"name": "roof light", "type": 6, "u_value": 1.6, "data_source": 2, "frame_factor": 0.7, "glazing_type": 7, "isargonfilled": "false", "solar_transmittance": 0.55}], "secondary_heating": {"description": {"value": "None", "language": "1"}, "energy_efficiency_rating": 0, "environmental_efficiency_rating": 0}, "lowest_storey_area": 42.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": 22.09}, {"name": "Roof (2)", "u_value": 0.11, "roof_type": 2, "kappa_value": 9, "total_roof_area": 8.55}, {"name": "Roof (3)", "u_value": 0.15, "roof_type": 2, "kappa_value": 9, "total_roof_area": 7.63}, {"name": "Roof (4)", "u_value": 0.16, "roof_type": 2, "kappa_value": 9, "total_roof_area": 1.8}, {"name": "Roof (5)", "u_value": 0.11, "roof_type": 2, "kappa_value": 9, "total_roof_area": 1.5}], "sap_walls": [{"name": "Walls (1)", "u_value": 0.24, "wall_type": 2, "kappa_value": 60, "total_wall_area": 47.04, "is_curtain_walling": "false"}, {"name": "Walls (2)", "u_value": 0.26, "wall_type": 2, "kappa_value": 60, "total_wall_area": 47.06, "is_curtain_walling": "false"}, {"name": "Walls (3)", "u_value": 0.23, "wall_type": 2, "kappa_value": 9, "total_wall_area": 15.1, "is_curtain_walling": "false"}, {"name": "Walls (4)", "u_value": 0.11, "wall_type": 2, "kappa_value": 9, "total_wall_area": 10.9, "is_curtain_walling": "false"}, {"name": "Walls (5)", "u_value": 0.26, "wall_type": 2, "kappa_value": 9, "total_wall_area": 2.85, "is_curtain_walling": "false"}, {"name": "Party Wall (1)", "u_value": 0, "wall_type": 4, "kappa_value": 70, "total_wall_area": 44, "is_curtain_walling": "false"}, {"name": "Party Wall (2)", "u_value": 0, "wall_type": 4, "kappa_value": 20, "total_wall_area": 15.1, "is_curtain_walling": "false"}, {"name": "Internal Wall (1)", "u_value": 0, "wall_type": 5, "kappa_value": 9, "total_wall_area": 132.9, "is_curtain_walling": "false"}, {"name": "Internal Wall (2)", "u_value": 0, "wall_type": 5, "kappa_value": 75, "total_wall_area": 20.2, "is_curtain_walling": "false"}], "sap_openings": [{"name": "front entrance", "type": "front door", "width": 2.1, "height": 1, "location": "Walls (1)", "orientation": 8}, {"name": "Front", "type": "glazing", "width": 3.95, "height": 1, "location": "Walls (1)", "orientation": 8}, {"name": "Rear", "type": "glazing", "width": 2.99, "height": 1, "location": "Walls (1)", "orientation": 4}, {"name": "French Door", "type": "french door", "width": 7.06, "height": 1, "location": "Walls (2)", "orientation": 4}, {"name": "Side", "type": "glazing", "width": 1.5, "height": 1, "location": "Walls (1)", "orientation": 2}, {"name": "Side", "type": "glazing", "width": 0.85, "height": 1, "location": "Walls (1)", "orientation": 6}, {"name": "Front dormer", "type": "glazing", "width": 1.5, "height": 1, "location": "Walls (5)", "orientation": 8}], "construction_year": 2023, "sap_thermal_bridges": {"thermal_bridges": [{"length": 8.29, "psi_value": 0.043, "psi_value_source": 1, "thermal_bridge_type": "E2"}, {"length": 4.42, "psi_value": 0.021, "psi_value_source": 1, "thermal_bridge_type": "E2"}, {"length": 8.1, "psi_value": 0.009, "psi_value_source": 1, "thermal_bridge_type": "E3"}, {"length": 24, "psi_value": 0.014, "psi_value_source": 1, "thermal_bridge_type": "E4"}, {"length": 19.6, "psi_value": 0.054, "psi_value_source": 1, "thermal_bridge_type": "E5"}, {"length": 4.85, "psi_value": 0.048, "psi_value_source": 1, "thermal_bridge_type": "E12"}, {"length": 36.2, "psi_value": 0, "psi_value_source": 1, "thermal_bridge_type": "E6"}, {"length": 10, "psi_value": 0.041, "psi_value_source": 1, "thermal_bridge_type": "E16"}, {"length": 10, "psi_value": 0.042, "psi_value_source": 1, "thermal_bridge_type": "E18"}, {"length": 8.8, "psi_value": 0.04, "psi_value_source": 1, "thermal_bridge_type": "P1"}, {"length": 17.6, "psi_value": 0, "psi_value_source": 1, "thermal_bridge_type": "P2"}, {"length": 4.85, "psi_value": 0.037, "psi_value_source": 1, "thermal_bridge_type": "P4"}, {"length": 9.3, "psi_value": 0.047, "psi_value_source": 1, "thermal_bridge_type": "E11"}, {"length": 5.7, "psi_value": 0.041, "psi_value_source": 1, "thermal_bridge_type": "E13"}, {"length": 5.7, "psi_value": 0.07, "psi_value_source": 1, "thermal_bridge_type": "P5"}, {"length": 1.2, "psi_value": 0.029, "psi_value_source": 1, "thermal_bridge_type": "R1"}, {"length": 1.2, "psi_value": 0.071, "psi_value_source": 1, "thermal_bridge_type": "R2"}, {"length": 2.4, "psi_value": 0.033, "psi_value_source": 1, "thermal_bridge_type": "R3"}, {"length": 5.2, "psi_value": -0.022, "psi_value_source": 1, "thermal_bridge_type": "R7"}, {"length": 4.4, "psi_value": 0.029, "psi_value_source": 1, "thermal_bridge_type": "R9"}, {"length": 9.2, "psi_value": 0.031, "psi_value_source": 1, "thermal_bridge_type": "R6"}, {"length": 2.7, "psi_value": 0.15, "psi_value_source": 4, "thermal_bridge_type": "E24"}, {"length": 1.1, "psi_value": 0.12, "psi_value_source": 1, "thermal_bridge_type": "R1"}, {"length": 1.1, "psi_value": 0.11, "psi_value_source": 1, "thermal_bridge_type": "R2"}, {"length": 3.92, "psi_value": 0.04, "psi_value_source": 1, "thermal_bridge_type": "R3"}], "thermal_bridge_code": 5}, "building_part_number": 1, "sap_floor_dimensions": [{"storey": 0, "u_value": 0.12, "floor_type": 2, "kappa_value": 75, "storey_height": 2.39, "heat_loss_area": 42.9, "total_floor_area": 42.9}, {"storey": 1, "u_value": 0, "floor_type": 3, "kappa_value": 18, "storey_height": 2.6, "heat_loss_area": 0, "total_floor_area": 40.9, "kappa_value_from_below": 9}, {"storey": 2, "u_value": 0, "floor_type": 3, "storey_height": 2.55, "heat_loss_area": 0, "total_floor_area": 29.2}]}], "user_interface_name": "Design SAP 10", "windows_overshading": 2, "heating_cost_current": {"value": 363, "currency": "GBP"}, "co2_emissions_current": 1.1, "energy_rating_average": 60, "energy_rating_current": 91, "lighting_cost_current": {"value": 64, "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": 387, "currency": "GBP"}, "hot_water_cost_current": {"value": 184, "currency": "GBP"}, "suggested_improvements": [{"sequence": 1, "typical_saving": {"value": 39, "currency": "GBP"}, "indicative_cost": "\u00a34,000 - \u00a37,000", "improvement_type": "N", "improvement_details": {"improvement_number": 19}, "improvement_category": 5, "energy_performance_rating": 93, "environmental_impact_rating": 92}], "user_interface_version": "3.1.57", "co2_emissions_potential": 1.0, "energy_rating_potential": 93, "gas_smart_meter_present": "true", "lighting_cost_potential": {"value": 64, "currency": "GBP"}, "schema_version_original": "SAP-Schema-19.1.0", "hot_water_cost_potential": {"value": 154, "currency": "GBP"}, "is_in_smoke_control_area": "unknown", "seller_commission_report": "Y", "energy_consumption_current": 50, "has_fixed_air_conditioning": "false", "is_dwelling_export_capable": "true", "multiple_glazed_percentage": 100, "calculation_software_version": "3.1.57", "energy_consumption_potential": 45, "environmental_impact_current": 91, "current_energy_efficiency_band": "B", "environmental_impact_potential": 92, "electricity_smart_meter_present": "true", "has_heated_separate_conservatory": "false", "potential_energy_efficiency_band": "A", "co2_emissions_current_per_floor_area": 9.6}