Skip to content

Update PolicyEngine UK to 2.88.6#3483

Open
policyengine[bot] wants to merge 1 commit intomasterfrom
auto/update-policyengine-uk-2.88.6
Open

Update PolicyEngine UK to 2.88.6#3483
policyengine[bot] wants to merge 1 commit intomasterfrom
auto/update-policyengine-uk-2.88.6

Conversation

@policyengine
Copy link
Copy Markdown

@policyengine policyengine bot commented Apr 19, 2026

Summary

Update PolicyEngine UK from 2.78.0 to 2.88.6.

What changed (2.78.0 -> 2.88.6)

Added

  • Support Python 3.9 and 3.10 (in addition to 3.11–3.14). On Python 3.9/3.10, pip resolves policyengine-core to a version that has been relaxed to support older Python (3.24.0+); on 3.11+ behavior is unchanged.
    • Add a microsimulation smoke test suite that runs against the unpinned latest enhanced FRS dataset and asserts plausibility bounds for UK population, UC aggregate, is_parent population, core benefit totals, and extended childcare eligibility. Catches silent model/data skew at the point the dataset is republished, not after a release.
  • Add a first-pass Disabled Students' Allowance model for England higher-education students.
  • Add a first-pass Travel Grant model.
  • Add a first-pass Adult Dependants' Grant model.
  • Add a first-pass Parents' Learning Allowance model.
  • Add a first-pass 16 to 19 Bursary Fund model for vulnerable groups.
    • Add a first-pass Childcare Grant model for England full-time undergraduates.
    • Add an approximate England full-time maintenance loan model, with explicit override inputs for living arrangement and assessed household income.
    • Add an approximate England full-time maintenance loan model, with explicit override inputs for living arrangement and assessed household income.
  • Add named economic-assumption parameters for the local-authority ONS income target uprating factors used by policyengine-uk-data.

Changed

    • Update .github/CONTRIBUTING.md to document the towncrier changelog.d/ workflow. The old changelog_entry.yaml + make changelog flow was deprecated some time ago; the CONTRIBUTING guide still instructed new contributors to use it, causing CI round-trips on PRs that created a changelog_entry.yaml no fragment step was looking for.
  • Expose build metadata helpers for UK data artifacts, including a stable data-build fingerprint and build provenance metadata.

Fixed

  • Replace new_state_pension's flat-max payout with a min(reported, max) / max * period_max formula mirroring basic_state_pension, and extend additional_state_pension to NEW-type retirees so any pre-2016 SERPS/S2P Protected Payment flows through as an add-on instead of being silently dropped. Partial-NI-record retirees now receive their actual pro-rated rate rather than the full flat max. Closes part of the ~£12 bn residual state-pension gap vs the OBR target tracked in Update PolicyEngine US to 1.19.0 #1632.
  • Zero out Income Support and income-based Jobseeker's Allowance after DWP managed migration completed on 31 March 2026. New parameters gov.dwp.income_support.active and gov.dwp.JSA.income.active flip to false from 2026-04-01, matching the Tax Credits treatment. Contribution-based JSA remains active.
  • Bump policyengine-core minimum to >=3.25.0 to pick up the cache-invalidation and set_input preservation fixes (Preserve set_input values across apply_reform policyengine-core#475). The 3.24.0–3.24.3 cascade left UK model tests returning zero for income_tax, UC, and other formula-driven variables when a reform is applied during simulation construction; 3.25.0 includes the regression fix.
  • Migrate versioning workflow to GitHub App token (POLICYENGINE_GITHUB PAT expired).
    • Fix state_pension_type incorrectly classifying every pensioner as receiving the pre-2016 basic State Pension. The formula used values_list[0] to find when the New State Pension activated, but policyengine-core auto-extrapolates the parameter into the far future, so [0] was returning a 2040s entry instead of the 2016 activation date. Walks the list oldest-first to find the real activation instant, so post-2016 retirees are now correctly classified as NEW. Raises the modelled 2025 state pension aggregate from about £116bn to about £127bn.
    • Fix Working Tax Credit and Child Tax Credit continuing to pay out from the 2025-26 tax year onward. Working Tax Credit and Child Tax Credit ended on 5 April 2025 (HMRC/DWP). Adds a gov.dwp.tax_credits.active parameter that flips to false on 2025-04-06 and gates tax_credits on it. Removes about £1.9bn of phantom Tax Credit spending per year from 2025-26 onward while preserving the legitimate 2024-25 baseline.
  • Fix maintenance loan proxy logic to require explicit higher-education evidence and improve sponsor-income assessment.
  • Use modelled student loan repayments in aggregates and cap them by outstanding balance when available.
  • Fixed corporate_land_value to allocate aggregate corporate land using the current weighted distribution of corporate_wealth, and refreshed the aggregate land parameters to the 2024 ONS land totals used by policyengine-uk-data.
  • Corrected Universal Credit rebalancing so existing health-element claimants keep their combined standard allowance and health element award CPI-protected.

Generated automatically by GitHub Actions

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants