Getting started
This calculator models a couple's retirement portfolio drawdown over up to ~30 years. All figures are in real (today's) Canadian dollars — inflation is built in (2.5%/yr assumed).
Three things change every output:
- Your inputs on the left
- The expected real return (derived from your allocation, or manually overridden)
- Whether you run a Monte Carlo or stress test to see worst-case outcomes
You can save any input set as a named scenario, compare two side-by-side, and ask Claude Sonnet 4.6 to analyze the plan. The whole thing recomputes live as you type.
The fastest path to insight: set capital, spending phases, and allocation → look at the chart + sensitivity grid → click Run Monte Carlo → click Run AI Analysis. Total time: 30 seconds.
1. Starting capital
Total investable assets in CAD today. This is your liquid portfolio — exclude real estate, business equity, private holdings, and anything you can't actually sell or draw from this year. For a couple, sum both spouses' investable accounts.
If you'll receive a future lump sum (business sale, inheritance, condo sale), do not add it here — use the Lump-sum events section. That way the model knows when it arrives, not just that it exists.
Typical range: $1M–$10M. The calculator handles any range.
2. Start age / Plan to age
Start age is the age in year 1 (typically when retirement begins). "Plan to age" is the last age your plan needs to fund.
Recommendation: Plan to age 95 even if you think you'll die earlier. Outliving your money is much worse than dying with some left. For a couple, plan to age 95 for the younger spouse.
If both spouses are alive, use the older spouse's age as the start. The spending plan ends when the elder spouse would have been 95.
3. Spending phases
Spending usually drops in retirement as activity slows. Three phases let you model this:
- Phase 1 (active years): travel, dining, hobbies. Highest spending.
- Phase 2 (slower years): less travel, more comfort. Typically step down ~20–30%.
- Phase 3 (final years): mostly home + medical. Step down again, but watch for long-term-care costs.
Common stepdown ages: 80 → 90 → 95. Use 75 → 85 → 95 if you expect to slow down earlier.
All figures are in TODAY's dollars. The model handles inflation automatically.
Pitfall: Do not underestimate Phase 1. The first 10–15 years of retirement is when most discretionary spending happens. Lifestyle inflation here is the single biggest risk to the plan.
4. Portfolio allocation
Three sliders: Equity / Bonds / Cash. Must sum to 100% (a red warning appears if not).
| Asset | Examples | Expected real return | Volatility (σ) |
|---|---|---|---|
| Equity | VEQT, XEQT, VFV, XUU | ~5.5% | ~17% |
| Bonds | ZAG, XBB, GIC ladder | ~1.5% | ~5% |
| Cash | CASH.TO, PSA.TO, HISA | ~0.5% | ~1% |
Three preset buttons:
- Low Risk (20/70/10): Capital preservation. Math shows this fails at high withdrawal rates because bonds can't outrun spending. Use only if your withdrawal rate is well under 4%.
- Medium (60/32/8): Recommended baseline. Balanced. Matches the 3-bucket strategy.
- High Risk (85/10/5): Growth-oriented. Higher upside, higher sequence-of-returns risk.
Override checkbox: Manually set a real return, bypassing the allocation math. Use this for stress testing — "what if I get only 3% real instead of 4%?"
5. Income streams (CPP / OAS / pensions)
Streams that reduce how much you need to withdraw each year from the portfolio.
Click "+ CPP + OAS (parents)" to auto-add four streams for a 2-parent household:
- Dad CPP $22K starting age 70 (assumes deferred from 65)
- Mom CPP $14K starting age 67
- Dad OAS $8,750 starting age 65 (with clawback math)
- Mom OAS $8,750 starting age 65 (with clawback math)
Edit any row directly to match your real numbers.
OAS clawback activates at $93K personal income and fully claws back at $152K. The model splits household spending in half to estimate "personal income" — approximate but adequate for planning.
Custom income: click "+ Custom" for a pension, annuity, or rental income. Set annual amount + start age + optional end age (leave end blank for life).
6. Lump-sum events
One-time injections at a specific age. Use these for:
- Business sale — e.g. $1.5M at age 73
- Condo sale — e.g. $1.2M CAD at age 75 (Miami)
- Inheritance — best-guess age
- Reverse mortgage proceeds — if planned
Lump sums apply at the start of the named year — they're available for that year's spending and growth.
7. RRIF mandatory minimums
Enable this if a significant portion of your portfolio is in RRSP/RRIF accounts. Once enabled, the model forces a minimum withdrawal each year starting at the RRIF start age (typically 72), using the official CRA table: 5.40% at 72, rising to 18.79% at 94, then 20%.
Why it matters: If the forced minimum exceeds your spending need, you're withdrawing more than you need, paying tax on it, and likely triggering OAS clawback. The math gets ugly past age 80.
Set RRSP/RRIF balance to the portion of your total portfolio in registered accounts. E.g. $5M total, $1.5M in RRSP → set this to 1,500,000.
8. Tax drag
A simplified single number: % of investment growth lost to taxes annually.
Typical values:
- 0% — only if portfolio is entirely in TFSA + RRSP (sheltered growth). Unrealistic for most.
- 0.3–0.5% — well-structured portfolio with most growth in registered accounts.
- 0.8–1.5% — heavily taxable portfolio.
This is a rough model. Proper tax modeling needs an accountant — account-level marginal rates, income smoothing, eligible dividend tax credit, RRIF tax brackets, etc. Use this number as a planning ballpark, not a precise estimate.
9. Detailed account mix (TFSA / RRSP / Taxable)
Toggle Detailed account mix (under Starting capital) to switch from a single-pot tax-drag model to a full account-level simulation. When ON:
- Starting capital becomes read-only and auto-syncs to TFSA + RRSP + Taxable.
- Each account has distinct tax behavior:
- TFSA — growth and withdrawals are tax-free; doesn't count toward OAS clawback.
- RRSP/RRIF — growth is tax-deferred; withdrawals taxed as ordinary income at marginal rate; counts toward OAS clawback.
- Taxable — 0.5% annual leakage drag (interest/dividends); withdrawals taxed at ~15% × marginal rate (assumes 30% of any withdrawal is realized capital gain at 50% inclusion).
- Tax brackets are Ontario combined federal + provincial, 9 brackets from 20.05% to 53.53%, applied per spouse (assumes 50/50 income split via pension splitting after 65).
- OAS clawback uses actual computed personal income instead of the simple `grossSpend/2` approximation.
- Summary panel gains two extra rows: Total tax paid and Total OAS clawed back.
- Year-by-year table gains a Tax column.
When in doubt, leave Simple mode on. Detailed mode adds analytical power but only matters when you have real account balances to put in it.
10. Withdrawal strategy
Only used when Detailed account mix is ON. Two strategies:
- Tax-efficient (default): draw from Taxable → RRSP → TFSA. Preserves tax-sheltered growth longest, but the RRSP keeps compounding and can hit a brutal RRIF×OAS-clawback wall at 72.
- Income-smoothing: draw from RRSP → Taxable → TFSA. Drains the RRSP early in low-income years, flattening lifetime tax brackets and reducing OAS clawback exposure later.
The right choice depends on RRSP size:
- $1.5M RRSP or less → tax-efficient usually wins (compounding beats bracket smoothing).
- $3M+ RRSP → income-smoothing usually wins (avoiding forced 18%+ RRIF withdrawals at 90+).
- In between → run both, save as two scenarios, use Compare to overlay.
The toggle is the analytical gem — it's the single most consequential planning decision for households with significant RRSP balances. Try both.
11. Sensitivity grid
The table on the right shows what happens across a range of real returns. Three controls let you adjust:
- Min % — lowest return to test
- Max % — highest return to test
- Step — interval between rows
How to use: find the lowest return at which your plan still PASSes. If it's close to your assumed return, the plan is fragile. If you have 1.5%+ of headroom, comfortable.
Example: If you assume 4% real and the table shows PASS down to 3.5%, you have only 0.5% buffer — risky. If it PASSes at 2.5%, you have 1.5% buffer — solid.
12. Monte Carlo simulation
Runs 5,000 simulated futures with random year-by-year returns sampled from a normal distribution. Tells you what % of futures end with money left.
- Trials: 5,000 default — best balance of speed and accuracy.
- Volatility (σ): auto-derived from your allocation. Override only for stress testing.
Click Run Monte Carlo. Takes ~50ms.
Reading the results:
- Success rate: % of trials that survived to plan end.
90%+ = robust · 75–89% = marginal · <75% = fragile - Percentile cones on the chart: light blue bands showing where the middle 80% of trials land. Wider bands = more uncertainty.
- Ending percentiles table: distribution of ending balances. The 10th percentile tells you the unlucky-case ending balance.
The big insight: A plan that succeeds on paper (deterministic) can have only 70% MC success. Random returns + sequence risk are punishing. Always trust MC over deterministic.
13. Stress test (sequence-of-returns)
Three buttons that inject specific bad return sequences instead of random ones:
| Button | What it simulates |
|---|---|
| Crash year 1 | -25% real return in year 1, then normal returns |
| Crash year 5 | Normal years 1–4, -25% real in year 5, then normal |
| Lost decade | 0% real return for 10 years (the 2000–2009 US experience) |
Each draws an orange dashed line on the chart and shows the verdict in a banner.
Use this to: answer "what if 2008 hits right when we retire?" with a concrete chart, not just a probability.
How to interpret: If your baseline succeeds with $384K but the Crash year 1 stress test depletes at age 82, your plan is fragile to sequence-of-returns risk — even though it looks fine deterministically. This is the strongest argument for keeping cash + bonds (the bucket strategy).
14. Compare scenarios
Load any saved scenario as Scenario B and overlay it on the chart in green. Use this to answer questions like:
- "What if we sell the business at 73 vs. not?"
- "60/32/8 vs. 80/15/5 — does the growth tilt actually help?"
- "Spend $360K vs. $320K — does $40K/yr matter?"
To use:
- Save scenario A (Save button → name it)
- Change inputs to scenario B
- Save it under a different name
- Pick the other scenario from "Compare with…" — both lines now appear on the chart
Tip: You can have 3 lines on the chart simultaneously: your live deterministic plan (blue), a stress test (orange dashed), AND a compare scenario (green). Pair them with Monte Carlo bands for a complete picture.
15. AI Analysis (Claude Sonnet 4.6)
After running Monte Carlo, click Run AI Analysis. Claude Sonnet 4.6 reads your scenario + deterministic outcome + Monte Carlo + sensitivity grid and produces a tailored analysis in 4 sections:
- Verdict — robust, marginal, or fragile, with reasoning
- Top 3 Risks (Ranked) — specific to YOUR plan, with concrete triggers
- 3 Concrete Adjustments — specific, numerical, actionable
- What I Would NOT Do — a tempting but wrong move you should avoid
Takes ~25–30 seconds. Cost is ~$0.02 per call. With built-in prompt caching, subsequent calls within 5 minutes are cheaper.
Pro tip: Run AI Analysis before AND after making changes. The "before" verdict + the "after" verdict tells you whether your adjustment actually moved the needle.
The system prompt uses Anthropic prompt caching — the first AI call within any 5-minute window writes a 1,840-token cache; subsequent calls in that window read the cache for ~25% cheaper + ~1s faster.
Stale marker: after a successful AI run, if you change any input, a yellow OUTDATED badge appears above the AI output. Run AI Analysis again to refresh the snapshot.
This is not financial advice. It's a sophisticated reasoner doing pattern recognition on your numbers. Use it as a second opinion, not gospel — and run real plans by a fee-only CFP.
16. Scenario notes & auto-save
Two unobtrusive features that protect your work:
- Scenario notes — free-text textarea at the bottom of the Inputs panel. Whatever you type gets saved with the scenario when you click Save, and shows up again when you Load. Useful for remembering WHY you saved a particular variant: "sold business at 73, deferred Mom's CPP, used income-smoothing strategy."
- Auto-save — the calculator silently persists your live inputs to browser localStorage on every change. If you accidentally close the tab or refresh, you come back to exactly where you left off. No need to remember to Save.
Named scenarios (via Save) live alongside the auto-save — auto-save is a single rolling slot for the current working state; named scenarios are a separate list.
17. Save / Load / Share scenarios
- Save: prompts for a name, stores the entire scenario in this browser's localStorage. Other browsers / devices won't see it.
- Load: select from dropdown, click the Load button.
- Delete: select scenario from dropdown, click Delete (confirms first).
- Share: copies a URL containing all your inputs to clipboard. Send to your accountant or spouse — they'll see the exact same numbers when they open it.
Saved scenarios live in this browser only. The share URL is the way to give someone else a portable snapshot.
18. Print / PDF export
Click Print in the topbar to generate a clean one-page report formatted for sharing with your accountant or fee-only CFP.
The print stylesheet:
- Hides all interactive chrome (buttons, sliders, the Reset link, modal, etc.)
- Replaces the screen Inputs panel with a compact structured summary in the header — Capital / Spending / Allocation / Income / Lumps / RRIF / Tax — rendered as scannable rows
- Includes the chart at print width (Chart.js is forced to repaint at the new size)
- Includes summary metrics, sensitivity grid, MC results (if run), AI analysis (if run), stress + compare overlay banners
- Forces the year-by-year breakdown to display open
- Adds a header with current date, scenario name (if loaded), and notes
From the browser print dialog you can Save as PDF — same result.
19. Mobile UI
Open the live URL on a phone (or shrink your desktop browser below 768px) and the calculator auto-redirects to /m.html — a separate mobile-optimized UI with:
- 5 bottom tabs: Plan / Chart / Run / AI / More
- Accordion input sections with auto-summary lines (so you can see Spending Phases without expanding them)
- iOS-style toggle switches
- Touch-friendly sliders, large tap targets
- Bottom-sheet modal for the guide
- All desktop features preserved: account-level tax, compare, stress, MC, AI
Expanding the browser back above 768px auto-redirects to the desktop UI. Both directions preserve your query string + URL state.
Overrides: ?desktop=1 on the URL forces the desktop UI on a phone; ?mobile=1 forces mobile on desktop.
20. Spending Optimizer
Tucked inside the Optimize tab in the Run section. Answers the question: "Given my capital and everything else I've set, what's the most I can spend each year and still stay above a given Monte Carlo success rate?"
Click Find max sustainable spending and it binary-searches three targets in parallel — ~1.5 seconds total — and returns three colored cards:
- 🟢 Conservative (90%+ MC success) — the safe ceiling. If even bad-sequence trials mostly survive, you can spend this much.
- 🔵 Balanced (80%+ MC success) — the comfortable middle. Some risk in bad outcomes, but most futures survive.
- 🟠 Aggressive (70%+ MC success) — willing to accept ~1 in 3 trials depleting. Useful if you have lifestyle flexibility or expect to die earlier.
Each card shows the Phase 1 spending level (with Phases 2 & 3 scaled proportionally to preserve your stepdown pattern), the actual achieved success rate, the median ending balance, and an Apply this scenario button that writes the new spending into the form, clears the MC/AI snapshots, and jumps you to the MC tab to re-verify with a fresh full simulation.
Get AI recommendation on these options sends the three results plus your scenario to Claude Sonnet 4.6 for a focused 4-section verdict:
- My pick — one of the three, with the implied Phase 1 dollar amount
- Why this one — 2–3 sentences citing your specifics (RRSP size, lifespan, lump sums, withdrawal strategy)
- When the others win — concrete trigger conditions that would flip the recommendation
- What this DOESN'T fix — the limit of the exercise (only spending is optimized; allocation and lump-sum timing aren't)
Holds constant: your allocation, income streams, lump sums, account mix, withdrawal strategy, ages, and tax settings. Only Phase 1 spending (and the proportionally-scaled Phase 2/3) varies during the search.
Not for over-spending discovery. If the optimizer's 70% number is far higher than your current spend, that's a sign you're being conservative, not a recommendation to spend more. The 90% option is usually the right baseline; the 80% and 70% give you a sense of how much flex you have.
Recommended workflow
For a first-time plan review, work top to bottom:
- Set the basics — starting capital, ages, spending phases
- Pick a portfolio preset — Medium is a good starting point
- Look at the deterministic chart + sensitivity grid — what's the buffer?
- Click + CPP + OAS (parents) if planning for parents
- Add any lump sums you expect (business sale, condo sale)
- If you have real RRSP/TFSA balances, toggle Detailed account mix and enter them. Try both withdrawal strategies.
- Click Run Monte Carlo — what's the success rate?
- Open the Optimize tab and click Find max sustainable spending. The 90% card tells you your safe ceiling. If you're spending well below it, you have room; if above it, you're aggressive.
- Click each Stress Test button — does the plan survive a year-1 crash?
- Click Run AI Analysis — what does Claude say?
- Click Save — name it "Base case", add notes about your assumptions
- Make one change (e.g., apply the optimizer's 80% option, or trim Phase 1)
- Save as "Trimmed case" or "Optimized case"
- Use Compare to overlay them — does the change actually help?
- Run AI Analysis again on the better scenario
- Click Print for a one-page PDF report, or Share to send the URL to your accountant
For deeper validation, take both your "Base case" and "Trimmed case" share URLs to a fee-only CFP for a real cross-border review.