How payroll deductions work in Canada
A Canadian paycheque is not “tax times gross.” CRA T4127 Option 1 annualizes this period’s income, computes annual federal and provincial tax, divides by the number of pay periods, then adds CPP, CPP2, and EI calculated on this period’s pensionable and insurable earnings.
The five statutory lines
- Federal tax — T4127 Chapter 4 Steps 2–3. Annual T1, then [(T1)/P] + L.
- Provincial tax — Chapter 4 Step 4–5, including Ontario’s surtax and health premium, Alberta’s K5P, BC’s tax reduction, or Outside Canada’s zero T2 plus a 48% federal surtax.
- CPP (C) — 5.95% of (pensionable − period exemption), remaining room against the annual maximum. Employer matches.
- CPP2 (C2) — 4% of pensionable earnings between this year’s YMPE and YAMPE. Employer matches. Zero until year-to-date pensionable earnings pass YMPE.
- EI — 1.63% of insurable earnings to the annual maximum. Employer pays 1.4×. Quebec uses a different EI rate and QPIP; this engine will not calculate that.
Why overtime looks over-taxed
Option 1 assumes this period’s I continues for all P periods. A one-off overtime cheque annualizes into a higher bracket. The extra withholding is usually refunded on the T4 if the overtime did not continue. Option 2 (cumulative averaging) damps that; most payroll software remits Option 1, which is what this site computes.
Claim codes
TD1 claim code 1 is the basic personal amount. Code 0 is no claim — typical on a second job. Code E is exemption. Entering a dollar amount instead of a claim code is a different wire field (federal_tc / provincial_tcp) and is how PDOC’s “total claim amount” box goes wrong on BPAF phase-out.
The engine does not read a clock
Which formula applies is the pay date you type. 2026-06-30 is the 122nd edition; 2026-07-01 is the 123rd (BC, NL, PE overlay). There is no “today.” See what the T4127 is and CPP 2027.