DEV Community

Faisal Ashfaq
Faisal Ashfaq

Posted on

Building a council-level dataset of UK ECO home energy upgrades

Official UK statistics are often published as multi-sheet Excel workbooks. This post covers how I turned the DESNZ ECO tables into one clean CSV with a row per council, and what it shows.

Repo: https://github.com/imfaisii/eco-measures-by-council-gb

Source and licence

Department for Energy Security and Net Zero (DESNZ), Household Energy Efficiency Statistics, headline release June 2026 (published 25 June 2026): Table 3.4 (ECO measures by administrative area), Table 3.5 (Affordable Warmth measures via flexible eligibility) and Table 4.4 (households in receipt of ECO measures). Contains public sector information licensed under the Open Government Licence v3.0. Underlying data (c) Crown copyright.

Cleaning and joining

  • Read the three tables with pandas and joined them on the ONS/GSS area code (E06, E07, E08, E09, W06, S12).
  • Dropped the county and Inner/Outer London sub-total rows to avoid double counting. The county is kept in its own column.
  • Kept values as published. Nothing was adjusted or estimated.
  • Kept DESNZ suppression markers: # means 1 to 4 withheld, ^ means 5 or more withheld. The value is left blank and the marker goes in a flag column.
  • Check: the 350 council rows sum exactly to the published GB totals (4,453,004 measures, 2,595,218 households).

Columns

Column Meaning
council Local authority name as published
area_code ONS/GSS code
county_or_met_county County, metropolitan county or London sub-area; blank for unitary authorities
region_or_nation English region, Wales or Scotland
eco_measures_jan2013_mar2026 All ECO phases, Jan 2013 to Mar 2026
measures_per_1000_households DESNZ published rate
households_helped_jan2013_mar2026 Households with at least one measure
eco3_interim_eco4_flex_measures Flexible eligibility measures since April 2022; may be blank
flex_suppressed_flag # or ^ where withheld

Findings

  • Compare councils by rate, not totals. Birmingham has the most measures (195,919), but Bradford has the highest rate at 578.4 per 1,000 households, just ahead of Ceredigion (577.7).
  • By region, the North West leads at 243.2 per 1,000 households, while London (73.4) and the South East (76.8) are under half the GB rate of 156.7.

Caveats: one household can get several measures, the totals cover every ECO phase since 2013, and the figures are provisional.

Full table

The full table with methodology is at ECO measures by council.

Top comments (0)