Skip to content

UK WAS stage: split private pension wealth out of corporate_wealth (uk-data#452 M2) #750

Description

@MaxGhenis

What

The UK WAS wealth stage folds WAS private pension wealth less the current-employment defined-benefit component (totalpenr8_aggr − dvvaldbt_scaper8_aggr) into corporate_wealth, and policyengine-uk counts corporate_wealth as capital in every means test (UC means_test/capital/sources.yaml and the HB/JSA/ESA/IS/PC equivalents). The value of a right to receive a pension under an occupational or personal pension scheme is disregarded capital (UC Regs 2013 Sch 10 para 10; HB Regs 2006 Sch 6 paras 31–32 and HB(SPC) Regs 2006 Sch 6 para 24; JSA Regs 1996 Sch 8 paras 28–29; ESA Regs 2008 Sch 9 paras 28–29; IS Regs 1987 Sch 10 paras 23–23A; SPC Regs 2002 Sch V paras 22–23). On the incumbent enhanced_frs_2024_25.h5 (uk-data 1.56.14) at 2025, 46% of benefit-unit records that report UC fail the £16,000 test, 96% of them on corporate_wealth alone.

Diagnosed as mechanism M2 of PolicyEngine/policyengine-uk-data#452 (the UC caseload shortfall); machinery lives here per the 2026-08-22 routing (uk-data gets at most one last mirrored release, then freezes).

Measured on the donor (WAS round 8, aggregates)

The folded remainder is £3,659bn of the £4,318bn old corporate_wealth mass (84.7%): current occupational DC 314 + AVCs 12 + retained DC 550 + current personal pensions 204 + retained DB 864 + pensions in payment 1,692 + pension-sharing rights 23 — so it is not DB-free and is named private_pension_wealth (WAS/ONS private pension wealth less current-employment DB), not non_db_pension_wealth.

Change

  • WAS stage emits private_pension_wealth as its own household output (drawn first in chain segment 2; share-like holdings conditional on it; segment 3 conditional on both) and keeps corporate_wealth to employee shares/options, UK shares, unit and investment trusts and the stocks-and-shares ISA fold. Row identity old corporate_wealth == corporate_wealth + private_pension_wealth on the donor.
  • Lockstep spec, regenerated support bounds, UK_ALLOWED_EXTRA_EXPORT_COLUMNS / uk_export_surface allow-list entry, coverage manifest and digest re-cuts; measurement receipt in experiments/452-uk-pension-wealth-split.md.
  • Model side (policyengine-uk, separate PR): private_pension_wealth input as an explicit capital disregard; total_wealth re-sums it; corporate_sector_wealth = corporate_wealth + private_pension_wealth keeps the shareholding / corporate land value / employer-NI keys whole.

Effect (microcosm machinery at a fixed seed, weights unchanged, 2025)

UC benefit units 5.19m → 6.27m (+1.07m, +21%); eligible benefit units 9.8m → 16.3m; reporter records over £16k 3,165 → 1,757; GB elements: housing +0.51m, LCWRA +0.36m, carer +0.08m, childcare +0.14m, child +0.52m. Full table and caveats in the experiments receipt.

Follow-ups registered here

  • Current-employment DB entitlements (DVValDBT_SCAPE, £1,149bn on the donor) are not carried; a future current_db_pension_wealth would complete WAS private pension wealth (it would change total_wealth).
  • Cash ISAs (cash_isa, WAS DVCISAVR8) are capital for the means tests but the model's savings maps savings accounts only — the opposite-direction gap.
  • The microcosm re-draw of the whole wealth block sits ~1.15m UC benefit units below the incumbent artifact on the same households even with the old arithmetic (continuous-quantile full-leaf draws vs microimpute's 10-point grid; predictor surface) — worth its own look alongside microcosm#145's predictor-quality revisit.
  • Ordering: microcosm split → uk-data mirror (held for Max) → re-pin the efrs-post-calibration input-mass reference; re-pinning first would breach the input-mass gate on corporate_wealth.
  • Engine coupling: bump the uk extra lock to the policyengine-uk release carrying private_pension_wealth before any national build/calibration (the UK targets ons.land.corporate_land_value / land_value are materialised through the engine's keys).

Refs: PolicyEngine/policyengine-uk-data#452, microcosm#701, microcosm#145, microcosm#736.

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