Skip to content

Commit

Permalink
Implement free childcare program
Browse files Browse the repository at this point in the history
  • Loading branch information
vahid-ahmadi committed Jan 15, 2025
1 parent 49ec556 commit 4a5cad5
Show file tree
Hide file tree
Showing 16 changed files with 750 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: Age thresholds for free childcare eligibility
metadata:
unit: year
period: year
label: Age limit for free childcare eligibility
reference:
- title: Childcare Act
href: https://www.legislation.gov.uk/uksi/2017/1160/pdfs/uksiem_20171160_en.pdf
- title: Tax-Free Childcare Guidance
href: https://www.gov.uk/check-eligible-free-childcare-if-youre-working?step-by-step-nav=f517cd57-3c18-4bb9-aa8b-1b907e279bf9
values:
2015-01-01: 3
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: Age thresholds for free childcare eligibility
metadata:
unit: year
period: year
label: Age limit for free childcare eligibility
reference:
- title: Childcare Act
href: https://www.legislation.gov.uk/uksi/2017/1160/pdfs/uksiem_20171160_en.pdf
- title: Tax-Free Childcare Guidance
href: https://www.gov.uk/check-eligible-free-childcare-if-youre-working?step-by-step-nav=f517cd57-3c18-4bb9-aa8b-1b907e279bf9
values:
2015-01-01: 0.75
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: Age thresholds for free childcare eligibility
metadata:
unit: year
period: year
label: Age limit for free childcare eligibility
reference:
- title: Childcare Act
href: https://www.legislation.gov.uk/uksi/2017/1160/pdfs/uksiem_20171160_en.pdf
- title: Tax-Free Childcare Guidance
href: https://www.gov.uk/check-eligible-free-childcare-if-youre-working?step-by-step-nav=f517cd57-3c18-4bb9-aa8b-1b907e279bf9
values:
2015-01-01: 3
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: Age thresholds for free childcare eligibility
metadata:
unit: year
period: year
label: Age limit for free childcare eligibility
reference:
- title: Childcare Act
href: https://www.legislation.gov.uk/uksi/2017/1160/pdfs/uksiem_20171160_en.pdf
- title: Tax-Free Childcare Guidance
href: https://www.gov.uk/check-eligible-free-childcare-if-youre-working?step-by-step-nav=f517cd57-3c18-4bb9-aa8b-1b907e279bf9
values:
2015-01-01: 4
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
description: Income thresholds for tax-free childcare eligibility
metadata:
period: year
label: Income thresholds for tax-free childcare eligibility
reference:
- title: Childcare Payments Act
href: https://www.legislation.gov.uk/ukdsi/2015/9780111127063
- title: Tax-Free Childcare Guidance
href: https://www.gov.uk/tax-free-childcare?step-by-step-nav=d78aeaf6-1747-4d72-9619-f16efb4dd89d

brackets:
- threshold:
2015-01-01: 0
amount:
2015-01-01: 1_331
- threshold:
2015-01-01: 18
amount:
2015-01-01: 1_788
- threshold:
2015-01-01: 21
amount:
2015-01-01: 2_379
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
description: max income threshold
metadata:
unit: year
period: year
label: max income threshold
reference:
- title: Childcare Act
href: https://www.legislation.gov.uk/uksi/2017/1160/pdfs/uksiem_20171160_en.pdf
- title: Tax-Free Childcare Guidance
href: https://www.gov.uk/check-eligible-free-childcare-if-youre-working?step-by-step-nav=f517cd57-3c18-4bb9-aa8b-1b907e279bf9
values:
2015-01-01: 100_000
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
- name: Child too young - ineligible
period: 2025
input:
age: 0.5 # 6 months
output:
free_childcare_15_hours: false

- name: Child exactly at minimum age - eligible
period: 2025
input:
age: 0.75 # 9 months
output:
free_childcare_15_hours: true

- name: Child in middle of eligible range - eligible
period: 2025
input:
age: 1.5 # 18 months
output:
free_childcare_15_hours: true

- name: Child at maximum age - eligible
period: 2025
input:
age: 2.0 # 24 months
output:
free_childcare_15_hours: true

- name: eligible
period: 2025
input:
age: 2.1 # 25 months
output:
free_childcare_15_hours: true

- name: eligible
period: 2025
input:
age: 3.1 # 25 months
output:
free_childcare_15_hours: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
- name: Child too young - ineligible
period: 2025
input:
age: 2.99 # Just under 3 years
output:
free_childcare_30_hours: false

- name: Child exactly at minimum age - eligible
period: 2025
input:
age: 3.0 # Exactly 3 years
output:
free_childcare_30_hours: true

- name: Child in early eligible range - eligible
period: 2025
input:
age: 3.2 # 3 years and ~2.5 months
output:
free_childcare_30_hours: true

- name: Child in middle of eligible range - eligible
period: 2025
input:
age: 3.5 # 3.5 years
output:
free_childcare_30_hours: true

- name: Child in late eligible range - eligible
period: 2025
input:
age: 3.8 # 3 years and ~10 months
output:
free_childcare_30_hours: true

- name: Child at maximum age - eligible
period: 2025
input:
age: 4.0 # Exactly 4 years
output:
free_childcare_30_hours: true

- name: Child too old - ineligible
period: 2025
input:
age: 4.1 # Just over 4 years
output:
free_childcare_30_hours: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
- name: Under 18 meeting yearly threshold
period: 2025
input:
age: 17
total_income: 5400 # Above £1,331 * 4 = £5,324 yearly threshold
private_pension_income: 0
savings_interest_income: 0
dividend_income: 0
property_income: 0
output:
income_requirements: true

- name: Just turning 18 with yearly threshold
period: 2025
input:
age: 18
total_income: 7200 # Above £1,788 * 4 = £7,152 yearly threshold
private_pension_income: 0
savings_interest_income: 0
dividend_income: 0
property_income: 0
output:
income_requirements: true

- name: Age 20 meeting 18-20 yearly threshold
period: 2025
input:
age: 20
total_income: 22000
private_pension_income: 10
savings_interest_income: 0
dividend_income: 0
property_income: 0
output:
income_requirements: true

- name: Age 21+ meeting higher yearly threshold
period: 2025
input:
age: 25
total_income: 29600 # Above £2,379 * 4 = £9,516 yearly threshold
private_pension_income: 0
savings_interest_income: 0
dividend_income: 0
property_income: 0
output:
income_requirements: true

- name: Below yearly threshold after investment deductions
period: 2025
input:
age: 30
total_income: 12000
private_pension_income: 2000
savings_interest_income: 1000
dividend_income: 500 # Leaving £8,500 yearly < £9,516 threshold
property_income: 0
output:
income_requirements: false

- name: Exactly at 21+ yearly threshold after deductions
period: 2025
input:
age: 30
total_income: 12516
private_pension_income: 2000 # Leaving exactly £9,516 yearly
savings_interest_income: 0
dividend_income: 0
property_income: 0
output:
income_requirements: true

- name: Under 18 below yearly threshold
period: 2025
input:
age: 16
total_income: 5000 # Below £5,324 yearly threshold
private_pension_income: 0
savings_interest_income: 0
dividend_income: 0
property_income: 0
output:
income_requirements: false

- name: Age 18-20 with investment reducing below yearly threshold
period: 2025
input:
age: 19
total_income: 8000
private_pension_income: 0
savings_interest_income: 1000 # Leaving £7,000 < £7,152 yearly threshold
dividend_income: 0
property_income: 0
output:
income_requirements: false

- name: All investment income
period: 2025
input:
age: 25
total_income: 15000
private_pension_income: 5000
savings_interest_income: 4000
dividend_income: 3000
property_income: 3000 # All income is investment = £0 eligible
output:
income_requirements: false

- name: At maximum threshold
period: 2025
input:
age: 35
total_income: 1000000 # At assumed maximum threshold
private_pension_income: 0
savings_interest_income: 0
dividend_income: 0
property_income: 0
output:
income_requirements: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
- name: Family eligible for 15 hours - all conditions met
period: 2025
input:
free_childcare_15_hours: true
income_requirements: true
work_eligibility_childcare: true
output:
free_childcare_15_hours_eligibility: true

- name: Family eligible for 30 hours - all conditions met
period: 2025
input:
free_childcare_30_hours: true
income_requirements: true
work_eligibility_childcare: true
output:
free_childcare_30_hours_eligibility: true

- name: Family fails age test for 15 hours
period: 2025
input:
free_childcare_15_hours: false
income_requirements: true
work_eligibility_childcare: true
output:
free_childcare_15_hours_eligibility: false

- name: Family fails age test for 30 hours
period: 2025
input:
free_childcare_30_hours: false
income_requirements: true
work_eligibility_childcare: true
output:
free_childcare_30_hours_eligibility: false

- name: Family fails income test for 15 hours
period: 2025
input:
free_childcare_15_hours: true
income_requirements: false
work_eligibility_childcare: true
output:
free_childcare_15_hours_eligibility: false

- name: Family fails income test for 30 hours
period: 2025
input:
free_childcare_30_hours: true
income_requirements: false
work_eligibility_childcare: true
output:
free_childcare_30_hours_eligibility: false

- name: Family fails work test for 15 hours
period: 2025
input:
free_childcare_15_hours: true
income_requirements: true
work_eligibility_childcare: false
output:
free_childcare_15_hours_eligibility: false

- name: Family fails work test for 30 hours
period: 2025
input:
free_childcare_30_hours: true
income_requirements: true
work_eligibility_childcare: false
output:
free_childcare_30_hours_eligibility: false

- name: Family fails all tests for 15 hours
period: 2025
input:
free_childcare_15_hours: false
income_requirements: false
work_eligibility_childcare: false
output:
free_childcare_15_hours_eligibility: false

- name: Family fails all tests for 30 hours
period: 2025
input:
free_childcare_30_hours: false
income_requirements: false
work_eligibility_childcare: false
output:
free_childcare_30_hours_eligibility: false
Loading

0 comments on commit 4a5cad5

Please sign in to comment.