diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb..059a79c00 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: minor + changes: + added: + - Alberta caregiver amount. diff --git a/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/age_eligibility/lower.yaml b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/age_eligibility/lower.yaml new file mode 100644 index 000000000..102e35554 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/age_eligibility/lower.yaml @@ -0,0 +1,14 @@ +description: Alberta limits its caregiver amount to disabled adult dependants above this age. +values: + 2022-01-01: 18 +metadata: + unit: year + period: year + label: Alberta caregiver credit adult dependant lower age eligibility + reference: + - title: Province of Alberta - Alberta Child and Family Benefit (2022) + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-22e.pdf#page=1 + - title: Province of Alberta - Alberta Child and Family Benefit (2023) + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-23e.pdf#page=1 + - title: Province of Alberta - Alberta Personal Income Tax Act, RSA 2000, Division 3 (b) (ii) (D) + href: https://www.canlii.org/en/ab/laws/stat/rsa-2000-c-a-30/latest/rsa-2000-c-a-30.html diff --git a/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/age_eligibility/upper.yaml b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/age_eligibility/upper.yaml new file mode 100644 index 000000000..1272df9fa --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/age_eligibility/upper.yaml @@ -0,0 +1,14 @@ +description: Alberta limits its caregiver amount to non-disabled adult dependants above this age. +values: + 2022-01-01: 65 +metadata: + unit: year + period: year + label: Alberta caregiver credit adult dependant higher age eligibility + reference: + - title: Province of Alberta - Alberta Child and Family Benefit (2022) + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-22e.pdf#page=1 + - title: Province of Alberta - Alberta Child and Family Benefit (2023) + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-23e.pdf#page=1 + - title: Province of Alberta - Alberta Personal Income Tax Act, RSA 2000, Division 3 (c) + href: https://www.canlii.org/en/ab/laws/stat/rsa-2000-c-a-30/latest/rsa-2000-c-a-30.html diff --git a/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/lower_dependant_income_threshold.yaml b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/lower_dependant_income_threshold.yaml new file mode 100644 index 000000000..cc52516dc --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/lower_dependant_income_threshold.yaml @@ -0,0 +1,15 @@ +description: Alberta limits the caregiver amount to dependants with income below this threshold. +values: + 2022-01-01: 17_826 + 2023-01-01: 19_331 +metadata: + unit: currency-CAD + period: year + label: Alberta caregiver amount dependent lower income threshold + reference: + - title: Government of Canada - Alberta Caregiver Amount (2022) + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-22e.pdf#page=1 + - title: Government of Canada - Alberta Caregiver Amount (2023) + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-23e.pdf#page=1 + - title: Province of Alberta - Alberta Personal Income Tax Act, RSA 2000, Division 3 (b) (iv) + href: https://www.canlii.org/en/ab/laws/stat/rsa-2000-c-a-30/latest/rsa-2000-c-a-30.html diff --git a/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/max_amount.yaml b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/max_amount.yaml new file mode 100644 index 000000000..27ff9b6be --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/max_amount.yaml @@ -0,0 +1,15 @@ +description: Alberta provides the following maximum caregiver amount. +values: + 2022-01-01: 11_212 + 2023-01-01: 12_158 +metadata: + unit: currency-CAD + period: year + label: Alberta caregiver amount max amount + reference: + - title: Government of Canada - Alberta Caregiver Amount (2022) + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-22e.pdf#page=1 + - title: Government of Canada - Alberta Caregiver Amount (2023) + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-23e.pdf#page=1 + - title: Province of Alberta - Alberta Personal Income Tax Act, RSA 2000, Division 3 (c) + href: https://www.canlii.org/en/ab/laws/stat/rsa-2000-c-a-30/latest/rsa-2000-c-a-30.html diff --git a/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/upper_dependant_income_threshold.yaml b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/upper_dependant_income_threshold.yaml new file mode 100644 index 000000000..08c1065cb --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/credits_return/upper_dependant_income_threshold.yaml @@ -0,0 +1,16 @@ +description: Alberta limits the caregiver amount for dependants above this income threshold. +values: + 2022-01-01: 29_038 + 2023-01-01: 31_489 +metadata: + unit: currency-CAD + period: year + label: Alberta caregiver amount upper dependant income threshold + reference: + - title: Government of Canada - Alberta Caregiver Amount (2022) + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-22e.pdf#page=1 + - title: Government of Canada - Alberta Caregiver Amount (2023) + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-23e.pdf#page=1 + - title: Province of Alberta - Alberta Personal Income Tax Act, RSA 2000, Division 3 (d) (iii) + href: https://www.canlii.org/en/ab/laws/stat/rsa-2000-c-a-30/latest/rsa-2000-c-a-30.html + diff --git a/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/non_refundable.yaml b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/non_refundable.yaml index 2583dbae4..8f62e8a5e 100644 --- a/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/non_refundable.yaml +++ b/policyengine_canada/parameters/gov/provinces/ab/tax/income/credits/non_refundable.yaml @@ -6,6 +6,7 @@ values: - ab_pension_credit - ab_spouse_and_common_law_partner_amount_credit - ab_basic_personal_amount + - ab_caregiver_amount metadata: unit: list diff --git a/policyengine_canada/tests/gov/provinces/ab/tax/income/credits/credits_return/ab_caregiver_amount.yaml b/policyengine_canada/tests/gov/provinces/ab/tax/income/credits/credits_return/ab_caregiver_amount.yaml new file mode 100644 index 000000000..8c525d005 --- /dev/null +++ b/policyengine_canada/tests/gov/provinces/ab/tax/income/credits/credits_return/ab_caregiver_amount.yaml @@ -0,0 +1,52 @@ +- name: Dependant Over 18 with net income between 19,331 and 31,489 + period: 2023 + input: + age: 19 + is_disabled: true + cohabitating_dependant: true + individual_net_income: 20_000 + province_code: AB + output: + ab_caregiver_amount: 11_489 + +- name: Dependant Over 18 with net income below 19,331 + period: 2023 + input: + age: 19 + is_disabled: true + cohabitating_dependant: true + individual_net_income: 10_000 + province_code: AB + output: + ab_caregiver_amount: 12_158 + +- name: Dependant Over 65 with net income below 19,331 + period: 2023 + input: + age: 66 + cohabitating_dependant: true + individual_net_income: 10_000 + province_code: AB + output: + ab_caregiver_amount: 12_158 + +- name: Dependant Over 65 with net income between 19,331 and 31,489 + period: 2023 + input: + age: 67 + cohabitating_dependant: true + individual_net_income: 20_000 + province_code: AB + output: + ab_caregiver_amount: 11_489 + +- name: Dependant Over 65 with net income over 31,489 + period: 2023 + input: + age: 25 + is_disabled: true + cohabitating_dependant: false + individual_net_income: 40_000 + province_code: AB + output: + ab_caregiver_amount: 0 diff --git a/policyengine_canada/tests/gov/provinces/ab/tax/income/credits/credits_return/ab_caregiver_amount_eligible.yaml b/policyengine_canada/tests/gov/provinces/ab/tax/income/credits/credits_return/ab_caregiver_amount_eligible.yaml new file mode 100644 index 000000000..9cdecba7d --- /dev/null +++ b/policyengine_canada/tests/gov/provinces/ab/tax/income/credits/credits_return/ab_caregiver_amount_eligible.yaml @@ -0,0 +1,32 @@ +- name: Dependant Over 18 with net income between 19,331 and 31,489 + period: 2023 + input: + age: 19 + is_disabled: true + cohabitating_dependant: true + individual_net_income: 20_000 + province_code: AB + output: + ab_caregiver_amount_eligible: true + +- name: Dependant Over 18 with net income below 19,331 + period: 2023 + input: + age: 19 + is_disabled: true + cohabitating_dependant: true + individual_net_income: 10_000 + province_code: AB + output: + ab_caregiver_amount_eligible: true + +- name: Dependant Over 65 with net income over 31,489 + period: 2023 + input: + age: 25 + is_disabled: true + cohabitating_dependant: false + individual_net_income: 40_000 + province_code: AB + output: + ab_caregiver_amount_eligible: false diff --git a/policyengine_canada/variables/gov/provinces/ab/tax/credits_return/ab_caregiver_amount.py b/policyengine_canada/variables/gov/provinces/ab/tax/credits_return/ab_caregiver_amount.py new file mode 100644 index 000000000..2e052ffc1 --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/ab/tax/credits_return/ab_caregiver_amount.py @@ -0,0 +1,34 @@ +from policyengine_canada.model_api import * + + +class ab_caregiver_amount(Variable): + value_type = float + entity = Person + label = "Alberta caregiver amount" + unit = CAD + definition_period = YEAR + reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-23e.pdf" + defined_for = "ab_caregiver_amount_eligible" + + def formula(person, period, parameters): + p = parameters( + period + ).gov.provinces.ab.tax.income.credits.credits_return + + # Whether the person is eligible or not (income based) + + net_income = max_( + 0, + p.upper_dependant_income_threshold + - person("ab_dependant_net_income", period), + ) + + cohabitating_dependant = person("cohabitating_dependant", period) + + caregiver_amount = ( + net_income + * person("ab_caregiver_amount_eligible", period) + * cohabitating_dependant + ) + + return min_(caregiver_amount, p.max_amount) diff --git a/policyengine_canada/variables/gov/provinces/ab/tax/credits_return/ab_caregiver_amount_eligible.py b/policyengine_canada/variables/gov/provinces/ab/tax/credits_return/ab_caregiver_amount_eligible.py new file mode 100644 index 000000000..cc9348875 --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/ab/tax/credits_return/ab_caregiver_amount_eligible.py @@ -0,0 +1,19 @@ +from policyengine_canada.model_api import * + + +class ab_caregiver_amount_eligible(Variable): + value_type = bool + entity = Person + label = "Eligible person for the Alberta caregiver amount" + definition_period = YEAR + reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-23e.pdf" + defined_for = ProvinceCode.AB + + def formula(person, period, parameters): + p = parameters( + period + ).gov.provinces.ab.tax.income.credits.credits_return + + dependant_net_income = person("ab_dependant_net_income", period) + + return dependant_net_income <= p.upper_dependant_income_threshold diff --git a/policyengine_canada/variables/gov/provinces/ab/tax/credits_return/ab_dependant_net_income.py b/policyengine_canada/variables/gov/provinces/ab/tax/credits_return/ab_dependant_net_income.py new file mode 100644 index 000000000..f3dafeb9f --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/ab/tax/credits_return/ab_dependant_net_income.py @@ -0,0 +1,29 @@ +from policyengine_canada.model_api import * + + +class ab_dependant_net_income(Variable): + value_type = float + entity = Person + label = "Alberta caregiver amount dependant net income" + unit = CAD + definition_period = YEAR + reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-23e.pdf" + defined_for = ProvinceCode.AB + + def formula(person, period, parameters): + p = parameters( + period + ).gov.provinces.ab.tax.income.credits.credits_return + + # Whether the person is dependant (65 or older/ disabled) + age = person("age", period) + disabled = person("is_disabled", period) + is_dependant = person("is_dependant", period) + eligible_dependant = (age >= p.age_eligibility.upper) | ( + age >= p.age_eligibility.lower & disabled + ) & is_dependant + + income = person("individual_net_income", period) + dependant_net_income = income * eligible_dependant + + return dependant_net_income diff --git a/policyengine_canada/variables/household/cohabitating_dependant.py b/policyengine_canada/variables/household/cohabitating_dependant.py new file mode 100644 index 000000000..c7edf19ae --- /dev/null +++ b/policyengine_canada/variables/household/cohabitating_dependant.py @@ -0,0 +1,10 @@ +from policyengine_canada.model_api import * + + +class cohabitating_dependant(Variable): + value_type = bool + entity = Person + label = "Dependant living with the head of household" + documentation = "Whether your spouse's or common-law partner's dependant lives with you or not." + definition_period = YEAR + reference = "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ab/td1ab-23e.pdf#page=1"