A data analytics portfolio project exploring 20+ years of UK house price trends — regional variation, the London premium, and the widening affordability gap.
Tools: Power BI · Python (Pandas, Plotly, Shapely)
Data: HM Land Registry Price Paid · ONS ASHE Regional Wages
- Prices more than doubled across the UK between 2002 and 2025 — a 162% increase in median price
- London's affordability crisis is severe and worsening — in 2025, the median London home costs 12.7× the median annual wage, up from around 7× in 2005
- The North East remains the most affordable region at 5.2× — but even that has risen sharply from ~3× in the early 2000s
- No region has improved — the affordability ratio has worsened everywhere since 2005, not just in London
This project follows a genuine dual-tool DA workflow:
Power BI was used for exploratory analysis and the business-facing dashboard — slicing by region, property type, and year to surface patterns in the data.
Python was used for outputs that go beyond what BI tools can easily produce: interactive choropleth maps with tiled base maps, animation across 21 years, and the affordability ratio overlay combining two separate datasets.
Regional dashboard with year, property type, and region filters. Key KPIs: median price, total transactions, price growth %.
All maps are interactive HTML files — hover for region detail, use the animation controls to step through years.
Median House Price by Region (2005–2025)
python/outputs/uk_house_prices_choropleth_animated.html
Housing Affordability Ratio by Region (2005–2025)
Affordability ratio = median house price ÷ median annual wage (regional vs regional)
python/outputs/uk_affordability_ratio_animated.html
Static 2025 snapshots also available in python/outputs/.
| Dataset | Source | Coverage |
|---|---|---|
| Price Paid (PP) | HM Land Registry | 1995–2026, ~31M transactions |
| Regional Wages (ASHE) | ONS NOMIS | 2002–2025, median gross annual pay by region |
| Region Boundaries | ONS Open Geography Portal | European Electoral Regions (UK) |
Data files are not included in this repo — see the sources above to download them directly.
For the boundary files, download the European Electoral Regions (December 2024) Boundaries UK BFE GeoJSON from the ONS Open Geography Portal and save it to data/boundaries/regions_uk.geojson.
data_vis_project/
├── data/
│ ├── boundaries/ # GeoJSON region boundary files
│ └── cleaned/ # Aggregated price and wages data
├── powerbi/
│ └── uk_house_prices.pbix
├── python/
│ ├── clean_price_paid.py # Raw → cleaned CSV (chunk processing)
│ ├── aggregate_price_paid.py # 31M rows → aggregated by region/year
│ ├── choropleth_house_prices.py # Median price choropleth (static + animated)
│ ├── choropleth_affordability_ratio.py # Affordability ratio choropleth
│ └── outputs/ # HTML map outputs
└── portfolio/
├── screenshots/ # Power BI dashboard screenshots
└── recordings/ # Screen recording of animated choropleth



