Andrew ClarkSoftware · data · property
Data

Turning the EPC register into a dataset you can trust

The government’s register of Energy Performance Certificates is public, but it isn’t a dataset you can count from. What it took to make it one for the Tees Valley, and the traps along the way.

Issued
RevA
Reading3 min
StatusPublished

North Yield publishes analysis of how energy-efficient homes in the Tees Valley are: a yearly review, a deep-dive on TS1 and an interactive map. All of it comes from one public source: the Energy Performance of Buildings Register, which the government publishes as a bulk export.

The register is a list of certificates, not a list of homes. Turning it into numbers you can stand behind took a handful of rules, and most of them came from getting something wrong first.

Scope

We take the bulk export of domestic certificates and keep the five Tees Valley councils. The July 2026 edition covers 244,391 homes. It loads into PostgreSQL, behind a small Phoenix API that serves aggregates only. Record-level analysis runs from the bulk files with separate scripts.

One home, many certificates

A home gets a new certificate every time it’s assessed: when it’s sold, re-let, or after work is done. Count certificates and you count some homes three times, and you count the old, worse rating alongside the new one.

So the rule is: the latest certificate per property at each edition date. It lives in a materialised view that is refreshed after every import, so every query starts from one row per home.

That raises the question of what “the same property” means. We use the UPRN, the national unique property reference, where the certificate has one, and fall back to address plus postcode where it doesn’t.

Comparing editions

With one row per home at each edition date, year-on-year comparisons become honest. In July 2026, 50.0% of Tees Valley homes on the register were rated below C, down from 51.9% a year earlier. Over the year 12,070 homes were re-assessed, and 4,228 of them crossed into A to C.

“Measures installed” needs a careful definition

The interesting question is what people actually did to their homes. We count a measure as installed when it was recommended on a home’s earlier certificate and is gone from the later one.

That definition picked up something odd: a wave of solar water heating and wind turbines disappearing from recommendations. Nobody in Teesside had suddenly fitted wind turbines. In June 2025 the assessment method changed (RdSAP 10), and those recommendations dropped out of the new certificates for reasons that had nothing to do with the homes. They are now excluded from the count.

Traps in the raw data

A few smaller ones, each found the hard way:

  • Fields that aren’t what they say. Some text fields, such as the dwelling type, sometimes arrive as an object with a value and a language rather than a plain string.
  • A district that doesn’t exist. One record carries the postcode district TW31, which isn’t in the Tees Valley or anywhere else we care about. Districts are now filtered to the shapes they should have: TS or DL followed by digits.
  • Prefix matching. One API endpoint matched postcodes by prefix, so a query for TS1 quietly included TS10 to TS19. The TS1 figures looked plausible, which is the dangerous kind of wrong. Queries now match the district exactly.
  • Small areas. District rankings only include districts with at least 2,000 homes, so a handful of re-assessments in a tiny area can’t top a table.

Publishing without exposing anyone

The register contains addresses. That makes it useful and it also means it can be misused. The rules North Yield publishes by:

  • Area and street level only, never individual addresses.
  • A street needs at least 15 re-assessed homes before it appears in anything published.
  • The data is never used to find or contact owners.

Headlines have to carry their complications

The TS1 piece is the model for this. TS1 had the biggest fall in homes rated below C two years running, which makes a good headline. But more than half of the first year’s fall came from homes that were new to the register, not homes that were improved. On upgrades alone, TS1 ranked fourth in 2025–26, behind TS26, TS24 and TS25. The article says so.

If a headline simplifies, the article has to show what it simplified. Qualitative words like “most” and “half” get re-checked after every data refresh.

What I’d tell anyone starting on the register

  1. Decide what one row means (one home, at one point in time) before you count anything.
  2. Write down your definitions and when they change, because the source’s methods change too.
  3. Treat plausible-looking numbers with the same suspicion as obviously wrong ones.
  4. Decide what you won’t publish before you have something tempting to publish.

Revision history

  1. AFirst issued.

All notes