Skip to content

Commit

Permalink
British Columbia Tuition and Education Credits
Browse files Browse the repository at this point in the history
  • Loading branch information
YiweiJ committed Nov 17, 2023
1 parent be935bd commit d4bf276
Show file tree
Hide file tree
Showing 10 changed files with 257 additions and 0 deletions.
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:
- British Columbia tuition and education amount.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
description: British Columbia qualifies filers for the tuition credit above this age.
values:
2022-01-01: 16
metadata:
unit: year
label: British Columbia tuition credit age eligibility
reference:
- title: Eligible tuition fees
- href: https://www.canada.ca/en/revenue-agency/services/tax/individuals/topics/about-your-tax-return/tax-return/completing-a-tax-return/deductions-credits-expenses/line-32300-your-tuition-education-textbook-amounts/eligible-tuition-fees.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
description: British Columbia divides the tax on taxable income by the lowest tax rate to calculate the tuition credit.
values:
2022-01-01: 0.0506
metadata:
unit: currency-CAD
# "appropriate percentage" for a taxation year means the lowest percentage specified in section 4.1 (1)
# that is applicable in determining tax payable under this Act for the year
label: New Brunswick lowest tax rate # appropriate percentage
reference:
- title: 2023 New Brunswick income tax act § 4.6
href: https://www.bclaws.gov.bc.ca/civix/document/id/complete/statreg/96215_00_multi#section4.6
- title: 2022 New Brunswick tuition and education amounts, BC(S11)
href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5004-s11/5004-s11-22e.pdf#page=1
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
description: British Columbia taxes individuals based on their income at a progressive rate.
brackets:
- threshold:
2022-01-01: 0
rate:
2022-01-01: 0.0506
- threshold:
2022-01-01: 43_070
rate:
2022-01-01: 0.077
- threshold:
2022-01-01: 86_141
rate:
2022-01-01: 0.105
- threshold:
2022-01-01: 98_901
rate:
2022-01-01: 0.1229
- threshold:
2022-01-01: 120_094
rate:
2022-01-01: 0.147
- threshold:
2022-01-01: 162_832
rate:
2022-01-01: 0.168
- threshold:
2022-01-01: 227_091
rate:
2022-01-01: 0.205


metadata:
type: marginal_rate
threshold_unit: currency-CAD
rate_unit: /1
label: British Columbia tax brackets rate
reference:
- title: 2023 British Columbia income tax act § 4.1
href: https://www.bclaws.gov.bc.ca/civix/document/id/complete/statreg/96215_00_multi#section4.1
- title: 2022 British Columbia tuition and education amounts, Schedule BC(S11)
href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5010-s11/5010-s11-22e.pdf#page=1
- title: 2022 British Columbia Tax, BC428
href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5010-c/5010-c-22e.pdf#page=1
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
description: British Columbia qualifies filers for the tuition tax credit with tuition expense above this rate.
values:
2022-01-01: 100
metadata:
unit: currency-CAD
period: year
label: British Columbia tuition credit tuition threshold
reference:
- title: 2023 British Columbia Personal Tax Credits Return, TD1BC
href: https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1nb/td1nb-23e.pdf#page=1
# The tuition credit section of British Columbia income act refered to section 118.5 of federal act
- title: 2023 Canada Income Tac Act § 118.5(1.1)
href: https://laws-lois.justice.gc.ca/PDF/I-3.3.pdf#page=1566
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
- name: Lowest tax on taxable income threshold
period: 2023
absolute_error_margin: 0.01
input:
bc_taxable_income: 44_887
bc_comprehensive_tax_credits: 20_000
tuition_expenses: 10_000
output:
bc_tuition_credit: 10_000

- name: Second tax on taxable income threshold
period: 2023
absolute_error_margin: 0.01
input:
bc_taxable_income: 54_887
bc_comprehensive_tax_credits: 20_000
tuition_expenses: 10_000
output:
bc_tuition_credit: 10_000

- name: Third tax on taxable income threshold
period: 2023
absolute_error_margin: 0.01
input:
bc_taxable_income: 139_775
bc_comprehensive_tax_credits: 20_000
tuition_expenses: 50_000
output:
bc_tuition_credit: 50_000

- name: Fourth tax on taxable income threshold
period: 2023
absolute_error_margin: 0.01
input:
bc_taxable_income: 145_965
bc_comprehensive_tax_credits: 100_000
tuition_expenses: 150_000
output:
bc_tuition_credit: 150_000

- name: Highest tax on taxable income threshold
period: 2023
absolute_error_margin: 0.01
input:
bc_taxable_income: 167_280
bc_comprehensive_tax_credits: 100_000
tuition_expenses: 160_000
output:
bc_tuition_credit: 160_000
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
- name: Age eligible and tuition ineligible
period: 2023
input:
province_code: BC
age: 17
tuition_expenses: 50
output:
bc_tuition_credit_eligibility: false

- name: Age eligible and tuition eligible
period: 2023
input:
province_code: BC
age: 16
tuition_expenses: 101
output:
bc_tuition_credit_eligibility: true

- name: Age ineligible and tuition eligible
period: 2023
input:
province_code: BC
age: 10
tuition_expenses: 200
output:
bc_tuition_credit_eligibility: false

- name: Age ineligible and tuition ineligible
period: 2023
input:
province_code: BC
age: 10
tuition_expenses: 30
output:
bc_tuition_credit_eligibility: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from policyengine_canada.model_api import *


class bc_comprehensive_tax_credits(Variable):
value_type = float
entity = Person
label = "British Columbia comprehensive tax credits"
unit = CAD
definition_period = YEAR
reference = (
# C is the smaller of the value of "B" and the amount that would be the individual's tax payable under
# this Act for the year if the only amounts deductible were the amounts under the following sections:
# (a) section 4.3 [personal credits];
# (b) section 4.31 [age credit];
# (c) section 4.32 [pension credit];
# (c.1) section 4.33 [adoption expense credit];
# (c.2) and (c.21) [Repealed 2017-12-30.]
# (c.3) [Repealed 2017-12-30.]
# (c.31) [Repealed 2017-12-29.]
# (c.4) section 4.36 [BC education coaching tax credit];
# (c.5) section 4.37 [tax credit for volunteer firefighters and search and rescue volunteers];
# (d) section 4.51 [credit for mental or physical impairment];
# (e) section 4.64 [credit for EI premium and CPP contribution],
"https://www.bclaws.gov.bc.ca/civix/document/id/complete/statreg/96215_00_multi#section4.62", # § 4.62
"https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5010-c/5010-c-22e.pdf#page=1", # Line 40
)
defined_for = ProvinceCode.BC
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
from policyengine_canada.model_api import *


class bc_tuition_credit(Variable):
value_type = float
entity = Person
label = "British Columbia tuition credit"
definition_period = YEAR
defined_for: "bc_tuition_credit_eligibility"
reference = (
"https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/5010-s11/5010-s11-22e.pdf#page=1", # BC(S11) line 10
"https://www.bclaws.gov.bc.ca/civix/document/id/complete/statreg/96215_00_multi#section4.62", # section 4.62
)

def formula(person, period, parameters):
age = person("age", period)
tuition = person("tuition_expenses", period)
taxable_income = person("bc_taxable_income", period)
comprehensive_tax_credits = person(
"bc_comprehensive_tax_credits", period
)
p = parameters(
period
).gov.provinces.bc.tax.income.credits.tuition_amount
net_income = max_(taxable_income - comprehensive_tax_credits, 0)
tax_on_taxable_income = p.tax_bracket_rate.calc(taxable_income)
net_tax = max_(
(tax_on_taxable_income / p.lowest_tax_rate)
- comprehensive_tax_credits,
0,
)
return select(
[
taxable_income <= p.tax_bracket_rate.thresholds[1],
taxable_income > p.tax_bracket_rate.thresholds[1],
],
[
min_(net_income, tuition),
min_(net_tax, tuition),
],
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from policyengine_canada.model_api import *


class bc_tuition_credit_eligibility(Variable):
value_type = bool
entity = Person
label = "Eligible for the British Columbia tuition credit"
definition_period = YEAR
reference = (
"https://www.canada.ca/en/revenue-agency/services/tax/individuals/topics/about-your-tax-return/tax-return/completing-a-tax-return/deductions-credits-expenses/line-32300-your-tuition-education-textbook-amounts/eligible-tuition-fees.html", # Tuition Amount
"https://www.canada.ca/content/dam/cra-arc/formspubs/pbg/td1nb/td1nb-23e.pdf#page=1",
"https://laws-lois.justice.gc.ca/PDF/I-3.3.pdf#page=1566", # Line 4
)
defined_for = ProvinceCode.BC

def formula(person, period, parameters):
p = parameters(
period
).gov.provinces.bc.tax.income.credits.tuition_amount
age = person("age", period)
tuition = person("tuition_expenses", period)
return (age >= p.eligible_age) & (tuition >= p.tuition_threshold)

0 comments on commit d4bf276

Please sign in to comment.