Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/2567-term-starts.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Start a child's working parent hours with the first 1 January, 1 April or 1 September after it reaches the minimum age (SI 2022/1134 reg 27(1)(a); SI 2016/1257 reg 35(3) before December 2022), each of the year's terms counting for a third of it. The new `extended_childcare_entitlement_term_share` reads the date of birth, so a child aged 0 in the middle of the year who was born from October to March now gets one or two terms' hours, where none did before, and a 1-year-old who reached nine months after 1 April loses the summer term. Universal and targeted hours meet the working parent hours term by term. From 2025, household simulations that give only whole ages are unchanged, since such a child is taken to be born on 6 April; in earlier years, at a minimum age of two or three, such a child now qualifies from September.
1 change: 1 addition & 0 deletions changelog.d/2567.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Stop the universal and working parent free hours in England, and Scotland's funded early learning and childcare, from the term a child starts school. A council meets both English duties for a child in a state-funded or council-funded reception class through the school place (DfE statutory guidance, footnotes 7 and 17, paras A4.8 and C.6), and a child at primary school is not an eligible pre-school child in Scotland (Children and Young People (Scotland) Act 2014 s.47(2)(b)). The new `early_years_term_share_before_school` gives the share of the year's terms before the child starts school, from the date of birth. In England a child starts reception in the September following its fourth birthday (School Admissions Code 2021 para 2.17), so most 4-year-olds keep only the summer term; Scotland's primary 1 starts in August for children who turn five from March to February, and Northern Ireland's in September for children who are four by 1 July. A household simulation that gives only a whole age of 4 takes the child to be born on 6 April, so it now gets a third of the year's universal and working parent hours. Set the new `early_years_school_start_deferred` for a child whose start is deferred, or who takes funded hours in a council-funded independent reception class, to keep the year.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
"\n",
"The 30 hours include any universal (3- and 4-year-old) or targeted (2-year-old) hours available to the child. [Childcare Act 2016 s.1(6)](https://www.legislation.gov.uk/ukpga/2016/5/section/1) counts childcare available under the 2006 Act towards the total; [2014 regulations 3–4](https://www.legislation.gov.uk/uksi/2014/2147/made/data.html) establish those base entitlements. DfE's [statutory guidance A1.11](https://www.gov.uk/government/publications/early-education-and-childcare--2/early-education-and-childcare-valid-from-1-april-2026#section-a1-eligibility) requires the first 15 hours for a child eligible for both targeted and working-parent provision to be funded as targeted hours. Qualifying for the working-parent entitlement never removes universal or targeted eligibility.\n",
"\n",
"A child in a state-funded or council-funded reception class gets no funded hours outside its school place ([statutory guidance](https://www.gov.uk/government/publications/early-education-and-childcare--2/early-education-and-childcare-valid-from-1-april-2026), footnotes 7 and 17, paras A4.8 and C.6). It takes up that place in the September following its fourth birthday (C.5), so most 4-year-olds get universal and working-parent hours for the summer term only. `early_years_term_share_before_school` gives the share of the year's terms before the child starts school, from its date of birth, and `early_years_school_start_deferred` keeps the year for a deferred start.\n",
"\n",
"### Eligibility requirements\n",
"\n",
"#### Work status\n",
Expand Down Expand Up @@ -124,6 +126,7 @@
"### 5. Entitlement calculation\n",
"Final calculations in [`extended_childcare_entitlement_per_child.py`](https://github.com/PolicyEngine/policyengine-uk/blob/main/policyengine_uk/variables/gov/dfe/extended_childcare_entitlement/extended_childcare_entitlement_per_child.py), summed for the family by [`extended_childcare_entitlement.py`](https://github.com/PolicyEngine/policyengine-uk/blob/main/policyengine_uk/variables/gov/dfe/extended_childcare_entitlement/extended_childcare_entitlement.py):\n",
"* Determines weekly hours based on child's age\n",
"* Counts only the terms the child is old enough for (`extended_childcare_entitlement_term_share`): its hours start with the first 1 January, 1 April or 1 September after it reaches the minimum age ([SI 2022/1134 reg 27](https://www.legislation.gov.uk/uksi/2022/1134/regulation/27)). The year's terms begin on 1 April, 1 September and 1 January, a third of the year each, so a child aged 0 in the middle of the year can get one or two terms, and a child aged 1 who reached nine months after 1 April misses the summer term. Survey ages are whole years; `months_since_last_birthday` spreads birthdays over the year, and in a household simulation a child given only a whole age is taken to be born on 6 April\n",
"* Limits them to the hours the child and the family use (`max_free_entitlement_hours_used`, `maximum_extended_childcare_hours_usage`)\n",
"* Applies appropriate funding rates\n",
"* For children participating in working-parent provision, allocates their first funded hours, up to 15 per week, to the applicable universal or targeted entitlement based on legal eligibility, regardless of the standalone take-up flags\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
"* Age requirements:\n",
" * Checks child meets minimum age requirement\n",
" * Ensures child is below compulsory school age\n",
" * Stops in the terms after the child starts school: a reception place, taken up in the September following the fourth birthday, meets the entitlement ([DfE statutory guidance](https://www.gov.uk/government/publications/early-education-and-childcare--2/early-education-and-childcare-valid-from-1-april-2026), footnotes 7 and 17, C.5). `early_years_term_share_before_school` gives the share of the year's terms before that, from the date of birth, so most 4-year-olds keep only the summer term; `early_years_school_start_deferred` keeps the year for a deferred start\n",
" * Referenced in Section 7 of Childcare Act 2006\n",
"\n",
"Example table:\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,76 @@
output:
extended_childcare_entitlement_eligible: false

# DfE's statutory guidance (April 2026, footnotes 7 and 17, paras A4.8 and
# C.6): a child in a state-funded or council-funded reception class is not
# entitled to free hours outside the school place, though it is still under
# compulsory school age. A child starting reception in September (C.5) still
# qualifies for the summer term.
- name: Not eligible - the only child is at school all year
period: 2026
input:
households:
household1:
members: [parent1, child1]
country: ENGLAND
people:
parent1:
age: 35
extended_childcare_entitlement_work_condition: true
child1:
age: 4
early_years_term_share_before_school: 0
benunits:
benunit1:
members: [parent1, child1]
output:
extended_childcare_entitlement_qualifying_child: [false, false]
extended_childcare_entitlement_eligible: false

- name: Eligible - a child at school all year with a 2-year-old sibling
period: 2026
input:
households:
household1:
members: [parent1, child1, child2]
country: ENGLAND
people:
parent1:
age: 35
extended_childcare_entitlement_work_condition: true
child1:
age: 4
early_years_term_share_before_school: 0
child2:
age: 2
benunits:
benunit1:
members: [parent1, child1, child2]
output:
extended_childcare_entitlement_qualifying_child: [false, false, true]
extended_childcare_entitlement_eligible: true

- name: Eligible - a 4-year-old starting reception in September
period: 2026
input:
households:
household1:
members: [parent1, child1]
country: ENGLAND
people:
parent1:
age: 35
extended_childcare_entitlement_work_condition: true
child1:
age: 4
date_of_birth: 20220831
benunits:
benunit1:
members: [parent1, child1]
output:
extended_childcare_entitlement_qualifying_child: [false, true]
extended_childcare_entitlement_eligible: true

- name: Not eligible - no children
period: 2025
input:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,96 @@
# 30 x 38 x 12.04
extended_childcare_entitlement_per_child: 13725.60

# SI 2022/1134 reg 27(1)(a): working parent hours start with the first
# 1 January, 1 April or 1 September after the child is nine months old, each
# term a third of the year.
- name: A baby nine months old by 1 January gets the spring term's hours
period: 2026
absolute_error_margin: 0.05
input:
people:
child:
age: 0
date_of_birth: 20260315
benunits:
benunit:
members: [child]
extended_childcare_entitlement_eligible: true
output:
# Nine months on 15 December 2026: a third of 30 x 38 x 12.04.
extended_childcare_entitlement_per_child: 4575.20
is_child_receiving_extended_childcare: true

- name: A baby nine months old by 1 September gets two terms' hours
period: 2026
absolute_error_margin: 0.05
input:
people:
child:
age: 0
date_of_birth: 20251115
benunits:
benunit:
members: [child]
extended_childcare_entitlement_eligible: true
output:
# Nine months on 15 August 2026.
extended_childcare_entitlement_per_child: 9150.40

- name: A 1-year-old nine months old after 1 April misses the summer term
period: 2026
absolute_error_margin: 0.05
input:
people:
child:
age: 1
date_of_birth: 20250720
benunits:
benunit:
members: [child]
extended_childcare_entitlement_eligible: true
output:
# Nine months on 20 April 2026.
extended_childcare_entitlement_per_child: 9150.40

# Until April 2024 the minimum age was three (reg 13(2)(a) as made). A
# standalone universal claim runs all year; the working parent hours top it up
# to 30 a week only in the terms after the third birthday. Rate: £5.88 (3-4).
- name: A 3-year-old qualifying from September keeps a full year of universal hours
period: 2023
absolute_error_margin: 0.05
input:
people:
child:
age: 3
date_of_birth: 20200801
benunits:
benunit:
members: [child]
extended_childcare_entitlement_eligible: true
output:
# 570 x 5.88, then 15 more hours a week in two of the three terms.
universal_childcare_entitlement: 3351.60
extended_childcare_entitlement_per_child: 2234.40

- name: Without standalone take-up such a child's universal hours come only in those terms
period: 2023
absolute_error_margin: 0.05
input:
people:
child:
age: 3
date_of_birth: 20200801
benunits:
benunit:
members: [child]
extended_childcare_entitlement_eligible: true
would_claim_universal_childcare: false
output:
# Two thirds of 570 x 5.88 in each programme.
universal_childcare_entitlement: 2234.40
extended_childcare_entitlement_per_child: 2234.40

- name: Working parent participation funds universal first even with false standalone take-up
period: 2026
absolute_error_margin: 0.05
Expand Down Expand Up @@ -101,6 +191,8 @@
people:
child:
age: 4
# Four on 15 September 2026, so in reception from September 2027.
date_of_birth: 20220915
benunits:
benunit:
members: [child]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# SI 2022/1134 reg 27(1)(a): a child is eligible for working parent hours
# from the first 1 January, 1 April or 1 September after the day its
# declaration has effect, which for a declaration made in advance is the day
# it attains the minimum age (regs 13(2)(a), 20(a) and 25(1)): nine months
# from 1 September 2024 (SI 2023/1330 reg 2(5)(b)). The model year runs from
# April, so its terms begin on 1 April, 1 September and 1 January.
- name: Nine months before 1 January gives the spring term only
period: 2026
input:
age: 0
date_of_birth: 20260331
output:
# Nine months on 31 December 2026.
extended_childcare_entitlement_term_share: 0.3333
absolute_error_margin: 0.0001

- name: Nine months on 1 January gives no term in the year
period: 2026
input:
age: 0
date_of_birth: 20260401
output:
# Nine months on 1 January 2027: eligible from 1 April 2027.
extended_childcare_entitlement_term_share: 0
extended_childcare_entitlement_qualifying_child: false

- name: Nine months before 1 September gives the autumn and spring terms
period: 2026
input:
age: 0
date_of_birth: 20251130
output:
# Nine months on 30 August 2026.
extended_childcare_entitlement_term_share: 0.6667
absolute_error_margin: 0.0001

- name: Nine months on 1 September gives the spring term only
period: 2026
input:
age: 0
date_of_birth: 20251201
output:
extended_childcare_entitlement_term_share: 0.3333
absolute_error_margin: 0.0001

- name: A 1-year-old who reached nine months on 1 April misses the summer term
period: 2026
input:
age: 1
date_of_birth: 20250701
output:
extended_childcare_entitlement_term_share: 0.6667
absolute_error_margin: 0.0001

- name: A 1-year-old who reached nine months before 1 April gets every term
period: 2026
input:
age: 1
date_of_birth: 20250630
output:
extended_childcare_entitlement_term_share: 1

# Without a date of birth a whole age is the middle of the year of age: born
# on 6 April, so nine months old on 6 January.
- name: Without a date of birth, age 0 gets no term and age 1 every term
period: 2026
input:
people:
baby:
age: 0
toddler:
age: 1
output:
extended_childcare_entitlement_term_share: [0, 1]

# A fractional age is the exact age on 6 October.
- name: A child exactly nine months old on 6 October gets the spring term
period: 2026
input:
age: 0.75
output:
extended_childcare_entitlement_term_share: 0.3333
absolute_error_margin: 0.0001

# Reg 13(2)(a): "two" from 1 April 2024 to 31 August 2024 (SI 2023/1330 reg
# 2(5)(a)), the value on 30 April 2024, which the model reads for 2024.
- name: A child turning two on 1 April 2024 qualifies from September
period: 2024
input:
age: 2
date_of_birth: 20220401
output:
extended_childcare_entitlement_term_share: 0.6667
absolute_error_margin: 0.0001

# SI 2016/1257 reg 35(3) set the same start dates from the third birthday
# before December 2022.
- name: A child turning three after 1 April 2022 qualifies from September
period: 2022
input:
age: 3
date_of_birth: 20190415
output:
extended_childcare_entitlement_term_share: 0.6667
absolute_error_margin: 0.0001
Loading
Loading