Skip to content

Test winter heating payments for IS, JSA and ESA couples - #2391

Merged
MaxGhenis merged 1 commit into
mainfrom
winter-heating-legacy-couple-cases
Oct 15, 2026
Merged

MaxGhenis merged 1 commit into
mainfrom
winter-heating-legacy-couple-cases

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 12, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #2389

Summary

Adds 11 YAML cases for Winter Fuel Payment and PAWHP couples on Income Support, income-based JSA and income-related ESA. Only the two test files and a changelog fragment change; the model doesn't.

Since #2027, is_on_income_support, is_on_income_based_jsa and is_on_income_related_esa are true only for the member of a couple the award is paid to. #2038 reads the two legal concepts separately (partner_receipt_counts):

  • paid to P, for SI 2000/729 and SI 2025/969;
  • entitled, including through a partner, for SI 2024/869 reg. 2(5) and SSI 2024/351 reg. 7(2), 10(8) and 2A.

Both readings still pay a couple one payment. Until now, no YAML case put a couple on Income Support, and none put an IS, JSA or ESA couple of pensionable age through the one-payment rule.

New cases

Every expected value is worked by hand from the regulation text, which was fetched from legislation.gov.uk on 2026-10-02. Each case cites its regulation in a comment. The exception is the 2025 PAWHP pensionable-age IS couple: its partner's £0 follows the model's documented reading of reg. 9(d), not the text alone (see below).

Case Scheme, week Rule Expected (claimant, partner, lodger)
IS claimant 60, partner 72, lodger 75 WFP 2025 IS not paid to the partner; reg. 4(2)(a) needs a payee of pensionable age; reg. 3(2) £0, £100, £100
same WFP 2024 reg. 2(5) couple; reg. 3(c) £0, £200, £0
JSA claimant 60, partner 81, lodger 75 WFP 2025 reg. 3(5) for the partner, 3(2) for the lodger £0, £200, £100
same WFP 2024 reg. 2(5); reg. 3(a) £0, £300, £0
ESA couple 70 and 72 WFP 2025 reg. 4(2)(a) excludes the partner; reg. 3(1) £200, £0
JSA couple 70 and 81 WFP 2025 reg. 4(2)(a); reg. 3(3) £300, £0
IS couple 70 and 72 WFP 2024 reg. 2(5); reg. 4(1)(a)(i); reg. 3(c) £200, £0
IS claimant 60, partner 72, lodger 75 PAWHP 2024 reg. 7(2) as made; reg. 10(c) £0, £200, £0
JSA claimant 60, partner 81, lodger 75 PAWHP 2025 reg. 10(8) and 10(4)(a)(i) for the partner; 10(5)(b) for the lodger £0, £305.10, £101.70
ESA couple 70 and 81 PAWHP 2024 reg. 7(2); reg. 9(1)(d) as made; reg. 10(b) £300, £0
IS couple 70 and 72 PAWHP 2025 reg. 9(d) as read in pawhp_eligible (see below); reg. 10(4)(b) £203.40, £0

The JSA cases show the two readings giving different results in the same week. In England in 2025, JSA is not paid to the partner, so the household gets £300. In Scotland, reg. 10(8) treats the partner as entitled, so it gets £406.80.

The 2025 PAWHP pensionable-age couple follows the model's documented reading of reg. 9(d) as substituted by SSI 2025/282. That is an interpretation. For the 2025 week, reg. 10(8) applies its couple rule only within reg. 10, so reg. 9(d) read literally excludes only a member entitled to a relevant benefit in their own right. With the claimant paid first, the literal text would leave the partner eligible for a second £203.40. pawhp_eligible makes one payment per couple, as reg. 7(2) did for the 2024 week. From April 2026, reg. 2A (SSI 2026/170) supports one payment per couple expressly. The case's comment says so, and main's 2025 Pension Credit couple case already relies on the same reading. Both readings are recorded in TheAxiomFoundation/rulespec-uk#420.

The pensionable-age IS, JSA and ESA cases enter the award on the benefit unit. The model reads an award as entered, whatever the claimant's age, so each case tests the one-payment rule for that award.

Mutation check

probes/mutate4.py makes 8 mutants. Each is run against main's two YAML files and against this branch's.

Mutant main's suite this branch
exclusion reads only the member's own receipt (the break #2038 fixed after #2027) 5 failures 7
always "paid to" (ignores partner_receipt_counts) 4 11
always "through the couple" 4 7
is_on_income_support true for both members 0 (survives) 5
is_on_income_based_jsa true for both members 1 5
is_on_income_related_esa true for both members 2 4
Income Support dropped from the WFP list 0 (survives) 3
Income Support dropped from the PAWHP list 0 (survives) 2

Tests run

  • policyengine-core test on relevant_benefit_receipt.yaml and pawhp.yaml: 67 passed, 11 of them new.
  • The winter YAML suites, run on main before this change, including winter_fuel_allowance.yaml and the parametric reforms: 82 passed.
  • pytest policyengine_uk/tests/test_winter_heating_payment_properties.py on main: 3 passed. No Python changes.
  • The full YAML suite was not run locally, because only these two files change. CI runs it: green on a912177a8.
  • On 2026-10-15, a trial merge of this head with current main (cb1770774, which now includes Count the Pension Age Winter Heating Payment in household and HBAI income #2047; Charge the winter fuel payment back through income tax, person by person #2066 is still open) passes all 77 winter YAML cases. The trial merge was aborted, so the head is unchanged.

Review

Independent review r7 (Subfleet review, job 20261012-095108-wfp-couple-cases-r7): APPROVE on a912177a8, with no P2.

  • Its P1 is the 2025 reg. 9(d) reading above. It concerns the existing model, not this PR, and is documented in pawhp_eligible and rulespec-uk#420.
  • Its optional P3 (a legacy-benefit case where the non-head member reports the award) is not taken: it would change the reviewed head. Main already covers the reported-award payee rule in its Pension Credit claimant-and-lodger cases.
  • Its body nits are fixed here.

Impact

None. No model code or parameter changes, so no microsimulation run is needed.

axiom: n/a: tests only, no rule change (the two receipt readings are queued in TheAxiomFoundation/rulespec-uk#420)

🤖 Generated with Claude Code

The winter heating suites had no case with a couple on Income Support, and
none with an income-based JSA or income-related ESA couple of pensionable
age. Eleven new cases, worked from the regulations:

- Winter Fuel Payment (SI 2024/869, SI 2025/969): mixed-age Income Support
  and income-based JSA couples in 2024 (entitled through the couple, reg.
  2(5)) and 2025 (paid at their own rate, since the award is not paid to
  them, reg. 3(2) and (5)); ESA and JSA couples of pensionable age in 2025
  and an Income Support couple in 2024, each paid once (reg. 4(2)(a); reg.
  4(1)(a)(i)).
- PAWHP (SSI 2024/351): mixed-age Income Support couple in 2024 (reg.
  7(2)) and JSA couple in 2025 (reg. 10(8)); ESA couple of pensionable age
  in 2024 (reg. 9(1)(d) as made) and Income Support couple in 2025, each
  paid once.

Mutants of the Income Support reader (paid to both members) and of the WFP
and PAWHP relevant-benefit lists (Income Support dropped) passed main's
suites; the new cases fail all three.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review October 15, 2026 02:49
@MaxGhenis
MaxGhenis added this pull request to the merge queue Oct 15, 2026
@MaxGhenis

MaxGhenis commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator Author

Hand-off to the UK hub (from session 257cd086, the #2038 session).

Merged via the queue into main with commit 322bd2c Oct 15, 2026
16 of 17 checks passed
@MaxGhenis
MaxGhenis deleted the winter-heating-legacy-couple-cases branch October 15, 2026 03:21
@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

Merged by the merge queue at the handed-off head a912177a8. Landed by the UK hub on the gates.

MaxGhenis added a commit that referenced this pull request Oct 15, 2026
…ards

Brings in #2277, #2391, #2402, #2404, #2405, #2407, #2411, #2413, #2415,
#2418, #2419 and #2420. No conflicts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 15, 2026
…2277) into uc-hb-split-shared-cap-lha-rules

No conflicts; no benefit cap, LHA, UC or HB file changed on main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

Test winter heating payments for couples on Income Support, income-based JSA and income-related ESA

1 participant