PolicyEngine / PolicyEngine/policyengine-uk

Audit: UK childcare programme coverage — devolved gaps and structural cleanups

Open
#1,644 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
50
Forks
33
Avg merge
20h 58m
Merged PRs (30d)
14

Description

Follow-up from #1008 and PR #1643. Below is an audit of childcare programme coverage in policyengine-uk as of today. Filing as a tracker so the remaining work can be split into discrete issues / PRs rather than kept as one catch-all.

UK-wide — correctly scoped

  • Tax-Free Childcare (HMRC, £2k/child/yr; disabled-child higher cap covered)
  • Universal Credit childcare element (DWP)
  • Working Tax Credit childcare element (DWP, legacy)

England-only (DfE) — all correctly gate on country == ENGLAND

  • Universal Childcare Entitlement (15 hrs/week, 3–4yo)
  • Extended Childcare Entitlement (30 hrs/week, working parents)
  • Targeted Childcare Entitlement (disadvantaged 2yo + working families)
  • Childcare Grant (Student Finance England)
  • Care to Learn (young parents in education)

Scotland

  • Universal Funded ELC for 3- and 4-year-olds (1,140 hrs/yr) — added in PR #1643
  • ❌ Eligible-two-year-old strand (vulnerable / low-income 2yo under the 2014 Order)
  • ❌ Student Awards Agency Scotland: Lone Parents' Grant, Dependants' Grant, Childcare Fund
  • ❌ Scottish EMA / equivalent to Care to Learn

Wales — nothing covered

  • ❌ Childcare Offer for Wales (30 hrs/week, 3–4yo, working parents; Childcare Funding (Wales) Act 2019)
  • ❌ Flying Start (pre-school, 2–3yo, disadvantaged areas)
  • ❌ Student Finance Wales Childcare Grant
  • ❌ Welsh EMA

Northern Ireland — nothing covered

  • ❌ Pre-school Education Programme (12.5 hrs/week, 3–4yo)
  • ❌ Sure Start (younger disadvantaged children)
  • ❌ Student Finance NI Childcare Grant
  • ❌ NI EMA

Structural findings (independent of regional gaps)

  1. programs.yaml has a childcare_entitlements umbrella entry with no variable or parameter_prefix — orphan registry row. Should either bind to something or split into one row per entitlement.
  2. No aggregating variable across programmes (e.g. "total subsidised childcare hours per child per week"). The API can't surface a single answer to "what's this family's combined childcare support" without the caller summing per-programme variables.
  3. weeks_per_year and childcare_funding_rate live at gov.dfe root but encode English assumptions (DfE, English term structure, English hourly rates). As we extend to Scotland/Wales/NI, each region needs its own term-week and funding-rate parameters.
  4. Minor: the three England DfE _eligible variables each re-derive the in_england check. A shared in_england helper variable would reduce duplication — not load-bearing.

Suggested work split

  • Close #1008 in favour of per-programme tickets once this audit is agreed.
  • One issue each for: Wales Childcare Offer, Flying Start, NI PSEP, Sure Start, Scottish eligible-two-year-old strand, SAAS childcare support, Student Finance Wales/NI childcare grants.
  • One issue for the structural cleanups (items 1–3 above).

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.

Research direction

Start with the audit and review the existing childcare entries in programs.yaml, then inspect the gov.dfe parameters and related variables. This is a tracker rather than one implementation task: done means agreeing the scope and splitting the regional programmes and structural cleanups into discrete issues or PRs.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, yaml
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.