Federal and provincial tax for one person, one province, one year — with the basic personal amount and every other credit this calculator models applied, and every figure shown against the line of the return it comes from.
Advanced unhides 4 more fields. It is the same calculation either way — simple mode fills those in, and the disclosure below says what it filled in.
Second job or overtime, an RRSP contribution, a capital gain, or self-employment income
T1 line 10100 — box 14 of your T4. Drives CPP/EI, the Canada employment amount and LIFT.
T1 lines 13500–14300, after expenses. Pays CPP at the self-employed rate and no EI.
T1 lines 11300–13010. No payroll contributions arise on this.
The CASH amount, not the grossed-up figure — this calculator applies the 38% gross-up itself.
Cash again. A different gross-up (15%) and a different credit from eligible dividends, so they cannot be merged.
The whole GAIN, not the taxable half. Capital losses are not modelled.
T1 line 20800. Your contribution LIMIT is not checked here — enter an amount you have established is deductible.
Claims the age amount (ITA s.118(2)), and shows the eligible pension income box below — from 65 a RRIF or ordinary annuity payment is eligible for the pension income amount without the death-of-spouse condition that applies under 65. It does NOT by itself stop CPP contributions; that needs a CPT30 election, which is an advanced-mode setting.
Enter your income, then click Calculate.
What this calculation assumes
About you
You are filing as a single person. Spousal and common-law amounts are not claimed.
You have no dependants. Child, caregiver and eligible-dependant amounts are not claimed.
You are claiming no tuition, medical, donation or childcare amounts.
You were resident in the one province you selected for the whole year.
Every figure you entered is for a single tax year and a single person. Canada has no joint filing, so a couple runs this calculator twice.
What simple mode filled in for you
Eligible pension income: $0(T1 line 31400) Simple mode claims no pension income amount for a filer under 65, and never infers one from your other income: nothing in your figures says which part of it qualifies, CPP, QPP and OAS benefits go in that same box and never qualify, at any age, and inferring an amount would claim a credit you may not be owed and UNDERSTATE your tax. If part of your other income is eligible pension income — a lifetime retirement benefit from a registered pension plan (T4A box 016 or T3 box 31) and a variable payment life annuity out of a money purchase RPP (T4A box 133) qualify at any age, while a RRIF or ordinary annuity payment qualifies under 65 only if you received it because of the death of your spouse or common-law partner, and no portion transferred to an RRSP, a RRIF or an annuity qualifies, whatever your age — advanced mode lets you enter it and claim the credit. Foreign pension income, including US Social Security, qualifies at any age, apart from any portion you deduct on line 25600 as treaty-exempt and any income from a US individual retirement arrangement (IRA). Leaving it at $0 OVERSTATES your tax. If you are in fact 65 or over, tick the age box instead: this field then appears in simple mode, more kinds of income qualify, and the age amount is claimed too.
Other deductions: $0(T1 lines 20700-23200, excluding RRSP and CPP/EI) Simple mode claims no deduction other than RRSP. Advanced mode lets you enter moving expenses (T1 line 21900) and the deductible portion of support payments (T1 line 22000) — amounts every return in Canada treats as a deduction. If you are filing in QUEBEC, do NOT enter union, professional and like dues and childcare expenses here. On the TP-1, Quebec gives union, professional and like dues as a 10% non-refundable credit (TP-1 lines 397.1 and 397), not a deduction; and Quebec gives childcare expenses as a refundable credit (TP-1 line 455, Schedule C), not a deduction — this calculator does not model Quebec's credit mechanism for either one. Entering them in this field instead relieves them at your Quebec marginal rate (up to 25.75%), which UNDERSTATES your tax. Outside Quebec, the ordinary federal deduction IS what this field models for both, and they belong here. Do NOT include CPP/QPP or EI/QPIP anywhere in this field — this calculator computes those deductions itself.
Payroll contributions: Statutory — CPP/QPP and EI/QPIP are contributed(T1 lines 22200/22215/22300 and 30800/31000/31200/31205/31215) Simple mode assumes ordinary contributory employment. Advanced mode can mark the income exempt — excepted employment (CPP Act s.6(2) / EI Act s.5(2)), or a CPT30/RR-50-V election filed after 65. Note that being 65 or over does NOT by itself stop contributions; the election is separate.
Measure the marginal rate on: Your largest income slot(not a form line — a question about the result) The marginal rate answers what one more dollar would cost, and the answer genuinely differs by which kind of dollar. Simple mode measures it in your largest populated income slot and names that slot beside the figure; advanced mode lets you pick.
What this calculator does not model at all
Neither simple nor advanced mode covers the following. Entering an amount for any of them is not possible here, deliberately — a field that is accepted and ignored is how a calculator reports a plausible, wrong number.
EI special benefits for the self-employed (EI Act Part VII.1 / Schedule 13, T1 lines 31217 and 42120) — an opt-in program; `ei_self_employed_standard_rate` is seeded 0 and this engine assumes no election was made
Part-year, multi-employer and multi-plan payroll proration (CPP Act s.20(2)'s monthly exemption, mid-year CPT30/RR-50-V elections, CPP-to-QPP transfers, and T4 boxes 24/26 differing from box 14) — employment income is treated as fully pensionable and fully insurable for a whole year
The CPP basic exemption is scaled by inflFactor like every other dollar parameter, although CPP Act s.20(1) freezes it at $3,500 in nominal terms — a deliberate consequence of the engine's uniform indexation convention, which is what preserves the COLA-homogeneity identity T(I*f, f) = f*T(I, 1)
Quebec's own net/taxable income (TP-1 lines 275/299) is now modelled, but only through TP-1 line 201's deduction for workers, and the residual errs in BOTH directions rather than only the safe one. TOO MUCH TAX (the deduction understated): Work Chart 201's lines 2, 3 and 4 — amounts received under a work-incentive project, net research grants, and Wage Earner Protection Program payments — also count as eligible work income and this engine has no input for them, because they arrive on TP-1 line 154, which reaches the engine only through `otherIncome`, a slot that also carries pensions and interest, so inferring them would over-deduct for every retiree; and of TP-1 lines 287-297 only line 289 (non-capital losses of other years) is modelled, through Task 2.75's line-25200 slot, so line 299 = line 279 less line 289 and the rest of that block — deductions for strategic investments, net capital losses from other years, the two capital gains deductions, line 293's deduction for income situated on a reserve, line 295 and line 297 — is still absent. TOO LITTLE TAX (the deduction overstated, or the base understated): Work Chart 201 line 7 is a SUBTRACTION — "Amount included in the income above and entitling you to a deduction on line 293", followed by "Subtract line 7 from line 6" — and line 1 itself is net of RL-1 box 211 (taxable benefits from previous employment) and excludes employment income earned as an elected municipal, school-board or legislative official; this engine subtracts none of those, so a filer who has them is allowed a larger line 201 deduction than the form gives. That error is CAPPED and often nil: the deduction is min(6% of eligible work income, $1,420 for 2025 / $1,450 for 2026), the ceiling binds from $23,666.67 / $24,166.67 of eligible work income, so an unsubtracted amount changes nothing unless it takes eligible work income below that point, and the worst case is the whole deduction wrongly allowed — worth $198.80 / $203.00 of tax at Quebec's 14% rung and $365.65 / $373.38 at its 25.75% rung. UNCAPPED, and unchanged from before this engine modelled Quebec's base at all: TP-1 line 260 (Schedule N, the adjustment of investment expenses) is ADDED at line 275, and lines 276 and 278 (the adjustment of deductions, and Universal Child Care Benefit and RDSP income) are ADDED at line 279; none is modelled, so a filer who has one is shown too little Quebec income and too little tax, by that amount times their Quebec marginal rate. What is NOT a divergence, checked rather than assumed: Quebec's dividend gross-ups are 138%/115% and its capital-gains inclusion rate is 50%, identical to the federal figures, so the shared total-income line is correct for Quebec
The RRSP deduction LIMIT (ITA s.146(1)) — 18% of the PRIOR year's earned income, plus unused room carried forward, less the pension adjustment. The deduction itself (line 20800) is modelled; the limit is a property of the taxpayer's filing history rather than of the return being computed, and this engine is given none of the three inputs
Capital LOSSES: the current-year allowable loss carried back three years or forward indefinitely (ITA s.111(1)(b)), and the lifetime capital gains exemption (s.110.6). A negative `capitalGains` is clamped to zero rather than reducing other income, which is s.3(b), but the unused amount is dropped rather than carried
Dividends from FOREIGN corporations, which are ordinary income with no gross-up and no dividend tax credit (ITA s.82(1) applies to taxable dividends from taxable CANADIAN corporations only) — a caller must pass those through `otherIncome`, not `eligibleDividends`/`nonEligibleDividends`
Quebec's health services fund contribution and Quebec credits beyond the BPA/age/retirement pool
Quebec's DEDUCTION-versus-CREDIT split on two amounts the federal return deducts. Union, professional or other dues are a 10% NON-REFUNDABLE CREDIT on the TP-1 (lines 397.1 and 397), never a deduction; `deductions` is a FEDERAL line-23300 amount that flows into Quebec's own net income unchanged (TP-1 line 201 is the only Quebec-only deduction modelled, and it is computed from the income slots rather than from this one), so an amount passed here is instead relieved at the Quebec MARGINAL rate (14%-25.75%) - between 1.4x and 2.575x the statutory 10%, understating tax owing. Childcare expenses are a REFUNDABLE credit (line 455, Schedule C; the real rate is 67%-78% of eligible expenses on an income-tested scale, TP-1.D-C Part D's table, nothing like a flat 10%) that is added to payments and other credits AFTER tax is calculated (lines 451.2-465, subtracted from line 450 at line 470) and never reduces tax payable at all — so the correct amount `deductions` should relieve a real childcare credit by is ZERO, not a percentage, and there is no statutory rate for it to be compared against. A Quebec filer must leave both out of `deductions`; outside Quebec both are ordinary deductions, because every other province levies tax on the federal line 26000 taxable income
The T1's STEP 4 deductions, which are subtracted from net income (line 23600) to reach taxable income (line 26000) — lines 24400-25600. The engine models exactly ONE of them, line 25200 (non-capital losses of other years, ITA s.111(1)(a)), and this calculator never offers it: every figure shown here is computed with that line at $0. If you are carrying a non-capital loss forward, your taxable income and your tax are both lower than shown, and the amount is not a percentage of the loss — the loss reduces taxable income only, so it moves the bracket walks and the Ontario Health Premium and leaves every net-income-tested amount (the age amount, LIFT, the Ontario Tax Reduction, the BPA phase-out) exactly where it is. The other step-4 lines are not modelled at all: 25400 (the capital gains deduction, ITA s.110.6), 25500 (northern residents, form T2222) and 25600 (additional deductions, including the treaty-exempt share of foreign pension and social-security income)
This is an estimate of tax payable, not a filed return and not tax advice.
Simple mode collects 9 fields; advanced mode adds 4 more. Both send the same request and run the same calculation.