Skip to content

Commit 2fbe586

Browse files
authored
Document long-run economic projections (#1379) (#1701)
The 2031+ growth values in yoy_growth.yaml had a one-line header comment naming the steady-state assumptions but didn't explain where the year-by- year ramp values came from (e.g. RPI 2.30% in 2031 -> 2.39% by 2035). #1379 asked for that to be documented. - Expand the file header to describe how each long-run series is built (CPI pinned to BoE target, RPI/CPIH/earnings ramp linearly from the last EFO value to a stated steady state, then flat through 2073) and the OBR publications the steady-state numbers come from. - Add a parameters/gov/economic_assumptions/README.md tabulating every growth series with its OBR/ONS source and giving a refresh procedure for when a new EFO is published, including the call to create_economic_assumption_indices.py.
1 parent 142f9be commit 2fbe586

3 files changed

Lines changed: 104 additions & 9 deletions

File tree

changelog.d/1379.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Document the methodology and sources for the 2031+ long-run values in `yoy_growth.yaml` (CPI pinned to the BoE 2% target; RPI/CPIH ramp to 2.39% via the OBR long-run wedge; average earnings ramp to 3.83%) and add a `parameters/gov/economic_assumptions/README.md` listing each series, its source, and a refresh procedure for new EFO releases.
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Economic assumptions
2+
3+
Year-on-year growth series for the UK economy used to uprate parameters and
4+
calibrate the input dataset. The single source of truth is
5+
[`yoy_growth.yaml`](./yoy_growth.yaml); downstream cumulative indices are
6+
generated from it by
7+
[`create_economic_assumption_indices.py`](./create_economic_assumption_indices.py).
8+
9+
## Series
10+
11+
| Series | What it measures | OBR/ONS source |
12+
|-------------------------|----------------------------------------------------------|-------------------------|
13+
| `consumer_price_index` | CPI year-on-year growth | EFO Table 1.7 |
14+
| `cpih` | CPI including owner-occupiers' housing costs | EFO Table 1.7 |
15+
| `consumer_price_index_ahc` | CPI excluding rents/maintenance/water (AHC measure) | ONS adhoc 2863 |
16+
| `rpi` | Retail Price Index year-on-year growth | EFO Table 1.7 |
17+
| `average_earnings` | Average weekly earnings growth | EFO Table 1.6 |
18+
| `non_labour_income` | Non-labour household income growth | derived from EFO |
19+
| `road_fuel_volume` | Petrol + diesel road-fuel clearances | HMRC Hydrocarbon Oils + OBR fuel-duty forecast |
20+
| `petrol_spending_litre_proxy` | Spending growth that preserves road-fuel litres | HMRC + OBR |
21+
| `diesel_spending_litre_proxy` | Same, for diesel | HMRC + OBR |
22+
23+
## Time horizons
24+
25+
Three horizons are stitched together for each series:
26+
27+
1. **Outturn** (history through 2024): ONS published data, copied from OBR
28+
detailed forecast tables.
29+
2. **EFO forecast** (2025-2030): latest OBR Economic and Fiscal Outlook
30+
supplementary tables. The version currently checked in is **March 2026**;
31+
refresh after each new EFO.
32+
3. **Long-run equilibrium** (2031-2073): constructed from OBR's long-run
33+
assumptions (Fiscal Risks and Sustainability report) and the long-run
34+
RPI-CPI wedge methodology.
35+
36+
## How the 2031+ values were constructed
37+
38+
Issue [#1379](https://github.com/PolicyEngine/policyengine-uk/issues/1379)
39+
flagged that the year-by-year 2031+ values weren't documented. They are
40+
constructed as follows:
41+
42+
- **CPI** is pinned to the Bank of England's 2.0% target from 2031-01-01
43+
onwards.
44+
- **RPI** and **CPIH** linearly interpolate from the final EFO value
45+
(2030-01-01) up to a 2.39% steady state by 2035-01-01, then hold flat
46+
through 2073-01-01. The 0.39 pp gap above CPI is the OBR's published
47+
long-run wedge to account for housing-cost growth ([long-run difference
48+
between RPI and CPI inflation][rpi-cpi]).
49+
- **Average earnings** linearly interpolate from the final EFO value
50+
(2030-01-01) up to a 3.83% steady state by 2036-01-01, then hold flat.
51+
This is consistent with the OBR's long-run productivity assumption
52+
(1.8%) added to CPI (2.0%).
53+
- **`road_fuel_volume`** is held flat at 0% after the OBR forecast ends —
54+
i.e. the final EFO forecast volume is held constant in real terms.
55+
56+
These steady-state assumptions are reviewed each time the OBR publishes a
57+
new Fiscal Risks and Sustainability report. The convergence path itself
58+
is conservative interpolation and is not load-bearing for short-horizon
59+
analysis.
60+
61+
## Refreshing after a new EFO
62+
63+
1. Replace the 2025-2030 block in each series with values from the new EFO
64+
detailed forecast tables (note the EFO release month in the header comment).
65+
2. Recompute the 2031-2073 convergence path so the first long-run year
66+
continues smoothly from the new last forecast year (no jump).
67+
3. Run `python policyengine_uk/parameters/gov/economic_assumptions/create_economic_assumption_indices.py`
68+
to regenerate the cumulative `indices/` parameters that uprating depends
69+
on.
70+
4. Update the EFO reference in each series' `metadata.reference`.
71+
72+
[rpi-cpi]: https://obr.uk/box/the-long-run-difference-between-rpi-and-cpi-inflation/

policyengine_uk/parameters/gov/economic_assumptions/yoy_growth.yaml

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,37 @@
11
# OBR Economic Projections
22
#
3-
# Data sources:
4-
# - 2009-2024: OBR outturn data from detailed forecast tables
5-
# - 2025-2030: OBR forecast from latest Economic and Fiscal Outlook (EFO, March 2026)
6-
# - 2031+: OBR long-run equilibrium assumptions:
7-
# - CPI: 2.0% (Bank of England target)
8-
# - RPI/CPIH: ~2.4% (CPI + 0.4pp wedge, reflecting housing costs growth)
9-
# - Average earnings: ~3.8% (productivity growth + inflation)
10-
# Note: RPI will align with CPIH methodology from February 2030 per ONS plans
3+
# Data sources by horizon:
4+
# - 2009-2024: OBR outturn data from detailed forecast tables.
5+
# - 2025-2030: OBR forecast from the latest Economic and Fiscal Outlook
6+
# (EFO, March 2026). Values come from the EFO economy supplementary
7+
# tables — RPI/CPI/CPIH from Table 1.7, average earnings from Table 1.6.
8+
# - 2031-2073: OBR long-run equilibrium assumptions, taken from the OBR
9+
# Fiscal Risks and Sustainability report and the long-run RPI-CPI wedge
10+
# methodology. Steady-state values:
11+
# * consumer_price_index: 2.00% (Bank of England target)
12+
# * rpi: 2.39% (CPI + 0.39pp long-run wedge)
13+
# * cpih: 2.39% (CPI + 0.39pp housing-costs wedge,
14+
# converges with RPI once RPI adopts
15+
# CPIH methodology from Feb 2030 per ONS)
16+
# * average_earnings: 3.83% (productivity growth + CPI)
1117
#
12-
# See: https://obr.uk/box/the-long-run-difference-between-rpi-and-cpi-inflation/
18+
# How the 2031+ series are constructed:
19+
# - CPI hits its 2% target on 2031-01-01 and is held flat.
20+
# - RPI, CPIH and average earnings ramp linearly from the final EFO value
21+
# (2030-01-01) to the steady-state value, converging by 2035-2036. After
22+
# convergence the series are held flat through 2073-01-01.
23+
# - This convergence path is consistent with the OBR's Fiscal Risks and
24+
# Sustainability long-run assumptions and is regenerated when a new EFO
25+
# is released; the helper module
26+
# `policyengine_uk/parameters/gov/economic_assumptions/create_economic_assumption_indices.py`
27+
# refreshes downstream indices from these growth rates.
28+
#
29+
# References:
30+
# https://obr.uk/efo/ (latest EFO)
31+
# https://obr.uk/frltp/ (Fiscal risks and
32+
# long-term projections)
33+
# https://obr.uk/box/the-long-run-difference-between-rpi-and-cpi-inflation/
34+
# https://www.bankofengland.co.uk/monetary-policy/inflation
1335

1436
obr:
1537
rpi:

0 commit comments

Comments
 (0)