diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb..02ebb8aec 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: minor + changes: + added: + - Nova Scotia spouse and common law partner amount. diff --git a/policyengine_canada/parameters/gov/provinces/ns/tax/income/credits/spouse_and_common_law_partner_amount/base.yaml b/policyengine_canada/parameters/gov/provinces/ns/tax/income/credits/spouse_and_common_law_partner_amount/base.yaml new file mode 100644 index 000000000..63072d79d --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/ns/tax/income/credits/spouse_and_common_law_partner_amount/base.yaml @@ -0,0 +1,14 @@ +description: Nova Scotia provides this spouse and common-law partner amount base credit amount. +values: + 2022-01-01: 9_329 +metadata: + unit: currency-CAD + period: year + label: Nova Scotia spouse and common-law partner amount credit base + reference: + - title: 2022 Nova Scotia Personal Tax Credits Return + href: https://hr.acadiau.ca/files/sites/hr/Payroll/Pensions%20&%20Benefits/NS_TD1_2022.pdf#page=1 + - title: 2022 Worksheet NS428 + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5003-c/5003-c-22e.pdf#page=1 + - title: Nova Scotia income tax act - subdivision c - Deduction for employment out of Canada - 10C + href: https://nslegislature.ca/sites/default/files/legc/statutes/income%20tax.pdf#page=24 diff --git a/policyengine_canada/parameters/gov/provinces/ns/tax/income/credits/spouse_and_common_law_partner_amount/cap.yaml b/policyengine_canada/parameters/gov/provinces/ns/tax/income/credits/spouse_and_common_law_partner_amount/cap.yaml new file mode 100644 index 000000000..265c0d039 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/ns/tax/income/credits/spouse_and_common_law_partner_amount/cap.yaml @@ -0,0 +1,15 @@ +description: Nova Scotia caps the spouse and common-law partner amount credit at this amount. +values: + 2023-01-01: 8_481 +metadata: + unit: currency-CAD + period: year + label: Nova Scotia spouse and common-law partner amount credit cap + reference: + - title: 2022 Nova Scotia Personal Tax Credits Return + href: https://hr.acadiau.ca/files/sites/hr/Payroll/Pensions%20&%20Benefits/NS_TD1_2022.pdf#page=1 + - title: 2022 Worksheet NS428 + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5003-c/5003-c-22e.pdf#page=1 + # The legal code does not specify the maximum credit amount + - title: Nova Scotia income tax act - subdivision c - Deduction for employment out of Canada - 10C + href: https://nslegislature.ca/sites/default/files/legc/statutes/income%20tax.pdf#page=24 diff --git a/policyengine_canada/tests/gov/provinces/ns/tax/income/credits/spouse_and_common_law_partner_amount_credit/integration.yaml b/policyengine_canada/tests/gov/provinces/ns/tax/income/credits/spouse_and_common_law_partner_amount_credit/integration.yaml new file mode 100644 index 000000000..a383db26d --- /dev/null +++ b/policyengine_canada/tests/gov/provinces/ns/tax/income/credits/spouse_and_common_law_partner_amount_credit/integration.yaml @@ -0,0 +1,56 @@ +- name: Integration - spouse with income <= 848 + period: 2023 + absolute_error_margin: 0.01 + input: + people: + parent1: + age: 40 + individual_net_income: 20_000 + parent2: + age: 39 + is_spouse: true + individual_net_income: 0 + household: + members: [parent1, parent2] + province_code: NS + is_married: true + output: + ns_spouse_and_common_law_partner_amount_credit: 8_481 + +- name: Integration - spouse with 848<= income <= 9329 + period: 2023 + absolute_error_margin: 0.01 + input: + people: + parent1: + age: 40 + individual_net_income: 20_000 + parent2: + age: 39 + is_spouse: true + individual_net_income: 849 + household: + members: [parent1, parent2] + province_code: NS + is_married: true + output: + ns_spouse_and_common_law_partner_amount_credit: 8_480 + +- name: Integration - spouse with income >= 9329 + period: 2023 + absolute_error_margin: 0.01 + input: + people: + parent1: + age: 40 + individual_net_income: 20_000 + parent2: + age: 39 + is_spouse: true + individual_net_income: 9_400 + household: + members: [parent1, parent2] + province_code: NS + is_married: true + output: + ns_spouse_and_common_law_partner_amount_credit: 0 diff --git a/policyengine_canada/tests/gov/provinces/ns/tax/income/credits/spouse_and_common_law_partner_amount_credit/ns_spouse_and_common_law_partner_amount_credit.yaml b/policyengine_canada/tests/gov/provinces/ns/tax/income/credits/spouse_and_common_law_partner_amount_credit/ns_spouse_and_common_law_partner_amount_credit.yaml new file mode 100644 index 000000000..2c3c04a23 --- /dev/null +++ b/policyengine_canada/tests/gov/provinces/ns/tax/income/credits/spouse_and_common_law_partner_amount_credit/ns_spouse_and_common_law_partner_amount_credit.yaml @@ -0,0 +1,117 @@ +- name: Househod with no spouse income + period: 2023 + input: + people: + head: + spouse_income: 0 + spouse: + spouse_income: 0 + household: + members: [head, spouse] + province_code: NS + is_married: true + output: + ns_spouse_and_common_law_partner_amount_credit: 8_481 + +- name: Not married are not eligible for an amount + period: 2023 + input: + people: + head: + spouse_income: 0 + household: + members: [head] + province_code: NS + is_married: false + output: + ns_spouse_and_common_law_partner_amount_credit: 0 + +- name: House hold with spouse income lower than 848 + period: 2023 + input: + people: + spouse: + spouse_income: 847 + head: + spouse_income: 0 + household: + members: [head, spouse] + province_code: NS + is_married: true + output: + ns_spouse_and_common_law_partner_amount_credit: 8_481 + +- name: House hold with spouse income between (848, 9_329) + period: 2023 + input: + people: + spouse: + spouse_income: 849 + head: + spouse_income: 0 + household: + members: [head, spouse] + province_code: NS + is_married: true + output: + ns_spouse_and_common_law_partner_amount_credit: 8_480 + +- name: House hold with spouse income between (848, 9_329) + period: 2023 + input: + people: + spouse: + spouse_income: 9_328 + head: + spouse_income: 0 + household: + members: [head, spouse] + province_code: NS + is_married: true + output: + ns_spouse_and_common_law_partner_amount_credit: 1 + +- name: House hold with spouse income between (848, 9_329) 2 + period: 2023 + input: + people: + spouse: + spouse_income: 9_000 + head: + spouse_income: 0 + household: + members: [head, spouse] + province_code: NS + is_married: true + output: + ns_spouse_and_common_law_partner_amount_credit: 329 + +- name: House hold with spouse income is 9_329 + period: 2023 + input: + people: + spouse: + spouse_income: 9_329 + head: + spouse_income: 0 + household: + members: [head, spouse] + province_code: NS + is_married: true + output: + ns_spouse_and_common_law_partner_amount_credit: 0 + +- name: House hold with spouse income more than 9_329 + period: 2023 + input: + people: + spouse: + spouse_income: 9_400 + head: + spouse_income: 0 + household: + members: [head, spouse] + province_code: NS + is_married: true + output: + ns_spouse_and_common_law_partner_amount_credit: 0 diff --git a/policyengine_canada/variables/gov/provinces/ns/tax/income/credits/ns_spouse_and_common_law_partner_amount_credit.py b/policyengine_canada/variables/gov/provinces/ns/tax/income/credits/ns_spouse_and_common_law_partner_amount_credit.py new file mode 100644 index 000000000..e2c456900 --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/ns/tax/income/credits/ns_spouse_and_common_law_partner_amount_credit.py @@ -0,0 +1,28 @@ +from policyengine_canada.model_api import * + + +class ns_spouse_and_common_law_partner_amount_credit(Variable): + value_type = float + entity = Household + label = "Nova Scotia spouse and common-law partner amount credit" + unit = CAD + definition_period = YEAR + defined_for = ProvinceCode.NS + reference = ( + "https://hr.acadiau.ca/files/sites/hr/Payroll/Pensions%20&%20Benefits/NS_TD1_2022.pdf#page=1", + "https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5003-c/5003-c-22e.pdf#page=1", + "https://nslegislature.ca/sites/default/files/legc/statutes/income%20tax.pdf#page=24", + ) + + def formula(household, period, parameters): + person = household.members + total_spouse_income = add(household, period, ["spouse_income"]) + p = parameters( + period + ).gov.provinces.ns.tax.income.credits.spouse_and_common_law_partner_amount + + reduced_base_amount = max_(0, (p.base - total_spouse_income)) + # Adding married condition to avoid amount for single filers + is_married = household("is_married", period) + capped_credit = min_(p.cap, reduced_base_amount) + return capped_credit * is_married