UK labour market: jobs, pay, tightness (ONS)
Headline UK labour-market indicators from the Office for National Statistics (keyless ONS beta API): the 16+ unemployment rate and 16-64 employment rate (seasonally adjusted), total UK vacancies, whole-economy average-weekly-earnings total-pay growth and the unemployed level -- plus the vacancy-unemployment ratio, the headline tightness gauge. One row per (indicator, period) with exact year-on-year changes (percentage points for rates, percent for levels; gaps never bridged) and deterministic row hashes. Monthly from 1971 (vacancies/pay from 2001); latest prints 2026-06/2026-07. Who joins this: hiring planners read vacancy_unemployment_ratio for wage-pressure timing; macro desks watch unemployment_rate against pay_growth for the wage-price pass-through; recruiters benchmark employment_rate for labour supply.
- Rows
- 2,907
- Columns
- 10
- Source cadence
- Monthly
- Last refreshed
- Oct 10, 2026
- Theme
- economy
| Column | Type | Description |
|---|---|---|
| indicator_code | string | Machine code for the indicator (unemployment_rate, employment_rate, vacancies, pay_growth, unemployed_thousands, vacancy_unemployment_ratio). Panel join key with period. (unit: string) |
| indicator_name | string | Human-readable indicator name from the ONS timeseries description. (unit: string) |
| period | string | Reference period as YYYY-MM. LFS labels are rolling quarters (e.g. '1971 FEB' means Jan-Mar); the label month is kept verbatim. (unit: string) |
| period_start | date | First calendar day of the reference period. (unit: date) |
| year | integer | Calendar year of period_start. (unit: year) |
| value | float | Indicator value in the stated unit, parsed verbatim from the ONS payload. Honestly null nowhere: an unparseable upstream value fails the ingest loudly. (unit: varies) |
| unit | string | Unit of value: percent (rates), thousands (vacancies, unemployed), ratio (tightness gauge). (unit: string) |
| yoy_change_pp | float | Year-on-year change in percentage points for rate indicators and the tightness ratio (value minus the exact same month one year earlier); null for level indicators and the first 12 months of each series. Gaps are never bridged. (unit: percentage_points) |
| yoy_change_pct | float | Year-on-year percent change for level indicators (100 * (value - base) / base against the exact same month one year earlier); null for rate indicators and the first 12 months of each level series. Gaps are never bridged. (unit: percent) |
| row_hash | string | Deterministic 16-hex sha256 of indicator_code + period + value + the YoY changes (idempotency key). (unit: string) |
First 10 sample rows — a preview, not the complete dataset.
| indicator_code | indicator_name | period | period_start | year | value | unit | yoy_change_pp | yoy_change_pct | row_hash |
|---|---|---|---|---|---|---|---|---|---|
| employment_rate | Employment rate, aged 16 to 64, seasonally adjusted | 1971-02 | 1971-02-01 | 1,971 | 72.2 | percent | — | — | ecb24c0bbc9c79dc |
| employment_rate | Employment rate, aged 16 to 64, seasonally adjusted | 1971-03 | 1971-03-01 | 1,971 | 72.1 | percent | — | — | 3c386beb0fcf0101 |
| employment_rate | Employment rate, aged 16 to 64, seasonally adjusted | 1971-04 | 1971-04-01 | 1,971 | 72 | percent | — | — | 6058a2e46d1e3ccc |
| employment_rate | Employment rate, aged 16 to 64, seasonally adjusted | 1971-05 | 1971-05-01 | 1,971 | 72 | percent | — | — | 1c21493dc9d3839b |
| employment_rate | Employment rate, aged 16 to 64, seasonally adjusted | 1971-06 | 1971-06-01 | 1,971 | 71.9 | percent | — | — | 45ebddb2c342db2f |
| employment_rate | Employment rate, aged 16 to 64, seasonally adjusted | 1971-07 | 1971-07-01 | 1,971 | 71.8 | percent | — | — | 61868736b10773d6 |
| employment_rate | Employment rate, aged 16 to 64, seasonally adjusted | 1971-08 | 1971-08-01 | 1,971 | 71.7 | percent | — | — | 362c56b773437320 |
| employment_rate | Employment rate, aged 16 to 64, seasonally adjusted | 1971-09 | 1971-09-01 | 1,971 | 71.6 | percent | — | — | 207fa26d9236d2b3 |
| employment_rate | Employment rate, aged 16 to 64, seasonally adjusted | 1971-10 | 1971-10-01 | 1,971 | 71.5 | percent | — | — | 70bbbcd5a55043cc |
| employment_rate | Employment rate, aged 16 to 64, seasonally adjusted | 1971-11 | 1971-11-01 | 1,971 | 71.5 | percent | — | — | ee4a1613066d9501 |
Profiled Oct 10, 2026 from snapshot 20261010T003842Z-70ad31f1a7a7
Measured- Completeness
- 89.8%
- Rows
- 2,907
- Columns
- 10
- Columns with gaps
- 2
| Column | Missing | Distinct | Range | Distribution |
|---|---|---|---|---|
| indicator_codevarchar | 0% | 6 | — |
|
| indicator_namevarchar | 0% | 6 | — |
|
| periodvarchar | 0% | 687 | — |
|
| period_startdate | 0% | 726 | Feb 1, 1971 → Jul 1, 2026 | — |
| yearbigint | 0% | 53 | 1,971 → 2,026median 2,006 | |
| valuedouble | 0% | 1,373 | -6 → 3,278median 70.5 | 60 outside 1st–99th percentile |
| unitvarchar | 0% | 3 | — |
|
| yoy_change_ppdouble | 35% | 553 | -10 → 15median 0.0117 | 38 outside 1st–99th percentile |
| yoy_change_pctdouble | 67.5% | 771 | -58.92 → 157.43median -0.3112 | 20 outside 1st–99th percentile |
| row_hashvarchar | 0% | 2,438 | — |
|
- CurrentFile published
20261010T003842Z-70ad31f1a7a7 · sha256 70ad31f1a7a7…
2,907 rows · first snapshot
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/ons_uk_labour_intel/uk_labour_market_panel" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/ons_uk_labour_intel/uk_labour_market_panel").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/ons_uk_labour_intel/uk_labour_market_panel
Tip: fetch /llms.txt for the full machine-readable catalog.
Where this data comes from and what was made from it. Other people's work shows as counts; only shared projects are named.
Cite this snapshot
Pinned to snapshot 20261010T003842Z-70ad31f1a7a7 and its content hash, so readers get exactly the data you used.
ONS UK Labour Intelligence. (2026). UK labour market: jobs, pay, tightness (ONS) [Data set, snapshot 20261010T003842Z-70ad31f1a7a7, sha256 70ad31f1a7a7]. Datazimuts. Retrieved 2026-10-10, from https://datazimuts.com/en/datasets/ons_uk_labour_intel/uk_labour_market_panel?snapshot=20261010T003842Z-70ad31f1a7a7
@misc{dz_ons_uk_labour_intel_uk_labour_market_pan_70ad31f1,
title = {{UK labour market: jobs, pay, tightness (ONS)}},
author = {{ONS UK Labour Intelligence}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/ons_uk_labour_intel/uk_labour_market_panel?snapshot=20261010T003842Z-70ad31f1a7a7}},
note = {Snapshot 20261010T003842Z-70ad31f1a7a7, sha256 70ad31f1a7a7748c97edfe2a29429e0a5f38f5bbf679e80cccb88658702c84db; accessed 2026-10-10}
}Embed a table or a chart
Paste this into any page. The embed is pinned to the same snapshot, follows the reader's light or dark setting, and always shows the source, license and a link back.
<iframe src="https://datazimuts.com/embed/chart?dataset=ons_uk_labour_intel%2Fuk_labour_market_panel&lang=en&theme=auto&snapshot=20261010T003842Z-70ad31f1a7a7&x=period&y=year&agg=avg" title="UK labour market: jobs, pay, tightness (ONS)" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Ask about this dataset. Answers come only from its catalog record, measured profile and change history, and list the facts they used.