Conversation
… model The stored flag and the benefit categories used two different floating-point comparisons, which disagreed at exactly the GBP 1/week tolerance edge (for example survey year 2022 at rate minus GBP 1.00). The flag now uses the category derivation itself, so the two agree by construction. The grid test covers survey years 2019-2026 and offsets either side of the tolerance edge, and fails on the old comparison. A differential test checks the stored flag against policyengine-uk's formula for the same categories; it skips on policyengine-uk releases that predate PolicyEngine/policyengine-uk#1946. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dd4db61 to
65a642c
Compare
The differential test between the stored flag and policyengine-uk's formula no longer skips on older policyengine-uk releases: it fails until the lock includes PolicyEngine/policyengine-uk#1946, which keeps the new flag from shipping with a model that still reads it for the severe disability premium. The code comment and changelog now describe the flag as the tax credit condition and note that UC's higher disabled child addition, which is also keyed on it, differs (UC Regs reg 24(2)(b)). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The working-age severe disability premium in the Income Support, Housing Benefit and Council Tax Reduction applicable amounts counted any adult flagged by is_severely_disabled_for_benefits, the tax credit condition (DLA care highest rate, PIP daily living enhanced rate, or any AFCS payment), and paid a couple the double rate when either adult was flagged. HB Regs 2006 Sch 3 paras 14 and 20(6), IS Regs 1987 Sch 2 paras 13 and 15(5), ESA Regs 2008 Sch 4 paras 6 and 11(2) and JSA Regs 1996 Sch 1 paras 15 and 20(6) qualify a claimant on Attendance Allowance (either rate), the DLA care component at the middle or highest rate, the PIP daily living component at either rate, or Armed Forces Independence Payment. A couple needs both partners to qualify, unless the other partner is blind, who is then treated as absent and the single rate applies. No non-dependant aged 18 or over may reside with them (ignoring non-dependants who receive a qualifying benefit or are blind), and no carer benefit may be paid for caring for them: a couple who both qualify get the double rate with no carer paid for either, and the single rate with one paid for only one. is_severely_disabled_for_benefits stays for the CTC disability element and the WTC severe disability element (CTC Regs 2002 reg 8; WTC Regs 2002 reg 17). It now counts higher-rate Attendance Allowance (WTC reg 17(2)) and Armed Forces Independence Payment instead of any AFCS payment. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds YAML cases where an 18 or 19 year old qualifying young person is in the family: they are neither a partner nor a non-dependant, so they cannot make a couple qualify, be the blind partner treated as absent, or stop a lone parent qualifying. The legacy-premium fixtures from #1896 now use PIP daily living at the enhanced rate, which qualifies for the premium and is also severe for tax credits. The oracle property draws carers less often and has explicit double-rate and blind-partner examples, with events that show which branches ran; the Pension Credit differential says it compares two encodings of one rule, on the cases every version of that addition agrees on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A benefit-unit member aged 18 or over who is neither the claimant, the partner, nor a child or qualifying young person (HB Regs reg 19; SSCBA s.142) is a non-dependant under reg 3 and bars the premium; the test previously exempted every benefit-unit member. Adds a YAML case for an 18-year-old not in education, and gives #1896's 19-year-old fixtures the entry-condition input that makes them qualifying young persons. Documentation now states the carer condition as the Regulations do (caring for a single claimant; the couple rates), notes that only the claimant's blind partner is treated as absent and that the model assumes the qualifying partner claims (HB Regs reg 82(1)), lists child disability payment among the unmodelled Scottish benefits, notes that the tax credit flag also gates UC's higher disabled child addition, and fixes the JSA pinpoint. The property tests compute each before/after pair in one simulation, and the Pension Credit differential now covers carers and couples with one qualifying partner, since #1896's addition applies the same rules. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The property tests now generate a 16-19 year old in the benefit unit, in or out of education and with an entry age either side of 19, and the oracle treats one who is not a qualifying young person as a non-dependant (HB Regs regs 3, 19). Explicit examples cover an 18-year-old not in education (no premium) and a 19-year-old qualifying young person (single rate); restoring the old all-benefit-unit exemption fails them. The non-dependant docstring now says that a 19-year-old is a young person only with a known entry age under 19, and that the young person's own-claim exclusion (HB reg 19(2), IS reg 14(2)) is approximated by receives_benefits_in_own_right. The qualifying-benefit docstring places child disability payment in Housing Benefit and the Scottish CTR scheme. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
29d5a92 to
9dd4514
Compare
…ing-age-severe-disability-premium
… vs AFIP Stacked on #1946, which reads armed_forces_independence_payment (not afcs) for CTC Regs 2002 reg 8(5) / WTC reg 17(4). This adds what #1946 lacks: - afcs_reported documented as FRS benefit code 8 (AFCS including guaranteed income payments, and war disablement pensions); armed_forces_independence_payment documented with AFCS Order 2011 art 24A. - YAML cases: AFCS with DLA care middle / PIP daily living standard; CTC severely disabled child element, WTC severe disability element (AFCS 0, AFIP 1,705 in 2024-25) and the UC higher disabled child addition (AFCS 0, PIP enhanced 5,950.44 in 2025-26). - Hypothesis properties: differential against the tax credit condition (CTC reg 8(3)-(5) + WTC reg 17(2) higher-rate AA); AFCS invariance of the flag and of every amount that reads it; AFIP monotone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Composition note from #2078 (stacked on #2009), which makes the CTR means test assess the applicant and partner rather than the benefit unit's claimant and partner. #2078 adds A property test in #2078 ( |
Close the round-4 review findings on #1946: - is_severely_disabled_for_benefits reads higher-rate Attendance Allowance from aa_category, which the Enhanced FRS holds, and compares an amount with the higher rate less GBP 10 a week only when no category is given. The documentation says what the dataset holds and that the fallback is an approximation (WTC Regs 2002 reg 17(2) has no tolerance). YAML cases pin the category's precedence and both sides of the amount threshold in 2024 and 2026. - Document provisions the model does not apply, with citations: carer benefits withheld under Social Security Fraud Act 2001 s. 6B or 7 (HB Sch 3 para 14(7), IS Sch 2 para 13(5), ESA Sch 4 para 6(8), JSA Sch 1 para 15(9)); the care-leaver exception to "young person" (HB reg 19(2)(c), IS reg 14(2)(c)); and the JSA 1991 savings (JSA Sch 1 para 15(8)). - Document that the qualifying-benefit list uses Great Britain's 8 April 2013 date, while Northern Ireland added AFIP on 24 December 2013 and PIP on 20 June 2016 (S.R. 2006/405 Sch 4 para 14). - Describe the property-test oracle as a separately written implementation that shares the model's carer-attribution and blind-partner assumptions, not a statement of the statutory rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ion-age-severe-disability-premium Conflicts in severe_disability_minimum_guarantee_addition.py and test_carer_support_payment.py resolve to #1951's versions, which replace this PR's earlier change to the shared Pension Credit addition. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…premium list Northern Ireland added armed forces independence payment on 24 December 2013 (S.I. 2013/3021) and the PIP daily living component on 20 June 2016 (S.R. 2016/228), later than Great Britain's 8 April 2013. A separate parameter holds the Northern Ireland list and the variable selects by household country. Documentation notes what the model omits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Response to the independent review of
Local runs: 460 YAML cases under |
…-pinned case Drop preserve_calendar_dates from the Northern Ireland qualifying list so it is read as at 30 April from 2015, as the GB list is; a bare-year reform now lands in the same model year for both. The regression test checks year values. Fix a 404 link to HB Sch 3 Part 4, and stop pinning a disability premium of nil for a PIP recipient, which only followed from an unset input. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Response to the independent re-review of
Local runs on |
Based on main
84da2863(after #1896, #1950 and #1881); the diff contains this PR's own changes only. It usesis_claimant_or_partner, not the retired generic child/adult flags.Summary
The legacy severe disability premium previously used the tax-credit severe-disability flag and paid the double rate to a couple when only one partner qualified. This change gives the premium its own qualifying-benefit and residence conditions:
The retained
is_severely_disabled_for_benefitsflag adds higher-rate AA for WTC and AFIP in place of general AFCS payments. It approximates the tax-credit conditions; it does not match every statutory condition exactly. AA usesaa_categorywhen supplied. The dataset fills that category by inferring it from reported amounts, rather than observing award status directly. Only when the category isNONEdoes the formula compare an entered amount with the annual higher rate less £520 (£10 a week). WTC reg 17(2) contains no tolerance. DLA/PIP amount tests also retain a tolerance. The Enhanced FRS stores this flag, so dataset runs use the stored value; policyengine-uk-data#494 aligns that definition separately. CTC does not list AA, while UC has different AFIP/blindness conditions, so this shared flag has known consumer-specific limitations.Statutory sources and model assumptions
The core sources are HB Sch 3 para 14, IS Sch 2 para 13, ESA Sch 4 para 6, and JSA Sch 1 para 15. The review follow-up re-read the relevant legislation XML and amendment text on 2 October 2026. Variable documentation contains the citations and limitations.
is_blindhas no Enhanced FRS source, so these exceptions are unavailable in dataset calculations. Armed forces independence payment has no Enhanced FRS source either, so in dataset runs nobody qualifies through it.dla_sc_categorydoes not qualify for this premium.country. AFIP is included from 24 December 2013, and PIP daily living from 20 June 2016, rather than GB's 8 April 2013. These dates were verified in NI HB Sch 4 para 14, SI 2013/3021, and SR 2016/228, including their NI IS/JSA/ESA amendments. Like the GB list, the model reads the NI list as at 30 April of each year from 2015 and at 1 January before that, so AFIP first qualifies in model year 2014 and PIP daily living in 2017; a change during a year is not prorated.Not modelled
2006-03-06parameter value preserves the shared model baseline. It is not the commencement of NI HB S.R. 2006/405, which is 20 November 2006 under reg 1(1). NI coverage before that commencement has not been independently verified.Impact
Real microsimulation runs on the published Enhanced FRS 2024-25 (policyengine-uk-data 1.57.4, SHA-256
03fe15e4…68d4), comparing main84da2863withfbe78ab4. Later commits change documentation, tests and how the Northern Ireland list is read before 2015, none of which moves 2025-2028. Changes in £m a year:¹ Includes a small change in paid Income Support, which moves fewer than 10 sample records and so is not shown on its own. Paid Income Support does not change from 2026. Universal Credit and Pension Credit do not change in any year.
The computed premium total, summed over every family whether or not it claims a legacy benefit, falls by £10.8bn (2025), £10.2bn (2026), £11.5bn (2027) and £11.8bn (2028). That total is not benefit spending: the paid changes are the table above.
Earlier figures in this PR's history (measured on
f9814593→29d5a922, before #1896, the capital changes and the HB taper-order change landed) are superseded by this table.Coordination and validation
#1896 is merged. #2003 is stacked on this branch. #1938 addresses pension-age HB/CTR routing; #1977 addresses carer attribution. policyengine-uk-data#494 must release with a model lock that includes this PR, since pairing its new flag with the older model changes the legacy premium. Historical data-flag and stacked-PR runs are not validation of this merged head.
The YAML cases cover qualifying benefits, couples, blind partners, carers, family membership and non-dependants. AA cases cover category precedence and the amount fallback at and just below the threshold in 2024 and 2026. NI cases cover the model years either side of both commencement dates and a contemporary GB/NI comparison, and a test checks those year values in the processed parameter tree.
The property oracle is an independently written implementation that shares the carer-attribution and symmetric blind-partner assumptions. Agreement tests those assumptions' implementation, not their statutory validity. The Pension Credit differential likewise shares assumptions and is not an independent statutory oracle.
Local runs on this branch: the 460 YAML cases under
tests/policy/baseline/finance/benefit/familyand the 165 undertests/policy/baseline/gov/dwppass on the merged head;test_severe_disability_premium_properties.py, the code-health tests and the parameter metadata and description tests (1,760 tests) pass on the tree before the final merge of main, which touched none of this PR's files. Lint and format are clean. CI runs the full suite.🤖 Generated with Claude Code