A Full-Stack Engineer (React / Next.js / TypeScript) earning the median salary of CA$123K in Canada takes home approximately $87,275/year ($7,273/month) after federal and Ontario income tax, CPP, and EI, using 2026 rates.
2026 median salary for each level in Canada, and what it leaves after federal and Ontario income tax, CPP, and EI. Ontario resident employee, federal + provincial rates. 2026 rates.
Level
Gross / year
Take-home / year
Per month
Effective rate
Junior
$87,000
$63,658$5,305/mo
$5,305
26.8%
Mid-level
$125,000
$88,407$7,367/mo
$7,367
29.3%
Senior
$164,000
$110,259$9,188/mo
$9,188
32.8%
Lead / Principal
$209,000
$133,965$11,164/mo
$11,164
35.9%
The biggest pay step is Senior to Lead / Principal: $45,000 more a year before tax, of which $23,706 reaches take-home. 47% of that raise goes to federal and Ontario income tax, CPP, and EI, against an average 33% on the Senior salary, because the extra pay is taxed at the top of your bands rather than spread across all of them.
Around the headline median, the middle half of Full-Stack Engineer (React / Next.js / TypeScript) salaries in Canada run from $120,000 to $127,000 a year, which is $85,578 to $89,539 after federal and Ontario income tax, CPP, and EI.
Adjust for your actual salary
The table above uses the Full-Stack Engineer (React / Next.js / TypeScript) median. Enter your own gross salary below for a precise figure.
Federal + Ontario (ON) provincial tax only. Other provinces and territories have different brackets, surtaxes, and health levies: this calculator does not model them.
CA$
2026 tax year
Federal Basic Personal Amount: $16,452 (tapers above $181,440). Ontario Basic Personal Amount: $12,989. Includes Ontario Surtax, Ontario Health Premium, CPP/CPP2, and EI.
Common salaries:
Annual take-home pay
$87,275
Per biweekly pay
$3,357
Per semi-monthly pay
$3,636
Per month
$7,273
Per week
$1,678
Effective tax rate
29.0%
How your $123,000 is split
Take-home
$87,275
71.0%
Federal tax
$19,435
15.8%
Ontario tax
$10,520
8.6%
CPP + EI
$5,770
4.7%
Gross salary
$123,000
Federal tax
-$19,435
Ontario tax
-$8,695
Ontario Surtax
-$1,075
Ontario Health Premium
-$750
CPP
-$4,230
CPP2
-$416
EI
-$1,123
Total deductions
-$35,725
Net take-home (annual)
$87,275
Calculations use 2026 federal and Ontario tax rates, CPP/CPP2, and EI figures. Pay-cycle figures divide the annual estimate across 52 weekly, 26 biweekly, 24 semi-monthly, or 12 monthly payments. Your real deductions can change during the year once EI or CPP limits are reached, and payroll rounding, credits, RRSP contributions, benefits, and other deductions can also change a paycheque. Models Federal + Ontario (ON) provincial tax only. For precise figures, consult the CRA or a tax professional.
Permanent salary or contract?
Permanent median
$123,000
$87,275 take-home
Contract median
$91/hour
≈ $167,440 gross a year
At a median $91/hour, contract work grosses about $167,440 a year over 1,840 billable hours (230 days), 36% more than the $123,000 permanent median. That premium has to pay for what an employer would otherwise cover: paid holiday and sick days, pension contributions, and the gaps between contracts.
How much does a Full-Stack Engineer (React / Next.js / TypeScript) take home in Canada?
A Full-Stack Engineer (React / Next.js / TypeScript) earning the median salary of CA$123K in Canada takes home approximately $87,275 per year ($7,273 per month) after federal and Ontario income tax, CPP, and EI, using 2026 rates.
2
What is the effective tax rate for a Full-Stack Engineer (React / Next.js / TypeScript) in Canada?
On a median Full-Stack Engineer (React / Next.js / TypeScript) salary of CA$123K, the effective deduction rate (federal tax, Ontario tax, CPP, and EI combined) is 29.0%, leaving $87,275 as take-home pay.
3
How much CPP does a Full-Stack Engineer (React / Next.js / TypeScript) contribute in Canada?
On a CA$123K salary, a Full-Stack Engineer (React / Next.js / TypeScript) contributes approximately $4,646 per year to CPP and CPP2 combined, capped at the 2026 Year's Additional Maximum Pensionable Earnings of $85,000.
4
How much EI does a Full-Stack Engineer (React / Next.js / TypeScript) pay in Canada?
Employment Insurance is 1.63% of insurable earnings up to the 2026 Maximum Insurable Earnings of $68,900, capped at $1,123.07 per year for a Full-Stack Engineer (React / Next.js / TypeScript) at this salary level.
5
Does the Ontario Surtax affect a Full-Stack Engineer (React / Next.js / TypeScript)'s take-home pay?
The Ontario Surtax adds 20% on Ontario tax payable above $5,818, and a further 36% above $7,307 (the two tiers stack). At CA$123K, this surtax applies and increases the effective provincial tax rate.
6
What does a senior Full-Stack Engineer (React / Next.js / TypeScript) take home in Canada?
A senior Full-Stack Engineer (React / Next.js / TypeScript) in Canada earns a median $164,000 a year and takes home approximately $110,259 ($9,188 per month) after federal and Ontario income tax, CPP, and EI, an effective rate of 32.8%.
7
What does a junior Full-Stack Engineer (React / Next.js / TypeScript) take home in Canada?
A junior Full-Stack Engineer (React / Next.js / TypeScript) in Canada earns a median $87,000 a year and takes home approximately $63,658 ($5,305 per month) after federal and Ontario income tax, CPP, and EI, an effective rate of 26.8%.
8
How much of a promotion does a Full-Stack Engineer (React / Next.js / TypeScript) keep after tax in Canada?
The biggest pay step is Senior to Lead / Principal: $45,000 more a year before tax, of which $23,706 reaches take-home. 47% of that raise goes to federal and Ontario income tax, CPP, and EI, against an average 33% on the Senior salary, because the extra pay is taxed at the top of your bands rather than spread across all of them.
9
Do contract Full-Stack Engineer (React / Next.js / TypeScript) roles pay more than permanent ones in Canada?
At a median $91/hour, contract work grosses about $167,440 a year over 1,840 billable hours (230 days), 36% more than the $123,000 permanent median. That premium has to pay for what an employer would otherwise cover: paid holiday and sick days, pension contributions, and the gaps between contracts. Contract and permanent benchmarks come from separate samples, so treat the gap as a guide.