Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
9e93937
Key the UC element register rows by reference name so the calibration…
juaristi22 Sep 16, 2026
5c574e5
Re-adjudicate the A16 legacy rows, gate the UC draw by State Pension …
juaristi22 Sep 16, 2026
419576b
Draw the UC childcare-element take-up by family type in frs_take_up (…
juaristi22 Sep 16, 2026
81ae068
Join the benefit-cap support count on the engine's float32 household …
juaristi22 Sep 16, 2026
93c4b78
Record the control twin and the control-versus-repaired receipts (#882)
juaristi22 Sep 16, 2026
52b6013
Record the U8 population ruling: the rate stays over units with a wor…
juaristi22 Sep 16, 2026
75128ad
Regenerate the H2 fixture after the take-up contract edits; give the …
juaristi22 Sep 16, 2026
c676388
Fill care_hours and the carer take-up input from the FRS; raise the e…
juaristi22 Sep 16, 2026
dd340c5
Re-derive the carer take-up flag from the refilled Carer's Allowance …
juaristi22 Sep 16, 2026
0238b08
Retire the carer and childcare element register rows on the 2.98.0 tw…
juaristi22 Sep 16, 2026
ae6f4ad
Record the repairs against the 10 September baseline; regenerate the …
juaristi22 Sep 16, 2026
2b44df8
Record the rebuilt 2.98.0 twin: Carer's Allowance unchanged, carer el…
juaristi22 Sep 16, 2026
d3230d4
Regenerate the national references and compile-parity receipts on the…
juaristi22 Sep 16, 2026
c27dc11
Regenerate the local references on the df35af7 feed: the Housing Bene…
juaristi22 Sep 16, 2026
ce9b98f
uk: register adjudications cite the ruling that exists
juaristi22 Sep 16, 2026
7412343
uk: read the Universal Credit take-up population from the engine
juaristi22 Sep 16, 2026
a5638af
uk: review round 1 on the #882 repairs
juaristi22 Sep 16, 2026
d6dcaa1
uk: CI fallout of review round 1 on the #882 repairs
juaristi22 Sep 16, 2026
13d771a
Regenerate the derived surfaces on the ec20085 feed after rebasing ov…
juaristi22 Sep 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/882-uk-benefit-cap-bands.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Bind the fourteen DWP benefit-cap amount bands (Table 4, November 2025) at benefit-unit grain, the up-to-£100 band in the objective and the thirteen others measured on the reviewed exclusion register while the capped tail rests on a few cloned households, with `tools/diagnose_uk_benefit_cap.py` as the tail diagnostic (#882).
1 change: 1 addition & 0 deletions changelog.d/882-uk-carer-element.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fill the engine's `care_hours` from the FRS adult HOURTOT band (lower band edge; codes 5, 6, 7 and 10 reach the 35-hour line) and set `would_claim_carers_allowance` from reported receipt in the root spine stage, on policyengine-uk 2.98.0 (floor raised from 2.97.0) whose `is_carer_for_benefits` recognises the hours, so the Universal Credit carer element reaches carers without a Carer's Allowance award while the allowance stays on reported claimants (#882). The carer element register row is retired on the twin evidence (paid-UC carer units +80 percent at design weights). The hours limb counts reported hours alone, with no check that the person cared for receives a qualifying benefit, as the engine documents.
1 change: 1 addition & 0 deletions changelog.d/882-uk-childcare-takeup.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Draw `would_claim_uc_childcare` in the `frs_take_up` stage at one contract rate per family type (single 0.441, couple 0.2682, fitted by `tools/fit_uk_uc_childcare_takeup.py` so the expected paid-UC count of the Universal Credit childcare element equals DWP's calendar-2025 single and couple households), carried on the extra export surface as a net-new engine input that policyengine-uk 2.98.0 reads (#882). The childcare element register row is retired on the twin evidence.
1 change: 1 addition & 0 deletions changelog.d/882-uk-legacy-rows.changed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Re-adjudicate the A16 measure exclusions `obr.housing_benefit` and `dwp.jsa_claimants` on the mechanism receipts of `tools/diagnose_uk_legacy_benefits.py` (the SPI support channel carries reported Housing Benefit and JSA into synthetic households; the Universal Credit take-up draw zeroed Housing Benefit for pension-age units), gate the `would_claim_uc` draw to benefit units with an adult under State Pension age (the U8 rate is unchanged, its population re-signed), bind the DWP Housing Benefit caseload by tenure as measured diagnostics, and declare the ESA single-type and credits-only reconciliation on the three ESA rows (#882, #867, #869).
1 change: 1 addition & 0 deletions changelog.d/882-uk-register-names.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Key the three UC element rows on the UK measure-exclusion register by their reference names (`dwp.uc.households_{carer,childcare,housing}_element`) instead of their binding metric names, which matched no compiled spec and made the calibration run refuse; a test now requires every register name to resolve to a committed reference (#882).
9 changes: 9 additions & 0 deletions docs/uk-uc-baseline-2026-09-10.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,3 +90,12 @@ Compile-time target values are calendar-2025 means of the Payment Indicator = Ye
Deductions and the two tenure rows are within 6 % on both files and LCWRA within 15 % (Q50f) / 20 % (D2); those four rows are active. LCWRA stays in the objective by the rule its binding note states: a concept mismatch goes to the register only when it puts the row outside the 25 % release bound at the baseline. Carer and childcare are measured but held out of the objective on the reviewed exclusion register until their model gaps are repaired (see the element-support section above). The any-tenure housing row is also measured but held out: DWP's 'Yes' is social plus private plus 'Other or unknown' tenure, the model has no other/unknown tenure, so its any-tenure count is identically the two tenure rows and the published total exceeds what the model can reach by the other/unknown cell (112,518 in calendar 2025, 2.8 %); fitting all three would over-fill the tenure rows. The register entries are signed by María in review of the element PR (2026-09-15) with a one-month window. The paid-claim targets sit below the April–December all-claims means quoted in the earlier section because the calendar window includes the lower January–March 2025 months and excludes nil-payment claims.

Paid GB caseload for scale: Q50f 6,416,983, D2 6,428,401; share of paid units with earnings 51.6 % / 49.6 %.

## Repairs measured against this baseline (16 September 2026, the #882 repairs PR)

Receipts: `experiments/882-uc-repairs-receipts.md`. Twins built with the licensed recipe at design weights: a control at the branch base (51c31438, engine 2.97.0) and the repaired branch (engine 2.98.0, PolicyEngine/policyengine-uk#1857). Projections onto Q50f use the design-weight ratio repaired / control.

- Carer element: the engine's carer condition now holds on Carer's Allowance receipt or 35 weekly care hours, and the spine fills `care_hours` from the FRS adult HOURTOT band with `would_claim_carers_allowance` following reported receipt. Paid-UC carer-element units 425,757 → 768,273 (+80 %); projection 1,075,100 against 1,078,514 (−0.3 %). Carer's Allowance spend stays on reported claimants once the take-up flag is re-derived after the SPI fill. The register row is retired.
- Childcare element: `would_claim_uc_childcare` is drawn per family type (single 0.441, couple 0.2682) so the expected paid-UC count equals the published calendar-2025 means at the Q50f weights; on the twin the realized count is 116,324 against 353,470 at rate one, below the expectation because SPI-synthetic units copy their donor's flag on a base of 378 and 201 records; projection 149,950 against 178,667 (−16 %). The register row is retired with that caveat recorded.
- Legacy rows: the A16 exclusions `obr.housing_benefit` and `dwp.jsa_claimants` are re-adjudicated to 2026-12-08 on the mechanism receipts (the SPI support channel carries reported Housing Benefit and JSA into synthetic households; the Universal Credit draw had zeroed Housing Benefit for pension-age units). Gating the draw to units with an adult under State Pension age lifts engine Housing Benefit from 401,489 to 644,183 units at design weights (£2.61bn → £4.11bn) and moves paid UC −1.8 % (the rate now realizes 0.559 among the eligible units where the old all-units draw realized 0.582); three Housing Benefit caseload rows bind as measured diagnostics.
- Benefit-cap amount bands: fourteen DWP Table 4 bands bind at benefit-unit grain; the up-to-£100 band is in the objective and the thirteen others are measured on the register. On Q50f the tail above £1,300 a month is 14.2 % against 0.6 % published; on the spine at design weights it is 6.6 % from four source households (eight records), so the Q50f tail is a selection-and-calibration effect on a thin base.
Loading
Loading