UK: children in families with three or more children, and their low-income share, are short of HBAI
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python
- Domain
- data, machine-learning
Research direction
Start by measuring how much the calibration work in #1334 changes the number of HBAI dependent children in families with three or more children and their low-income rates. Compare the model aggregates for period 2024 with HBAI FYE 2025 table 4.5db, then check whether adding those figures as calibration targets closes the gap. Done when the validation shows the remaining large-family and poverty shortfalls and supports a clear choice of target or release gate.
Written by the indexing model from the issue text.
Description
Summary
On the current UK national release (microcosm-uk-2024-25-national-20261023T075039Z-a133f37a, SHA-256 64f83900…, run on its pinned policyengine-uk 2.147.2), children in families with three or more children are short of HBAI FYE 2025, and children in those families with low income are shorter still. Two-child limit poverty estimates depend on exactly this group, so they come out low against published estimates even when the cost and the number of affected families match.
Children by family size, FYE 2025 (model period 2024)
HBAI figures are from the FYE 2025 data tables, table 4.5db (children, by number of children in the family, United Kingdom). The model counts HBAI dependent children (is_hbai_dependent_child) and the number of them in each benefit unit.
| HBAI FYE 2025 | Microcosm a133f37a | Difference | |
|---|---|---|---|
| All children | 14.69m | 14.35m | -2% |
| Children in families with 3+ children | 4.64m | 4.20m | -10% |
| All children in relative low income, AHC | 4.03m (27.4%) | 3.52m (24.5%) | -13% |
| All children in relative low income, BHC | 3.01m (20.5%) | 2.66m (18.5%) | -12% |
| Children in 3+ child families in relative low income, AHC | 2.07m (44.7%) | 1.64m (39.0%) | -21% |
| Children in 3+ child families in relative low income, BHC | 1.64m (35.4%) | 1.35m (32.1%) | -18% |
The Universal Credit side is not short. In 2025-26 under current law the model has 467k benefit units that gain from removing the limit, with 1.64m children, against DWP's 454k households not receiving the child element for at least one child and 1.61m children in them (UC two-child limit statistics, April 2025). So the shortfall is in how many large families there are and where their incomes sit, not in UC entitlement or claiming.
Why it matters
The IFS Green Budget 2025 comment Options for reforming the two-child limit (TAXBEN, FRS 2022-23 and 2023-24, full roll-out, absolute low income after housing costs) estimates that removing a fully rolled-out limit lifts 630,000 children out of absolute poverty at about £3.6bn, and a three-child limit 420,000 at about £2.6bn. Its endnote 4 says the IFS additionally reweights the 2022-23 data by number of children.
Running the same settings on this release in 2025-26 (full roll-out by setting the UC and CTC born_before dates so that no child is protected, full Universal Credit take-up):
| IFS | Microcosm a133f37a | |
|---|---|---|
| Abolition: cost | £3.6bn | £3.58bn |
| Abolition: families gaining | over 800,000 households | 778k benefit units |
| Abolition: children lifted out of absolute poverty, AHC, FYE 2011-based line | 630,000 | 455k (-28%) |
| Abolition: the same on the model's FYE 2025-based line | 475k (-25%) | |
| Three-child limit: cost | £2.6bn | £2.51bn |
| Three-child limit: children lifted, AHC, FYE 2011-based line | 420,000 | 293k (-30%) |
| Three-child limit: the same on the FYE 2025-based line | 312k (-26%) |
The FYE 2011-based line is approximated as its FYE 2021 value in the parameter file, uprated by the model's CPI index.
Cost and families line up; children lifted are a quarter to 30% short, about the size of the shortfall in low-income children in 3+ child families above. Which absolute line is used moves the figures by under 20,000. An external replication of the IFS figures using raw FRS 2024-25 also reported fewer children lifted than the IFS.
Suggested next steps
- Add HBAI children by number of children in the family (table 4.5db, all children column: 3.23m, 6.82m, 4.64m) as a calibration target or at least a release gate, so the large-family share cannot drift.
- Check the relative low-income rate for children in 3+ child families as a validation metric alongside the overall poverty rates.
- Measure how much of the gap the work in #1334 closes (the calibration moving weight away from low-income households, and the lone-parent UC caseload at 0.67 of DWP's at design weights) before adding a target, since the two may be the same problem.
Related: #1334, #731.
Reproduction
Aggregates only. Scripts run policyengine_uk.Microsimulation(dataset=<release h5>) for period 2024 (FYE 2025 comparison) and 2025 (two-child limit options), with is_hbai_dependent_child, in_relative_poverty_ahc/_bhc, in_poverty_ahc mapped to person, and the benefit-unit count of HBAI dependent children. Reform keys use the YYYY-MM-DD.YYYY-MM-DD form on gov.dwp.universal_credit.elements.child.limit.{born_before,child_count} and the Child Tax Credit equivalents.
🤖 Generated with Claude Code
- Dominant language
- Python
- Stars
- 0
- Forks
- 6
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 135
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from PolicyEngine/microcosm
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
PolicyEngine/microcosm#1220 ·
Maintainers usually reply within 1 day
-
Update two stale comments about the export-mass reviewed-exclusion registerPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 1/5 Under an hour Newbie friendliness 88/100
PolicyEngine/microcosm#1108 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
PolicyEngine/microcosm#475 ·
Maintainers usually reply within 1 day
-
PolicyEngine/microcosm#1390 ·
Maintainers usually reply within 1 day
-
PolicyEngine/microcosm#1389 ·
Maintainers usually reply within 1 day
All issues in PolicyEngine/microcosm
Similar issues
-
Project submission:Open
Difficulty 1/5 Under an hour Newbie friendliness 72/100
slavakurilyak/awesome-ai-agents#845 ·
Maintainers usually reply within 1 day
-
tests: pin that the atomic writers in utils/paths.py stage the temporary file in the target's directoryPossibly taken A pull request linked to this issue is open or already merged. Opendifficulty:2 enhancement good first issue
Difficulty 1/5 1-3 hours Newbie friendliness 92/100
MakazhanAlpamys/Soup#2178 ·
Maintainers usually reply within 1 day
-
[BUG] dcg.waggr permutation p-values are folded twice, so near-zero scores get the smallest p-valuesOpen
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
scverse/rapids-singlecell#854 ·
Maintainers usually reply within 1 day
-
Slang input: int8_t4_packed and uint8_t4_packed are copied into CrossGLPossibly taken @ninglinLiu claimed this today. Openarea:frontend backend:slang bug direction:input
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
random_elements(unique=True) on an OrderedDict: ZeroDivisionError once only zero weights remain, AssertionError with use_weighting=FalsePossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 13 days