Skip to content

Update the OBR forecasts to the October 2026 Economic and fiscal outlook #2711

Open

Description

@juaristi22

The OBR published its October 2026 Economic and fiscal outlook with Budget 2026 on 28 October 2026. policyengine-uk's economic assumptions still carry the March 2026 EFO (policyengine_uk/parameters/gov/economic_assumptions/README.md: "The version currently checked in is March 2026").

This issue updates every OBR-sourced series to October 2026. That includes 2025, which the new EFO revises, and 2031, which it now forecasts.

Sources

  • The EFO (PDF):
    • Table A.1, "Economy forecast" (page 180): 2025 outturn and 2026 to 2031 forecasts, calendar years;
    • Table A.2: changes since March.
  • The detailed forecast tables: a ZIP on the EFO page, out by 14:09 GMT on 28 October. It holds six workbooks, efo-october-2026-detailed-forecast-tables-<name>.xlsx, where <name> is economy, receipts, expenditure, aggregates, debt-interest or policy.
  • The charts and tables: Annex A and the executive summary as XLSX, and everything as a ZIP.
  • The long-term economic determinants for this EFO, for population and the long-run paths. They are published separately: the March 2026 edition came on 28 May 2026.

Values already in the PDF

The workbooks are now out, so use these to check the importer's output, rounded to 0.1 points. Each row is percentage growth.

Table A.1, calendar years: 2025 outturn, then 2026 to 2031

  • CPI: 3.4; 3.1, 3.4, 2.1, 2.1, 2.0, 2.0.
  • RPI: 4.1; 3.6, 4.3, 3.0, 3.0, 2.3, 2.2.
  • Average weekly earnings (wages and salaries divided by employees): 4.1; 3.7, 3.0, 2.2, 2.3, 2.5, 2.6.
  • House prices: 2.6; 2.1, 2.4, 2.8, 2.8, 2.7, 2.7.
  • Nominal GDP, for per_capita.gdp with population growth: 5.0; 4.2, 3.2, 3.6, 3.8, 3.7, 3.6.

Table A.3, fiscal years: 2025-26 outturn, then 2026-27 to 2031-32

  • 'Triple-lock' guarantee: 4.8; 3.9, 3.4, 2.5, 2.5, 2.5, 2.6.
  • This is the highest of 2.5%, Q2 earnings growth and Q3 CPI inflation, which uprates the State Pension the following April. Use it as a check: once updated, the model's State Pension rises should be 3.9% in April 2027, 3.4% in April 2028 and 2.5% in April 2029.

The other series need the detailed tables:

  • economy Tables 1.4, 1.6, 1.7, 1.12 and 1.16;
  • the receipts tables, for September CPI and the SDLT and business rates series;
  • expenditure Table 4.1, for council tax by country.

Table A.5's council tax and business rates are UK totals on a different basis (its council tax includes the high value council tax surcharge), so do not use them for these series.

Start from the dashboard's work, and review it as you port it

The Budget-day dashboard has already applied part of this update.

Port with a review, not a copy, so no bug carries over. Points found so far:

  1. 2025 is stale in the branch. It leaves 2025 "as shipped", but the October EFO revises 2025:

    • average earnings growth falls from 5.3% (our current value) to 4.1% (Table A.2: −1.2 points);
    • house price growth falls from 2.8% to 2.6%;
    • nominal GDP growth moves down 0.1 points.

    Take the October 2025 values. Every earnings-uprated amount from 2026 on depends on them.

  2. A partial update mixes vintages. The branch overrides four series. The rest stay at March:

    • CPIH, mortgage interest and rents;
    • per-person GDP, mixed income and non-labour income;
    • council tax;
    • the receipts growth series;
    • the statutory forecast gaps;
    • everything derived from CPI.

    Update them all together here.

  3. Rounding. Table A.1 is rounded to 0.1 points, while the importer reads the detailed tables. Prefer the importer's values and expect small differences from the branch.

  4. 2031 is now an EFO year. Our 2031 values are long-run assumptions: CPI 2.0%, RPI 2.30% and earnings 3.32%. The October EFO gives 2.0%, 2.2% and 2.6%.

    • Replace them, and review the joins to the long-run paths from 2032.
    • Earnings would otherwise jump from 2.6% in 2031 to the stored 3.71% in 2032.
  5. Source, not runtime. The dashboard overrides parameters at runtime; here the change goes into yoy_growth.yaml, and the indices are regenerated from it. Check that derived indices, dataset projections and tests move with it.

Other points from the EFO

  • September 2026 CPI: 3.5%, and Q3 2026 CPI was 3.1% (paragraph 2.20). statutory_uprating_inputs/cpi_september.yaml already holds the 3.5%.
  • Population: the adult population grows by about 320,000 a year, from 56.8 million in 2026 to 58.4 million in 2031. In 2030 it is about 50,000 lower than in the March forecast (Chapter 2, Chart 2.9).
    • Net migration falls to 120,000 in the year to mid-2026, then rises to 230,000 by mid-2031, in line with the ONS 2024-based principal projection (paragraph 2.37).
    • Take the population path from the October long-term determinants once they are out.
  • Mortgage interest: the effective rate on the stock of mortgages rises from 4% in 2026 to around 5% in 2031 (paragraph 2.59). The mortgage_interest series from Table 1.7 should show that rise.
  • Council tax: receipts are £54bn in 2026-27, up 7% on 2025-26, rising to £70bn by 2031-32. The OBR calls them "broadly unchanged from our March forecast" (paragraph 4.48), so expect small changes to the council tax series.
  • Fuel duty: Table A.5 gives fuel duty receipts of £23.9bn in 2026-27 and £25.7bn in 2027-28. They assume the Budget's path: 52.95p to 1 July 2027, then 60.59p. If road_fuel_volume is derived from receipts and rates, use that rate path, not March's.

What to update

1. Run the importer on the October workbooks

python scripts/import_obr_forecasts.py \
  --url https://obr.uk/download/october-2026-economic-and-fiscal-outlook-detailed-forecast-tables-zip-file/ \
  --receipts-file efo-october-2026-detailed-forecast-tables-receipts.xlsx \
  --previous-receipts-file <receipts workbook of the EFO whose outturn year is one year earlier> --dry-run

Check the dry run, then run it without --dry-run.

  • The importer takes the economy workbook out of the ZIP itself (extract_economy_workbook_bytes matches "economy" in the file name). For the receipts workbook, unzip it and pass it with --receipts-file.
  • The previous receipts tables are probably March 2026's, if October's outturn year is 2025-26. Check.
  • Confirm that it infers the release as October 2026 and covers 2026 to 2031 (--forecast-years, default 6).

It updates:

  • average earnings (Table 1.6);
  • RPI, CPI, CPIH, mortgage interest and actual rents (Table 1.7);
  • house prices (Table 1.16);
  • the September CPI and May to July earnings forecast gaps;
  • the receipts growth series: SDLT on residential and non-residential property, and business rates for Great Britain and for Northern Ireland.

2. Update or re-derive the series the importer does not cover

These are the series #1513 covered for March:

  • per_capita.gdp: nominal GDP (Table 1.4) less population growth;
  • per_capita.mixed_income, per_capita.non_labour_income and non_labour_income: Table 1.12;
  • council_tax.england, .scotland and .wales: expenditure Table 4.1;
  • consumer_price_index_ahc: re-derive with utils/create_ahc_deflator.py;
  • household_interest_income: the non-labour income proxy;
  • social_rent: CPI plus 1%, from September CPI;
  • private_rental_prices: Table 1.7;
  • road_fuel_volume, and the petrol and diesel spending proxies derived from it: the OBR's fuel duty receipts forecast;
  • population: from the October long-term determinants once they are published. Keep March's until then.

3. Horizon

  • Series that ended in 2030 now have a 2031 forecast; use it.
  • Review the README's 2031+ section.
  • PROJECTION_END_YEAR (2032) stays at or past the EFO's last year.

4. Statutory uprating inputs

The outturns are already in: September 2026 CPI of 3.5%, and May to July 2026 earnings growth of 3.9%, which set April 2027's State Pension rise at 3.9%. Only the forecast gaps for later years change (step 1).

5. Other files that cite the March 2026 EFO

  • Fuel duty rates: parameters/gov/hmrc/fuel_duty/petrol_and_diesel.yaml and its RPI-uprated path. The Budget's own fuel duty policy (52.95p until 1 July 2027, then 60.59p according to the OBR) is a change to current law, so it is out of scope here.
  • VAT parameters: parameters/gov/simulation/vat/private_school_share_of_receipts.yaml and survey_consumption_coverage.yaml.
  • Data and fixtures: data/fiscal_partition.yaml and tests/fixtures/obr_receipts/README.md.
  • Docs: docs/book/assumptions/growthfactors.md, docs/book/programs/gov/dwp/state-pension.md and docs/engineering/vat-coverage.md.
  • Tests that pin March values:
    • test_import_obr_forecasts.py;
    • test_september_cpi_uprating.py;
    • test_triple_lock_statutory_inputs.py;
    • test_council_tax_uprating.py;
    • test_population_vintage.py;
    • test_corporate_receipts_statistics.py;
    • test_private_school_vat_receipts.py;
    • the baseline tests gov/hmrc/stamp_duty/corporate_sdlt.yaml and gov/social_security_scotland/scottish_carer_supplement.yaml.

6. Changelog fragment

Not in this issue

  • Budget 2026's changes to current law need their own issue:
    • the National Living Wage of £13.21 from April 2027;
    • the fuel duty schedule;
    • zero VAT on domestic electricity to 1 July 2027;
    • the Pension Tax Allowance;
    • savings and property income tax rates;
    • the trading allowance;
    • the Household Energy Payment;
    • the adjusted triple lock from April 2030.
  • Calibration targets from the October EFO, for receipts and spending. Archive them in Chronicle first, for Microcosm.

Once a release carries this update, the dashboard can drop its runtime override and bump to it.

Activity

  1. vahid-ahmadi commented on Oct 29, 2026

    @vahid-ahmadi
    Collaborator

    #2717 (merged at 1688f98) does this. It says "For #2711", not "Fixes", so the issue did not close. OK to close?

    Checked on main at 2c7bf5a:

    • parameters/gov/economic_assumptions/README.md:55 now says October 2026.
    • yoy_growth.yaml matches the Table A.1 rows in the issue to 0.1 point for CPI, RPI, average earnings and house prices, 2025 to 2031. Earnings 2025 is 4.12% (was 5.3%), house prices 2025 2.64%, RPI 2031 2.18%.
    • The 2032 jump is gone: earnings run 2.60%, 2.85%, 3.09% for 2031 to 2033.

    Left out on purpose by #2717, each tracked elsewhere:

    1. household_interest_income 2026-2031 still uses the non-labour income proxy. Update the economic assumptions to the October 2026 EFO #2717 landed first, so Project savings interest by interest received per person #2638 now re-derives it from the October Tables 1.9 and 1.11.
    2. The national living wage: Project the minimum wage rates by the OBR's national living wage forecast #2700 and Read the OBR's national living wage forecast (EFO Table 1.13) in import_obr_forecasts #2721.
    3. Budget 2026 changes to current law: Autumn Budget 2026 measures in current law #2719.
    4. simulation/vat/survey_consumption_coverage.yaml:15,34 stays on the March 2026 2024-25 outturn, which October does not revise.
    5. mortgage_interest has no 2031 value, because the OBR stops at 2029 Q4 (yoy_growth.yaml:984-989).

    nit: data/fiscal_partition.yaml:72,92 still cite the March 2026 EFO. They place receipts lines rather than set values, so I would leave them.

    Not checked: the October workbooks themselves (I compared with the issue's Table A.1 figures only), the triple lock, receipts, council tax, population and road fuel series. I ran no tests.

    🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions