|
| 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/ |
0 commit comments