# ONS Population MCP

> The UK ONS Population MCP Server connects five official datasets from the Office for National Statistics. You get weekly death registrations by age and region, local well-being estimates (satisfaction, happiness), suicide data by area, macro population forecasts through 2043, and national trend data. Use it to cross-reference mortality rates with subjective health indicators.

## Overview
- **Category:** data-analytics
- **Price:** Free
- **Tags:** demographics, public-health, population-projections, well-being, mortality-data

## Description

You're looking at five massive datasets from the Office for National Statistics that connect demographics, mortality rates, and how people actually feel in England and Wales. This isn't just raw data; it’s a platform for cross-referencing objective health metrics with subjective well-being indicators across local areas.

When you need to track regional mortality trends, you use `get_weekly_deaths`. It pulls weekly death records for both England and Wales, letting you filter the numbers by age group, specific sex, or geographic region. You don't just get a total count; you can isolate exactly who’s passing and where they're coming from.

If pinpointing localized health crises is your goal, `get_suicides` gives you suicide registration counts broken down specifically by local authority in England and Wales. This lets you immediately flag areas that need urgent attention because the data isn't national—it’s hyper-local.

To understand population shifts over time, run `get_population_projections`. It retrieves UK population size estimates for older people and sex ratios across every local authority all the way up to 2043. This lets you model growth patterns and demographic imbalances years in advance.

For well-being metrics, you've got two angles. First, `get_wellbeing` fetches national estimates of personal life satisfaction, happiness, and anxiety for the entire UK population. That gives you a top-level view of general sentiment. Second, if you need to analyze localized well-being, use `get_wellbeing_local`. This provides specific metrics—like life satisfaction or anxiety scores—broken down by individual local authority areas across the UK.

What this really lets you do is correlate risk factors. You can take objective numbers from `get_weekly_deaths` and cross-reference them directly with subjective data points pulled from `get_wellbeing_local`. For example, you might check if a spike in anxiety scores in one local area correlates with an uptick in weekly deaths or suicide registrations that week.

You can analyze localized well-being by pulling happiness or life satisfaction estimates for specific authorities. You're not limited to national averages; the data structure lets you drill down into single postal areas and see how their unique socio-economic factors affect reported mental health metrics like anxiety levels.

Model population growth when you combine `get_population_projections` with other datasets. You can project future demographic pressure—like an aging population or a specific sex ratio skew—and then overlay current well-being scores to estimate what kind of resource strain that shift might cause. You're building a narrative: the hard data meets the human experience.

It’s about connecting these disparate streams: mortality, life satisfaction, projected demographic changes, and suicide counts. You use `get_weekly_deaths` for regional trends, you check `get_suicides` for acute localized risk, and you pair both with the national or local sentiment data from the two wellbeing tools to build a comprehensive picture of community health across England and Wales.

## Tools

### get_weekly_deaths
Pulls weekly death records for England and Wales, allowing filtering by age group, sex, or region.

### get_wellbeing
Fetches national estimates of personal well-being (life satisfaction, happiness, anxiety) for the UK.

### get_wellbeing_local
Provides specific well-being metrics—like life satisfaction and anxiety—by individual local authority areas across the UK.

### get_suicides
Gets suicide registration counts broken down by local authority in England and Wales.

### get_population_projections
Retrieves UK population size estimates for older people and sex ratios across local authorities up to 2043.

## Prompt Examples

**Prompt:** 
```
What are the latest weekly death figures for England and Wales?
```

**Response:** 
```
📊 **Weekly Deaths — England & Wales**

Week ending 28 March 2026: 11,247 deaths
Previous week: 10,893
5-year average: 10,450

+7.6% above 5-year average

Source: ONS, weekly-deaths-age-sex
```

**Prompt:** 
```
What are the latest figures for life satisfaction in the UK?
```

**Response:** 
```
For the latest reporting period, the average rating of life satisfaction in the UK was 7.45 out of 10. The proportion of people reporting 'very high' life satisfaction was approximately 25%.
```

**Prompt:** 
```
Show me population forecasts for the UK up to 2045.
```

**Response:** 
```
Based on ONS national population projections (principal projection), the UK population is projected to increase from 67.0 million to 71.0 million by mid-2045, reflecting an aging population with a lower birth rate.
```

## Capabilities

### Analyze Localized Well-being
Get well-being estimates—like life satisfaction or happiness—for specific local authorities across the UK.

### Track Regional Mortality Trends
Retrieve weekly death statistics, allowing you to slice data by age group, sex, and specific regions in England and Wales.

### Model Population Growth
Generate population forecasts for older demographics and analyze sex ratios across local authorities up to the year 2043.

### Correlate Risk Factors
Cross-reference objective data (like weekly deaths) with subjective indicators (like well-being scores) in a single analysis.

### Pinpoint Localized Health Crises
Obtain suicide registration counts specific to individual local authorities, helping flag areas needing immediate attention.

## Use Cases

### Assessing the Impact of Aging on Mental Health
A planner needs to know if an aging population (using `get_population_projections`) is putting stress on local mental health. They run this data against both national well-being scores (`get_wellbeing`) and localized suicide rates (`get_suicides`). The agent reports a clear risk increase in areas with the highest projected older populations.

### Investigating Post-Pandemic Community Health
A public health researcher wants to know if community death spikes are related to general discontent. They pull `get_weekly_deaths` for a specific time window and overlay it with the most recent local satisfaction scores from `get_wellbeing_local`. This identifies regional hotspots that require immediate resource allocation.

### Drafting Long-Term Infrastructure Bills
A government consultant needs to justify spending on care facilities. They use population forecasts (`get_population_projections`) to show the predicted increase in older people, then back it up with a trend line from `get_wellbeing` showing decreased life satisfaction, building a compelling case for action.

### Comparing Localized Health Outcomes
A journalist wants to compare two rival local authorities. They run the same metrics on both: `get_suicides`, `get_wellbeing_local` (happiness), and population data for both areas, generating a single comparative report that highlights key disparities.

## Benefits

- See how projected population changes affect specific regions. Use `get_population_projections` to forecast future numbers, then cross-check those areas with current sentiment using `get_wellbeing_local`. This connects the macro view to local reality.
- Track acute health crises instantly. Run `get_suicides` alongside `get_weekly_deaths` to see if localized spikes in mortality correlate across different types of deaths, helping pinpoint risk factors.
- Model long-term social strain. Instead of just tracking current numbers, use the combination of `get_population_projections` and well-being data to project when a region might become stressed due to an aging population.
- Avoid siloed reporting. You don't have to open five different dashboards. Your agent calls `get_wellbeing`, then uses `get_weekly_deaths`, and compares the results side-by-side, giving you one cohesive narrative.
- Get granular detail on sentiment. While `get_wellbeing` gives national averages, using `get_wellbeing_local` lets you drill down to a single council area's happiness score, making reports much sharper.

## How It Works

The bottom line is, it connects five separate ONS data sources so your AI client can run complex public health models without leaving the conversation window.

1. Start by defining the scope. Tell your agent which time period and geographic area you need data for (e.g., 'London' in 2023').
2. The server runs multiple tools—for example, calling `get_weekly_deaths` for mortality and `get_wellbeing_local` for sentiment—to pull disparate datasets.
3. Your agent synthesizes the output by comparing the metrics. It shows you how a dip in life satisfaction correlates with changes in local death rates or population projections.

## Frequently Asked Questions

**How often is death data updated?**
Weekly. The ONS publishes provisional death registrations every Tuesday for the previous week, with a 11-day reporting lag.

**Does it track personal well-being metrics?**
Yes, the ONS measures personal well-being across four indicators (O4): life satisfaction, feeling that the things done in life are worthwhile, happiness, and anxiety.

**Are population figures based on the Census?**
The datasets include both decennial census data and mid-year population estimates, which are updated annually to account for births, deaths, and migration.

**When I use `get_wellbeing_local`, does the dataset cover all UK local authorities?**
No, it covers specific local authority regions designated by ONS. The data structure requires you to pass a valid administrative code for the region; failing to provide this will result in an invalid input error.

**What is the maximum forecast year I can use when calling `get_population_projections`?**
The projections extend up to 2043. You must specify a target date within this range, and the tool calculates ratios based on the most recent demographic model available from ONS.

**If I use `get_weekly_deaths` for a specific region that isn't included in the dataset, how does it handle the request?**
The system returns an explicit 'No data available for this area' message rather than throwing a generic error. You'll need to check the supported regional codes listed in the ONS documentation.

**How do I correctly interpret the scores from `get_wellbeing`?**
Most scores use 10 as the maximum, where higher is better. However, remember that for anxiety, the scoring is inverted: a lower number indicates better reported well-being.

**What geographic scope must I provide when calling `get_suicides`?**
The dataset strictly covers suicide registrations in England and Wales. You cannot use this tool to pull data for Scotland or Northern Ireland; you'll need a different source for those regions.