Repository navigation
Add twenty planning and validation docs pages - #2386
Conversation
juaristi22
left a comment
There was a problem hiding this comment.
Reviewed d50ee85a9664791d6c617135fed999418762f6a9 and all 20 consolidated pages. I found no blocking model defect, but three plans need technical corrections before they guide implementation:
docs/book/assumptions/takeup-analysis-plan.md:95–97: restrict the numerator to eligible units too:sum(would_claim_X * eligible_X * weight) / sum(eligible_X * weight). Willingness-to-claim flags can be true for ineligible units; one eligible unit and two willing units currently gives a documented rate of 200%. Define the zero-denominator case as well.docs/book/policy/future-date-announcements.md:67–71: restoring 20% on the reversal announcement date does not cancel an existing future 19% row. An executed check through fiscal-year conversion leaves 2023 at 19%. Remove or replace the cancelled row at its original effective date, retaining the announcement history in references/version control.docs/book/programs/gov/dwp/bereavement-support-plan.md:72–84: a flag for bereavement within the previous 18 months can remain true across consecutive annual periods, so the proposed formula can award the initial lump sum twice. Use a payment/claim-year flag or event date for the single initial payment, and reserve the 18-month information for instalments.
Minor: docs/book/programs/gov/dwp/pip-points-plan.md:163 needs the closing ) on the DWP statistics link.
Validation: all 24 well-formed local links resolve; all six Python blocks parse; the dated-row diagnostic ran; 21 cited/primary sources checked. Captured documentation CI passes. I did not rerun the full documentation build or historical private-dataset benchmarks locally. The 20 older docs PRs can continue to be handled as superseded by this bundle.
The page said the earnings limit applies first, so someone with no earnings gets no relief, and that the annual allowance caps relief. On main, relief at source can use the £3,600 basic amount above earnings (FA 2004 s. 191(7)), the annual allowance does not limit relief, the taper tests adjusted and threshold income, the charge is sliced across the rate bands, and relieved contributions reduce adjusted net income. Mentions #2464 (SSP and SMP in relevant earnings) and #2488 (ATI uplift) as pending. Figures re-run on policyengine-uk 2.135.6. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Take-up: count only eligible units in the numerator and treat a zero denominator as undefined. - Future-dated announcements: a reversal removes or replaces the cancelled row at its own effective date; a new row at the reversal date leaves the future row in force. - BSP: pay the single initial payment from a claim-year input, so an 18-month bereavement window can't pay it twice; keep the 18 months for the instalments. - PIP points plan: close the DWP statistics link. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@juaristi22 thanks for the 15 Oct review. All four points are fixed in d7ed288 (docs only).
The documentation build runs in CI on this push. 🤖 Generated with Claude Code |
juaristi22
left a comment
There was a problem hiding this comment.
Re-reviewed d7ed2889a7bc94d69c6ca10aa8f1b1296643293c.
All four points from my 15 October review are resolved: the take-up numerator includes eligibility and defines the zero-denominator case; the cancellation example removes/replaces the original future row; the BSP initial payment uses a one-year event; and the PIP link closes correctly. All 24 relative links resolve and six Python snippets parse. Five current-model pension examples also pass; hosted documentation checks pass.
A4 — Nonblocking: distinguish gross contributions from the pension-provider top-up. In docs/book/programs/gov/hmrc/pension-tax-relief.md:30–33, the new no-earnings example calls £3,600 the basic-rate top-up. A £3,600 gross relief-at-source contribution comprises £2,880 paid by the contributor and a £720 provider claim. The model's £3,600 pension_contributions_relief output is a taxable-income deduction base, not a £3,600 cash top-up. Please use that label, and £720 when describing the provider top-up. HMRC guidance and Finance Act 2004 s.192 support the distinction.
Review status: COMPLETE. No critical findings; one new should-address documentation point.
The no-earnings example called the £3,600 pension_contributions_relief the basic-rate top-up. It is a deduction from taxable income. Under relief at source a £3,600 gross contribution is £2,880 paid by the contributor and £720 claimed by the provider from HMRC (FA 2004 s. 192), which the model does not represent as a payment. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@juaristi22 thanks, A4 is fixed in c19ce75.
I checked the rest of the PR's pages for the same mix-up and found none. The relief-at-source section already describes the provider's claim as the 20% basic-rate portion. The docs build cleanly with The separate employment plus self-employment wording tied to #2464 will follow once #2464 merges. 🤖 Generated with Claude Code |
#2464 added employer-paid Statutory Sick Pay and Statutory Maternity Pay (employment_benefits) to relevant UK earnings for pension tax relief, in line with FA 2004 s. 189(2) and HMRC PTM044100. Update the pension tax relief page and the STBM comparison table to match, and note that Statutory Paternity Pay still waits on #2368. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@juaristi22 following up on item 4 of your #2464 review: with #2464 merged, the relevant UK earnings wording is updated in
This matches 🤖 Generated with Claude Code |
…y-forward The STBM comparison said the taper uses adjusted net income with no threshold-income test, that carry-forward is not modelled and that adjusted net income ignores pension relief. Main now applies both s. 228ZA tests, takes unused allowance (s. 228A) as an input defaulting to nil, and deducts relief in adjusted net income. State the remaining limits (no MPAA, cash-proxy pension input) and re-run the examples on 2.140.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Updated the annual allowance wording in 6659ebf to match current main and FA 2004:
🤖 Generated with Claude Code |
…plit SI 2026/148 art 19 keeps the four BSP amounts in SI 2017/410 reg 3 unchanged, so the planned parameters carry no uprating. Note that #2382 gave War Widow's Pension its own variables and that bsp_reported keeps CPI uprating only until the datasets move FRS code 9 out (#2381). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Updated the bereavement support plan page in 1d94053:
🤖 Generated with Claude Code |
juaristi22
left a comment
There was a problem hiding this comment.
Re-reviewed 1d9405370acd1a577384fcadec1445c17d0f199e.
A4 is resolved: the pension text now distinguishes £3,600 gross relievable contributions/the model's deduction base from the contributor's £2,880 payment and the provider's £720 recovery, and states that the model does not add a cash top-up.
The SSP/SMP wording matches #2464's relevant-UK-earnings helper. The annual-allowance, carry-forward and default-charge text matches the current functions and override input. The prior five-case diagnostic remains applicable: the relevant relief-function AST and annual-allowance charge files are unchanged; the wrapper change is the documented SSP/SMP addition. No unchanged model suite was rerun for this prose-only delta. Hosted documentation checks pass.
All previous A1–A4/S1 points are resolved. I am approving this commit. Review status: COMPLETE; no open critical findings.
Main already carries this page (#2386) and released its changelog line in 2.144.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The page reached main through #2386 and its changelog line shipped in 2.143.0, so this drops the released .added fragment and corrects main's copy: - Scheme years run 1 April to 31 March (SI 2026/389 reg 3(1)); only the rebates are paid in winter. - Scottish core group per Schedule 1 to SI 2026/488 (adds IS and JSA(IB) routes, the UC not-in-work condition, ESA limited capability; ESA has no plain disability premium); GOV.UK's summary is narrower. - The rebate was £120/£130/£135 then £140 under SI 2011/1033 reg 2. - The high-cost-to-heat test sat in the eligibility statements, and the 2025-26 list also included income-based JSA and Income Support. - Most rebates are automatic; the rest need a helpline call by 26 February 2027. - esa_income is reported receipt, so take-up doesn't carry through. - 6.1 million households is the impact assessment's figure; Ofgem's figures are on its reports-and-data page. - Note draft #2504 implements Phase 1 (not on main). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main already carries this page (#2386) and released its changelog line in 2.143.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The page reached main through #2386 and its changelog line shipped in 2.143.0, so this drops the released .added fragment and corrects main's copy: - Winter Heating Payment replaced CWP in Scotland from 1 November 2022 (SI 1988/1724 reg 1A(8), inserted by SI 2022/1018), first paid February 2023, not "in 2023". - Add the third and fifth conditions (no care home unless a child under 5 or CTC disability element; home in England or Wales). - IS and JSA(IB) premium lists are wider than ESA's; SMI recipients treated as on Pension Credit need no further condition (reg 1A(2)(g)). - GOV.UK summarises; reg 1A has the full test. - SMI and the pensioner premium have no variables yet. - Phase 3 must drop CWP's care-home and England-and-Wales conditions (WHP also dropped its CTC limb in 2025, SSI 2025/195). - DWP publishes triggers by weather station, not region; the Met Office historic data are monthly for 37 stations. - WHD covers bill-payers, not everyone on the benefits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The page reached main through #2386 (with d7ed288 and 1d94053) and its changelog line shipped in 2.143.0, so this drops the released .added fragment and corrects main's copy: - Microcosm UK is the certified default since policyengine.py 6.10.0; its main branch moved FRS code 9 to war_widows_pension_reported (microcosm#1333); uk-data still sums codes 6 and 9. The FRS labels code 6 "BSP / Widowed Parent's Allowance". - BSP lump sum only if claimed within 12 months (SI 2017/410 reg 3(2), (5)); "up to" 18 payments; higher-rate test per reg 4. - Remedial Order: Jackson (2020) for BSP; cohabitees bereaved 6 April 2017 to 29 August 2018 get fewer payments (reg 2(7)-(11)); BSP cohabitee eligibility covers deaths from 6 April 2017. - WPA: deaths before 6 April 2017 except a widow's husband before 9 April 2001 (s. 39A(1), (1A)); continuation per s. 39A(4)-(5); still uprated (£156.65, SI 2026/148 art 18); new claims still arise (3,400 under the Remedial Order, DWP July 2025). - Stat-Xplore carries BSP from April 2017; WPA there is unconfirmed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main already carries this page (added by #2386); the merge brings the branch up to date before the page is corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main already carries this page (added by #2386); the merge brings the branch up to date before the page is corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main already carries this page (added by #2386); the merge brings the branch up to date before the page is corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main already carries a later, reviewed version of this page (added by #2386 and revised on its branch through 20 October); the conflict resolves to main's version before the page is corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main already carries this page (added by #2386); the merge brings the branch up to date before the page is corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main already carries this page (added by #2386); the merge brings the branch up to date before the page is corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main already carries this page (added by #2386); the merge brings the branch up to date before the page is corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main already carries a later version of this page (added by #2386 and revised on its branch on 19 October); the conflict resolves to main's version before the page is corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main already carries this page (added by #2386); the merge brings the branch up to date before the page is corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main already carries a later, reviewed version of this page (added by #2386 and revised on its branch through 20 October); the conflict resolves to main's version before the page is corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Combines 20 docs-only PRs into one, so main gets one release instead of twenty (each merge that adds a changelog fragment triggers a version bump and a PyPI release).
Each page was re-checked against current main today and corrected where it had gone stale. The fixes are on each original PR branch; this branch takes their final files unchanged. The diff touches only
docs/book/pages andchangelog.d/*.added.mdfragments, with no code, parameters or tests.programs/gov/hmrc/firm-vat.mdprograms/gov/cms/child-maintenance.mdassumptions/mp30k-uk-switch-plan.mdpolicy/indirect-tax-effects-plan.mdassumptions/non-uk-benefit-receipt-plan.mdprograms/gov/hmrc/pension-tax-relief.mdprograms/gov/hmrc/pensions-comparison-stbm.mdassumptions/uk-pipeline-alignment-plan.mdvalidation/child-poverty-tcl.mdprograms/gov/dwp/pip-points-plan.mdprograms/gov/dfe/regional-childcare-plan.mdpolicy/future-date-announcements.mdassumptions/takeup-analysis-plan.mdvalidation/policyengine-py-household-impact.mdvalidation/ubuntu-vs-macos.mdassumptions/capital-gains-distribution-plan.mdvalidation/reform-impacts-dashboard-plan.mdprograms/gov/ofgem/warm-home-discount-plan.mdprograms/gov/dwp/cold-weather-payment-plan.mdprograms/gov/dwp/bereavement-support-plan.mdThe linked issues stay open: these pages are plans and diagnoses, not the implementations.
Checks:
ruff format --check .(0.17.0) is clean, including the Python blocks in the pages.towncrier build --draftpicks up all 20 fragments.myst.ymlentries are needed, because the docs build picks pages up by folder pattern.axiom: n/a: documentation only, no rules or parameters change.
🤖 Generated with Claude Code