PolicyEngine / PolicyEngine/policyengine-scorecard

Childcare support (mode 1): entitlement take-up and Tax-Free Childcare, the population counterpart to #55's childcare scorings

Open
#89 0 comments 0 reactions 1 assignee View on GitHub

@vahid-ahmadi is already working on this.

Since Aug 24, 2026.

Dominant language
Python
Stars
0
Forks
0
Avg merge
6d 12h
Merged PRs (30d)
32

Description

PE-UK models the UK childcare-support system in some depth — tax_free_childcare, tax_free_childcare_eligibility, would_claim_tfc, extended_childcare_entitlement_eligible, is_child_receiving_extended_childcare, uc_childcare_element, uc_maximum_childcare_element_amount, WTC_childcare_element, childcare_expenses — and the scorecard's only external childcare row is a single OBR expenditure forecast line for Tax-Free Childcare. Nothing validates eligibility, take-up, or the entitlement hours at all.

This is also the UK policy area that has changed most in the forecast window: the 30-hours entitlement expansion is one of the two DEL measures in OBR Briefing Paper No.10 that #75 already carries a supply-side scoring for (free_childcare_30_hours, uc_childcare_upfront_costs). The scorecard has OBR's estimate of what the expansion does to potential output, and no estimate of how many families it reaches.

The published populations

  • DfE, Education provision: children under 5 years of age and the childcare entitlement releases — children taking up the funded entitlements by age and hours band, by local authority and nationally.
  • HMRC, Tax-Free Childcare statistics — accounts opened and used, families benefiting, top-up paid, quarterly.
  • DWP — UC childcare element usage (shares the Stat-Xplore lane if that one lands first).

Why this one

  • Take-up is the whole story here. TFC take-up is known to be far below eligibility, which is precisely the entitled-vs-claiming distinction #51's fullpart machinery was built to construct — and would_claim_tfc is a real engine input, so the same forced-participation construction applies. A published count of families benefiting gives that construction its denominator.
  • The 30-hours entitlement is an hours entitlement, not a cash one. The repo has no unit concept for it, and mapping hours onto GBP or onto a headcount would misstate what the number is (the rule that split GBP_PER_WEEK from bare GBP).
  • Local-authority granularity is finer than any UK geography currently registered. It should probably be excluded deliberately in the first pass — national and regional only — rather than opening an LA vocabulary the rest of the repo cannot join to.

Steps

  • Harvest lane: DfE entitlement tables + HMRC TFC statistics, primary sources, Wayback originals, SHA-256 pinned
  • models.py: an hours-entitlement unit concept, added deliberately; children-taking-up as a count distinct from families-benefiting
  • uk_aliases: closed age-band and hours-band vocabularies; record the LA-granularity exclusion as a stated coverage decision, not an omission
  • relationships.py: held-out with evidence, read at the pin — TFC take-up in particular must not turn out to be a calibration target
  • Cross-reference #55: this is the population-level counterpart to the childcare supply-side scorings the OBR policy-effects lane already carries

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.