Lifemap exists to make UK public-data inequalities easier to read, not to add another layer between you and the source. Every figure on the site comes from one of the URLs below. Anything not derivable from these is not on Lifemap.
Period life expectancy at birth and at age 65, by sex, for every UK upper-tier local authority. The pipeline scrapes the landing page each month for the current XLSX filename (it rotates between releases) rather than hardcoding it.
Period covered: 2022–2024 (current). Released December 2025. Annual cadence.
~36 MB. Long-format on numerically-named sheets. Used for le_male and le_female for all 380 council records in the dataset.
Healthy life expectancy at birth, by sex, for every UK upper-tier local authority — English UTLAs, Scottish councils, Welsh principal areas and NI districts alike. The February 2026 release of this dataset resumed LA-level publication (latest period 2022 to 2024) and is now Lifemap's primary HLE source, replacing both the frozen 2016–18 workbook and the Fingertips-first arrangement described here previously. OHID Fingertips indicator 90362 remains as a gap-filler only: it backfills English cells the workbook leaves null and never overrides a workbook value.
The pipeline scrapes this landing page for the live XLSX on every run (filenames rotate between releases). Latest period selected: 2022 to 2024.
Used only to fill English UTLA cells the ONS workbook leaves null. English LTLAs (164 districts) carry no HLE — it isn't published at district level, so districts surface the parent-county HLE via the UI county-adjacency block rather than copying it into the data file.
National-level HLE broken down by IMD decile (England) or WIMD quintile (Wales). Released 15 April 2026 — the freshest source on the site. Powers the "deprivation lens" chart on the homepage.
Released 15 April 2026. Period 2022–2024. 10 IMD deciles. Time series back to 2013–2015.
For the at-birth row, 2022–2024: male decile 1 (most deprived) 49.8 yrs; decile 10 (least) 69.2; gap 19.4. Female decile 1 48.2; decile 10 68.5; gap 20.3.
5 WIMD quintiles. Same release date.
Component inputs ONS used to compute HLE-by-deprivation. Useful for replication.
Smoking, obesity, physical activity, 5-a-day and HLE at upper-tier AND lower-tier local authority level. Indicator IDs are resolved by name search, not hardcoded, so the dataset survives indicator renumbering. The full API documentation lists every endpoint.
Post-April-2023 upper-tier authority boundaries. Used for all 6 lifestyle indicators including drinking (UTLA-only).
Added 2026-04-25. Post-April-2023 lower-tier district boundaries. Used for the 4 lifestyle indicators that publish at district level (smoking, obesity, physical activity, 5-a-day). Indicator 92778 (higher-risk drinking) does NOT publish at LTLA — districts inherit county-level value as labelled UI adjacency, not as data.
Returns dict-of-int-lists keyed by area-type-id. Pipeline uses this to resolve indicator IDs by name so renumbering doesn't break the build.
Indicator names + data-source attribution. Validates resolved IDs against expected keywords.
92443 (smoking, APS self-reported 18+, period 2024 — switched from GP-recorded QOF 91547 on 2026-07-05 so all three nations' smoking figures are survey-based), 93088 (overweight incl. obesity, 2024/25), 93014 (physical activity, 2024/25), 93982 (5-a-day, 2024/25) — fetched at both UTLA (502) and LTLA (501) so each district carries its own value. One district (Ribble Valley) has no APS smoking estimate and carries null rather than a substituted value. 90362 (HLE gap-filler, 2022-24) and 92778 (higher-risk drinking, >14u/wk above-guideline, HSE 2015-2018 pooled) — UTLA-only by upstream design.
The pipeline downloads this CSV and stamps parent_utla_slug on each E07 record. The frontend uses it to display the parent county's HLE and drinking figures alongside a district lookup, clearly labelled as the county's value, never as the district's.
Scotland is not in Fingertips. Smoking comes from the Scottish Surveys Core Questions 2023. The other lifestyle indicators are sourced from the SHeS council-area dashboard (32/32 councils each; rank-data CSV downloaded 2026-07-04). Overweight-incl.-obesity, higher-risk drinking and physical activity use the 2021-2024 4-year pool from the SHeS 2024 dashboard refresh. 5-a-day fruit-and-veg still uses the 2016-2019 pool — the dashboard publishes no later window for this indicator because the SHeS interview-mode change during COVID broke comparability with face-to-face years (re-checked 2026-07-04).
Released 27 March 2025. Pooled SHS+SHeS+SCJS, n≈19,700, council-area level. 32/32 Scottish councils. Used for smoking only.
Four indicators from the dashboard's Data-tab rank CSV (downloaded 2026-07-04), 32/32 councils each: overweight incl. obesity (BMI ≥ 25, self-reported, 16+, 2021-2024 4-yr pool — switched from the earlier BMI ≥ 30 "obesity" series so the column now matches England's Fingertips 93088 and Wales's NSW definition), higher-risk drinking (Hazardous/Harmful drinker, >14u/wk — same threshold as Fingertips 92778, 2021-2024), physical activity (meets CMO 150 min/wk MVPA — same threshold as Fingertips 93014, 2021-2024), and 5-a-day fruit-and-veg (5+ portions, 2016-2019 pool — still the newest window published for this indicator). Integer-rounded as published; 95% CI bounds preserved in the raw download.
Four indicators — smoking, higher-risk drinking, physical activity and 5-a-day — come from Public Health Wales's Public Health Outcomes Framework (accredited official statistics, derived from the National Survey for Wales), period 2021/22–2022/23 pooled, all 22 principal areas. Definitions match the UK CMO thresholds used for England and Scotland: >14 u/wk drinking, 150 min/wk MVPA, current smoker, 5+ portions. One disclosed measure-basis difference: PHOF publishes these as age-standardised percentages, whereas England (Fingertips) and Scotland (SHeS) values are crude prevalence — typically a difference of a point or two. Overweight-incl.-obesity stays on NSW 2019-20 (crude, BMI ≥ 25) because PHOF publishes no all-adult weight measure.
“Full data download” workbook, Table 3 (Ways of living that improve health): Adults who smoke, Adults drinking above guidelines, Adults meeting physical activity guidelines, Adults eating five fruit or vegetable portions a day — Local Authority × Persons × Total, age-standardised, 2021/22-2022/23. Framework home.
Still the source for overweight-incl.-obesity (BMI ≥ 25, 2018-19/2019-20 pool). Live URL retired in the 2025 StatsWales → stats.gov.wales migration; the adult-lifestyles cube has not yet been migrated to the new platform (checked 2026-07-05).
Adult lifestyle prevalence is published only at HSC Trust level (5 trusts), never at LGD2014 council level (11 districts) — per-LGD samples are too small for stable estimates. The five lifestyle fields stay null on the 11 NI LGD records; the frontend surfaces the parent Trust's value as a labelled UI adjacency block, never copied into the LGD record itself. Same editorial principle as the English district → county adjacency (§ 04).
First results released November 2025. ~4,000 NI adults sampled annually. Latest periods: smoking 2023/24, obesity 2023/24, physical activity 2023/24, 5-a-day 2023/24. Drinking 2022/23 (question not asked in 2023/24).
1.1 MB. 31 sheets. The "by Health & Social Care Trust" sections in each indicator sheet carry the 5-trust × multi-period series Lifemap uses.
Trust catchment areas pre-date the 2015 LGD2014 reorganisation; most LGDs map cleanly to one Trust, but two straddle two Trusts: Mid Ulster (Northern + Southern) and Newry, Mourne and Down (South Eastern + Southern). Both Trust figures are surfaced for these two LGDs with a footnote.
Verified that no UK statistical body publishes adult lifestyle prevalence at NI LGD2014 council level: NISRA Continuous Household Survey (NI total only, retired 2009/10); Sport NI Active Lifestyles Survey 2024/25 (LGD-level but sport participation only, not CMO 150 min/wk MVPA — not comparable); HSCIMS Health Inequalities Annual Report (LGD sheets cover mortality + child obesity only, no adult lifestyle); Census 2021 (general health only); APS (UK regions only).
Public, fast, no-API-key UK postcode service. Powers the front-end's postcode entry — your postcode is sent here, the response carries the admin_district name, the front-end slugifies it and looks up the dataset. Nothing about your postcode is stored on Lifemap.
For postcodes that no longer exist (e.g. FY1 1AA was terminated May 2010, replaced by FY1 2AA).
The choropleth map uses December 2024 upper-tier local authority polygons in the BUC (Buffered Ultra Coarse) simplification. 218 polygons, ~458 KB after coordinate rounding to 4 decimal places (~11 m precision). Properties stripped to ctyua24cd + ctyua24nm only.
Direct GeoJSON dump used by scripts/fetch-boundaries.sh.
Built from the upstream sources above. All under Open Government Licence v3.0; the wrapper code is MIT.
380 UK council records (151 English UTLAs, 164 English districts, 32 Scottish councils, 22 Welsh principal areas, 11 NI districts). _meta.lifestyle_sources documents per-country provenance. _meta.resolved_indicators records the Fingertips IDs in use at last build time so drift is auditable. _meta.country_totals holds country aggregates separately.
The April-2026 ONS HLE-by-deprivation series, parsed and trimmed for the homepage chart.
10-page brief for journalists. Built from press/press-kit.md via WeasyPrint.
380 indexable landing pages — one per UK council record. Each carries its own <title>, meta description, canonical URL, og:image and Place JSON-LD. E07 districts include the parent-county adjacency block. Generated at deploy time by scripts/build-area-pages.py.
1200×630 social-share PNG per area, generated at deploy time by scripts/generate-area-og-images. ~32–50 KB each. HLE-null records fall back to LE.
Single Python script that turns all upstream sources above into uk_la_data.json. Re-run with python3 build_dataset.py. See /methodology/ for the full walk-through.
curl -s 'https://api.postcodes.io/postcodes/FY12AA' | python3 -m json.toolcurl -s 'https://lifemap.org.uk/uk_la_data.json' | python3 -c "import sys, json; print(json.dumps(json.load(sys.stdin)['blackpool'], indent=2))"_meta.lifestyle_sources in the dataset documents which row applies.https://lifemap.org.uk/area/<slug>/ for the area — every value rendered there ties back to the same JSON record. The area directory lists all 380 council records.