function calculateRRSPGrowth() {
// Get inputs
var startBal = parseFloat(document.getElementById('startBalance').value);
var annualAdd = parseFloat(document.getElementById('annualContrib').value);
var rate = parseFloat(document.getElementById('returnRate').value);
var years = parseInt(document.getElementById('timeHorizon').value);
var taxRate = parseFloat(document.getElementById('taxRate').value);
// Defaults for empty inputs
if (isNaN(startBal)) startBal = 0;
if (isNaN(annualAdd)) annualAdd = 0;
if (isNaN(rate)) rate = 0;
if (isNaN(years)) years = 0;
if (isNaN(taxRate)) taxRate = 0;
// Calculations
var totalValue = 0;
var totalContributions = startBal + (annualAdd * years);
var totalInterest = 0;
var totalRefunds = (annualAdd * years) * (taxRate / 100);
// Compound Interest Formula (Annually compounded)
if (rate === 0) {
totalValue = totalContributions;
} else {
var r = rate / 100;
// Future Value of Lump Sum: P * (1+r)^n
var fvLumpSum = startBal * Math.pow((1 + r), years);
// Future Value of Annuity (End of period): PMT * [((1+r)^n – 1) / r]
var fvAnnuity = annualAdd * ((Math.pow((1 + r), years) – 1) / r);
totalValue = fvLumpSum + fvAnnuity;
}
totalInterest = totalValue – totalContributions;
// Update UI
document.getElementById('resTotalValue').innerText = formatCurrency(totalValue);
document.getElementById('resPrincipal').innerText = formatCurrency(totalContributions);
document.getElementById('resInterest').innerText = formatCurrency(totalInterest);
document.getElementById('resTaxRefund').innerText = formatCurrency(totalRefunds);
// Chart widths
var percentPrincipal = (totalContributions / totalValue) * 100;
var percentInterest = (totalInterest / totalValue) * 100;
if (totalValue === 0) {
percentPrincipal = 0;
percentInterest = 0;
}
document.getElementById('barPrincipal').style.width = percentPrincipal + '%';
document.getElementById('barInterest').style.width = percentInterest + '%';
document.getElementById('rrspResults').style.display = 'block';
}
function formatCurrency(num) {
return new Intl.NumberFormat('en-CA', { style: 'currency', currency: 'CAD', maximumFractionDigits: 0 }).format(num);
}
Understanding RRSP Rate of Return
Your Registered Retirement Savings Plan (RRSP) is one of the most powerful tools available to Canadians for building long-term wealth. However, the eventual size of your nest egg depends heavily on one critical factor: your Rate of Return.
Unlike a simple savings account with a fixed interest rate, an RRSP is a "basket" that can hold various investments—stocks, bonds, mutual funds, ETFs, and GICs. The rate of return is the percentage growth your investments earn annually.
How Rate of Return Impacts Growth
Even small differences in your annual rate of return can result in massive differences in your retirement savings due to the power of compounding. As the calculator above demonstrates, earning 6% versus 4% over a 25-year period can increase your total portfolio value by tens of thousands of dollars, without you contributing an extra penny.
Historical Return Benchmarks
When estimating your future growth in the calculator, it is important to use realistic numbers based on your risk tolerance and asset allocation:
Conservative Portfolio (Income focused): Typically holds more bonds and GICs. Historical average returns often range from 3% to 5%.
Balanced Portfolio: A mix of stocks and fixed income. Historical average returns often range from 5% to 7%.
Aggressive Portfolio (Growth focused): Heavy exposure to equities/stocks. Historical average returns often range from 7% to 9%, though with higher volatility.
The "Hidden" Return: Tax Refunds
One specific advantage of the RRSP is the tax deduction. The contributions you make reduce your taxable income for the year.
For example, if you have a marginal tax rate of 40% and you contribute $10,000, you may receive a tax refund of $4,000. While this isn't "investment growth" in the traditional sense, it is an immediate return on your capital. Smart investors reinvest this refund back into their RRSP or TFSA to accelerate compound growth.
Real vs. Nominal Rate of Return
When using the RRSP Rate of Return Calculator, remember that the result is a nominal figure. It does not account for inflation (the rising cost of living). To estimate your purchasing power in retirement, you may wish to subtract the expected inflation rate (typically 2-3%) from your expected investment return. For example, if you expect an 8% market return and 3% inflation, use 5% in the calculator to see your growth in "today's dollars."