Skip to content
4 changes: 4 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- bump: minor
changes:
added:
- Nova Scotia age amount supplement.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
description: Nova Scotia provides this supplement amount credit base amount.
values:
2022-01-01: 1_465
metadata:
unit: currency-CAD
period: year
label: Nova Scotia age amount supplement 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: Worksheet for the 2023 Nova Scotia TD1NS-WS Personal Tax Credits Return -- Age Amount Supplement
href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ns-ws/td1ns-ws-23e.pdf#page=1
- title: Nova Scotia income tax act - subdivision c - Deduction for employment out of Canada - 10G
href: https://nslegislature.ca/sites/default/files/legc/statutes/income%20tax.pdf#page=28
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
description: Nova Scotia phases its age amount supplement out at this rate, based on taxable income.
brackets:
- threshold:
2022-01-01: 0
rate:
2022-01-01: 0
- threshold:
2022-01-01: 25_000
rate:
2022-01-01: 0.0293

metadata:
type: marginal_rate
rate_unit: /1
threshold_unit: currency-CAD
period: year
label: Nova Scotia age amount supplement phase out rate
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: Worksheet for the 2023 Nova Scotia TD1NS-WS Personal Tax Credits Return -- Age Amount Supplement
href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1ns-ws/td1ns-ws-23e.pdf#page=1
- title: Nova Scotia income tax act - subdivision c - Deduction for employment out of Canada
href: https://nslegislature.ca/sites/default/files/legc/statutes/income%20tax.pdf#page=28

Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
- name: Nova Scotia Age amonut supplement; eligible age with eligible taxable income below 25_000
period: 2023
input:
ns_taxable_income: 24_999
ns_age_amount_eligible: true
output:
ns_age_amount_supplement: 1_465

- name: Nova Scotia Age amonut supplement; eligible age with eligible taxable income between 25_000 and 75_000
period: 2023
input:
ns_taxable_income: 65_000
ns_age_amount_eligible: true
output:
ns_age_amount_supplement: 293

- name: Nova Scotia Age tax credit; eligible age with ineligible taxable income more than 75_000
period: 2023
input:
ns_taxable_income: 75_001
ns_age_amount_eligible: true
output:
ns_age_amount_supplement: 0

- name: Nova Scotia Age tax credit; ineligible age with eligible taxable income
period: 2023
input:
ns_taxable_income: 24_999
ns_age_amount_eligible: false
output:
ns_age_amount_supplement: 0

- name: Nova Scotia Age tax credit; ineligible age with ineligible taxable income
period: 2023
input:
ns_taxable_income: 75_001
ns_age_amount_eligible: false
output:
ns_age_amount_supplement: 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
- name: Nova Scotia Age amount supplement; 65 is eligible age
period: 2023
input:
province_code: NS
age: 65
output:
ns_age_amount_eligible: true


- name: Nova Scotia Age amonut supplement; lower than 65 is not an eligible age
period: 2023
input:
province_code: NS
age: 64
output:
ns_age_amount_eligible: false

- name: Nova Scotia Age amonut supplement; lower than 65 is not an eligible age
period: 2023
input:
province_code: NS
age: 50
output:
ns_age_amount_eligible: false

- name: Nova Scotia Age amonut supplement; higher than 65 is eligible age
period: 2023
input:
province_code: NS
age: 67
output:
ns_age_amount_eligible: true

- name: Nova Scotia Age amonut supplement; higher than 65 is eligible age
period: 2023
input:
province_code: NS
age: 70
output:
ns_age_amount_eligible: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from policyengine_canada.model_api import *


class ns_age_amount_supplement(Variable):
value_type = float
entity = Person
label = "Nova Scotia age amount supplement"
unit = CAD
definition_period = YEAR
defined_for = "ns_age_amount_eligible"
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/td1ns-ws/td1ns-ws-23e.pdf#page=1",
"https://nslegislature.ca/sites/default/files/legc/statutes/income%20tax.pdf#page=28",
)

def formula(person, period, parameters):
p = parameters(
period
).gov.provinces.ns.tax.income.credits.age.supplement
taxable_income = person("ns_taxable_income", period)

# Calculate additional amount added to base amount
reduction = p.reduction.calc(taxable_income)

return max_(p.base - reduction, 0)
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from policyengine_canada.model_api import *


class ns_age_amount_eligible(Variable):
value_type = bool
entity = Person
label = "Eligible for the Nova Scotia age amount and age amount supplement"
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/td1ns-ws/td1ns-ws-23e.pdf#page=1",
"https://nslegislature.ca/sites/default/files/legc/statutes/income%20tax.pdf#page=28",
)

def formula(person, period, parameters):
p = parameters(period).gov.provinces.ns.tax.income.credits.age
age = person("age", period)

# is eligible for age amount supplement
return age >= p.age_eligibility
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cerate a variable
ns_age_amount.py
ns_age_amount_eligible.py

Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,17 @@ class ns_age_tax_credit(Variable):
entity = Person
label = "Nova Scotia Age tax credit"
definition_period = YEAR
defined_for = ProvinceCode.NS
defined_for = "ns_age_amount_eligible"
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/td1ns-ws/td1ns-ws-23e.pdf#page=1",
"https://nslegislature.ca/sites/default/files/legc/statutes/income%20tax.pdf#page=28",
)

def formula(person, period, parameters):
age = person("age", period)
income = person("ns_taxable_income", period)
p = parameters(period).gov.provinces.ns.tax.income.credits.age
eligibility = (age >= p.age_eligibility) & (
income < p.income_eligibility
)
eligibility = income < p.income_eligibility

return eligibility * p.amount