House Prices per Metre² in England & Wales

An analysis of government open data, mapped by Huw Diprosev1.0.0

This map shows the average price per m² of houses in each postcode district in England & Wales.

It extends the pioneering work of Anna Powell-Smith from 2017. I've re-run the analysis with data to Jan 1995–Jan 2026, matching records between the Price Paid dataset and floor area from the Energy Performance Certificate dataset. The result is a national dataset of price per m² for 2,276 postcode districts.

Loading map data…
Median postcode £/m²
Postcode districts
Sales matched
Data range
Prices adjusted to

Most expensive

District £/m²

Least expensive

District £/m²

Download the data

The underlying datasets are available as CSV files, licensed under the Open Government Licence v3.0. A machine-readable index with row counts and file sizes is available as data.json.

By postcode district

One row per postcode district × property type, plus an ALL rollup row per district. 2,276 districts.

Download CSV
Column Type Description
postcode_district string UK postcode district (e.g. SW1A)
property_type string Property type: ALL (rollup), D detached, F flat/maisonette, S semi-detached, T terraced, O other
num_sales integer Number of residential sales matched to an EPC record
total_floor_area float Total floor area of matched properties (m²)
total_price float Total transaction value of matched sales (£)
price_per_sqm integer Nominal price per m² = total_price / total_floor_area (£)
adj_price_per_sqm integer CPI-adjusted price per m², base January 2026 (£), using ONS CPI series D7BT

By postcode district and year

One row per postcode district × property type × year. Powers the year-range slider. Districts with fewer than 10 matched sales in a given year are excluded.

Download CSV
Column Type Description
postcode_district string UK postcode district (e.g. SW1A)
property_type string Property type: ALL (rollup), D detached, F flat/maisonette, S semi-detached, T terraced, O other
year integer Calendar year of sale
num_sales integer Number of residential sales matched to an EPC record
total_floor_area float Total floor area of matched properties (m²)
total_price float Total transaction value of matched sales (£)
price_per_sqm integer Nominal price per m² = total_price / total_floor_area (£)
adj_price_per_sqm integer CPI-adjusted price per m², base January 2026 (£), using ONS CPI series D7BT

Methodology

Sale prices are taken from HM Land Registry's Price Paid dataset (standard residential sales to individuals, Jan 1995–Jan 1995–Jan 2026). Floor area per property is taken from Energy Performance Certificates.

Each sale is matched to its EPC in two stages. First, an exact match on the property's Unique Property Reference Number (UPRN) using the UBDC Price Paid–UPRN lookup table, which covers transactions up to January 2022. For each matched sale, the certificate closest in time is used — preferring the most recent one lodged before the sale date, with a fallback to the earliest post-sale certificate if none exists within a ten-year window. For sales after January 2022 — where no UPRN link is available — a second stage matches on postcode plus a normalised address string (combining sub-address, building name or number, and street name), and the most recent certificate for that address is used.

The price per m² for each postcode district is the total transaction value of all matched sales divided by their total floor area — not a mean of per-property ratios. Districts with fewer than 10 matched sales are excluded. Some districts have residential sales but fall below this threshold — for example parts of the City of London (EC2R, EC3V, W1C) and TR23 (Bryher, Isles of Scilly), each with only 2–5 recorded transactions. Other gaps are districts with no matching residential transactions at all, such as industrial estates.

The year-range filter switches the map from its default all-time view to a chosen year window, showing CPI-adjusted prices for matched sales within that period. Each district appears in a given year only where at least 10 matched sales were recorded; sparsely-traded years or early years before widespread EPC adoption (pre-2008) may be absent for some districts. Prices are adjusted to January 2026 pounds for direct comparison across years.

The map uses a hybrid colour scale. The first seven colour bands use quantile breaks, dividing the 2,276 districts into roughly equal groups — this maximises visual contrast across the bulk of the distribution. The top two bands use fixed thresholds: £5,000/m² and £10,000/m². Districts above £5,000/m² are predominantly inner London; above £10,000/m² is almost exclusively central London (Mayfair, Covent Garden, and the City).

Changelog

[1.0.0] — 2026-03-24

First stable release. v1.0.0 marks the point at which this analysis is considered ready for public use and the author commits to semantic versioning from this release onwards. Future patch releases will update data vintages; minor releases will change methodology; major releases will change the output schema or geography.

Output schema change

The district CSV now includes a property_type column. Each postcode district has one ALL row (the previous single row) plus one row per property type: D detached, F flat/maisonette, S semi-detached, T terraced, O other. Consumers relying on one-row-per-district must filter to property_type = ALL.

New outputs

  • price_per_sqm_yearly_postcode_district.csv — annual aggregates per

district, enabling the year-range filter on the web map.

  • price_per_sqm_lsoa.csv — LSOA-level aggregation (promoted from

experimental); used to derive the new MSOA choropleth.

  • price_per_sqm_msoa.csv — MSOA-level aggregation derived from LSOA data;

covers UPRN tier-1 matches only (~60% of sales, 1995–Jan 2022).

New MSOA choropleth

A second map view aggregates price per m² to Middle Super Output Area level, giving finer geographic resolution than postcode districts across England and Wales. Coverage is limited to tier-1 UPRN-matched records.

Matching improvements

Tier 4 — ADDRESS1-only join for named properties

A fourth matching tier recovers rural named properties where PPD has no street field. When paon contains no digits, PPD is keyed on (postcode, normalise_addr(paon)) and matched against EPC (postcode, normalise_addr(ADDRESS1)), ignoring ADDRESS2. Only 1:1 matches on both sides are accepted to limit false positives.

Address normaliser improvements

Three fixes applied to both the Python normaliser and the DuckDB macro:

Fix Gain Issue
Hyphens treated as word separators (CROSS-O-THE-HANDSCROSS O THE HANDS) +2,428 records #114
Article "THE" stripped as whole word (THE OLD RECTORYOLD RECTORY) +4,995 records #113
Compound words canonicalised (FARM HOUSE → FARMHOUSE, etc.) +342 records #115

Gains measured on the March 2026 dataset.

Workaround — E20 remapped to E15

E20 (Queen Elizabeth Olympic Park / East Village, Stratford) was created by Royal Mail after our Geolytix boundary snapshot and has no polygon. All E20 records are now folded into the geographically contiguous E15, recovering 884 previously lost sales.

Summary statistics (2,276 districts)

Metric Value
Districts included 2,276
Total matched sales 16,577,000
Median real adj price £3,058/m²
Most expensive W1S — £35,462/m² (real Jan-2026 £)
Least expensive TS2 — £733/m² (real Jan-2026 £)
Top 5 W1S, WC2A, WC2R, W1B, W1K
Bottom 5 DN31, CF43, BD3, TS1, TS2

---

[0.2.0] — 2026-03-19

Data vintages

Source v0.1.0 v0.2.0
HM Land Registry PPD to Jan 2026 (~22.5M rows) to March 2026 (~29.3M rows)
EPC bulk export per-LA ZIPs, epc.opendatacommunities.org single monolithic CSV, get-energy-performance-data.communities.gov.uk (March 2026)
UBDC PPD→UPRN lookup unchanged — covers to Jan 2022 unchanged
ONS CPI D7BT Jan 1988–Jan 2026 unchanged

The EPC source changed to the new MHCLG GOV.UK One Login API (single 5.7 GB CSV). Four CSV parsing issues were encountered and fixed; see research/epc-csv-data-quality.md.

CPI price deflation — real Jan-2026 £/m²

All sale prices are now inflation-adjusted to January 2026 pounds before aggregation, using ONS CPI All Items monthly series D7BT. The headline column is adj_price_per_sqm; nominal price_per_sqm is retained as a reference.

Match statistics

Tier Count Share
Tier 1 — UPRN exact match 9,255,768 31.6%
Tier 2 — address normalisation 7,321,554 25.0%
Unmatched 12,705,953 43.4%
Total PPD sales 29,283,275

Match rate dropped from 76.9% (v0.1.0) to 56.6% because the PPD gained ~6.8M post-Jan-2022 rows outside the UBDC lookup window. The absolute matched count is broadly unchanged (~16.6M vs ~17.3M).

Summary statistics (2,277 districts)

Metric Value
Districts included 2,277
Total matched sales 16,577,322
Median real adj price £3,058/m²
Most expensive W1S — £35,462/m²
Least expensive TS2 — £733/m²

---

[0.1.0] — 2026-03-19

First versioned release.

Data sources

Source Coverage Licence
HM Land Registry Price Paid Data Standard residential sales, Aug 2007–Jan 2026 OGL v3.0
DLUHC Energy Performance Certificates All domestic lodgements, England & Wales OGL v3.0
UBDC PPD–UPRN lookup Transactions to Jan 2022 Open data, University of Glasgow
GeoLytix postcode district boundaries OGL v3.0

Methodology

Price per m² = Σ(sale_price) / Σ(floor_area_m²) per postcode district. Sales matched to EPCs via UPRN (tier 1), address normalisation (tier 2), then postcode-median floor area fallback (tier 3). Districts with fewer than 10 matched sales excluded.

Summary statistics

Metric Value
Total sales 22,503,694
Matched with floor area ~77%
Districts included 2,279
Median price per m² £1,986
Data range Aug 2007–Jan 2026
Most expensive W1S — £24,184/m²
Least expensive TS2 — £504/m²

Attribution

Price Paid data produced by HM Land Registry © Crown copyright 2026, licensed under the Open Government Licence v3.0. EPC data © Crown copyright DLUHC, licensed under the Open Government Licence v3.0. UBDC PPD–UPRN lookup published as open data by the Urban Big Data Centre, University of Glasgow. Contains Ordnance Survey data © Crown copyright and database right 2026. Contains Royal Mail data © Royal Mail copyright and database right 2026. Contains National Statistics data © Crown copyright and database right 2026. Postcode district derived boundaries reproduced under the Open Government Licence v3.0. Postal boundaries © GeoLytix copyright and database right 2012. Map tiles © CARTO, data © OpenStreetMap contributors.