diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb..0fe9bc99e 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: minor + changes: + added: + - Manitoba tuition and education amount tax credit. diff --git a/policyengine_canada/parameters/gov/provinces/mb/tax/income/credits/tuition_amount/amount/full_time_or_disabled.yaml b/policyengine_canada/parameters/gov/provinces/mb/tax/income/credits/tuition_amount/amount/full_time_or_disabled.yaml new file mode 100644 index 000000000..9aac06e19 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/mb/tax/income/credits/tuition_amount/amount/full_time_or_disabled.yaml @@ -0,0 +1,11 @@ +description: Manitoba extends this tuition amount to full-time or disabled part-time students at educational institutions. +values: + 2022-01-01: 4_800 # 400/month * 12 +metadata: + unit: currency-CAD + label: Manitoba tuition credit full-time or disabled part-time student amount + reference: + - title: Government of Canada - Manitoba Information Guide + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1mb/td1mb-23e.pdf#page=1 + - title: Government of Canada - Manitoba individual income tax C.C.S.M C.l.10 Division II Section4.6(14)(B)(a) + href: https://web2.gov.mb.ca/laws/statutes/archive/i010(2020-11-05)e.php#4.6(14) diff --git a/policyengine_canada/parameters/gov/provinces/mb/tax/income/credits/tuition_amount/amount/part_time/non_disabled.yaml b/policyengine_canada/parameters/gov/provinces/mb/tax/income/credits/tuition_amount/amount/part_time/non_disabled.yaml new file mode 100644 index 000000000..84e317441 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/mb/tax/income/credits/tuition_amount/amount/part_time/non_disabled.yaml @@ -0,0 +1,11 @@ +description: Manitoba extends this tuition amount to non-disabled part-time students. +values: + 2022-01-01: 1_440 # 120/month * 12 +metadata: + unit: currency-CAD + label: Manitoba tuition credit non-disabled part-time student amount + reference: + - title: Government of Canada - Manitoba Information Guide + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1mb/td1mb-23e.pdf#page=1 + - title: Government of Canada - Manitoba individual income tax C.C.S.M C.l.10 Division II Section4.6(14)(B)(b) + href: https://web2.gov.mb.ca/laws/statutes/archive/i010(2020-11-05)e.php#4.6(14) diff --git a/policyengine_canada/parameters/gov/provinces/mb/tax/income/credits/tuition_amount/tuition_threshold.yaml b/policyengine_canada/parameters/gov/provinces/mb/tax/income/credits/tuition_amount/tuition_threshold.yaml new file mode 100644 index 000000000..7833b4de0 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/mb/tax/income/credits/tuition_amount/tuition_threshold.yaml @@ -0,0 +1,11 @@ +description: Manitoba limits the tuition amount credit to students who have paid more than this amount of tuition. +values: + 2022-01-01: 100 +metadata: + unit: currency-CAD + label: Manitoba tuition amount credit expense eligibility + reference: + - title: Government of Canada - Manitoba Information Guide + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1mb/td1mb-23e.pdf#page=1 + - title: Income Tax Folio S1-F2-C2, Tuition Tax Credit - Educational institutions in Canada, General comments(2.3) + href: https://www.canada.ca/en/revenue-agency/services/tax/technical-information/income-tax/income-tax-folios-index/series-1-individuals/folio-2-students/income-tax-folio-s1-f2-c2-tuition-tax-credit.html#toc4 diff --git a/policyengine_canada/tests/gov/provinces/mb/tax/income/credits/tuition_amount/mb_tuition_amount_credit.yaml b/policyengine_canada/tests/gov/provinces/mb/tax/income/credits/tuition_amount/mb_tuition_amount_credit.yaml new file mode 100644 index 000000000..5dfdad735 --- /dev/null +++ b/policyengine_canada/tests/gov/provinces/mb/tax/income/credits/tuition_amount/mb_tuition_amount_credit.yaml @@ -0,0 +1,18 @@ +- name: Manitoba full time students credit + period: 2023 + input: + mb_tuition_amount_credit_eligible: true + is_full_time_student: true + tuition_expenses: 20_000 + output: + mb_tuition_amount_credit: 7_800 # 20_000 * 0.15 + 4_800 = 24_800 + +- name: Manitoba part time non-disabled students credit + period: 2023 + input: + mb_tuition_amount_credit_eligible: true + is_full_time_student: false + is_disabled: false + tuition_expenses: 20_000 + output: + mb_tuition_amount_credit: 4_440 # 20_000 * 0.15 + 1_440 = 21_440 diff --git a/policyengine_canada/tests/gov/provinces/mb/tax/income/credits/tuition_amount/mb_tuition_amount_credit_eligible.yaml b/policyengine_canada/tests/gov/provinces/mb/tax/income/credits/tuition_amount/mb_tuition_amount_credit_eligible.yaml new file mode 100644 index 000000000..8b3c4ecd6 --- /dev/null +++ b/policyengine_canada/tests/gov/provinces/mb/tax/income/credits/tuition_amount/mb_tuition_amount_credit_eligible.yaml @@ -0,0 +1,15 @@ +- name: Manitoba student with ineligible tuition amount + period: 2023 + input: + province_code: MB + tuition_expenses: 50 + output: + mb_tuition_amount_credit_eligible: 0 + +- name: Manitoba student with eligible tuition amount + period: 2023 + input: + province_code: MB + tuition_expenses: 20_000 + output: + mb_tuition_amount_credit_eligible: 1 diff --git a/policyengine_canada/variables/gov/provinces/mb/tax/income/credits/tuition_amount/mb_tuition_amount_credit.py b/policyengine_canada/variables/gov/provinces/mb/tax/income/credits/tuition_amount/mb_tuition_amount_credit.py new file mode 100644 index 000000000..519c551ba --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/mb/tax/income/credits/tuition_amount/mb_tuition_amount_credit.py @@ -0,0 +1,36 @@ +from policyengine_canada.model_api import * + + +class mb_tuition_amount_credit(Variable): + value_type = float + entity = Person + label = "Manitoba tuition amount credit" + definition_period = YEAR + defined_for = "mb_tuition_amount_credit_eligible" + + def formula(person, period, parameters): + p = parameters( + period + ).gov.provinces.mb.tax.income.credits.tuition_amount + + tuition = person("tuition_expenses", period) + + rate = parameters(period).gov.cra.tax.income.income_tax_schedule.rates[ + 0 + ] + + tuition_rate = tuition * rate + + # check if full-time or disabled student + full_time_student = person("is_full_time_student", period) + + disabled_student = person("is_disabled", period) + + full_time_or_disabled_student = full_time_student | disabled_student + + tuition_addition = ( + full_time_or_disabled_student * p.amount.full_time_or_disabled + + ~full_time_student * p.amount.part_time.non_disabled + ) + + return tuition_rate + tuition_addition diff --git a/policyengine_canada/variables/gov/provinces/mb/tax/income/credits/tuition_amount/mb_tuition_amount_credit_eligible.py b/policyengine_canada/variables/gov/provinces/mb/tax/income/credits/tuition_amount/mb_tuition_amount_credit_eligible.py new file mode 100644 index 000000000..d953db712 --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/mb/tax/income/credits/tuition_amount/mb_tuition_amount_credit_eligible.py @@ -0,0 +1,17 @@ +from policyengine_canada.model_api import * + + +class mb_tuition_amount_credit_eligible(Variable): + value_type = bool + entity = Person + label = "Manitoba tuition amount credit" + definition_period = YEAR + defined_for = ProvinceCode.MB + + def formula(person, period, parameters): + p = parameters( + period + ).gov.provinces.mb.tax.income.credits.tuition_amount + + tuition = person("tuition_expenses", period) + return tuition > p.tuition_threshold