BHC poverty on the calibrated UK national line measures 8.7 % against HBAI ~17 %: diagnose the gap #968
Description
The one acceptance item keeping #731 open after PR #967: the calibrated line's measured poverty sits far below the HBAI benchmark, and the gap needs a diagnosis before any national candidate is called good enough.
The measurement
Person-weighted share of people in in_poverty_bhc households, year 2026, one engine for every file (policyengine-uk 2.99.1, the #731 reproduction conventions). Note the concept: the engine's relative BHC flag — 60 % of the contemporary median, computed within each dataset — so each file sets its own poverty line, and both the bottom tail and the middle of the distribution move the number.
| file | BHC poverty | context |
|---|---|---|
| populace_uk_2023 (June, #731) | 16.7 % | bound almost no benefit targets (UC at half of admin) |
| enhanced FRS 1.57.3 | 11.0 % | production incumbent |
| v20 national (PR #967 line) | 8.7 % | 6/6 gates, UC in the admin band |
| X50 55k local draw | 9.9 % | same pool, drawn to 55k |
| HBAI benchmark (#731) | ~17 % | relative BHC, individuals |
Two layers to separate
- The family-wide layer: even the enhanced FRS measures 11 % against HBAI's ~17 % — a 6 pp gap shared by every calibrated file on this engine. Definition and basis questions live here (equivalisation, the line's income concept, survey-vs-policy-year projection to 2026, household-to-person mapping).
- The microcosm layer: the calibrated national line sits a further ~2.3 pp below the eFRS, and the June file's near-match to HBAI is the tell — it matched because its benefit surface was unbound and its bottom incomes were too low. Binding UC to the admin caseloads and payment bands (the Align national UC targets with paid claims and explicit source windows #891/UK #882 repairs: the A16 legacy rows, the carer and childcare elements, the benefit-cap bands #937 surface) raises bottom incomes and pushes measured relative poverty down. Whether it pushes it down too far — or exactly as far as an admin-consistent income distribution implies — is the question.
Diagnosis plan
- Definition audit against HBAI: reproduce DWP's BHC methodology line by line against the engine's
in_poverty_bhc(equivalisation scale, income components in the BHC concept, individuals vs households, the 2026 projection basis) and quantify each divergence on the eFRS, where the shared 6 pp layer lives. - Decompose the microcosm layer on one file: measure poverty on spine-s at design weights vs v20's calibrated weights — same records, same engine — then split the movement into the line shift (median movement) and the bottom-tail shift (incomes crossing a fixed line). This attributes the calibration effect exactly.
- Bottom-decile income composition vs HBAI tables: is the calibrated bottom decile's benefit income above what HBAI records (over-imputed take-up / the would_claim lever at 0.55), or are market incomes at the bottom too high?
- The take-up interplay: the UC caseload targets bind counts; the lever run chooses who claims. Probe whether alternative take-up assignments hitting the same caseloads move measured poverty materially.
- A doctrine question to close with: whether an HBAI-anchored low-income target (or a poverty-rate diagnostic anchor in the T4 config with a proper tier-A citation) belongs on the surface, or whether poverty stays a free outcome the scorecard watches.
Receipts
- Scorecard columns and conventions: PR UK national line: the signed v20 deferral, six A16 retirements on measured evidence, and the scoring-path fix #967's scorecard comment (all four files, one engine).
- Full evaluations: https://uk-dataset-evaluation.vercel.app/national-v20-2026-09-20/ and https://uk-dataset-evaluation.vercel.app/55k-k20-2026-09-20/
- The probe:
scorecard_731.pyin the evaluation stack (person-weightedin_poverty_bhc,map_to="person").
Acceptance: a diagnosis memo attributing the gap across the two layers with measurements, and a ruled fix path (definition fix, imputation/take-up fix, target change, or a documented "the benchmark basis differs" verdict). #731 stays open until this lands.
🤖 Generated with Claude Code
Activity
juaristi22 commentedon Sep 21, 2026
Diagnosis for the acceptance item, in full. Short version: the scorecard's poverty row reads the engine's absolute BHC flag against HBAI's relative headline; measured on HBAI's own concept the v20 line is about 2 points below HBAI, not 8, and the rest decomposes as below.
Diagnosis memo, 2026-09-21. One engine throughout (policyengine-uk 2.99.1, the uk-data venv), the #731 reproduction conventions (person-weighted share of people in flagged households). Receipts: the evaluation stack's
uk-candidate-eval/scripts/measure_968_*.pywith outputs underuk-candidate-eval/out/968/. DWP sources: HBAI FYE 2024 summary tables (HBAI_summary_results.ods, tables 1.2b, 1.3a–1.6a), the HBAI table pack (chart 2.4 income bands, tables 2.1db, 3.5db, 3.6db, 4.5db, 4.6db), the HBAI quality and methodology report, and the FRS 2023/24 methodology tables M.6a, M.6b and M.8.The answer in four lines
in_poverty_bhcis the absolute BHC flag (60 % of the 2010/11 median uprated by CPI: £381/week in 2024, £403/week in 2026). HBAI's "~17 %" is the relative BHC rate. HBAI's absolute BHC rate for FYE 2024 is 15 %, its relative rate 17 % (17.3 % from the published bands), its median £650/week.1. Definition audit against HBAI
What the engine does versus DWP, checked line by line (
hbai_household_net_income.py,household_equivalisation_bhc.py,in_poverty_bhc.py,in_relative_poverty_bhc.py,poverty_threshold_bhc.py):in_relative_poverty_bhcuses a household-weighted median. HBAI's median is over individuals. On v20 at 2024 the household-weighted flag gives 13.4 % against 15.3 % person-weighted, a 2-point understatement. Its label also says "AHC". Neither the probe nor the scorecard uses this flag today, but anything that does is biased low. (There is also nopoverty_threshold_ahcvariable, onlypoverty_line_ahc; cosmetic.)Where the engine's median level comes from is not a poverty question and is left open here, with two markers: the ONS household-finances basis puts the FYE 2024 equivalised median at £706/week (ONS "Average household income, UK: FYE 2024"), 9 % above HBAI on definitions alone, and the reported-benefit swap in section 3 barely moves the median (£745 → £741 at design weights), so the level difference lives in market incomes, taxes and uprating, not in simulated benefits.
2. The right numbers, one engine
Relative BHC, 60 % of the person-weighted median, share of individuals:
Absolute BHC (engine line), share of individuals:
Medians (person-weighted, £/week): HBAI £650; spine-s design £745; v20 £751 (2024), £800 (2026); eFRS £780 (2024).
AHC, for completeness (HBAI relative 21 %, absolute 18 %): v20 2024 relative 19.5 %, absolute 13.1 %; eFRS 23.7 % and 14.6 %.
The June file's 16.7 % "match" was two errors cancelling: an absolute reading against a relative benchmark, on a file whose relative rate is 20 %.
3. Decomposing the microcosm layer (same records, same engine)
spine-s and the v20 H5 are the same 52,846 households in the same order; only
household_weightdiffers. At 2024:Basis swap (replace the engine's simulated means-tested benefits with the FRS-reported amounts on the same records;
measure_968_basis_swap.py):So the FRS under-reporting that the DWP itself documents (FRS 2023/24 captures 67 % of UC families, 74 % of Housing Benefit, 71 % of Pension Credit, 61 % of ESA, table M.6a) costs the calibrated line about 0.6 points of measured poverty and nothing at design weights.
Take-up allocation (
measure_968_takeup_probe.py, v20 at 2024, calibrated weights, claimant count held near the file's):Reading: the residual gap to HBAI (about 2 points at 2024) is entirely inside the span of "who gets the drawn Universal Credit". The anchored-residual draw assigns the non-reporting claimants uniformly over entitled units; real non-take-up is not uniform (it concentrates in small entitlements), and HBAI's non-reporters are not uniform either.
4. Bottom-decile composition and shape
5. Attribution
Against HBAI FYE 2024, relative BHC 17.3 %, v20 at 2024 measures 15.3 %:
6. Ruled fix path (for ruling)
scorecard_731.pyreport the pair HBAI publishes, absolute BHC (benchmark 15 %) and relative BHC on the person-weighted median (17 %), plus the AHC pair (18 % / 21 %) and the median (£650). Re-state the UK scorecard: populace_uk_2023 vs enhanced_frs_2024_25 vs admin benchmarks (2026) #731 poverty row on that basis; the row then reads v20 14.6 % relative and 8.7 % absolute at 2026, against 17 % and 15 % at FYE 2024 with the caveat that HBAI's latest actual is FYE 2024 and the Resolution Foundation's outlook has typical incomes flat and child poverty rising to 2029/30.in_relative_poverty_bhcshould take the median over individuals (person-weighted), and its label should say BHC; consider apoverty_threshold_ahctwin of the BHC variable. Not a microcosm blocker.🤖 Generated with Claude Code
vahid-ahmadi commentedon Sep 21, 2026
Review of the diagnosis memo (Claude Code, high effort; checked against policyengine-uk 2.99.1 source, the HBAI FYE 2024 headline release, the ONS FYE 2024 bulletin and the engine's own parameter evaluation; the evaluation-stack scripts and their outputs are not in this repository, so every number that comes from them is taken as reported).
The central finding is right and I can confirm the parts of it that live in code.
in_poverty_bhcat 2.99.1 is the absolute flag: income belowpoverty_threshold_bhc, which ishousehold.poverty.absolute_poverty_threshold_bhc(£251.4 at 2010, uprated by the OBR CPI index) times 52; evaluating that parameter gives £381.4 at 2024 and £403.4 at 2026, the figures the memo quotes.in_relative_poverty_bhctakes its median overMicroSeries(income, weights=household_weight), so household-weighted where HBAI's is over individuals, and its label reads "in relative poverty (AHC)". HBAI FYE 2024 publishes relative BHC 17%, absolute BHC 15%, AHC 21% and 18%, median £650 a week, children 23%, pensioners 19%, working-age 15%, with the absolute line as 60% of the FYE 2011 median adjusted for inflation — all as the memo states. The ONS FYE 2024 median of £36,700 a year is £706 a week. So the "8.7 versus 17" row in the scorecard was an absolute reading against a relative benchmark, the issue's own text mis-described the flag, and on HBAI's concept the v20 line sits about two points under, not eight. The June file's apparent match being two errors cancelling is the right reading and worth keeping in the receipts as a warning about what a single matching number proves. The decomposition design — same 52,846 records, weights swapped, line held then released — is the clean way to isolate the calibration effect, and the take-up probe that brackets the residual with the allocation span is the most useful result in the memo.Four things before this closes #731's item.
1. The evidence is outside the repository again.
measure_968_*.pyanduk-candidate-eval/out/968/are in the evaluation stack, the scorecard is a hosted page, and the memo is an issue comment. Every number in sections 2 to 4 is therefore unverifiable from this tree, and the acceptance criterion is "a diagnosis memo … with measurements". Commit the memo and the output JSONs underdocs/evidence/uk-poverty-968/with the H5 digests, engine version and feed pin, the way #939's receipts now do, and link the scripts at a commit.2. The income-level gap is the larger open item and the memo leaves it open. Every engine file's person-weighted median sits 15 to 20% above HBAI's £650 (£745 spine-s, £751 v20, £780 eFRS), and that is what turns HBAI's 15% absolute rate into the engine's 9 to 11%. The memo's markers point the right way — ONS's household-finances basis puts the median at £706, and the benefit swap barely moves it, so the difference is in market incomes, taxes and uprating rather than simulated benefits — but "9% above HBAI on definitions alone" is asserted, not decomposed, and the remaining £745 against £706 is 5.5% still unexplained on the closest comparable basis. Since the eFRS carries the same level, this is an engine-and-data question, not a microcosm one, and it deserves its own issue with a decomposition: FRS-reported income at the top by component, the SPI channel's contribution, tax simulation against HBAI's deductions, and the 2023-24 to 2024 uprating. Until it is answered, the absolute-poverty row cannot be read at all, and the relative row is comparable only because the line moves with the file.
3. The take-up allocation result changes what "±2 points" means. At a fixed claimant count the residual draw's allocation alone moves relative poverty across 2.6 points, from 14.05% with the residual on the poorest entitled units to 16.66% on the richest, so the whole residual gap to HBAI is inside a modelling choice the caseload targets do not constrain. Fix path C(i) is right that a non-uniform residual is a spec question, but the memo should say which direction the evidence favours: DWP's own take-up research has non-take-up concentrated in small entitlements, which is the "poorest first" end of the span, and that end reads 14.05%, further from HBAI, not closer. So making the draw realistic likely widens the relative gap and the child gap, and the memo's "residual 2 points are real signal" would then be understated. That is worth stating before María rules on C(i), because it means the fix and the benchmark move in opposite directions.
4. Year basis in the fix path. Path A re-states the row as v20 14.6% relative at 2026 against HBAI 17% at FYE 2024. Those are two years apart; the memo's own 2024 figure (15.3%) is the comparable one, and the 2026 number should sit beside a projection or not at all. The T4 diagnostic anchor in path D should carry the HBAI year explicitly and the anchor's tier should say "latest actual, not the analysis year", since the Resolution Foundation outlook the memo cites has typical incomes flat and child poverty rising, which moves the benchmark the wrong way for a 2026 comparison.
On the fix path itself. A is the right first step and is a scorecard change, not a model change; add the p10/p50 and p90/p50 ratios and the zero-income share to the row, since the memo shows those are where the files diverge. B is a real engine bug — the relative flag is wrong on two counts and nothing currently consumes it, which is why it survived; file it against policyengine-uk with the household-versus-person median as the substance and the label as the nit. D is right: HBAI is a survey statistic on a source that misses a third of UC families, and a poverty target on the surface would bind the model to the survey's under-reporting; keep it watched. The verdict "partly" is honest and should be the one that closes the item, with the two-point residual and the children and tenure rows carried to a follow-up issue rather than left in this thread.
The diagnosis is sound and the scorecard error it found is the important result. Commit the evidence, open the income-level issue, and state the direction of the take-up correction before the ruling.
Evidence for the microcosm#968 BHC poverty diagnosis
juaristi22 commentedon Sep 21, 2026
Thanks, all four taken up. Where each one landed:
1. Evidence in the repository. Filed with #967 as
docs/evidence/uk-poverty-968/(commit 2efcd08): the memo as README with the two post-review sections,receipts.json(the five files with sha256 digests and sizes, engine 2.99.1, feed c5e5bf8, the DWP and ONS sources, what each output holds), the six scripts, and every output JSON including the re-run scorecards. The evaluation stack is not a public repository, so the scripts are copied rather than linked.2. Income level. Agreed that it is an engine-and-data question and not a microcosm one, and that the absolute row cannot be read until it is answered. It is not being opened as a poverty follow-up: the income-modelling and tenure work is already under way on its own merits, and the position taken here is that a poverty rate is not something to steer towards. HBAI is a survey statistic from another producer, not an administrative total. The decomposition you list (FRS-reported income by component at the top, the SPI channel, tax simulation against HBAI's deductions, the 2023/24-to-2024 uprating) is the right shape for that work when it is measured, and the memo's £745-versus-£706 residual is recorded in the evidence as unexplained rather than asserted.
3. Direction of the take-up correction. Measured (
outputs/takeup_direction.json): ranking the residual by entitlement size, largest first, which is DWP's finding that non-take-up concentrates in small entitlements, gives 14.9 % relative BHC at 2024 against the file's 15.3 % (children 18.7 % against 18.8 %); smallest first gives 15.9 %. You are right that the realistic end moves away from HBAI. The residual gap is therefore at least the memo's 2 points, and the record says so. It is also a second reason not to treat HBAI as a target: the caseload bands and a realistic draw would pull measured poverty down while the survey figure sits above it.4. Year basis. The scorecard probe now carries an
hbai_basisblock measured at 2024, the closest engine year to HBAI FYE 2024, with the pair, the child rate, the median, the p10 and p90 ratios to the median and the under-£10 share you asked for; the evaluation reports show it in its own table beside HBAI FYE 2024 and keep the 2026 rows file against file only. On that basis v20 reads 15.3 % relative BHC against 17 %, the eFRS 19.7 %; the 2026 figures in the #967 comment are superseded by the corrected table there.B is filed as PolicyEngine/policyengine-uk#1865 (person-weighted median as the substance, the AHC twin shares it,
household_income_decileis the in-engine precedent; the label and the missing AHC threshold as the nits). D stands: no HBAI target on the surface, the pair watched at HBAI's year with the year and the survey basis stated on the row.Verdict on #731's poverty item: "partly", as you put it. The scorecard error was the finding; the concept and level differences are basis; the residual 2 points and the children and tenure rows are on record in the evidence and are not being chased as poverty fixes.
🤖 Generated with Claude Code
Bring the #968 evidence receipts through lint and the incumbent-refer…
Evidence for the microcosm#968 BHC poverty diagnosis
Bring the #968 evidence receipts through lint and the incumbent-refer…
Relabel the take-up span and the child-poverty comparison in the #968 …