model 06 — overlapping generations · psl-og · UK · local

Model long-run behavioural change.

Estimate how reforms affect work, saving, investment, and public finances over decades, for the UK.

with the microsimulation

The only two-way bridge: statute in, dynamic household-level score out.

Connection. Two-way: tax functions are estimated on PolicyEngine microdata and a reform is the same parameter dict the microsimulation uses, so the model scores statute directly; score_reform with model="og+microsim" then feeds the long-run wage and labour-supply changes back into a second microsimulation run for a dynamic, household-resolution score.
Worked example. A 1pp basic-rate rise: the long-run macro effects on this page, then re-simulated at household level — the score a reform page walks it end to end.
Validation. Calibrated, not outcome-validated — ONS/OBR aggregates are targets met by construction; no ground truth exists for this model class.
Results. Long-run and transition-path results run locally from the package; the workflow is documented on score a reform.
01 — what it is

Households age, the economy clears.

The model tracks 80 annual cohorts — households aged 20 to 99, entering at 20 and facing age-specific mortality. Each cohort chooses labour supply and saving over its remaining lifetime; firms rent that capital and labour; the government taxes, spends and issues debt. Two solves are on offer: the steady state ("where does the economy settle under this policy?") and the transition path — a multi-decade, year-by-year solve of how it gets there, which is what a budget profile needs.

It is the suite's long-run structural member. Where the OBR emulator answers "what does this do to the next twelve quarters of the official forecast?", this one answers "where does the economy end up, and why?" — with the behavioural mechanism visible rather than estimated.

It is coupled to the PolicyEngine microsimulation in both directions: its tax functions are estimated from effective and marginal rates the microsimulation computes on Enhanced FRS microdata, and a reform is the same flat parameter dict the microsimulation uses — so the model scores statute, not a stylised stand-in. Going the other way, score_reform with model="og+microsim" feeds the long-run wage and labour-supply changes back into a second microsimulation run for a dynamic, household-resolution score. The end-to-end workflow is on the score a reform page.

The rest of this page walks through a worked showcase reform with charts; the methodology underneath, the model's validation, the code you would actually run, and the full paper each have a tab of their own above. OG-UK is the UK calibration of OG-Core, the open-source overlapping-generations framework maintained by the Policy Simulation Library.

02 — showcase

A worked example: 1pp on the basic rate.

A static tax model holds the economy fixed and totals up who pays more or less; an overlapping-generations model also captures how people and firms respond:

  • Lower after-tax wages → households work and save less; higher cost of capital → firms invest less
  • The model returns a year-by-year path for GDP, wages, interest rates, investment, debt and tax revenue — with and without the reform
  • The difference between the two paths is the reform's macroeconomic effect

The worked reform:

  • +1pp on the basic rate (20% → 21%) from tax year 2027–28, holding thereafter — a stylised illustration, not a forecast of announced policy
  • Baseline: the OBR's November 2025 EFO (history plus forecast)
  • Data: the committed transition-path result olg/figures/tpi_data.json — the first five years (2026–2030) of the 60-period solve, which is what the charts show
Reform vs baseline in 2030, the last committed transition year. Values from olg/figures/tpi_data.json; the table is regenerated (and CI-checked) by olg/figures/make_showcase.py.
aggregatebaseline 2030reform 2030change
GDP (£bn, current prices)3,627.93,622.8-5.0 (-0.14%)
Tax revenue (% of GDP)32.06%32.35%+0.29pp
Consumption (% of GDP)61.33%61.10%-0.23pp
Investment (% of GDP)18.50%18.28%-0.23pp
Government consumption (% of GDP)44.28%44.67%+0.38pp
Debt (% of GDP)94.50%94.42%-0.08pp

The pattern is the classic dynamic-scoring one: revenue rises by less than a static costing would suggest because investment, consumption and — with a lag — GDP all drift below baseline as households and firms adjust.

OBR outturn / forecast Reform +1 pp basic rate Outturn / forecast boundary (2023) Reform start (2027)

With multi_sector=True the same solve reports the eight UK industry sectors. The incidence is close to uniform: seven of the eight contract by roughly 0.3–0.4% as private demand falls, while public & other alone expands, tracking the extra government consumption the revenue finances.

The finest-grained view is a single sector × variable cell with its history for context — here, energy output, indexed to 2000. The reform's dent is barely visible at this scale, which is itself the honest reading: a 1pp basic-rate rise is a small shock to any one industry.

ONS outturn / forecast Reform +1 pp basic rate Outturn / forecast boundary (2023) Reform start (2027)

Read these as model-consistent magnitudes and signs, not forecasts — the Validation tab explains why there is no ground truth to score them against.