|
| 1 | +# PolicyEngine vs Resolution Foundation nowcasting |
| 2 | + |
| 3 | +The Resolution Foundation (RF) publishes a UK microsimulation nowcast as |
| 4 | +part of its [Living Standards Outlook][lso] and pre-budget previews. RF |
| 5 | +documents its methodology in the LSO appendix; PolicyEngine's approach is |
| 6 | +spread across this repo, `policyengine-uk-data`, and the parameters under |
| 7 | +[`gov/economic_assumptions/`](./growthfactors.md). This page summarises |
| 8 | +how the two approaches differ at a high level so users can interpret |
| 9 | +discrepancies between the two nowcasts. |
| 10 | + |
| 11 | +For a focused write-up of how PolicyEngine generates the economic growth |
| 12 | +factors, see [`growthfactors.md`](./growthfactors.md). |
| 13 | + |
| 14 | +## Common ground |
| 15 | + |
| 16 | +Both PolicyEngine and RF start from the same survey backbone — the **Family |
| 17 | +Resources Survey** (FRS) plus its companion datasets (HBAI) — and project |
| 18 | +it forward using a mix of: |
| 19 | + |
| 20 | +- macroeconomic year-on-year growth rates (CPI, average earnings, RPI, |
| 21 | + CPIH), |
| 22 | +- benefit and tax parameter uprating, |
| 23 | +- a calibration step that reweights households to match published |
| 24 | + aggregates (caseloads, fiscal totals). |
| 25 | + |
| 26 | +In broad strokes both nowcasts produce gross-to-net household incomes and |
| 27 | +participation-weighted programme spending consistent with OBR-published |
| 28 | +totals over the next two-to-three fiscal years. |
| 29 | + |
| 30 | +## Where the methodologies diverge |
| 31 | + |
| 32 | +### Earnings growth |
| 33 | + |
| 34 | +| Aspect | Resolution Foundation | PolicyEngine UK | |
| 35 | +|-------|------------------------|-----------------| |
| 36 | +| Wage floor | Models the National Living Wage / NMW explicitly each year, lifting anyone below their age-appropriate minimum to the floor. | Earnings are uprated by the OBR average-earnings index without an explicit floor; minimum wage uprating is held in `gov/hmrc/minimum_wage/` and only enters when a reform invokes it. | |
| 37 | +| Spillovers | Includes a spillover effect for workers just above the wage floor (compression of the lower wage distribution). | No automatic spillover; earnings shift uniformly with the OBR index. | |
| 38 | +| NLW extensions | Models the 2024-25 extension of the NLW to 21- and 22-year-olds, and provisionally the 2029-30 extension to 18-20-year-olds. | NLW age bands are encoded in parameters (`gov/hmrc/minimum_wage`) but extensions only flow into outputs if a household's wage actually falls below the modelled floor — there is no explicit re-anchoring of earnings. | |
| 39 | +| Beyond 2025-26 | Assumes the wage floor grows in line with average earnings. | Same effective behaviour, but driven by uprating rather than a wage-floor rule. | |
| 40 | + |
| 41 | +**Practical implication.** Low-paid workers' incomes can grow faster under |
| 42 | +the RF nowcast than under PolicyEngine because the wage floor binds and |
| 43 | +ripples up; PolicyEngine treats them like everyone else under the OBR |
| 44 | +earnings index. |
| 45 | + |
| 46 | +### Benefit uprating |
| 47 | + |
| 48 | +| Aspect | Resolution Foundation | PolicyEngine UK | |
| 49 | +|-------|------------------------|-----------------| |
| 50 | +| Working-age benefits | Uses statutory uprating with explicit overrides for announced policy (e.g. CoL Payments, benefit freezes). | Same approach. Parameters under `gov/dwp/` and `gov/hmrc/child_benefit/` track legislated rates; ad hoc payments live under `gov/treasury/cost_of_living_support`. | |
| 51 | +| State Pension | Models the triple lock explicitly, using its own internal earnings/CPI forecasts. | Models the triple lock via `gov/dwp/state_pension/triple_lock/*.yaml`; the uprating value tracks announced DWP rates with a fallback to the maximum of earnings, CPI and the 2.5% floor. | |
| 52 | + |
| 53 | +### Take-up |
| 54 | + |
| 55 | +| Aspect | Resolution Foundation | PolicyEngine UK | |
| 56 | +|-------|------------------------|-----------------| |
| 57 | +| Approach | Uses HMRC/DWP outturn take-up rates and aligns simulated caseloads to published totals via calibration. | Same: each means-tested benefit has a `*_takeup_rate` parameter populated stochastically into `would_claim_*` flags in `policyengine-uk-data`, and the reweighting step in `policyengine-uk-data` enforces caseload alignment. | |
| 58 | + |
| 59 | +### Calibration / reweighting |
| 60 | + |
| 61 | +| Aspect | Resolution Foundation | PolicyEngine UK | |
| 62 | +|-------|------------------------|-----------------| |
| 63 | +| Targets | Aligns to a mix of HMRC, DWP and ONS aggregates. | Aligns to the same family of targets, but is publicly documented in `policyengine-uk-data` (`targets/`) and includes finer-grained local-authority targets for council tax and rents (see `policyengine-uk-data/datasets/local_areas/`). | |
| 64 | + |
| 65 | +### Horizon |
| 66 | + |
| 67 | +- **RF**: typically 4-5 years ahead in detail; long-run sensitivities run |
| 68 | + separately. |
| 69 | +- **PolicyEngine**: 5+ years ahead using the OBR EFO supplemented by |
| 70 | + long-run equilibrium assumptions in `yoy_growth.yaml` (see |
| 71 | + [`growthfactors.md`](./growthfactors.md) and the |
| 72 | + `gov/economic_assumptions/README.md` for the 2031+ construction). |
| 73 | + |
| 74 | +## Interpreting discrepancies |
| 75 | + |
| 76 | +When PolicyEngine and RF disagree on a published statistic (e.g. relative |
| 77 | +poverty, fiscal cost of a reform), the main sources of difference tend to |
| 78 | +be: |
| 79 | + |
| 80 | +1. **Wage-floor handling** — concentrated in low-pay groups (young |
| 81 | + workers, hospitality, retail). RF nowcasts higher real earnings growth |
| 82 | + here. |
| 83 | +2. **Take-up calibration vintage** — both models drift between official |
| 84 | + take-up statistics releases; align to the same vintage before comparing. |
| 85 | +3. **Local-area targets** — PolicyEngine's calibration includes |
| 86 | + LA-level rent and council tax targets that the public RF nowcast does |
| 87 | + not, which can shift housing-cost and disposable-income distributions. |
| 88 | +4. **Long-run horizon** — beyond 2030 the divergence widens because the |
| 89 | + two models use different long-run rules; treat post-2030 figures as |
| 90 | + illustrative rather than authoritative. |
| 91 | + |
| 92 | +## References |
| 93 | + |
| 94 | +- Resolution Foundation, [Living Standards Outlook 2025][lso] — appendix |
| 95 | + details the RF nowcast methodology. |
| 96 | +- Resolution Foundation, [budget preview reports](https://www.resolutionfoundation.org/publications/topic/budget-2025/) — operational pre-budget application. |
| 97 | +- PolicyEngine, [growthfactors.md](./growthfactors.md) — economic |
| 98 | + assumption growth rates. |
| 99 | +- PolicyEngine, [`policyengine_uk/parameters/gov/economic_assumptions/README.md`](https://github.com/PolicyEngine/policyengine-uk/blob/main/policyengine_uk/parameters/gov/economic_assumptions/README.md) — three-horizon construction of growth series. |
| 100 | +- `policyengine-uk-data` — calibration targets and reweighting code. |
| 101 | + |
| 102 | +[lso]: https://www.resolutionfoundation.org/publications/living-standards-outlook-2025/ |
0 commit comments