Skip to content

Re-measure UC composition errors after first calibrated run; element references still unsourced #738

Description

@vahid-ahmadi

The UK contract carries 30 UC target ids; the national calibration activates 1 of them. 29 are declared, mapped and inert.

uk/uk_national_targets.json — 30 dwp.uc.* ids of 187 total, split evenly:

dwp_universal_credit   15   (households, 4 family types, 5 child counts, payment bands, Scotland)
dwp_two_child_limit    15

uk/target_references.json — 15 references, of which UC is:

dwp.uc.households            period=2025  entity=benunit  measure=dwp/uc/households
obr.universal_credit_in_cap  period=2025  entity=benunit  measure=obr/universal_credit_in_cap

So national_calibration.py calibrates UC on one caseload count and one expenditure aggregate. The family-type and child-count composition is unconstrained, and this is where the error actually sits (policyengine-uk-data, enhanced FRS 2023-24 v1.56.16, 2025):

Target Model DWP Err
dwp.uc.households (activated) 6.395m 6.700m -4.6%
households_single_no_children 3.210m 2.868m +11.9%
households_couple_no_children 0.280m 0.231m +21.1%
households_children_3 0.369m 0.473m -22.0%
households_children_4 0.136m 0.167m -18.3%
households_children_5_or_more 0.064m 0.076m -16.2%

The one activated count is the best-fitting number in the set. Activating the composition rows is what moves the double-digit errors.

Blocker on the two-child limit half: all 15 dwp_two_child_limit ids resolve to targets that are structurally zero from 2026-04-06 (limit abolished, Budget 2025). See PolicyEngine/policyengine-uk-data#465 — activating them before that lands would calibrate against zero.

Not a defect, checked: the payment-distribution many-to-one mapping is correct — dwp.uc.payment_distribution_* carries groupby_dimension: dwp.uc_monthly_award_band, so the per-band uk-data names collapse to one banded id by design.

Next steps

  1. Activate the 4 family-type and 5 child-count references at period 2025, alongside the existing dwp.uc.households. Needs the chronicle facts for those ids.
  2. Keep the 15 two-child-limit ids deferred until uk-data#465 moves them to 2025.
  3. Element-level references (housing, LCWRA, carer, childcare) have no contract ids at all yet — they land here only after uk-data#466 adds the targets upstream.

cc @MaxGhenis @vahid-ahmadi

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions