Skip to content

Correct the benefit cap note in the legacy award reader properties - #2398

Merged
MaxGhenis merged 1 commit into
mainfrom
legacy-award-readers-cap-comment
Oct 16, 2026
Merged

MaxGhenis merged 1 commit into
mainfrom
legacy-award-readers-cap-comment

Conversation

@MaxGhenis

Copy link
Copy Markdown
Collaborator

What this changes

One comment in policyengine_uk/tests/test_legacy_award_readers_properties.py, on the further family shapes that #2261 added. No model code, parameters or test logic change.

#2261 said the benefit cap "still counts every member's award (benefit_cap_reduction reads the benefit-unit totals), so with a binding cap another member's award can reach a reader through Universal Credit". #2076 merged right after #2261, in the same merge-queue group. Since then benefit_cap_reduction reads income-based JSA and income-related ESA through award_of_members with the cap couple (benefit_cap_couple), and the contributory awards through add_for_members with that couple (UC Regs 2013 reg 80(1); HB Regs 2006 reg 75A). So the old sentence is now wrong on main.

The comment now says the cap reads only the couple's own awards and the family's, not another member's. It points to JSA_COUPLE_WITH_LODGER, the pinned example of test_other_members_awards_never_change_the_readers.

Check behind the new wording

The check runs main f64155a on that pinned family in 2025, three ways: the family alone, with an outside adult of 20 who reports nothing, and with that adult reporting £3,000 of income-based JSA.

alone outside adult, no award outside adult, £3,000 JSA
jsa_income (benefit unit) 6,000 6,000 9,000
claimant_or_partner_jsa_income 6,000 6,000 6,000
benefit_cap 25,323 25,323 25,323
benefit_cap_reduction 0 0 0
universal_credit 15,118.92 15,118.92 15,118.92

The couple's and family's capped total is 23,370.52 (JSA 6,000, Universal Credit 15,118.92, Child Benefit 2,251.60), which is £1,952.48 below the cap. If the cap counted the added member's £3,000 of JSA, it would bind. The script uses synthetic households only: cap_binds_in_pinned_family.py in the lane's notes.

  • ruff format --check and ruff check on the file pass.

Impact

None. Only a comment in a test file changes, so no output of the model can move. There is no changelog fragment, because nothing functional changes.

Follow-up to #2261 (#2026 and #2027).

axiom: n/a: a test comment only; no policy change

🤖 Generated with Claude Code

#2261 said the benefit cap still counts every member's award, so a binding
cap could carry another member's award to a reader through Universal Credit.
#2076 merged right after it, in the same merge-queue group:
benefit_cap_reduction now counts only the couple's own awards and the
family's. The note now says so, and points to JSA_COUPLE_WITH_LODGER, which
the first property checks: it is £1,952.48 below the cap in 2025, so an added
member's £3,000 of JSA would take it over if the cap counted it. Comment only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@vahid-ahmadi vahid-ahmadi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks right, fine to approve.

@MaxGhenis the new wording matches benefit_cap_reduction on main, and #2399 (merged 14 Oct) does not change it: #2399 only touches the earnings exemption (is_benefit_cap_exempt_earnings), not which awards the cap counts.

  1. nit, policyengine_uk/tests/test_legacy_award_readers_properties.py:458: "the first property" comes straight after "three more properties", so a reader may take it to mean the first of those three (the pension-age one). Naming it, test_other_members_awards_never_change_the_readers, would remove the doubt.

What I checked

  • Read the full diff and benefit_cap_reduction.py on main 714b143 (after #2399). It counts income-based JSA and income-related ESA through award_of_members with benefit_cap_couple, and the contributory and family benefits through add_for_members with the same couple. So "only the couple's own awards and the family's" is right, and the old "benefit-unit totals" sentence is wrong on main.
  • Re-ran the PR body's table on JSA_COUPLE_WITH_LODGER (2025), on this branch and on main after #2399: JSA 6,000 / 6,000 / 9,000 for the unit, 6,000 for the couple in all three, cap 25,323, reduction 0, Universal Credit 15,118.92, Child Benefit 2,251.60. 23,370.52 + 3,000 would exceed the cap, so the pinned example does test it.
  • pytest -k test_other_members_awards_never_change_the_readers (the first property, with its pinned examples): passes.
  • ruff check and ruff format --check on the file: pass.
  • Merges cleanly with main. CI is green at 67fd06a.
  • Note for whoever merges next: #2279 also edits other_members() in this file and currently conflicts with main there (main has since added work()); that conflict is #2279's, not this PR's.
  • No changelog fragment, which is right for a comment-only change.

🤖 Generated with Claude Code

@vahid-ahmadi vahid-ahmadi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving, per my review comment above.

@MaxGhenis
MaxGhenis added this pull request to the merge queue Oct 16, 2026
Merged via the queue into main with commit a94c65d Oct 16, 2026
14 checks passed
@MaxGhenis
MaxGhenis deleted the legacy-award-readers-cap-comment branch October 16, 2026 13:31
@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

Landed by the UK hub (merge queue, pinned to head 67fd06a3af3f099c36d91089de8c0fc92ad6ddbb).

  • Gates at this head: gh pr checks exits 0, mergeable and CLEAN, not a draft, no CHANGES_REQUESTED.
  • Review: @vahid-ahmadi reviewed independently and approved at this head (comment 10/14, approval 10/15). The new wording matches benefit_cap_reduction on main, and Fix benefit-cap statutory-pay earnings exemption #2399 doesn't change it.
  • Change: five comment lines in policyengine_uk/tests/test_legacy_award_readers_properties.py. No code or expected value changes, so there is no impact on any output.
  • Flagged as green and unowned by Fleet ops' 10/16 green-PR sweep.

MaxGhenis added a commit that referenced this pull request Oct 16, 2026
…into uc-hb-split-shared-cap-lha-rules

No conflicts. Main's two edits to files this PR also changes
(test_benefit_cap_specified_benefits_properties.py: REBALANCED_YEARS from
REBALANCING_YEARS; test_legacy_award_readers_properties.py: comment) merged
automatically.

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.

2 participants