Classifying South Yorkshire’s Housing Stock with Simple Rule-Based Scripts

When you try to plan a retrofit strategy across South Yorkshire, you run into an immediate problem: the basic property data is a mess. A 1930s semi might actually be a Victorian house split into flats, while a listed “bungalow” is often just a data entry error from a decade ago. Multiply that across half a million properties and any energy model stalls out immediately.

To get around this, I put together a lightweight classifier to sort these messy records into 14 standardised housing types (from small mid-terraces like T-RM to large Victorian detached homes, DT-V). It just relies on basic floor area cutoffs and nested if/else logic.

  • GitHub repository name: A-Rule-Based-Method-for-Classifying-Housing-Archetypes-
  • Author: May Zune
  • Related publications: Regional Retrofit, Net-Zero Aspirations, and their Whole Life Carbon Burden (Under Review)
  • Funder: Research England Development Fund through the South Yorkshire Sustainability Centre

Testing Across EPC and Verisk

I ran the logic against two datasets: the government’s EPC database and Verisk’s 3D building dataset. They both cover South Yorkshire, but format spatial data differently. EPC gives you pre-packaged property types, but Verisk lacks a bungalow tag entirely, so I had to guess single-storey structures based purely on floor counts. Verisk’s raw terrace records were also full of garbage data, like floor counts stored as “3,5”.

Even so, the basic cutoffs (150 m² for detached, 100–150 m² for semi-detached) held up surprisingly well across both notebooks.

Where it breaks down

Side-by-side, the actual numbers tell a different story. EPC flagged over 143,000 small rectangular semis (SD-R), while Verisk only caught 61,000. For detached bungalows, the pattern flipped completely.

Part of this is just sampling bias; EPCs only exist for homes that have been officially surveyed. But hard cutoffs also create annoying edge cases. If a home sits right on the 100 m² mark, tiny measurement differences between datasets throw it into completely different categories.

Known issues in the script:

  • Bungalows rely on floor count instead of footprint area, breaking consistency with the main ruleset.
  • Anything over six storeys is dropped entirely.
  • The area cutoffs are tuned for South Yorkshire and will break in high-density areas like London.

It’s a fast baseline, but it obviously won’t replace actual site surveys. The code and rulesets are up on GitHub; my main goal now is patching these edge cases without making the core script fragile.

Leave a Reply

Discover more from a place to pause

Subscribe now to keep reading and get access to the full archive.

Continue reading