Repository navigation
UK pensions after #1084: open rulings, residual gaps and the engine pieces #1069
Copy link
Copy link
Open
Description
Status (16 October 2026)
This issue began as the plan for #1084 (work packages WP0 to WP7). #1084 merged on 2 October (fe4e38dfa) and delivered WP0 to WP5 and WP7's HBAI and reform-stability checks. Its measurements and rulings are in experiments/1069-uk-pensions-receipts.md, and the original plan is in this issue's edit history. The body now lists only what is still open.
Delivered since #1084
- State Pension age by date of birth: Set State Pension age from date of birth, including the rise to 67 policyengine-uk#1899 (merged 3 October), in the lock since UK: port the remaining uk-data fixes tracked in #1095, engine items included #1121.
uk_runtime/frs_take_up.pyreadsage_by_birth_date. - The triple lock computed from its statutory inputs, including the April 2027 rate: Compute the State Pension triple lock from its statutory inputs policyengine-uk#1939 (3 October). Generated-series reforms take effect: Read calendar-year series' bare years as calendar years, and make generated-series reforms take effect policyengine-uk#2404 (14 October). A
reform=dictionary still edits parameters after processing, so reforms of the triple-lock inputs go throughScenario(parameter_changes=...). - Salary sacrifice is predicted only for people with pay: UK spine follow-ups: SPI donors funded, WAS coherence, residential split, Child Benefit, release-cut blockers (#1063) #1089 and UK: policyengine-uk 2.130.1 and the fourth batch of #1095 ports, with the release's weight year, identifiers and birth months fixed #1271.
- The income-tax relief rate bands bind by tax-rate class (UK: port the #1095 fixes that need no new policyengine-uk release #1200). The all-rates total is a diagnostic, and the family's exclusions are retired.
- Employer NI for employees over State Pension age: Charge employer NI on employees over state pension age policyengine-uk#1895 (30 September).
Open in microcosm
Rulings
- Single ages (R3). WP2's 3% acceptance for single ages around State Pension age isn't met. Rule on the split (65, 66, 67–69), or bind the singles beside the five-year band.
- SPI Table 3.8 contributions. Table 3.8 splits contributions by relief mechanism; the engine's columns split them by provider. Rule on binding the combined amounts against employee plus personal contributions.
- Employer NICs relief at 15%. Confirm the restatement from 13.8%, which changes the rate alone.
Work
- The State Pension type boundary. Re-measure the 70–74 boundary, which zig-zagged while
state_pension_typekeyed on age and sex. Set State Pension age from date of birth, including the rise to 67 policyengine-uk#1899 is in the lock, and UK: policyengine-uk 2.130.1 and the fourth batch of #1095 ports, with the release's weight year, identifiers and birth months fixed #1271 adds birth months to the spine. - Pension Credit spending by component. Only OBR's total is bound; the Guarantee Credit and Savings Credit split is not.
- The salary-sacrifice anchor.
uk/salary_sacrifice_anchor.jsonis still vendored by hand (unchanged since 21 August). Vendor it from Chronicle; the values already match the feed. WS-C deferred adjudications and the reconciliation layer #736 lists the same item. - State Pension in the SPI bands and below the tax threshold. The £20–30k and £30–40k State Pension bands sit above target on the first national build after Draw SPI-channel incomes at the FRS twin's conditional rank (#840) #1256 (UK SPI channel after #840: residuals, post-merge measurements and stale pointers #1288). Non-taxpayer State Pension is short of what HMRC and DWP imply. UK SPI channel after #840: residuals, post-merge measurements and stale pointers #1288's item on State-Pension-only twins, drawn against a tape of mostly taxpayers, may explain part of both.
- WP7's DWP path. Compare the baseline State Pension and Pension Credit path with DWP's forecast to FY2030-31, once the engine items below are in the lock.
Blocked on policyengine-uk
- Pension Credit FY2025-26 rates and the Savings Credit projection: Correct 2025-26 Pension Credit rates and the Savings Credit projection policyengine-uk#2083 (open). Until it lands, Pension Credit calibrates at the engine's current values.
- Additional State Pension and protected payments uprated by CPI: Uprate additional State Pension and protected payments by CPI, not the flat rate policyengine-uk#1941, with PR Uprate additional State Pension and protected payments by September CPI policyengine-uk#2336 (both open).
- Winter Fuel Payment recovery above £35,000: Model Winter Fuel Payment high-income recovery separately from entitlement policyengine-uk#1760 (open). DWP's recipient count stays a diagnostic until it lands.
- No policyengine-uk issue or PR found yet (check before filing):
- the basic-to-new State Pension reclassification double count;
- a guard against datasets that carry a
state_pensioncolumn; - the income-tax easement switch for pensioners whose only income is the State Pension (original decision 10);
- Pension Age Disability Payment, so Attendance Allowance in Scotland can bind.
- The original decisions 9 (the Pension Credit guarantee after 2026) and 10 (the easement switch) belong to the engine side.
Related
- Multi-year runs: UK static aging: ONS 2024-based projection reader and weights-only annual projections to 2050-51 #1075 and UK State Pension projection bundle: entitlement sidecar, abroad dataset, manifest and scorecard for PolicyEngine UK #1076 (microcosm-dynamics#501).
- Pension wealth: UK source packages: ONS WAS Round 8 household wealth distribution (total wealth, components, percentile aggregates) chronicle#205.
- One permanent signed reference exclusion in
uk/target_reference_signed_exclusions.jsonnames this issue. It is provenance with no expiry, and needs no action when this issue closes.
Done when
- The three rulings are recorded.
- The open microcosm items are bound, vendored or re-measured, with receipts.
- The engine items are in the lock, and the WP7 DWP path has been run.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
Let synthetic smoke builds record the Pension Credit take-up gate wit…
Lower the SPI channel's pension-age prior share to 0.2 (#1069, ruled …
Uprate the SPI State Pension amount rows by their count rows' recipie…
Receipts: review round 1, the σ_p ruling and the State Pension amount…
Merge pull request #1084 from PolicyEngine/uk-pensions-1069
juaristi22 commentedon Oct 2, 2026
#1084 is merged (fe4e38d). It delivered WP0–WP5 and WP7's HBAI and reform-stability checks; the measurements and rulings are in
experiments/1069-uk-pensions-receipts.md. This issue stays open for what's left, most of which is blocked on policyengine-uk.Blocked on policyengine-uk
uk_runtime/frs_take_up.pyreadsgov.dwp.state_pension.age.{male,female}, which #1899 deletes.state_pension_typekeys on age and sex. The 70–74 boundary zig-zags, and single ages 69–73 are off by 10–20%.state_pensioncolumn.Open in microcosm, not blocked on the engine
Of the decisions listed above, 9 (the Pension Credit guarantee after 2026) and 10 (the easement switch) belong to the engine follow-up; the plan ruled the rest.
Hold the salary-sacrifice income-tax and employee-NIC reliefs on the …
Hold the salary-sacrifice income-tax and employee-NIC reliefs on the …
Bind the salary-sacrifice relief bands by income tax rate class (#1095)
[-]UK pensions: calibrate State Pension, Pension Credit and pension contributions to the resident administrative facts (PolicyEngine/chronicle#305), pin the State Pension age boundary, fix the pension spine stages, and the engine pieces a State Pension uprating analysis needs[/-][+]UK pensions after #1084: open rulings, residual gaps and the engine pieces[/+]