Built for the country you actually file in.
Not a US product with a currency toggle. A Canadian tax engine that knows a TFSA from an RRSP, what the superficial loss rule does to a December sale, and when the CRA starts wanting a T1135.
Your US dividends are being taxed in a country you don’t live in.
The IRS withholds 15% of every US dividend before it reaches you. Hold those shares in an RRSP and the Canada–US treaty makes that zero. Hold them in a TFSA and it is gone — withheld, and with no Canadian tax on the income, there is nothing to claim a credit against.
Same shares. Same company. Same you. Different account.
because withheld dollars don’t compound either
Assumes a flat 15% treaty withholding rate, dividends paid evenly across the year, and that the withheld dollars would otherwise have compounded at 7% a year for 20 years. It illustrates one rule in isolation — an FHSA behaves like the TFSA here, and a non-registered account is withheld too but generally recoverable through the foreign tax credit. Your real numbers depend on your holdings; the app computes this per position from your actual ledger, not from a slider.
CompoundWise finds every position this applies to, tells you which account it belongs in, and scores how well your whole portfolio is placed — out of 100.
Move it once. Keep it forever.
The withheld dividends, and the compounding they never got to do.
Assumes $375 of US dividends withheld a year at the 15% treaty rate, compounding at 7%. The app computes this from your own positions, not from an example.
The account is worth as much as the pick.
Same shares, same company, same you — and a different answer at the end of the year depending on which account they sat in.
Asset location, scored
Every position gets a mark out of 100 for being in the right account.
US dividend payers in a TFSA score low. High-growth in a TFSA scores high. Canadian dividend payers in a taxable account score high.
US withholding drag
Finds the US dividend stocks sitting in the account that quietly loses 15% of them.
15% IRS withholding in a TFSA, FHSA or non-registered account. An RRSP is exempt under Article XXI of the treaty.
Capital gains, before you sell
Shows the tax bill waiting if you sold everything today.
Gain × 50% inclusion × your marginal rate. The rate comes from your province and income band on CRA's 2026 brackets, not a national average.
Tax-neutral rebalancing
Warns you when a rebalance would cost tax, and shows a cheaper route.
Quantifies the gain a plan would realise and points at idle cash or this year's contribution instead.
Not a US product with a currency toggle. A Canadian tax engine, with the CRA rates and limits kept by tax year in one config file — so when a threshold moves, one number moves, and everything downstream moves with it.
Move a holding. Watch what it costs.
Withheld at 15% and unrecoverable — no Canadian tax on the income to credit it against.
Maximum upside sheltered permanently, and no dividend means no withholding to waste.
The eligible dividend tax credit only exists here. Anywhere else it is thrown away.
Illustrative scores on three representative holdings. The ordering is the real rule; the app scores every position you actually own, against the account it is actually in.
T1135, before the CRA asks
Tracks the cost base of your foreign holdings, in CAD, against the C$100,000 filing threshold. The banner turns red when you cross it — and comes back next tax season once you've filed.
The superficial loss rule, with a date
Sell at a loss and buy back inside 30 days and the CRA denies the loss. The harvest panel doesn't just warn you — it names the exact day the repurchase becomes safe.
Contribution room that counts deposits
Against the statutory caps — FHSA $8,000/yr and $40,000 lifetime, RESP $50,000, RDSP $200,000. It tracks the deposits you record, never market value, so a TFSA that grew is never falsely flagged as an over-contribution.
A year-end summary for filing time
Every realized disposition for the year — date, ticker, shares, proceeds in CAD, gain or loss — totalled, with the taxable half and the estimated tax. One click exports it as a CSV to fill Schedule 3 from — check each line against your broker's T5008.
Example account figures, illustrative. The thresholds and caps are the 2026 statutory figures the engine carries.
The rules that cost people money quietly.
The superficial loss rule
Warns you when the CRA won't let you claim a loss because you rebought too soon.
±30 days. It names the exact day the repurchase becomes safe — and re-flags an older sale if a conflicting buy is added later.
T1135 foreign property
Warns you before you cross the line where the CRA wants an extra form.
C$100,000 of foreign cost base. Mark it filed and the banner returns next tax season.
Contribution room
Keeps score of how much room is left in each registered account.
FHSA $8,000/yr and $40,000 lifetime, RESP $50,000, RDSP $200,000 — counted from deposits you record, never market value.
Room that pools correctly
Two TFSAs share one pool, and so do a personal and a spousal RRSP.
Contributions pool per room key, so a second account never doubles your limit.
Year-end summary
A ready-made list of your sales for filing time.
One-click CSV of every sale with proceeds and gain in CAD, the taxable half and estimated tax totalled — to fill Schedule 3 from, checked against your broker's T5008.
Constants you can check
The tax rates and limits live in one config file, keyed by the tax year they apply to. Source notes cover the brackets and some other sections — not yet every number.
One config file, served to every app. A new tax year is a config change, not a code change.
Not the 4% rule. Annuity math on the pot your balances are projected to reach at retirement, then a Monte Carlo simulation from that same pot at your spending target — success odds, how often the sustainable spend itself lasts, the spend that lasts in 90% of simulations, the tough and kind endings, and the age the money typically runs out on the paths that fail. Volatility is blended from your actual asset mix. The seed is fixed, so the same inputs always give the same answer.
Take it at 60, or wait until 70?
The answer is a date, not an opinion. Move the sliders.
This is the reference case. Move the slider to compare against it.
CPP adjustment factors are the statutory ones — 0.6% off per month before 65, 0.7% on per month after — applied to the estimate you enter, in today’s dollars, ignoring tax and the OAS clawback. The app runs the same factors against your real Service Canada figure and carries both through the retirement plan.
The 2026 recovery threshold. The plan tells you when your own income crosses it, and what that costs.
If the mandatory minimum on your registered balance would push you over the clawback line, the plan says so — the classic case for melting the RRSP down early.
Fill the low brackets, shrink the future forced minimum, and leave the TFSA for last — its withdrawals never count toward the clawback.
Illustrative figures. Every constant above is read from the engine’s one tax config, and every formula is locked by tests that run on each change.