You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Universal hours and the 2-year-old offer start on the age at 6 October, not the term after the birthday #2588
Since 2.147.2 (#2570), working-parent hours start with the first 1 January, 1 April or 1 September after a child reaches the minimum age (extended_childcare_entitlement_term_share, SI 2022/1134 reg 27). The universal 15 hours and the 2-year-old offer still use the whole age on 6 October, the date the engine places birthdays around. #2570 lists this under "Not in this PR".
The rule
Universal hours start with the term after the third birthday: 1 April for a birthday from 1 January to 31 March, 1 September for 1 April to 31 August, and 1 January for 1 September to 31 December (SI 2014/2147 reg 3; DfE statutory guidance, A1.6).
The 2-year-old offer starts the same way after the second birthday (DfE guidance A1.4).
What the model does
universal_childcare_entitlement_eligible and targeted_childcare_entitlement test the whole age on 6 October of the model year. In model year Y:
Missed. A child born from 7 October to 31 December of Y−3 is 2 on 6 October, so it gets no universal hours. Under the rule it is funded from 1 January of Y+1, the spring term.
Over-credited. A child born from 1 April to 6 October of Y−3 is 3 on 6 October, so it gets the whole year. Under the rule it is funded only from 1 September or 1 January.
The 2-year-old offer has the same pattern one year down.
The two errors offset in a year's total hours only roughly. They disagree on who is funded in which term, which matters wherever a term is counted: DfE's January census and a reform's cost by term.
Proposed change
Give universal and targeted hours their own term share, as extended_childcare_entitlement_term_share does:
the share of the year's three terms that start after the third (or second) birthday;
read from the date of birth through utils.dates.term_starts;
multiplied into the universal base and the targeted amount, beside early_years_term_share_before_school;
eligibility needs a share above 0.
A household simulation that gives only a whole age is unchanged in the same way as #2570: the child is taken to be born on 6 April.
Context
Microcosm (PolicyEngine/microcosm#1338) now measures DfE's January registrations at the spring term. Its universal and 2-year-old rows count every child of the DfE age, mirroring the term-after-birthday start that the engine does not yet apply, so it can fit take-up against DfE without the engine's gap. Once this lands, the mirror can read the engine instead.
Activity