diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb..4c4f03192 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: minor + changes: + added: + - Manitoba spouse and common-law partner amount. diff --git a/policyengine_canada/parameters/gov/provinces/mb/tax/income/credits/spouse_or_common_law_partner_amount/base.yaml b/policyengine_canada/parameters/gov/provinces/mb/tax/income/credits/spouse_or_common_law_partner_amount/base.yaml new file mode 100644 index 000000000..d9462a729 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/mb/tax/income/credits/spouse_or_common_law_partner_amount/base.yaml @@ -0,0 +1,14 @@ +description: Manitoba provides this spouse and common-law partner amount, equivalent to the spouses basic personal amount. +values: + 2022-01-01: 9_134 +metadata: + unit: currency-CAD + period: year + label: Manitoba spouse and common-law partner credit amount + reference: + - title: Government of Canada - 2023 Manitoba spouse and commonlaw partner amount credit + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1mb/td1mb-23e.pdf#page=1 + - title: Government of Canada - 2022 Manitoba spouse and commonlaw partner amount credit + href: https://www.gov.mb.ca/finance/personal/pcredits.html#nrtc + - title: Government of Canada - Manitoba individual income tax C.C.S.M C.l.10 Division II Section4.6(5)(i) + href: https://web2.gov.mb.ca/laws/statutes/archive/i010(2020-11-05)e.php#4.6(5) diff --git a/policyengine_canada/tests/gov/provinces/mb/tax/income/credits/spouse_and_common_law_partner_amount/mb_spouse_credit_amount.yaml b/policyengine_canada/tests/gov/provinces/mb/tax/income/credits/spouse_and_common_law_partner_amount/mb_spouse_credit_amount.yaml new file mode 100644 index 000000000..c2d530d92 --- /dev/null +++ b/policyengine_canada/tests/gov/provinces/mb/tax/income/credits/spouse_and_common_law_partner_amount/mb_spouse_credit_amount.yaml @@ -0,0 +1,15 @@ +- name: Eligible income spouse lived with and being taken care of household's head + period: 2023 + input: + mb_spouse_credit_eligible: true + spouse_income: 5_000 + output: + mb_spouse_credit_amount: 4_134 + +- name: Ineligible income spouse lived with and being taken care of household's head + period: 2023 + input: + mb_spouse_credit_eligible: true + spouse_income: 10_000 + output: + mb_spouse_credit_amount: 0 diff --git a/policyengine_canada/tests/gov/provinces/mb/tax/income/credits/spouse_and_common_law_partner_amount/mb_spouse_credit_eligible.yaml b/policyengine_canada/tests/gov/provinces/mb/tax/income/credits/spouse_and_common_law_partner_amount/mb_spouse_credit_eligible.yaml new file mode 100644 index 000000000..90dcfbcbc --- /dev/null +++ b/policyengine_canada/tests/gov/provinces/mb/tax/income/credits/spouse_and_common_law_partner_amount/mb_spouse_credit_eligible.yaml @@ -0,0 +1,26 @@ +- name: Household's head is taking care of and living together with spouse + period: 2023 + input: + province_code: MB + is_caregiver: true + cohabitating_spouses: true + output: + mb_spouse_credit_eligible: true + +- name: Household's head is taking care of but not living together with spouse + period: 2023 + input: + province_code: MB + cohabitating_spouses: false + is_caregiver: true + output: + mb_spouse_credit_eligible: false + +- name: Household's head is not taking care of but living together with spouse + period: 2023 + input: + province_code: MB + cohabitating_spouses: true + is_caregiver: false + output: + mb_spouse_credit_eligible: false diff --git a/policyengine_canada/variables/gov/provinces/mb/tax/income/credits/spouse_and_common_law_partner_amount/mb_spouse_credit_amount.py b/policyengine_canada/variables/gov/provinces/mb/tax/income/credits/spouse_and_common_law_partner_amount/mb_spouse_credit_amount.py new file mode 100644 index 000000000..f2542ac28 --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/mb/tax/income/credits/spouse_and_common_law_partner_amount/mb_spouse_credit_amount.py @@ -0,0 +1,19 @@ +from policyengine_canada.model_api import * + + +class mb_spouse_credit_amount(Variable): + value_type = float + entity = Household + label = "Manitoba spouse and common-law partner amoount" + definition_period = YEAR + defined_for = "mb_spouse_credit_eligible" + + def formula(household, period, parameters): + person = household.members + p = parameters( + period + ).gov.provinces.mb.tax.income.credits.spouse_or_common_law_partner_amount + + spouse_income = person("spouse_income", period) + + return max_(0, p.base - spouse_income) diff --git a/policyengine_canada/variables/gov/provinces/mb/tax/income/credits/spouse_and_common_law_partner_amount/mb_spouse_credit_eligible.py b/policyengine_canada/variables/gov/provinces/mb/tax/income/credits/spouse_and_common_law_partner_amount/mb_spouse_credit_eligible.py new file mode 100644 index 000000000..c1f186d89 --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/mb/tax/income/credits/spouse_and_common_law_partner_amount/mb_spouse_credit_eligible.py @@ -0,0 +1,14 @@ +from policyengine_canada.model_api import * + + +class mb_spouse_credit_eligible(Variable): + value_type = bool + entity = Household + label = "Manitoba head eligiblility for recieving spouse's tax credit" + definition_period = YEAR + defined_for = ProvinceCode.MB + + def formula(household, period, parameters): + person = household.members + is_caregiver = person("is_caregiver", period) + return is_caregiver * household("cohabitating_spouses", period) diff --git a/policyengine_canada/variables/household/person/cohabitating_spouses.py b/policyengine_canada/variables/household/person/cohabitating_spouses.py new file mode 100644 index 000000000..ffb2582f9 --- /dev/null +++ b/policyengine_canada/variables/household/person/cohabitating_spouses.py @@ -0,0 +1,8 @@ +from policyengine_canada.model_api import * + + +class cohabitating_spouses(Variable): + value_type = bool + entity = Household + label = "Cohabitating spouses" + definition_period = YEAR diff --git a/policyengine_canada/variables/household/person/is_caregiver.py b/policyengine_canada/variables/household/person/is_caregiver.py new file mode 100644 index 000000000..e93e2a867 --- /dev/null +++ b/policyengine_canada/variables/household/person/is_caregiver.py @@ -0,0 +1,8 @@ +from policyengine_canada.model_api import * + + +class is_caregiver(Variable): + value_type = bool + entity = Person + label = "Tax filer is the primary caregiver" + definition_period = YEAR