TRANSPARENCY, BY DESIGN
Assumptions & methodology
Every result is calculated from your inputs. Here’s what the model does—and what the result can reasonably tell you.
What the estimated age means
The sustainability method tests possible transition dates one month at a time, starting now. Before a candidate transition, employment, living costs and contributions follow your accumulation inputs. After it, the selected goal’s spending and remaining income apply. The earliest date with no unfunded cash flow through the planning end age is the estimated milestone. Any earlier unfunded living cost also prevents a pass.
A pass means this constant-assumption model funds all expenses within a one-cent numerical tolerance. It allows the portfolio to approach zero by the end of the horizon. There is no bequest floor. Already achieved means the immediate transition passes the selected test; unreached means no eligible month passes. A custom goal tests only the chosen age.
Four definitions of freedom
- Essentials covered: investments and remaining income fund essential living expenses, plus any remaining debt payment.
- Fully work-optional: the chosen lifestyle is funded without your employment earnings. A partner’s employment, if included, continues until their separate retirement age.
- Semi-retirement: entered net part-time earnings help fund the chosen lifestyle; investments fund the remaining gap.
- Custom: your selected age, net employment income, and spending are tested through the horizon. Custom terminal portfolio requirements are deferred.
The monthly calculation
Inputs use currency dollars, not cents. Rates are effective annual decimals. Income, spending and desired contributions are entered in today’s purchasing power.
monthlyRate = (1 + annualRate)^(1/12) − 1
annualNetGrowth = (1 + return) × (1 − fees) − 1
portfolioEnd = portfolioStart × shockFactor × (1 + monthlyNetGrowth)
+ contributions − withdrawalsContributions and withdrawals happen at month-end. Contributions cannot exceed the after-tax income surplus. During accumulation, surplus beyond the desired contribution stays outside this investment-only model. Following transition, available surplus is invested. An unfunded withdrawal is recorded as a funding gap, not fictitious borrowing. Investment gains equal ending investments minus starting investments and cumulative contributions, plus actual cumulative withdrawals.
Withdrawal-rate target versus sustainability
annualFundingGap = max(0, annualGoalSpending − eligibleNetIncome) target = annualFundingGap / (1 − withdrawalTax) / withdrawalRate
The screening target card uses eligible income at the estimated milestone (or current age when unreached). It is in today’s dollars and excludes debt from this simple heuristic. Debt and future income changes are included in the detailed monthly sustainability test. The card need not equal the portfolio at the sustainable transition age.
The screening method only tests whether investments meet that rate-based target. It does not establish lasting funding, even if the age is labelled “target reached.” A 4% default is illustrative and is not universally safe. Monthly capacity uses the current portfolio × withdrawal rate × (1 − withdrawal tax) ÷ 12; it is a heuristic, not promised spendable income.
Inflation, nominal and real dollars
Monthly factors use the effective annual inflation rate. Living costs, net other income, partner income, and desired contributions rise with inflation. Primary earnings additionally follow your real annual income-growth input. Debt payments stay fixed in nominal dollars. The real chart divides nominal balances by cumulative inflation. No calculation mixes real balances and nominal cash flows.
The initial chart point is your entered investment balance; later points are estimates. Tooltips report the end-month portfolio and that month’s cash flows in the selected currency basis. Annual table flows are nominal totals over the previous twelve months and are labelled separately from real portfolio values. Calendar milestones are approximate month/year values from the current calendar month.
Taxes, household income and debts
Gross employment uses the user-entered effective earnings-tax estimate. Net income is not taxed again. Partner earnings are gross and use the same estimated employment tax. Part-time and other income are entered as net spendable amounts. Withdrawal needs use a separate user-entered withdrawal-tax estimate. Country selection changes currency and account labels; it does not calculate official tax liability or convert currencies.
Partner earnings stop according to the partner’s own age and retirement age. Enter shared assets, contributions and living spending once. The primary person’s transition may rely on a partner continuing to work; it is not necessarily the entire household’s retirement date.
Debt interest uses effective monthly compounding. Payments are capped at the remaining amount due and end at payoff. Exclude debt from the living-spending input to avoid counting payments twice. Insufficient payments may leave or increase debt. Cash and primary-home equity remain separate from invested retirement assets.
Other income is a single inflation-adjusted net stream, active from its start age until its end age, exclusive. Government benefit amounts are never inferred. Career breaks stop primary employment while expenses continue. A market shock applies once before that month’s investment growth; subsequent growth returns to the chosen constant assumption.
Risk and limits
Constant returns omit market volatility and sequence risk. Losses early during withdrawals can be more damaging than the same losses later. A deterministic pass does not imply a Monte Carlo probability. Monte Carlo and probability of sustainability are not yet implemented.
Official regional taxes, account limits, withdrawal restrictions, contribution room, detailed mortgage terms, arbitrary multiple income streams, separate per-account withdrawal rules, exact birthdays, and personal circumstances are not modelled. There are no live market prices or automatically estimated CPP, OAS, or Social Security payments. No securities or transactions are recommended.
Privacy and saved plans
Core calculations need no account, API key, or bank connection. Inputs are computed in your browser. Plans save to local storage only when you choose Save. You can delete saved scenarios from Your plan and export or import schema-versioned JSON. Imported content is validated; invalid inputs do not replace a current plan. Exports contain financial inputs and should be stored carefully.
No financial-data analytics or external fonts are used. Ordinary hosting requests may be logged by the hosting service. The published lab is public and does not require sign-in. Your entered financial inputs and locally saved scenarios are not shared with other visitors.