PolicyEngine / PolicyEngine/microcosm
UK spine: JSA claimants 2.8× the DWP caseload — legacy-benefit reporting after the UC migration
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 4
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 94
Description
Found while measuring the first calibrated rowwise UK local candidate (#762, receipts R8–R15 on uk-rowwise-candidate-762-b). The row is a reviewed measure exclusion under #762 A16, expiring 2026-10-03, tracked on #736.
Measured on spine-m (FRS 2024-25, policyengine-uk 2.92.1, calibration year 2025), single-block engine resolution: dwp.jsa_claimants — spine 199k against DWP 71k (2.8× at initialization). Block-insensitive, so the miss is real. The related OBR JSA spend row (obr.jobseekers_allowance, 3.4× at initialization) is reachable by reweighting and is not excluded, which says the spine has too many JSA rows rather than too much JSA per row.
Likely cause: legacy-benefit reporting after the UC migration. FRS respondents still report JSA where the live claim is UC with searching-for-work conditionality (or new-style contributory JSA is conflated with the retired income-based JSA); the spine's legacy-proxies / take-up stages then keep them as JSA claimants.
Ask: reconcile the spine's JSA claimant count against the DWP JSA caseload (contributory vs income-based, the latter structurally near zero in 2025) and reclassify FRS-reported income-based JSA to UC where the respondent's circumstances say UC; keep contributory JSA as reported.
Acceptance: the row sits within 25 % at initialization on the next spine and the A16 exclusion retires.
Refs #762, #736, #665.
Contributor 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.
Research direction
Start with the spine-m calibration evidence for dwp.jsa_claimants in FRS 2024-25 and compare it with the related obr.jobseekers_allowance row. Read the legacy-proxies and take-up stages implicated by the issue, along with #762's A16 exclusion and #736 tracking. Done means the JSA row is within 25% at initialization on the next spine and the exclusion can retire.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100