Dataset Viewer
Auto-converted to Parquet Duplicate
jurisdiction
string
jurisdiction_name
string
level
string
tax_year
int64
brackets
string
top_rate
float64
basic_personal_amount
int64
basic_personal_amount_min
int64
bpa_phase_out_start
float64
bpa_phase_out_end
float64
credit_rate
float64
employment_amount
int64
worker_deduction_rate
float64
worker_deduction_max
int64
tax_reduction_kind
string
tax_reduction_max
int64
tax_reduction_threshold
int64
tax_reduction_rate
float64
tax_reduction_source_url
string
tax_reduction_verified_at
string
surtax
string
health_premium_max
float64
pension_plan
string
ei_rate
float64
federal_abatement
float64
payroll_tax_rate
float64
payroll_tax_source_url
string
payroll_tax_verified_at
string
source_url
string
verified_at
string
calculator_url
string
CA
Canada
federal
2,026
0-58523@0.14;58523-117045@0.205;117045-181440@0.26;181440-258482@0.29;258482-@0.33
0.33
16,452
14,829
181,440
258,482
0.14
1,501
0
0
null
0
0
0
null
null
null
null
null
0.0163
0
0
null
null
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jan.html
2026-09-12
https://worklets.ai/canada/paycheck-calculator
AB
Alberta
province
2,026
0-61200@0.08;61200-154259@0.1;154259-185111@0.12;185111-246813@0.13;246813-370220@0.14;370220-@0.15
0.15
22,769
22,769
null
null
0.08
0
0
0
null
0
0
0
null
null
null
null
cpp
0.0163
0
0
null
null
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jan.html
2026-09-12
https://worklets.ai/canada/paycheck-calculator/alberta
BC
British Columbia
province
2,026
0-50363@0.056;50363-100728@0.077;100728-115648@0.105;115648-140430@0.1229;140430-190405@0.147;190405-265545@0.168;265545-@0.205
0.205
13,216
13,216
null
null
0.056
0
0
0
phase_out
690
25,570
0.0356
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jul/t4127-jul-payroll-deductions-formulas.html
2026-09-16
null
null
cpp
0.0163
0
0
null
null
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jul/t4127-jul-payroll-deductions-formulas.html
2026-09-16
https://worklets.ai/canada/paycheck-calculator/british-columbia
MB
Manitoba
province
2,026
0-47000@0.108;47000-100000@0.1275;100000-@0.174
0.174
15,780
0
200,000
400,000
0.108
0
0
0
null
0
0
0
null
null
null
null
cpp
0.0163
0
0
null
null
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jan.html
2026-09-12
https://worklets.ai/canada/paycheck-calculator/manitoba
NB
New Brunswick
province
2,026
0-52333@0.094;52333-104666@0.14;104666-193861@0.16;193861-@0.195
0.195
13,664
13,664
null
null
0.094
0
0
0
null
0
0
0
null
null
null
null
cpp
0.0163
0
0
null
null
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jan.html
2026-09-12
https://worklets.ai/canada/paycheck-calculator/new-brunswick
NL
Newfoundland and Labrador
province
2,026
0-44678@0.087;44678-89354@0.145;89354-159528@0.158;159528-223340@0.178;223340-285319@0.198;285319-570638@0.208;570638-1141275@0.213;1141275-@0.218
0.218
13,094
13,094
null
null
0.087
0
0
0
null
0
0
0
null
null
null
null
cpp
0.0163
0
0
null
null
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jul/t4127-jul-payroll-deductions-formulas.html
2026-09-16
https://worklets.ai/canada/paycheck-calculator/newfoundland-and-labrador
NS
Nova Scotia
province
2,026
0-30995@0.0879;30995-61991@0.1495;61991-97417@0.1667;97417-157124@0.175;157124-@0.21
0.21
11,932
11,932
null
null
0.0879
0
0
0
null
0
0
0
null
null
null
null
cpp
0.0163
0
0
null
null
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jan.html
2026-09-12
https://worklets.ai/canada/paycheck-calculator/nova-scotia
NT
Northwest Territories
territory
2,026
0-53003@0.059;53003-106009@0.086;106009-172346@0.122;172346-@0.1405
0.1405
18,198
18,198
null
null
0.059
0
0
0
null
0
0
0
null
null
null
null
cpp
0.0163
0
0.02
https://www.fin.gov.nt.ca/en/services/payroll-tax/payroll-tax-employees
2026-09-16
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jan.html
2026-09-12
https://worklets.ai/canada/paycheck-calculator/northwest-territories
NU
Nunavut
territory
2,026
0-55801@0.04;55801-111602@0.07;111602-181439@0.09;181439-@0.115
0.115
19,659
19,659
null
null
0.04
0
0
0
null
0
0
0
null
null
null
null
cpp
0.0163
0
0.02
https://www.gov.nu.ca/sites/default/files/documents/2021-10/PayrollTaxAct.pdf
2026-09-16
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jan.html
2026-09-12
https://worklets.ai/canada/paycheck-calculator/nunavut
ON
Ontario
province
2,026
0-53891@0.0505;53891-107785@0.0915;107785-150000@0.1116;150000-220000@0.1216;220000-@0.1316
0.1316
12,989
12,989
null
null
0.0505
0
0
0
double_basic
300
0
0
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jan.html
2026-09-16
5818@0.2;7446@0.36
900
cpp
0.0163
0
0
null
null
https://www.ontario.ca/page/personal-income-tax
2026-09-12
https://worklets.ai/canada/paycheck-calculator/ontario
PE
Prince Edward Island
province
2,026
0-33928@0.095;33928-65820@0.1347;65820-106890@0.166;106890-142520@0.1762;142520-200000@0.19;200000-@0.2
0.2
15,000
15,000
null
null
0.095
0
0
0
null
0
0
0
null
null
null
null
cpp
0.0163
0
0
null
null
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jul/t4127-jul-payroll-deductions-formulas.html
2026-09-16
https://worklets.ai/canada/paycheck-calculator/prince-edward-island
QC
Quebec
province
2,026
0-54345@0.14;54345-108680@0.19;108680-132245@0.24;132245-@0.2575
0.2575
18,952
18,952
null
null
0.14
0
0.06
1,450
null
0
0
0
null
null
null
null
qpp
0.013
0.165
0
null
null
https://www.revenuquebec.ca/en/businesses/source-deductions-and-employer-contributions/employers-principal-changes-for-2026/
2026-09-12
https://worklets.ai/canada/paycheck-calculator/quebec
SK
Saskatchewan
province
2,026
0-54532@0.105;54532-155805@0.125;155805-@0.145
0.145
20,381
20,381
null
null
0.105
0
0
0
null
0
0
0
null
null
null
null
cpp
0.0163
0
0
null
null
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jan.html
2026-09-12
https://worklets.ai/canada/paycheck-calculator/saskatchewan
YT
Yukon
territory
2,026
0-58523@0.064;58523-117045@0.09;117045-181440@0.109;181440-500000@0.128;500000-@0.15
0.15
16,452
14,829
181,440
258,482
0.064
1,501
0
0
null
0
0
0
null
null
null
null
cpp
0.0163
0
0
null
null
https://www.canada.ca/en/revenue-agency/services/forms-publications/payroll/t4127-payroll-deductions-formulas/t4127-jan.html
2026-09-12
https://worklets.ai/canada/paycheck-calculator/yukon

Canadian Income Tax and Payroll Contribution Rates, 2026

Three tables covering what actually comes off a Canadian paycheck.

from datasets import load_dataset

tax = load_dataset("Worklets/canada-income-tax-rates", "income-tax")            # 14 rows
contributions = load_dataset("Worklets/canada-income-tax-rates", "payroll-contributions")  # 9 rows
credits = load_dataset("Worklets/canada-income-tax-rates", "tax-credits")                  # 65 rows

income-tax — the federal schedule plus all 13 provinces and territories: the full bracket schedule, the basic personal amount and any high-income phase-out, the rate non-refundable credits are valued at, Ontario's surtax and Health Premium, Quebec's 16.5% federal abatement, and the 2% payroll tax the Northwest Territories and Nunavut withhold outside the income tax system.

payroll-contributions — CPP, QPP, EI and QPIP, with each pension plan split into its base and enhanced portions.

tax-credits — the TD1 personal amounts: age, pension income, disability, spouse, and eligible dependant, federally and for twelve provinces and territories.

They ship together because you need both. Brackets alone cannot tell you what comes off a paycheck: at an ordinary salary, CPP and EI are a larger deduction than provincial tax in most of the country.

Why the contributions table is split the way it is

Almost every published copy of these rates gives CPP as a single 5.95% line. It is two lines with different tax treatment, and a third above the first ceiling:

Rate Band Treatment
CPP base 4.95% $3,500–$74,600 Non-refundable credit at the lowest rate
CPP enhanced 1.00% $3,500–$74,600 Deducted from taxable income
CPP2 4.00% $74,600–$85,000 Deducted from taxable income

Treating the whole 5.95% as one or the other is wrong by a few hundred dollars at most salaries. QPP works the same way at a higher rate — 5.30% base plus 1.00% enhanced for 2026, down from 6.4% combined in 2025.

Columns

income-tax carries jurisdiction, jurisdiction_name, level, tax_year, brackets, top_rate, basic_personal_amount, basic_personal_amount_min, bpa_phase_out_start, bpa_phase_out_end, credit_rate, employment_amount, worker_deduction_rate, worker_deduction_max, tax_reduction_kind, tax_reduction_max, tax_reduction_threshold, tax_reduction_rate, tax_reduction_source_url, tax_reduction_verified_at, surtax, health_premium_max, pension_plan, ei_rate, federal_abatement, payroll_tax_rate, payroll_tax_source_url, payroll_tax_verified_at, source_url, verified_at and calculator_url.

brackets is a flat string of min-max@rate segments, semicolon-separated, with no max on the open-ended top bracket: 0-53891@0.0505;53891-107785@0.0915;...;220000-@0.1316. surtax uses the same shape as threshold@rate pairs, and is levied on tax rather than on income.

payroll_tax_rate is 0 everywhere except NT and NU. It carries its own payroll_tax_source_url and payroll_tax_verified_at because the rate comes from the territory rather than the CRA — the T4127 does not contain it.

payroll-contributions carries contribution, label, tax_year, applies_to, rate, earnings_floor, earnings_ceiling, max_contribution, tax_treatment, notes, source_url and verified_at.

The TD1 credit table

Every employee files a federal TD1 and a provincial one, and the amounts on them are what a payroll system turns into its claim totals. They are published across fifteen separate PDF forms and nowhere as a table, which is the reason to publish one.

Two things a naive transcription gets wrong, both of which this table records rather than flattens:

Not every claim is a printed number. basis says which kind each row is:

basis Meaning Where
fixed A figure printed on the form most
basic_personal_amount_less_dependant_income "The difference between the amount at line 1 and the dependant's net income" — the claim is the basic personal amount, reduced dollar for dollar AB, NT, NU (spouse), YT
amount_less_dependant_income The same shape, against the province's own figure rather than its basic personal amount MB

Rows with a non-fixed basis leave amount empty. Publishing a number the form does not state would be inventing one.

Quebec is absent. It does not use a TD1 — Revenu Québec runs its own TP-1015.3-V Source Deductions Return. An empty Quebec row would imply Quebec has no personal credits, which is false.

Two arithmetic identities hold across the table, and are asserted in the test suite so a mistyped digit fails the build rather than shipping:

  • amount / 0.15 + income_threshold == phase_out_end for every age amount, in all twelve jurisdictions.
  • amount + dependant_income_threshold == phase_out_end for every fixed spouse and eligible dependant amount.

Not yet covered: the caregiver and infirm-dependant amounts, where two phase-out ends could not be read unambiguously off the forms.

One transcription note worth having on record: Saskatchewan's TD1 prints its pension income amount as $1000, without the thousands separator — the only figure across the fifteen forms that does, and enough to make a naive parser drop it.

The Canada employment amount

employment_amount is $1,501 on the federal row and on Yukon, and 0 everywhere else. It is a non-refundable credit every employee receives on employment income — no form, no election, no claim. The T4127 carries it as K4: the lesser of the lowest rate times employment income and the lowest rate times the amount, so above $1,501 of earnings it is worth a flat $210.14 off federal tax. Yukon is the only region that mirrors it, at its own 6.4% lowest rate, for a further $96.06.

It is easy to omit precisely because nobody claims it, and omitting it overstates federal tax for every employed person in the country.

Quebec's equivalent is a deduction, not a credit: worker_deduction_rate of 6% up to a worker_deduction_max of $1,450, taken off Quebec taxable income. Both columns are 0 outside Quebec. Because it moves the base rather than the tax, it is worth more in a higher bracket, and it can pull income just over a bracket threshold back under it — at $110,000 it is the difference between Quebec's 24% band and its 19% one.

The low-income tax reductions

Two provinces cut tax at source for low earners, and they do it with different formulas, so tax_reduction_kind names which one applies and the remaining columns carry that formula's constants.

kind Formula
BC phase_out max less rate of taxable income over threshold — $690, 3.56%, $25,570, reaching zero at $44,952
ON double_basic twice max ($300) less Ontario tax, capped at Ontario tax

Both are capped at basic tax plus surtax and cannot create a refund.

Ontario's form has a consequence worth knowing: between roughly $20,200 and $26,000 of income each extra dollar is taxed once by the bracket and again by the reduction it removes, so the real marginal rate there is about double the 5.05% headline. And because the reduction is applied before the Ontario Health Premium rather than after, the premium is still payable by someone whose income tax the reduction has zeroed.

The territorial payroll taxes

The Northwest Territories and Nunavut each levy 2% on employment income, withheld from gross pay by the employer and remitted to the territory. It is the closest thing Canada has to a US-style local income tax, and it is the row most published copies of Canadian rates leave out entirely.

It is not income tax, and the difference is not cosmetic:

  • It buys no credit and is not deducted from taxable income. The GNWT's own guidance says it "cannot be deducted from personal income tax."
  • It does not appear on the T4, so it is invisible in the usual year-end paper trail.
  • It has no exemption and no ceiling — it is a flat 2% from the first dollar.
  • It follows where you work, not where you live. Territorial income tax depends on where you kept a residence on 31 December; the payroll tax applies to income earned working in the territory regardless of residence.

Both territories hand some of it back through a refundable cost-of-living credit claimed on the return, which is a filing-time matter and is not in this table.

Because it is territorial rather than federal, it is sourced separately: the GNWT's payroll tax guidance for employees, and Nunavut's consolidated Payroll Tax Act.

Provenance

Every row carries the date it was last checked against the authority's own document and a link to it — the part almost every other published copy of this data is missing. Sources are the CRA's T4127 Payroll Deductions Formulas (122nd edition, effective 1 January 2026), the CRA's CPP and EI rate pages, Revenu Québec's source-deduction parameters, and — for the two territorial payroll taxes, which the CRA does not administer — the territories' own publications.

Two corrections worth flagging.

The T4127 claim-code table carried a stale Ontario basic personal amount when this was compiled, so Ontario's figure comes from the province's own 2026 publication instead.

More importantly, 2026 had a mid-year edition. The 123rd edition of the T4127, effective 1 July 2026, superseded the January one for three provinces:

January (122nd) Annual 2026 (123rd)
BC lowest rate 5.06% 5.60%
BC tax reduction $575 $690
NL basic personal amount $11,188 $13,094
PE top bracket 19% over $142,520 20% over $200,000

Those three rows cite the July edition and carry a later verified_at than the rest. Where a province changes rates mid-year the CRA publishes two figures — the annual one for the tax year, and a prorated one used for the remaining pay periods so the year totals correctly. These tables carry the annual figure. The prorated ones (BC 6.14%, NL $15,000, PE 21%) are a payroll mechanic, not a rate anyone is charged for the year, and each averages with the January figure to give the annual one exactly.

What it does not cover

Provincial low-income reductions (the Ontario LIFT credit, the BC tax reduction), spousal and dependant credits, and non-refundable credits beyond the basic personal amount. It models employment income.

Maintained by Worklets. Download directly:

The calculator built on it: https://worklets.ai/canada/paycheck-calculator

Downloads last month
28