PolicyEngine / PolicyEngine/policyengine-uk
Extensive-margin participation: wage imputation double-divides by 52, and childcare cost when working is not imputed
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 50
- Forks
- 33
- Avg merge
- 20h 58m
- Merged PRs (30d)
- 14
Description
Two defects in the labour supply framework that between them suppress the extensive-margin response to any childcare reform. Both were found while costing a childcare reform on the Enhanced FRS, and both are currently worked around in that analysis rather than fixed here.
1. The wage imputation divides by 52 twice
hours_worked is already annual, but the imputation treats it as weekly. A non-worker is credited with roughly £194 of annual earnings for entering part-time work, where the right figure is about £21,600.
The effect is that entering work appears to pay almost nothing, so the extensive margin collapses to near zero for every reform, not just childcare ones.
2. Nothing imputes what a potential entrant would pay for childcare
The model records what a family spends today. For 85% of eligible non-workers that is zero, because they are not buying care they do not need. A childcare subsidy applied to that zero is worth nothing, so the main channel by which childcare support raises employment is invisible for exactly the people who might move.
This one is arguably a missing feature rather than a bug, but it has the same consequence: the participation model cannot see the price-of-working channel.
Why it matters beyond childcare
policyengine_uk.dynamics.participation measures work incentives as the gain to work in household_net_income, which does not net off childcare costs. Childcare is a cost of working. Any reform that changes it — not only childcare reforms — will have its participation effect understated.
Happy to open a PR for the units fix, which is self-contained. The childcare-cost imputation is a larger design question and probably wants discussion first.
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 at policyengine_uk.dynamics.participation and trace how hours_worked feeds wage imputation and household_net_income. Verify the annual-versus-weekly units issue in the Enhanced FRS costing context; the self-contained part is done when entering-work earnings are no longer divided by 52 twice. Treat childcare-cost imputation as a separate design decision, since the issue says it needs discussion first.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, data
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100