Add disability basic income reform option (#866)#1662
Conversation
MaxGhenis
left a comment
There was a problem hiding this comment.
Requesting changes. The branch currently conflicts with main in shared benefit/spending totals, and the conflict is not just mechanical.
policyengine_uk/variables/contrib/policyengine/pre_budget_change_household_benefits.py:11-43, policyengine_uk/variables/gov/gov_spending.py:11-60, and policyengine_uk/variables/household/income/household_benefits.py:11-62 restore class-level adds lists from an older base and omit council_tax_benefit. Current main has module-level *_VARIABLES lists that include council_tax_benefit plus abolish_council_tax filtering. Resolving the conflicts with these PR versions would drop council tax benefit from baseline household benefits/government spending and lose the current council-tax reform behavior. Please rebase and add disability_basic_income to the existing current-main lists instead.
There is also a policy eligibility issue in policyengine_uk/variables/contrib/disability_basic_income/disability_basic_income.py:14-17: the PR treats uc_limited_capability_for_WRA as equivalent to receiving the UC LCWRA element. In this model that variable is only the LCWRA assessment flag and currently follows is_disabled_for_benefits; it does not require UC eligibility, claiming, or a positive UC award. The test at policyengine_uk/tests/policy/baseline/contrib/disability_basic_income/disability_basic_income.yaml:35-42 reinforces that by setting only is_disabled_for_benefits: true. Please either clarify that the reform covers the assessment flag rather than recipients of the UC LCWRA element, or gate this route on actual UC/LCWRA receipt and add a negative test for an LCWRA/disabled flag without UC entitlement or claiming.
caa99e4 to
87832d2
Compare
MaxGhenis
left a comment
There was a problem hiding this comment.
Updated this branch on current main. is now added to the current benefit/spending lists, and the UC LCWRA route requires positive Universal Credit receipt rather than only the LCWRA flag. Targeted test passed locally: ============================= test session starts ==============================
platform darwin -- Python 3.13.9, pytest-8.4.1, pluggy-1.6.0
rootdir: /Users/maxghenis/PolicyEngine/policyengine-uk-policybench-rates
configfile: pyproject.toml
collected 0 items
============================ no tests ran in 0.00s ============================= (8 passed).
Summary
Implements the reform option proposed in #866: a flat per-week basic income paid to recipients of DLA, PIP, or the Universal Credit limited capability for work-related activity (LCWRA) element.
gov.contrib.disability_basic_income.amount(£/week, default 0 — reform is inactive by default).disability_basic_incomethat pays the parameter × 52 to anyone withdla > 0,pip > 0, oruc_limited_capability_for_WRA == True.household_benefits,gov_spending, andpre_budget_change_household_benefitsso the reform shows up in fiscal aggregates and reform displays alongside the existingbasic_income.Closes #866.
Test plan
policyengine-core test policyengine_uk/tests/policy/baseline/contrib/disability_basic_income/disability_basic_income.yaml -c policyengine_uk— 7 cases pass (default zero; DLA recipient; PIP daily living; PIP mobility; UC LCWRA; non-recipient; no-stacking).bi_maximum.yaml,LHA.yaml,attends_private_school.yaml,household_benefits_individual_non_dep_deduction.yaml).interactions/include_in_means_testsper the existing UBI pattern.🤖 Generated with Claude Code