This calculator helps you estimate your regular mortgage payment based on key factors such as the loan amount, interest rate, amortization period, and payment frequency.
Mortgages are significant financial commitments, and understanding how your payment is calculated is crucial for effective budgeting and financial planning.
Royal Bank of Canada (RBC) offers various mortgage products, and this tool provides a general estimate for illustrative purposes.
How the Calculation Works
The standard formula for calculating mortgage payments (specifically, the payment for an annuity where payments are made at the end of each period) is used here. The formula considers the principal loan amount, the interest rate, and the loan term.
The formula for the monthly mortgage payment (M) is:
M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1]
Where:
M = Your total periodic payment (what we aim to calculate)
P = The principal loan amount (the amount you borrowed)
i = Your *periodic* interest rate. This is calculated by dividing the annual interest rate by the number of payment periods in a year. For example, if the annual rate is 6% (0.06) and payments are monthly, i = 0.06 / 12 = 0.005.
n = The total number of payments over the loan's lifetime. This is calculated by multiplying the number of years in the amortization period by the number of payment periods per year. For example, a 25-year mortgage with monthly payments has n = 25 * 12 = 300 payments.
Since mortgages are often paid more frequently than monthly (e.g., bi-weekly), the calculator adjusts the interest rate and the total number of payments based on the selected payment frequency.
Key Terms Explained:
Mortgage Amount (Principal): The total sum of money you are borrowing from RBC to purchase your property.
Annual Interest Rate: The yearly percentage charged by RBC on the outstanding loan balance. This rate can be fixed or variable.
Amortization Period: The total length of time you have to repay your mortgage, typically ranging from 5 to 30 years. A longer amortization period results in lower regular payments but means you'll pay more interest over the life of the loan.
Payment Frequency: How often you make payments towards your mortgage. Common options include weekly, bi-weekly, semi-monthly, and monthly. Choosing a more frequent payment schedule (like bi-weekly) can help you pay down your principal faster and save on interest over time, provided your payment amount is set correctly for that frequency.
Using This Calculator:
Enter the mortgage amount you plan to borrow, the expected annual interest rate, select the amortization period, and choose your preferred payment frequency. The calculator will then estimate your regular mortgage payment. This figure typically covers both principal and interest. Note that this estimate does not include potential additional costs like property taxes, homeowner's insurance, or mortgage default insurance (CMHC/Genworth premiums), which are often bundled into mortgage payments (especially for high-ratio mortgages).
This tool is a great starting point for understanding the potential cost of your mortgage with RBC. For precise figures and to discuss your specific mortgage options, it is always recommended to consult directly with an RBC mortgage specialist.
function calculateMortgagePayment() {
var principal = parseFloat(document.getElementById("loanAmount").value);
var annualRate = parseFloat(document.getElementById("annualInterestRate").value);
var amortizationYears = parseInt(document.getElementById("amortizationPeriod").value);
var paymentFrequency = parseInt(document.getElementById("paymentFrequency").value);
var resultValueElement = document.getElementById("result-value");
var paymentFrequencyDisplayElement = document.getElementById("payment-frequency-display");
// Clear previous results
resultValueElement.innerText = "$0.00";
paymentFrequencyDisplayElement.innerText = "";
// Input validation
if (isNaN(principal) || principal <= 0) {
alert("Please enter a valid mortgage amount.");
return;
}
if (isNaN(annualRate) || annualRate < 0) {
alert("Please enter a valid annual interest rate.");
return;
}
if (isNaN(amortizationYears) || amortizationYears <= 0) {
alert("Please select a valid amortization period.");
return;
}
if (isNaN(paymentFrequency) || paymentFrequency 0) {
monthlyPayment = principal * (monthlyRate * Math.pow(1 + monthlyRate, totalPayments)) / (Math.pow(1 + monthlyRate, totalPayments) – 1);
} else {
// If interest rate is 0, payment is simply principal divided by total monthly periods
monthlyPayment = principal / totalPayments;
}
var actualPayment;
var frequencyText = "";
switch (paymentFrequency) {
case 12: // Monthly
actualPayment = monthlyPayment;
frequencyText = "per month";
break;
case 26: // Bi-weekly
actualPayment = monthlyPayment * 12 / 26;
frequencyText = "bi-weekly";
break;
case 52: // Weekly
actualPayment = monthlyPayment * 12 / 52;
frequencyText = "per week";
break;
case 2: // Semi-monthly (24x/year)
actualPayment = monthlyPayment * 12 / 24;
frequencyText = "semi-monthly";
break;
default:
actualPayment = monthlyPayment;
frequencyText = "per month";
}
// Format and display the result
resultValueElement.innerText = "$" + actualPayment.toFixed(2);
paymentFrequencyDisplayElement.innerText = "Estimated " + frequencyText + " payment";
}