diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb..a80d1a8f2 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: minor + changes: + added: + - New Brunswick Spouse or Common-law Partner base amount. \ No newline at end of file diff --git a/policyengine_canada/parameters/gov/provinces/nb/tax/income/credits/spouse_or_common_law_partner_amount/base_amount.yaml b/policyengine_canada/parameters/gov/provinces/nb/tax/income/credits/spouse_or_common_law_partner_amount/base_amount.yaml new file mode 100644 index 000000000..2d6cee8ca --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/nb/tax/income/credits/spouse_or_common_law_partner_amount/base_amount.yaml @@ -0,0 +1,23 @@ +description: New Brunswick provides the following Spouse or Common-law partner base amount. +values: + 2022-01-01: 10_105 + 2023-01-01: 10_741 + 2024-01-01: 11_246 +metadata: + unit: currency-CAD + period: year + label: New Brunswick Spouse or Common-law Partner base amount + reference: + - title: Worksheet for the 2022 New Brunswick Personal Tax Credits Return + href: https://www.cchwebsites.com/content/pdf/tax_forms/ca/en/td1nbws_en.pdf#page=1 + - title: 2022 New Brunswick Personal Tax Credits Return + href: https://www.vitalitenb.ca/sites/default/files/documents/employes/td1nb_nb_personal_tax_credits_return.pdf#page=1 + - title: Worksheet for the 2023 New Brunswick Personal Tax Credits Return + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1nb-ws/td1nb-ws-23e.pdf#page=1 + - title: 2023 New Brunswick Personal Tax Credits Return + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1nb-ws/td1nb-ws-23e.pdf#page=1 + - title: 2024 New Brunswick Personal Tax Credits Return + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1nb/td1nb-24e.pdf#page=1 + - title: Worksheet for the 2024 New Brunswick Personal Tax Credits Return + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1nb-ws/td1nb-ws-24e.pdf#page=1 + diff --git a/policyengine_canada/parameters/gov/provinces/nb/tax/income/credits/spouse_or_common_law_partner_amount/max_amount.yaml b/policyengine_canada/parameters/gov/provinces/nb/tax/income/credits/spouse_or_common_law_partner_amount/max_amount.yaml new file mode 100644 index 000000000..6d313fce3 --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/nb/tax/income/credits/spouse_or_common_law_partner_amount/max_amount.yaml @@ -0,0 +1,16 @@ +description: New Brunswick provides the following maximum spouse or common-law partner amount. +values: + 2022-01-01: 9_186 + 2023-01-01: 9_764 + 2024-01-01: 10_223 +metadata: + unit: currency-CAD + period: year + label: New Brunswick Spouse or Common-law Partner max credit + reference: + - title: Worksheet for the 2022 New Brunswick Personal Tax Credits Return + href: https://www.cchwebsites.com/content/pdf/tax_forms/ca/en/td1nbws_en.pdf#page=1 + - title: Worksheet for the 2023 New Brunswick Personal Tax Credits Return + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1nb-ws/td1nb-ws-23e.pdf#page=1 + - title: Worksheet for the 2024 New Brunswick Personal Tax Credits Return + href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1nb-ws/td1nb-ws-24e.pdf#page=1 \ No newline at end of file diff --git a/policyengine_canada/parameters/gov/provinces/nb/tax/income/credits/spouse_or_common_law_partner_amount/test.yaml b/policyengine_canada/parameters/gov/provinces/nb/tax/income/credits/spouse_or_common_law_partner_amount/test.yaml new file mode 100644 index 000000000..c975e316e --- /dev/null +++ b/policyengine_canada/parameters/gov/provinces/nb/tax/income/credits/spouse_or_common_law_partner_amount/test.yaml @@ -0,0 +1,95 @@ +- name: One person eligible and one not + period: 2022 + input: + people: + head: + is_spouse: false + individual_net_income: 10_000 + spouse: + is_spouse: true + individual_net_income: 1_000 + household: + members: [head, spouse] + province_code: NB + output: + nb_spouse_and_common_law_partner_amount_credit: 9_105 + + period: 2023 + input: + people: + head: + is_spouse: false + individual_net_income: 10_000 + spouse: + is_spouse: true + individual_net_income: 1_000 + household: + members: [head, spouse] + province_code: NB + output: + nb_spouse_and_common_law_partner_amount_credit: 9_741 + + period: 2024 + input: + people: + head: + is_spouse: false + individual_net_income: 10_000 + spouse: + is_spouse: true + individual_net_income: 1_000 + household: + members: [head, spouse] + province_code: NB + output: + nb_spouse_and_common_law_partner_amount_credit: 10_223 + +- name: Eligible spouse + period: 2022 + input: + province_code: NB + is_spouse: true + individual_net_income: 10_000 + output: + nb_spouse_and_common_law_partner_amount_credit: 105 + + period: 2023 + input: + province_code: NB + is_spouse: true + individual_net_income: 10_000 + output: + nb_spouse_and_common_law_partner_amount_credit: 741 + + period: 2024 + input: + province_code: NB + is_spouse: true + individual_net_income: 10_000 + output: + nb_spouse_and_common_law_partner_amount_credit: 1_246 + +- name: Ineligible spouse + period: 2022 + input: + province_code: NB + is_spouse: false + individual_net_income: 10_000 + output: + nb_spouse_and_common_law_partner_amount_credit: 0 + + period: 2023 + input: + province_code: NB + is_spouse: false + individual_net_income: 10_000 + output: + nb_spouse_and_common_law_partner_amount_credit: 0 + + period: 2024 + input: + province_code: NB + is_spouse: false + individual_net_income: 10_000 + output: + nb_spouse_and_common_law_partner_amount_credit: 0 diff --git a/policyengine_canada/tests/gov/provinces/nb/tax/income/credits/nb_spouse_and_common_law_partner_amount_credit.yaml b/policyengine_canada/tests/gov/provinces/nb/tax/income/credits/nb_spouse_and_common_law_partner_amount_credit.yaml new file mode 100644 index 000000000..9dd73769d --- /dev/null +++ b/policyengine_canada/tests/gov/provinces/nb/tax/income/credits/nb_spouse_and_common_law_partner_amount_credit.yaml @@ -0,0 +1,65 @@ +- name: No spouse income in 2022 + period: 2022 + input: + people: + head: + spouse_income: 0 + spouse: + spouse_income: 0 + household: + members: [head, spouse] + province_code: NB + output: + nb_spouse_and_common_law_partner_amount_credit: 9_186 + +- name: Spouse income of $1,000 in 2022 + period: 2022 + input: + province_code: NB + spouse_income: 1_000 + output: + nb_spouse_and_common_law_partner_amount_credit: 9_105 + +- name: Spouse income of $10,000 in 2022 + period: 2022 + input: + province_code: NB + spouse_income: 10_000 + output: + nb_spouse_and_common_law_partner_amount_credit: 105 + +- name: Capped at 0 in 2022 + period: 2022 + input: + province_code: NB + spouse_income: 40_000 + output: + nb_spouse_and_common_law_partner_amount_credit: 0 + + +- name: No spouse income + period: 2023 + input: + people: + head: + spouse_income: 0 + spouse: + spouse_income: 0 + household: + members: [head, spouse] + province_code: NB + output: + nb_spouse_and_common_law_partner_amount_credit: 9_764 + +- name: Spouse income of $1,000 + period: 2023 + input: + province_code: NB + spouse_income: 1_000 + output: + nb_spouse_and_common_law_partner_amount_credit: 9_741 + + +parameters: + + diff --git a/policyengine_canada/variables/gov/provinces/nb/tax/income/nb_spouse_and_common_law_partner_amount_credit.py b/policyengine_canada/variables/gov/provinces/nb/tax/income/nb_spouse_and_common_law_partner_amount_credit.py new file mode 100644 index 000000000..090dfc7be --- /dev/null +++ b/policyengine_canada/variables/gov/provinces/nb/tax/income/nb_spouse_and_common_law_partner_amount_credit.py @@ -0,0 +1,17 @@ +from policyengine_canada.model_api import * + +class nb_spouse_and_common_law_partner_amount_credit(Variable): + value_type = float + entity = Household + label = "New Brunswick spouse and common-law partner amount credit" + definition_period = YEAR + defined_for = ProvinceCode.NB + + + def formula(household, period, parameters): + p = parameters(period).gov.provinces.nb.tax.income.credits.spouse_or_common_law_partner_amount + + spouse_income = add(household, period, ["spouse_income"]) + reduced_amount = max_(p.base_amount - spouse_income, 0) + return min_(p.max_credit, reduced_amount) +