<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Faisal Ashfaq</title>
    <description>The latest articles on DEV Community by Faisal Ashfaq (@imfaisii).</description>
    <link>https://dev.to/imfaisii</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4174208%2Fb321357e-f407-4b88-a82c-f1510d84cb0e.jpg</url>
      <title>DEV Community: Faisal Ashfaq</title>
      <link>https://dev.to/imfaisii</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/imfaisii"/>
    <language>en</language>
    <item>
      <title>Building a council-level dataset of UK ECO home energy upgrades</title>
      <dc:creator>Faisal Ashfaq</dc:creator>
      <pubDate>Fri, 09 Oct 2026 20:46:04 +0000</pubDate>
      <link>https://dev.to/imfaisii/building-a-council-level-dataset-of-uk-eco-home-energy-upgrades-418j</link>
      <guid>https://dev.to/imfaisii/building-a-council-level-dataset-of-uk-eco-home-energy-upgrades-418j</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/imfaisii/eco-measures-by-council-gb" rel="noopener noreferrer"&gt;https://github.com/imfaisii/eco-measures-by-council-gb&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Source and licence
&lt;/h2&gt;

&lt;p&gt;Department for Energy Security and Net Zero (DESNZ), &lt;em&gt;Household Energy Efficiency Statistics&lt;/em&gt;, 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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cleaning and joining
&lt;/h2&gt;

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

&lt;h2&gt;
  
  
  Columns
&lt;/h2&gt;

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

&lt;h2&gt;
  
  
  Findings
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;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).&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Caveats: one household can get several measures, the totals cover every ECO phase since 2013, and the figures are provisional.&lt;/p&gt;

&lt;h2&gt;
  
  
  Full table
&lt;/h2&gt;

&lt;p&gt;The full table with methodology is at &lt;a href="https://applyfreeboiler.uk/data/eco-measures-by-council" rel="noopener noreferrer"&gt;ECO measures by council&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>opendata</category>
      <category>python</category>
      <category>datascience</category>
      <category>uk</category>
    </item>
  </channel>
</rss>
