Repository navigation
Correct the benefit cap note in the legacy award reader properties - #2398
Merged
Merged
Conversation
#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
left a comment
Collaborator
There was a problem hiding this comment.
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.
- 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.pyon main 714b143 (after #2399). It counts income-based JSA and income-related ESA throughaward_of_memberswithbenefit_cap_couple, and the contributory and family benefits throughadd_for_memberswith 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 checkandruff format --checkon 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 addedwork()); 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
approved these changes
Oct 15, 2026
vahid-ahmadi
left a comment
Collaborator
There was a problem hiding this comment.
Approving, per my review comment above.
Collaborator
Author
|
Landed by the UK hub (merge queue, pinned to head
|
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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_reductionreads income-based JSA and income-related ESA throughaward_of_memberswith the cap couple (benefit_cap_couple), and the contributory awards throughadd_for_memberswith 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 oftest_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.
jsa_income(benefit unit)claimant_or_partner_jsa_incomebenefit_capbenefit_cap_reductionuniversal_creditThe 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.pyin the lane's notes.ruff format --checkandruff checkon 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