Repository navigation
Align UK UC claim, child and period definitions #882
Copy link
Copy link
Open
Description
This consolidates the remaining UC consumer-contract questions from #736 and #738, following the benefit-unit corrections in #727 and #813. It supports the UC investigation alongside #879 and #701; SPI generation was tracked in #840, closed by #1256; its residuals are in #1288. The evidence below is limited to public repository code and published aggregate source tables.
Reproducible discrepancies
- Paid versus all claims. The current contract at
eb7ca8a5countsuniversal_credit > 0against all-claim headline/composition rows. The pinned family × payment-indicator source has 90 cells: five family categories × Yes/No × April–December 2025. Summing the five family cells within each month, then averaging the nine months, gives 6,316,227.78 paid and 542,059.89 nil-payment claims. DWP explicitly retains some open claims with no payment. These quantities cannot be treated interchangeably. (Payment indicator definition) - The required joint is unavailable. The pinned feed contains family × payment indicator, family × child entitlement and child count × child entitlement. It does not contain payment indicator × child entitlement, or payment indicator × child count. Therefore pairwise margins cannot identify the paid/child-entitled composition joint. Child Entitlement Yes also does not turn the reported child-count axis into a count of qualifying children. Chronicle #233 and #234 closed the earlier ingestion requests; the remaining consumer alignment is still necessary.
- Monthly cash and annual model payments differ in timing. The unresolved bridge is to DWP's monthly payment amount, which includes third-party payments and one-off advances in their issue month. Dividing an annual model award by 12 does not establish that equivalence, especially for rare upper-band cells. (DWP amount definition)
- Observation periods need an explicit comparison contract. The public April–December 2025 series has nine monthly observations; the TCL methodology covers open claims during April and a 6 April 2017 birth cutoff. It includes exceptions and distinguishes its dependent/qualifying-child definition from the broader verified under-20 children reported on Stat-Xplore. A source April snapshot, a nine-month average and an annual model state need separate labels and a documented comparison.
Acceptance criteria and ownership
- Microcosm: declare and test each target's claim state, benefit-unit/child definition, geography, amount basis and source/model observation periods. Preserve separate all-claim, paid and nil-claim diagnostics; do not blindly rebind all-claim targets to paid margins.
- Microcosm: enforce the declared source-month set and record the actual averaging denominator. Retain April snapshot dates separately from annual assignment.
- Microcosm: establish the age/cohort anchor across the source year, model year and source observation date; preserve its provenance and test year transitions. If exact birth dates or open-claim state are unavailable, record the approximation and its sensitivity.
- Microcosm, with PolicyEngine-UK where model inputs are required: test TCL claimant roles, own qualifying children, exceptions and element denial separately, including nil-payment claims, 18–19-year-olds, multiple benefit units in one dwelling and the birth-date boundary. Claimant PIP and disabled-child elements must refer to the relevant claim's members.
- Microcosm: support only identifiable joints. Do not construct a joint from marginal products or rename reported children as qualifying children. Chronicle owns any additional publisher cross export.
- Microcosm: reconcile the headline and family cells using a common-vintage published total, unknown-family cells and disclosure tolerances. Chronicle #247/PR #250 owns the published-total/history feed update; the consumer comparison remains a Microcosm responsibility.
- Microcosm: audit joint support by reported-child count, own qualifying-child count, birth cohort, family roles and claim/payment state. Trace missing or thin cells through source stages before choosing generation changes; retain original-source lineage in diagnostics.
- Microcosm: compare repairs at a fixed optimizer budget and report target-specific original-source support, source contribution and leave-one-source-out sensitivity alongside global concentration and convergence. Do not alter target values or exclusions solely to improve fit.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
juaristi22 commentedon Sep 9, 2026
Consolidating #701 and #738 into this issue as superseded. Their remaining work is tracked here; closing them does not mean UC fit or certified consumer acceptance is complete.
The caseload/composition bindings, paid-source and observation-window repairs, and the retained/fresh candidate comparison have landed in #883, #891 and #892. The merged diagnostics and paid-target contract record both those results and the remaining limitations.
Additional scope carried forward:
The two positive-target, childless-couple payment cells with zero model records remain documented export blockers. Stage/component tracing should establish where that support is lost or absent; remeasurement must continue to report them explicitly. The remaining age/interview provenance and unavailable claim/cohort states also remain open under this issue's existing criteria.
SPI generation (#840), household relationship-to-head (#791), and the broader scorecard (#731) retain their existing scope. The #736/#796 parent checklists record completed increments separately from the work still outstanding here.
juaristi22 commentedon Sep 11, 2026
Recording the UC measurements on the 10 September rebuild against this issue's acceptance items. This is a measurement record at the current pins, not a certification and not a change to any target or exclusion.
Baseline. Spine-q on main
0afb1235(after #881, #883, #891, #892, #877, #889), Chronicle feedec7169b(facts4a50ee95…), PolicyEngine-UK 2.97.0, joint local+national surface (20,794 rows: 364 national, 20,430 local), doctrinegrain_equal, 2,000 epochs, learning rate 0.15, maximum weight ratio 10, target loss cap 10. Two files: Q50f, the 55k L0 candidate with the floored Horvitz–Thompson refit baseline (--baseline-pi-floor 0.001, branchuk-55k-rebuild-2026-09-10, not yet on main), and D2, its dense twin (792,690 rows, same seed). Evaluation page: https://uk-dataset-evaluation.vercel.app/55k-rebuild-2026-09-10/ (receipts inexperiments/355-uk-dataset-size-receipts.mdon that branch). Numbers below arerelative_errorfrom each run'scalibration_diagnostics.jsonunless stated.Ten broad paid-claim rows (CY2025 targets from #891). Compare the #892 fresh build: headline −4.71 %, lone parents −14.01 %, one child −19.45 %.
dwp.uc.households…single_no_children…single_with_children…couple_no_children…couple_with_children…children_1…children_2…children_3…children_4…children_5_or_moreOther bound UC rows. All 15 two-child-limit rows within 2.03 % on both files (Q50f worst −1.45 %, D2 worst +2.02 %). Scotland child-under-one −0.97 % / −0.41 %. Benefit-cap capped households −0.03 % / +0.08 %. The 82 bound payment bands are all within 4.34 % (Q50f) / 5.08 % (D2). In total 105 of the 108 bound national UC rows are within 5 % on Q50f (D2 104), none past 10 %.
Excluded payment bands (measured by the incumbent-surface evaluator, not fit). The three childless-couple bands from £26,400 upward remain at −100 % on both files: zero model records. Of the 16 bands excluded under uk-data#452, seven are within 25 % on both files: lone-parent £12,000–13,200 (+14.7 % / +10.9 %), £13,200–14,400 (−15.7 % / −3.2 %), £14,400–15,600 (+10.2 % / +3.9 %), £15,600–16,800 (−10.7 % / −12.6 %), £16,800–18,000 (+14.1 % / +11.7 %), single £9,600–10,800 (+13.9 % / +2.1 %), and the HMRC self-employment count at £500k–1m. D2 alone adds lone-parent £18,000–19,200 (−6.9 %) and single £14,400–15,600 (−15.9 %). The rest stay 26–143 % off. No retirement is proposed here.
Local UC rows (constituency and local authority, 3,508 rows). Q50f 99.29 % within 10 %, 100 % within 25 %, worst 15.6 %; D2 99.40 % / 100 % / 12.6 %. The childless bucket (
…children_0) is the weakest inside the family (60.6 % within 5 % against 93–95 % for the child buckets).Expenditure. The OBR in-cap / outside-cap rows stay excluded and measure −96.7 % / +503 % on both files. Their sum (£79.29bn, FY2025/26) against the model's total UC: Q50f £80.38bn (+1.4 %), D2 £80.82bn (+1.9 %); enhanced FRS 1.57.3 £75.85bn (−4.3 %). No total row is bound yet; the feed has no total concept.
Element counts (not bound; measured on Q50f at its calibrated weights, Great Britain, benefit units with
universal_credit > 0, against the April–December 2025 means of the DWP all-claims series in the feed).uc_LCWRA_element > 0)uc_deductions > 0)Two readings that matter for the element bindings: the feed's housing series is labelled
Social Rented Sectorbut its package evidence note and archived query group tenure codes 1+2+3 into one cell, so it is the all-tenure count; and the T4 admin legs on the evaluation page measure elements without conditioning on a UC award, which is why they show LCWRA at +216 % (7.29m unconditioned) and carer at +5 % (1.14m unconditioned). Nil-payment open claims cannot be identified in the model (would-claim ∧ eligible ∧ positive maximum gives 14.3m units), so element rows will need the element × Payment Indicator crosses to bind on paid claims like the ten rows above.Downstream legs against enhanced FRS 1.57.3. T5 "UC taper to 20 %": Q50f −35.4bn, D2 −34.9bn against an expected −17.2 ± 15 (eFRS −22.6bn), the one reform the whole microcosm family misses. T6 Resolution Foundation UC: 13 ok / 14 flagged, closer on 8 of 10 benchmarks; UC expenditure on the 2029-30 basis £91.1bn against RF's £86bn; mean monthly UC childcare element £636 against RF's £420. T6 childcare: UC childcare element £2.15bn against a £0.81bn benchmark.
Support and concentration. Q50f Kish ESS 16,785 (0.305 of 55,000), max/median weight 57, household mass 29.07m (−0.6 %); D2 Kish ESS 130,504, max/median 296 (fails the reviewed 100 ceiling), mass 29.15m (−0.3 %). Q50f fails the per-area support gate (643 of 650 constituencies under ESS 50); neither file is shippable. Protected non-UC rows on the joint solve: income tax −19.4 % / −19.6 %, NI −3.9 % / −3.9 %, state pension −20.2 % / −13.9 %, child benefit +23.0 % / +21.1 %; the ONS lone-parent-with-dependent-children household row +21.9 % / +19.0 %. Whether the UC rows or the local surface move those cannot be read from these receipts.
Against the acceptance items.
Next: one Chronicle issue for the crosses, the housing relabel and tenure split, a childcare amount series, an earnings indicator and the Housing Benefit caseload; then one microcosm PR carrying the floor-knob commits, the element contracts on the new feed and an OBR total binding.
Bind the UC element targets on paid claims and an OBR UC total on the…
Address review round 1 on #921: hold the any-tenure housing row out o…
Bind the UC element targets on paid claims and an OBR UC total on the…
Merge pull request #921 from PolicyEngine/uk-uc-elements-882
juaristi22 commentedon Sep 16, 2026
Status after #921 merged (2026-09-15,
4ec72078). The eight acceptance boxes above and two of the four carried-forward items are ticked; here is what each rests on, and what is still open, in clock order.Ticked, with evidence
docs/uk-uc-paid-target-contract.md,uc_paid_comparison_contract, the 39 paid diagnostic masks, the 11-region GB condition on every DWP row); Bind the UC element targets on paid claims and an OBR UC total on the chronicle 474a0ae feed (#882) #921 extends the same contract to the element rows.uc_source_periods.py;test_uk_uc_source_periods.pypins every shipped window, 118 monthly UC references after Bind the UC element targets on paid claims and an OBR UC total on the chronicle 474a0ae feed (#882) #921).docs/uk-uc-882-diagnostics.md, the interval sensitivity and the TCL receipt's date/period proxies). Not improvable from source; year-transition tests ride the policy-year rule work (Declare survey- and calibration-year rules for UK FRS parameter reads (#862) #881).test_uk_uc_relationships.py,test_uk_uc_target_measurements.py). Unobservable in the model and documented as such: open nil-payment claims (open_nil_claims_identified: False), TCL exceptions (included by construction), the birth-date boundary.tools/diagnose_uk_uc_{matrix,support,lp_evidence}.py; Bind the UC element targets on paid claims and an OBR UC total on the chronicle 474a0ae feed (#882) #921'stools/diagnose_uk_uc_elements.pyadds the element side.Carried forward: UC expenditure comparability ticked —
obr.universal_creditbinds the sum of the two OBR cells (+1.4 % Q50f, +1.9 % D2); the welfare-cap split is declared not representable and stays excluded to 2026-11-26. Element integration ticked — housing (any tenure, social, private), LCWRA, carer, childcare and deductions bound on paid claims; carer, childcare and the any-tenure row on the register to 2026-10-15 pending their repairs.Still open, in clock order
would_claim_ucdraw zeroes half the HB reporters throughhousing_benefit_eligible;claims_all_entitled_benefitscollapses to a scalar; non-head benefit units get rent 0; UC and HB cannot coexist;dwp.jsa_claimantscounts contributory JSA only; the stage-6 legacy proxies feed nothing. The new HB caseload facts (dwp.housing_benefit_claimantsby client type and tenure, accommodation type from September 2025) can bind as diagnostics in the same PR; the two ESA count rows (−12 % / −16 %, +14 % / +6 %) belong in the same tracking.care_hoursand a carer condition from 35 hours a week or CA receipt. Childcare: a take-up stage modelled onuc_deduction_attributes, drawing to the published 160–193k. Any-tenure housing: structural (the model has no other/unknown tenure), so a standing diagnostic or a dropped row. LCWRA: decide whether theis_disabled_for_benefitspassthrough warrants an engine issue (the row fits at +15 % / +20 %).couple_with_children+8.7 %,children_2+8.4 %,children_3+6.1 %) and the ONS lone-parent row (+22 %): UK spine: composition-faithful SPI income draw — bridge predictors and rank-preserving replacement (with-children UC residual) #840 and the post-Add the frs_relationships UK spine stage and rebind the ONS household-composition cells (#791) #903 re-measure.dwp.people_on_universal_creditemployment-indicator facts can bind as a diagnostic beside the 51.6 % of paid units with earnings.Next steps, as ticke-able items (no separate issues; this list is the record)
obr.housing_benefit(UK spine: housing benefit £2.7bn against OBR £12.1bn — pensioner and supported-accommodation HB missing after the UC migration #867) anddwp.jsa_claimants(UK spine: JSA claimants 2.8× the DWP caseload — legacy-benefit reporting after the UC migration #869) before 2026-10-03, with the mechanisms above; bind the new Housing Benefit caseload facts as diagnostics and add the two ESA count rows to the same tracking. — UK #882 repairs: the A16 legacy rows, the carer and childcare elements, the benefit-cap bands #937: re-adjudicated to 2026-12-08 on the mechanism receipts (the SPI support channel carries reported HB and JSA into synthetic households; the UC draw zeroed HB for pension-age units, now gated to units with a working-age adult); three HB caseload rows bound as measured diagnostics; the ESA single-type and credits-only reconciliation declared on the three rows.care_hoursin the spine, and a policyengine-uk carer condition from 35 hours a week or Carer's Allowance receipt; then activatedwp/uc/elements/carer. — Add carer and UC childcare take-up inputs and recognise caring hours in is_carer_for_benefits policyengine-uk#1857 (2.98.0) + UK #882 repairs: the A16 legacy rows, the carer and childcare elements, the benefit-cap bands #937:care_hoursfrom FRSadult.hourtot,would_claim_carers_allowancefrom reported receipt; paid-UC carer units +80 % at design weights (Q50f projection −0.3 % of target); row activated.uc_deduction_attributes, drawing to the published count and mean award; then activatedwp/uc/elements/childcare. — UK #882 repairs: the A16 legacy rows, the carer and childcare elements, the benefit-cap bands #937:would_claim_uc_childcaredrawn by family type infrs_take_up(single 0.441, couple 0.268, fitted so the expected paid-UC count equals DWP's calendar-2025 single and couple means; the mean award was already within 6 %); Q50f projection −16 %; row activated.tools/diagnose_uk_benefit_cap.py).is_disabled_for_benefitsstanding in for a work-capability assessment warrants a policyengine-uk change, or record it as accepted while the row fits inside the bound.obr.universal_creditbinds the total, or renew the exclusion; rule on the seven uk-data#452 bands within 25 % on both files.Key the UC element register rows by reference name so the calibration…
Re-adjudicate the A16 legacy rows, gate the UC draw by State Pension …
Draw the UC childcare-element take-up by family type in frs_take_up (#…
Join the benefit-cap support count on the engine's float32 household …
Record the control twin and the control-versus-repaired receipts (#882)
Record the U8 population ruling: the rate stays over units with a wor…
Regenerate the H2 fixture after the take-up contract edits; give the …
Fill care_hours and the carer take-up input from the FRS; raise the e…
18 remaining items
Retire the carer and childcare element register rows on the 2.98.0 tw…
Record the repairs against the 10 September baseline; regenerate the …
Record the rebuilt 2.98.0 twin: Carer's Allowance unchanged, carer el…
Regenerate the national references and compile-parity receipts on the…
Regenerate the local references on the df35af7 feed: the Housing Bene…
uk: register adjudications cite the ruling that exists
uk: review round 1 on the #882 repairs
uk: CI fallout of review round 1 on the #882 repairs
Regenerate the derived surfaces on the ec20085 feed after rebasing over
Merge pull request #937 from PolicyEngine/uk-uc-repairs-882
Merge origin/main (d1196af) into the US launch integration branch
Address review: re-pin the approved uv.lock digest, pin the ONS looku…
Address review: re-pin the approved uv.lock digest, pin the ONS looku…
juaristi22 commentedon Oct 14, 2026
Status 2026-10-14.
Register clock.
dwp.uc.households_housing_elementexpired on 2026-10-15 and is renewed to 2026-11-14 in #1242 (open). The OBR welfare-cap split rows and the 17 uk-data#452 band entries expire 2026-11-26; the two childless-couple bands and the Housing Benefit and JSA entries 2026-12-08.Landed since the 2026-09-16 status. #1200 bound the salary-sacrifice relief by tax band, reads award bands in whole pence, moved the take-up population to the engine's claimant rule, added the gainful self-employment rule and put property into recorded UC capital (completed for UC at the 2.127.0 bump in #1271, open). #1100 zeroed unobserved legacy claims on SPI rows. #1198 reconciled the UC area cells to the national paid caseload; the all-claims versus paid-claims gap in the area series waits on PolicyEngine/chronicle#339 (open).
Open, unchanged. Any-tenure housing row (structural; ruling due with the 2026-11-14 renewal), LCWRA passthrough, OBR split retirement at 2026-11-26, zero childless-couple bands at 2026-12-08, benefit-cap bands, with-children overshoots and the taper miss (#1256, in review).
New. The awards below the top band read too low for DWP's band counts and OBR's total to fit together, and sparse bands need a support floor before the 2026-11-26 expiry (#1095 item). On #1271's head
dwp.uc.households_children_5_or_moresits past the fence after the approved-training fix and needs a ruling. Status notes of 2026-10-14 on #867 and #869 cover the legacy rows.The two carried-forward boxes (re-measure after the repairs; certified consumer acceptance) stay the closing items; the Budget-day local candidate is the next measurement.
juaristi22 commentedon Oct 15, 2026
#1256 merged on 14 October. The with-children overshoots and the taper re-measure stay on this checklist. They will be measured on the full local build on the merged head, and its results go on #840. The SPI-channel residuals are in #1288.