TFSA methodology
Last verified: Effective for 2026 tax year by Fiscal Moose
Open the TFSA calculatorThe Tax-Free Savings Account (TFSA) is a registered account that lets eligible Canadian residents contribute after-tax money and earn tax-free growth, with tax-free withdrawals at any time. This page documents the limits and rules our TFSA calculator relies on, the sources we verify them against, the reference cases that authorise the formula to ship, and the known limitations of our model.
How the calculator works
The calculator computes four things, all from the versioned per-year dollar limits in our data file and the rules in the Income Tax Act:
- Cumulative contribution room. Room accrues for every year from the year you turn 18 (a universal floor) that you are also a Canadian resident, starting with 2009. It carries forward indefinitely; the TFSA has no lifetime cap. We sum the per-year dollar limits, gated by eligibility, then subtract your contributions and add back any room that has replenished.
- Over-contribution tax (ITA s.207.02). When your contributions exceed your available room, the CRA charges 1% per month on the highest excess in each month, from the very first dollar, with no $2,000 grace amount (unlike the RRSP, which has its own lifetime cushion: see the RRSP methodology). We walk the year month by month and take the highest excess balance in each month, so the figure reflects the month-end running balance rather than a tranche model. A withdrawal does not lower a month’s excess that has already been reached earlier in the same month sequence.
- Non-resident tax (ITA s.207.03). A contribution made while you are a non-resident is taxed 1% per month on the full amount, not just any excess. This is a separate tax that can stack on top of the over-contribution tax. We report the two as distinct line items and never blend them.
- Withdrawal replenishment. A withdrawal adds its amount back to your room, but only on January 1 of the following year, never in the same calendar year. Re-contributing a withdrawal in the same year when you have no room left creates an over-contribution. The calculator applies the one-year lag exactly.
Opening the account depends on your province: in most provinces you can open a TFSA the year you turn 18, but in British Columbia, New Brunswick, Newfoundland and Labrador, Nova Scotia, and the three territories the age of majority is 19. In those jurisdictions your room still accrues from 18 and carries forward, but you cannot open an account until 19. The calculator surfaces this as a distinct state rather than a silent footnote.
Current limit (2026 tax year)
| Annual contribution limit | $7,000 |
|---|---|
| Lifetime cap | None (room carries forward indefinitely) |
| Program start year | 2009 |
| Over-contribution tax (ITA s.207.02) | 1% per month on the highest monthly excess, no grace |
| Non-resident tax (ITA s.207.03) | 1% per month on the full contribution |
These values are read directly from our versioned data file
(packages/data/src/tfsa/limits.ts). The full year-by-year dollar
limit table from 2009 onward is rendered on the
calculator page itself, and it is the same table the calculator sums to
compute your cumulative room.
Reference cases and verification
The TFSA formula ships only after passing a suite of 35 reference cases, each a known scenario with a known expected output drawn from CRA worked examples and the Income Tax Act. The build fails if any case diverges from its expected value by more than the case’s tolerance (most use exact integer arithmetic). The room and replenishment calculations are checked case-by-case against these expected values, so a contribution-room error cannot pass the build.
Three of the cases reproduce the CRA’s own published worked examples byte for byte:
- Rosanna ($63). Maxed out every year, then contributed $2,100 in October when she had no room left. The $2,100 excess sat in the account for October, November, and December, so the tax is $2,100 × 1% × 3 = $63.
- Jamal ($138). Contributed $2,200 of excess in June, then withdrew $800 in October. The October withdrawal does not lower October’s already-reached high-water excess, so months 6–10 are taxed on $2,200 (5 × $22 = $110) and months 11–12 on $1,400 (2 × $14 = $28), for $138. This is the month-end running-balance rule, not a tranche model.
- Twyla ($150). Maxed out every year, withdrew $3,000 in June, then re-contributed $3,000 in August of the same year. Because the room does not return until January 1 of the next year, the August re-contribution is a $3,000 excess held for months 8–12: $3,000 × 1% × 5 = $150.
Our update cadence
The TFSA dollar limit is set each year by indexing the 2009 base of $5,000 to inflation and rounding to the nearest $500 under Income Tax Act s.207.01(1). The CRA confirms the new figure in the autumn for the following year, and we refresh our data file every January when the new limit takes effect. The 1%-per-month penalty rates in ss.207.02 and 207.03 are statutory and change only by amendment to the Act, which we monitor on our as-needed schedule.
Notes from the verification record
The 2026 TFSA dollar limit is $7,000, unchanged
since 2024. The limit is the $5,000 (2009) base indexed to CPI and rounded to
the nearest $500 under Income Tax Act s.207.01(1), which is why it steps from
$6,000 to $6,500 to $7,000 rather than rising smoothly. We cross-check the
full year-by-year table (the TFSA_ANNUAL_LIMIT_BY_YEAR dataset)
against the CRA registered-plans “MP, RRSP, DPSP, TFSA limits and the
YMPE” table. The TFSA has no lifetime cap: cumulative room is computed
from the per-year sum, gated by eligibility. We re-verify each January.
If you find an error
If you spot a mistake in the calculator or this page, report it through our contact page. We commit to acknowledging within 24 hours, fixing clear formula or data errors within 7 days, and publishing a changelog entry describing what changed and when.
Sources
- Canada Revenue Agency: Tax-Free Savings Account (TFSA) contributions
- Canada Revenue Agency: Making or replacing withdrawals from a TFSA
- Canada Revenue Agency: Examples of tax payable on excess TFSA amount
- Income Tax Act, s. 207.01: "TFSA dollar limit" (nearest-$500 rounding)
- Income Tax Act, s. 207.02: tax on excess TFSA contributions (1%/month)
- Income Tax Act, s. 207.03: tax on non-resident TFSA contributions (1%/month)
Known limitations
- These limits apply to the 2026 tax year. The per-year dollar-limit table covers 2009 onward; future years load year-specific data as the CRA publishes them.
- The calculator assumes you are eligible (a valid SIN and the residency and age rules met). It does not validate eligibility for you.
- Residency is modelled at the calendar-year level. It does not model becoming a resident again part-way through a year, or designated-distribution offsets that can end the non-resident tax early. Consult the CRA for a mid-year status change.
- The calculator assumes continuous residency since the "resident since" year you enter. If you emigrated and later returned, your room may be lower than shown, because room does not accrue for non-resident years.
- The calculator reports contribution room, not an account-value forecast: it does not estimate how a balance grows over time.
- TFSA and RRSP contribution room are entirely separate, and there is no RRSP-to-TFSA reverse transfer in Canadian tax law. The calculator does not conflate the two.
- Successor-holder and estate rollover rules (a spouse becoming the account holder on death) are out of scope for this calculator.