Repository navigation
Description
Context
The independent review of PIP publishes its final report in November 2026. PolicyEngine/uk-pip-review-2026 tracks what the model needs, from its checklist (PolicyEngine/uk-pip-review-2026#10).
The PIP code has not changed from 2.144.0 to 2.175.7. That covers variables/gov/dwp/pip/, utils/pip.py, the points inputs and scenarios/pip_reform.py. This issue collects what the model still needs. Imputing points and calibrating the caseload are data work.
Already open
- PIP point system #1069: the PIP point system. Add PIP points-based assessment scaffold (#1069) #1661 added
pip_dl_points,pip_m_pointsand the 8- and 12-point thresholds. Item 2 below belongs under it. - Include the Scottish devolved disability benefits in the LHA size-criteria benefit lists #2041: the Scottish devolved disability benefits in the LHA size-criteria lists.
- Roadmap: complete, interaction-aware UK tax–benefit coverage (2000-onward) #1775: the roadmap lists Adult Disability Payment and Child Disability Payment.
- Pay carer benefits only for caring for a severely disabled person #2860 (PR): carer benefits only for caring for a severely disabled person.
- Count enhanced PIP daily living and AFIP for the enhanced premium #2808 (PR): enhanced PIP daily living and AFIP for the enhanced disability premium.
- Values the model stores at build don't follow inputs a caller sets later #2798: values stored at build, including the UC health element in 2026–2032, don't follow inputs set later.
- Read stored draws for UC, student loans and PIP #2877 (PR): stored draws for UC, student loans and PIP.
1. Adult Disability Payment, and a country test on PIP
pip_dl and pip_m (variables/gov/dwp/pip/) have no country test, and gov/social_security_scotland has no Adult Disability Payment. Scotland has replaced PIP with Adult Disability Payment, and DLA for children with Child Disability Payment. Datasets record Scottish awards in the PIP and DLA columns, so a PIP reform also changes Scottish households' payments (PolicyEngine/uk-pip-review-2026#1).
Proposal:
adp_dlandadp_mundergov.social_security_scotland.adult_disability_payment, with their own rates, equal to PIP's in current law.- A country condition on
pip_dlandpip_m. - Adult Disability Payment wherever the law lists it beside PIP: the Carer's Allowance and Carer Support Payment qualifying benefits, the disability premiums, the benefit cap exemption and the LHA lists (Include the Scottish devolved disability benefits in the LHA size-criteria benefit lists #2041).
- An input that marks Scottish receipt, so a dataset that writes one column per component keeps working until it writes Adult Disability Payment apart.
- Child Disability Payment against DLA, in the same way.
2. A single-activity test (part of #1069)
The 2025 Pathways to Work green paper proposed that the daily living component require at least 4 points in one activity. pip_dl_points holds a total.
Two additions would let a reform apply that test without activity-level inputs:
- a person input for the highest score in any one daily living activity, defaulting to -1 like the points inputs;
- a parameter for the minimum single-activity score, at 0 in current law.
The activity-level model remains #1069's.
Documentation: in utils/pip.py, a category supplied for a year overrides points supplied for the same year. So threshold reforms reach people only when a dataset supplies points without categories, or points for a later year. The points docs page (#1725) could say so.
3. PIP as the gateway to the UC health element
uc_limited_capability_for_WRA defaults to is_disabled_for_benefits, less people whose own ESA award lacks the support component (#1989). No parameter lets PIP receipt decide it, which a recommendation to make PIP the gateway to UC health support would need (PolicyEngine/uk-pip-review-2026#6).
Proposal: a reform parameter naming which PIP awards, or later which points, give limited capability for work-related activity. Apply it before the 2026–2032 rebalancing step stores the element (#2798), so the stored amounts follow it.
4. Disability flags that follow PIP
is_disabled_for_benefits has no formula, and datasets also store is_severely_disabled_for_benefits and is_enhanced_disabled_for_benefits. So a PIP reform doesn't move the disability premiums (PolicyEngine/uk-pip-review-2026#7).
Proposal: formulas for the three flags from the benefits that confer them, with #2808's enhanced premium rule, so that datasets can stop storing them. The phasing in scenarios/pip_reform.py, which overwrites pip for a seeded 25%, would then reach the knock-ons too. #2877 stores that draw.
5. Carer's Allowance after the cared-for person's award ends
carers_allowance_weekly_by_part_of_year (utils/carers_allowance_taper.py) never reads the cared-for person's award (PolicyEngine/uk-pip-review-2026#2). #2860 adds cares_for_severely_disabled_person.
A follow-up rule would end a reported award when the cared-for person's qualifying benefit ends. It needs a decision on how datasets link carer and cared-for: for example, caring hours inside and outside the household as separate inputs.
6. Caseload growth in projected years (design question)
Categories carry forward from the dataset's year, and weights grow with population only. So the modelled PIP caseload stays flat, while DWP's Spring 2026 forecast for England and Wales grows each year to 2030-31 (PolicyEngine/uk-pip-review-2026#4). Letting projected years follow DWP's path, for example by drawing new awards among non-recipients with matching characteristics, is a design question for the engine and the data together.
Relationship to data work
None of Microcosm's data work for this event is decided. If any goes ahead, this is how it relates to the items above:
- Writing Adult Disability Payment to its own columns would need item 1's variables and receipt input first. Until then, Scottish awards stay in the PIP columns, where Microcosm can still anchor them to Scottish Budget spending.
- Drawing each recipient's highest single-activity score from DWP's per-activity tables would need item 2's input first.
- Linking carers to the person they care for, from the FRS's caring-hours questions, would need item 5's inputs and Pay carer benefits only for caring for a severely disabled person #2860's.
- Dropping the stored disability flags is possible only once item 4's formulas exist.
- Imputing total points needs nothing new, because
pip_dl_pointsandpip_m_pointsexist. A dataset would then have to supply points without categories (the documentation note under item 2). - The PIP and DLA caseload targets need nothing from this issue.
The published tables this work would use are requested in PolicyEngine/chronicle#420.
Not in this issue
- Imputing points from DWP's published distributions: data work, in Microcosm or the event repository.
- Calibrating the PIP caseload: Microcosm. Add PIP statistics to calibration procedure #588, from 2021, predates that work.
- A health-condition group and the 28-day hospital rule (No health-condition or hospital-stay data: fast track and 28-day rule cannot be modelled uk-pip-review-2026#5): no data source yet.
Activity
vahid-ahmadi commentedon Nov 6, 2026
Thanks for pulling this together, María.
Checks
Checked on main at a866277 (2.175.8):
pip_dlandpip_mhave no country test, and the points thresholds are 8 and 12.utils/pip.pylets a category supplied for a year override points for that year, as you say. The PIP files andscenarios/pip_reform.pylast changed before 2.144.0 went to PyPI (21 October).pip_dl.pyandpip_m.pyreadpip,pip_dlorpip_m(16 variables, includinggov_spendingandis_severely_disabled_for_benefits, and 10 qualifying-benefit lists). Datasets hold Scottish awards in the PIP columns (Microcosm UC child limit produces no budgetary impact #1095). A country test that zeroespip_dlin Scotland would break the Scottish baseline until all 26 also readadp_dl, so the full split has to land as one piece. A smaller first step keeps every reader intact:pip_dlandpip_mtake their rates by country, with Scotland ongov.social_security_scotland.adult_disability_payment.*rates that equal PIP's in current law. A reform togov.dwp.pip.*then leaves Scotland alone, and the separate ADP variables can follow.gov.contrib,in_effectfalse), to match item 3.is_severely_disabled_for_benefitscounts enhanced PIP daily living.is_enhanced_disabled_for_benefitstests DLA care at the highest rate only, which Count enhanced PIP daily living and AFIP for the enhanced premium #2808 widens. Dataset runs use the stored severe flag (policyengine-uk-data#494, an open PR). The code gap is a formula foris_disabled_for_benefits. The rest is turning stored values off, on the data side.utils/carers_allowance_taper.pyto readcares_for_severely_disabled_person(default true). The follow-up can build on it once it merges.Overlap
gov.dwp.pip.min_age. It also lets a reform raise the age from 16 to 18 by a parameter change. On its own that removes PIP without paying DLA, as the PR says.scenarios/pip_reform.py, so the phasing part of item 4 waits for it.Plan
Nothing here blocks the drill. The event repo's England and Wales mask and its data-limit notes (uk-pip-review-2026#1) cover it.
pip_dlandpip_mselect by country, NI unchangedis_disabled_for_benefits, then stop storing the flags with policyengine-uk-dataSay if you disagree with the order.