Skip to content

Correct 19 planning and validation docs pages from the October batch - #2609

Closed
MaxGhenis wants to merge 2 commits into
mainfrom
docs/consolidate-october-corrections
Closed

MaxGhenis wants to merge 2 commits into
mainfrom
docs/consolidate-october-corrections

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

Refs #2386 and #2594.

All twenty October planning and validation pages already reached main through #2386 on 21 October, and their original changelog entries shipped in 2.143.0. This consolidates the reviewed corrections from 19 originals into one documentation PR and one .changed fragment, avoiding 19 separate releases and merge-queue runs ahead of the Budget work. The batch tables count 249 corrected claims across these 19 pages.

#1724 is excluded: it lands on its own (Max approved it on 23 October, and it is in the merge queue). The tracked changes are limited to documentation pages and one changelog fragment.

Pages and corrections

Page Original PR Claims corrected Biggest correction
Firm-level VAT #1712 11 The proposed Firm entity must not copy a nonexistent state entity or treat households as group members; self-employment income is profit rather than turnover.
Child maintenance #1714 8 The statutory one-child CMS default is £39. Shared-care fractions are averaged per carer, with £7 per child and a £7 floor; the model reproduces UC treatment rather than the combined marginal rates.
Default dataset switch #1718 12 Microcosm UK is already policyengine.py’s default in 6.10.0; this repo’s tests still pin Enhanced FRS 1.58.1. Switching or rolling back needs dataset-calibrated VAT coverage.
Indirect tax effects #1719 11 The UKMOD TCO source does not supply a 0.8 elasticity; it describes three expenditure assumptions. Input formulas do not replace supplied dataset values.
Non-UK benefit receipt #1720 18 Fraud/error overpayments still reach households. Microcosm’s resident State Pension target removes payments abroad but retains care homes; Enhanced FRS uses different targets.
Pension tax relief #1721 14 Unused annual allowance is estimated from 2020–21 after #2536; net-pay and relief-at-source equivalence has savings, dividend and other exceptions.
STBM pension comparison #1722 12 The equal-relief claim applies to STBM’s Scottish systems and non-savings income; rest-of-UK gross-up and savings/dividend bands differ.
UK pipeline alignment #1723 16 Five would_claim flags consult reported amounts. An ungated CTC child element can create phantom tax credits that reduce HB and CTR for ineligible families; follow-up #2594.
PIP point system #1725 12 PIP total points and the 8/12 thresholds already merged in #1661; datasets supply categories only, so entered-point reforms work before microsimulation threshold reforms.
Regional childcare programmes #1726 20 Correct the Scottish two-year-old qualifying rules and the SAAS, Welsh and Northern Irish programme descriptions; Microcosm UK is already the default and only its local-area build has small areas.
Future-dated policy announcements #1727 10 Class 1 employee NI rates now live in employee_scale.yaml; annual calculations sample 30 April, so the November 2022 and January 2024 changes do not enter those annual results.
Effective take-up analysis #1728 21 SPI integration precedes reweighting; effective UC take-up can differ greatly from the seed (74.9% versus 55%), and Microcosm UK has replaced Enhanced FRS as the default.
policyengine.py household-impact diagnosis #1729 9 The zero results came from policyengine-core 3.24.0–3.24.3 discarding set_input values after apply_reform, fixed in core 3.24.4 by core#475.
Ubuntu versus macOS reproducibility #1730 8 The 82 DWP parameter differences fit order-dependent chained uprating rather than the import-time growth-factor table. The cause is explicitly inferred from code and dumps rather than traced.
Capital gains distribution #1731 15 The default retention-rate elasticity is 1.0 rather than 0; Microcosm is already the default, and its cloning, gain ranking, weighting and asset-type stages are corrected.
Reform impacts dashboard #1732 14 Fixture receipts and per-PR aggregate-impact costings already exist; the higher-rate fixture raises 40% to 42% (+2pp), and the relevant two-child-limit reform now reinstates the limit.
Warm Home Discount #1735 12 Correct the Scottish core group under Schedule 1 to SI 2026/488 and the April-to-March scheme year; distinguish automatic matching from the helpline route.
Cold Weather Payment #1736 11 Document the full claimant, care-home, premium and mortgage-interest-loan conditions; Scottish replacement began winter 2022–23 and DWP station triggers are the usable weather source.
Bereavement support #1737 15 BSP claim-time limits and reduced cohabitee payments matter; WPA still accepts claims for older deaths, and Microcosm main now separates FRS code 9 into War Widow’s Pension.

The stale “Enhanced FRS is the default” descriptions now distinguish policyengine.py’s Microcosm UK default (6.10.0, 21 October) from this repository’s Enhanced FRS test pin and from differences between the certified Microcosm build and its main branch.

Integration and follow-up

  • All 19 full PR bodies, comments and diffs were read, and gh pr view confirmed every exact head against the two result tables. All source PRs have green required CI checks, including Correct the Cold Weather Payment docs page (#435) #1736 and Correct the bereavement support plan docs page #1737. Their net diffs against origin/main each contain only a docs page and a .changed fragment.
  • All 19 net diffs applied cleanly; no two included originals touch the same file. Their 19 fragments were replaced with changelog.d/october-planning-validation-corrections.changed.md, which lists every corrected page.
  • Add bonus sacrifice, spousal maintenance, Widowed Parent's Allowance and heating fuel inputs, and fix student loan plan projection #2573 has merged (23 Oct). The hub merged main at bac25edea and brought the two overlapping pages up to date. Child maintenance now describes the split inputs (maintenance_income for child maintenance, spousal_maintenance_income counted in UC, Pension Credit, Income Support, HB and CTR, and in the HB and CTR non-dependant bands) and the completed Phases 1 and 2, and keeps this batch's £39 default, shared-care and CSJ corrections. Bereavement support describes WPA's own variables (widowed_parents_allowance adds the reported amount), keeps the batch's statutory eligibility conditions, and states both conditions for freezing bsp_reported's CPI uprating: code 9 out, and WPA out of code 6.
  • #2594 tracks the Child Tax Credit child-element eligibility defect found during Correct the UK pipeline alignment docs page (#1621) #1723’s household check. This PR documents the finding and leaves its model fix to that issue.
  • Vahid Ahmadi is credited with Co-authored-by: Vahid Ahmadi <57112303+vahid-ahmadi@users.noreply.github.com>; the numeric ID was obtained from gh api users/vahid-ahmadi --jq .id.
  • The 19 originals will be closed as superseded once this PR merges. None has been closed by this job. The underlying planning issues and Child Tax Credit child element ignores CTC eligibility, so ineligible claimants lose HB and CTR in tax-credit years #2594 remain open; this description deliberately contains no automatic issue-closing directive.

Checks

  • Confirmed all 19 source heads, docs-only scope and green source CI via GitHub; collected the batch evidence and applied the exact git diff origin/main...<head> patches.
  • One typed .changed.md fragment lists all 19 corrected pages; no separate source fragments remain in this diff.
  • Local docs build (make documentation), formatting/lint (uvx ruff format --check . and ruff check .), fix-evidence checker and changelog/Towncrier checker: skipped. Before local checks, python3 ~/reviews/fleet-ops/tools/reservation.py allowed uk-hub exited 1: held back by route-a-release-rerun-d1811-2026-10-23. The user’s host reservation forbids local tests, so validation is delegated to CI. No dependency install, build, microsimulation or local test was started.
  • Embedded snippets previously executed by the batches: Correct the firm-level VAT docs page (#1320) #1712’s Firm construction and Correct the policyengine.py household-impact diagnosis page (#1628) #1729’s two household scenarios (plus 2022–2025 variants) were not rerun locally under the reservation. Batch evidence reports a constructed Firm entity and £7,486 income tax / £1,354.60 child benefit for 2025. The context-dependent historical take-up pseudocode and the illustrative BSP class were not treated as standalone runnable snippets.
  • Consolidated-head CI passed at 04b4561e0ac216fc2717765faee71debb40ab962: documentation build, formatting/lint, Changes and Test / Result, and Fix evidence. Model tests and code-only documentation/import jobs were correctly skipped for this docs-only diff. No standalone changelog-validation job is configured on current main; its local checker remains skipped under the reservation.
  • Policy YAML tests: not applicable to this documentation-only change.

Reproducer: n/a: documentation and changelog corrections only with no model source or dependency changes

axiom: n/a: documentation-only corrections with no policy implementation changes

🤖 Generated with Claude Code

Consolidate the 19 corrected source PR net diffs against main, preserving
249 corrected claims and excluding #1724. Replace their separate release
fragments with one changed fragment listing the pages.

Record the pending #2573 input implementations on the child-maintenance
and bereavement pages without treating unmerged engine code as available.

Local checks skipped: uk-hub is held back by the route-a-release-rerun-d1811
host reservation. All 19 source PR required checks passed before batching.

Co-authored-by: Vahid Ahmadi <57112303+vahid-ahmadi@users.noreply.github.com>
@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

UK hub consolidation hand-off — build complete; independent hub review still required.

Head: 04b4561e0ac216fc2717765faee71debb40ab962
Branch: docs/consolidate-october-corrections → main

Local hand-off/evidence: .job/HANDOFF.md, .job/handoffs.jsonl, .job/inventory.json, .job/source-prs/, .job/overlap/INTEGRATION.md. The sandbox blocks the linked checkout's external Git metadata; commits live in workspace-local .job/git and the pushed branch. Original detached HEAD remains d292ae10bf4a. Use the PR head for review/salvage; .job/consolidation.bundle and .job/consolidation.patch are recovery copies.

#2573 (merged) implemented the spousal maintenance and Widowed Parent's
Allowance inputs that two pages here still called pending:

- Child maintenance: take main's description of the split inputs and the
  done Phases 1 and 2, and keep this batch's corrections: the £39 one-child
  default, shared care, and the CSJ point that the model reproduces UC's
  side of the asymmetry but not the combined marginal rates.
- Bereavement support: take main's status for WPA's own variables, keep
  the batch's statutory WPA eligibility conditions, make Phase 2 replace
  the existing adds with a formula, and state both conditions for freezing
  bsp_reported's CPI uprating: code 9 out, and WPA out of code 6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review October 23, 2026 19:51
@MaxGhenis
MaxGhenis added this pull request to the merge queue Oct 23, 2026
@MaxGhenis
MaxGhenis removed this pull request from the merge queue due to a manual request Oct 23, 2026
@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

UK hub: removed from the merge queue (superseded). @vahid-ahmadi has queued all 19 originals (#1712, #1714, #1718–#1723, #1725–#1732, #1735–#1737; positions 15–33). Each original's page is byte-identical to this PR's at bac25edea, and I checked every one with git diff. Child maintenance and bereavement support, the two pages this PR corrected after #2573, are identical too.

If this PR also landed, it would add a second changelog fragment for the same 249 corrections. So I'll close it once the originals merge. The small follow-ups still owed on these pages (the stray ")" at bereavement-support-plan.md:66 and the full means-test lists) will go in the hub's one follow-up PR after the queue clears.

@MaxGhenis

Copy link
Copy Markdown
Collaborator Author

UK hub (Claude session, for Max): closing as superseded. Vahid's 19 original docs PRs have all merged through the queue: #1712, #1714, #1718, #1719, #1720, #1721, #1722, #1723, #1725, #1726, #1727, #1728, #1729, #1730, #1731, #1732, #1735, #1736 and #1737. For 18 of the 19 pages, main matches this PR byte for byte (git diff origin/main bac25edea).

The exception is docs/book/programs/gov/dwp/bereavement-support-plan.md, where main is newer than this PR. When main was merged into the original (2280c86), the page was reconciled with María's Widowed Parent's Allowance work (#2572). So main's page now covers everything this PR's version said, and more:

  • WPA's own variables, with their tax and benefit-income treatment and legal citations;
  • the condition for freezing bsp_reported;
  • the GOV.UK source for WPA claims.

This PR's version would take some of that back out, so it isn't merged either. Merging it would otherwise add only a second changelog fragment for the same edits.

The remaining small corrections (the full means-test lists on the child maintenance and bereavement pages) go into the hub's single follow-up PR, checked against main's current text.

@MaxGhenis MaxGhenis closed this Oct 24, 2026
@MaxGhenis
MaxGhenis deleted the docs/consolidate-october-corrections branch October 24, 2026 12:03
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.

1 participant