diff --git a/changelog.d/tax-free-childcare-qualifying-provider-checks.fixed.md b/changelog.d/tax-free-childcare-qualifying-provider-checks.fixed.md new file mode 100644 index 000000000..62b02b361 --- /dev/null +++ b/changelog.d/tax-free-childcare-qualifying-provider-checks.fixed.md @@ -0,0 +1 @@ +Tax-Free Childcare now requires childcare expenses to be paid to a qualifying provider when that input is supplied. diff --git a/policyengine_uk/tests/policy/baseline/gov/hmrc/tax_free_childcare/tax_free_childcare.yaml b/policyengine_uk/tests/policy/baseline/gov/hmrc/tax_free_childcare/tax_free_childcare.yaml index 0ffd2b1ae..6e45a568a 100644 --- a/policyengine_uk/tests/policy/baseline/gov/hmrc/tax_free_childcare/tax_free_childcare.yaml +++ b/policyengine_uk/tests/policy/baseline/gov/hmrc/tax_free_childcare/tax_free_childcare.yaml @@ -67,4 +67,15 @@ is_disabled_for_benefits: false childcare_expenses: 1_000 output: - tax_free_childcare: 250 \ No newline at end of file + tax_free_childcare: 250 + +- name: Non-qualifying provider gets no support + period: 2025 + input: + tax_free_childcare_eligible: true + is_parent: false + is_disabled_for_benefits: false + childcare_expenses: 10_000 + tax_free_childcare_uses_qualifying_provider: false + output: + tax_free_childcare: 0 diff --git a/policyengine_uk/tests/policy/baseline/gov/hmrc/tax_free_childcare/tax_free_childcare_eligibility.yaml b/policyengine_uk/tests/policy/baseline/gov/hmrc/tax_free_childcare/tax_free_childcare_eligibility.yaml index d6c77232a..2a7857504 100644 --- a/policyengine_uk/tests/policy/baseline/gov/hmrc/tax_free_childcare/tax_free_childcare_eligibility.yaml +++ b/policyengine_uk/tests/policy/baseline/gov/hmrc/tax_free_childcare/tax_free_childcare_eligibility.yaml @@ -49,4 +49,3 @@ tax_free_childcare_work_condition: false output: tax_free_childcare_eligible: false - diff --git a/policyengine_uk/variables/gov/hmrc/tax_free_childcare/tax_free_childcare.py b/policyengine_uk/variables/gov/hmrc/tax_free_childcare/tax_free_childcare.py index 4856717ab..6068952e7 100644 --- a/policyengine_uk/variables/gov/hmrc/tax_free_childcare/tax_free_childcare.py +++ b/policyengine_uk/variables/gov/hmrc/tax_free_childcare/tax_free_childcare.py @@ -24,9 +24,13 @@ def formula(person, period, parameters): # Get childcare expenses childcare_expense = person("childcare_expenses", period) + uses_qualifying_provider = person( + "tax_free_childcare_uses_qualifying_provider", period + ) + eligible_childcare_expense = childcare_expense * uses_qualifying_provider # Calculate contribution using rate from parameters - contribution = (childcare_expense * p.rate) / (1 - p.rate) + contribution = (eligible_childcare_expense * p.rate) / (1 - p.rate) # Cap the contribution at the maximum amounts max_amount = ( diff --git a/policyengine_uk/variables/input/consumption/tax_free_childcare_uses_qualifying_provider.py b/policyengine_uk/variables/input/consumption/tax_free_childcare_uses_qualifying_provider.py new file mode 100644 index 000000000..8b49ecf0d --- /dev/null +++ b/policyengine_uk/variables/input/consumption/tax_free_childcare_uses_qualifying_provider.py @@ -0,0 +1,13 @@ +from policyengine_uk.model_api import * + + +class tax_free_childcare_uses_qualifying_provider(Variable): + label = "Tax-Free Childcare uses a qualifying childcare provider" + documentation = ( + "Whether this person's childcare expenses are paid to a qualifying " + "childcare provider for Tax-Free Childcare purposes." + ) + entity = Person + definition_period = YEAR + value_type = bool + default_value = True