Securing a mortgage is a significant financial step, and understanding how your payments are calculated is crucial. This calculator helps you estimate your regular mortgage payment based on key factors, providing a clearer picture of your financial commitment. We've designed this tool to be a helpful resource for potential and existing homeowners looking to understand their mortgage obligations with institutions like the Bank of Nova Scotia (Scotiabank).
How the Mortgage Payment is Calculated
The calculation for a mortgage payment is based on the standard annuity formula, which determines the fixed periodic payment required to amortize a loan over its term. The formula takes into account the principal loan amount, the interest rate, and the loan's term.
The core formula used for calculating the periodic payment (P) is:
P = [ L * i * (1 + i)^n ] / [ (1 + i)^n – 1]
Where:
L = The principal loan amount (the total amount you borrow).
i = The periodic interest rate. This is the annual interest rate divided by the number of payment periods in a year. For example, if the annual rate is 5.5% and payments are monthly, the periodic rate 'i' would be 0.055 / 12.
n = The total number of payments over the loan's lifetime. This is the amortization period in years multiplied by the number of payment periods per year.
Key Factors Explained:
Mortgage Amount ($): This is the total amount of money you are borrowing to purchase your home. A larger loan amount will naturally result in higher payments.
Annual Interest Rate (%): This is the yearly interest rate charged by the lender. Higher interest rates mean more interest is paid over the life of the loan, increasing your regular payments. Scotiabank offers various mortgage rates depending on market conditions, your creditworthiness, and the mortgage product chosen.
Amortization Period (Years): This is the total length of time you have to repay your mortgage. Common amortization periods include 15, 20, or 25 years. A longer amortization period spreads the loan repayment over more years, resulting in lower regular payments but typically more interest paid overall. A shorter amortization period means higher regular payments but less interest paid over the loan's life.
Payment Frequency: This determines how often you make a mortgage payment (e.g., monthly, bi-weekly, weekly).
Monthly: 12 payments per year.
Bi-Weekly (Accelerated): 26 payments per year. This means you make the equivalent of one extra monthly payment per year, which can significantly reduce the interest paid and shorten your amortization period.
Weekly (Accelerated): 52 payments per year. Similar to accelerated bi-weekly, this allows for faster principal repayment.
Semi-Monthly: 24 payments per year.
Choosing an accelerated payment frequency (like bi-weekly or weekly) is a popular strategy to pay down your mortgage faster and save on interest costs.
Using This Calculator
Simply enter the mortgage amount you anticipate borrowing, the current annual interest rate you're considering, and your desired amortization period. Select your preferred payment frequency. The calculator will then provide an estimate of your regular mortgage payment.
Disclaimer: This calculator provides an estimate for informational purposes only. Actual mortgage payments can vary based on specific Scotiabank mortgage products, additional fees, taxes, insurance, and personalized rate negotiations. It is recommended to consult directly with a Scotiabank mortgage specialist for accurate quotes and advice tailored to your financial situation.
function calculateMortgage() {
var loanAmount = parseFloat(document.getElementById("loanAmount").value);
var annualInterestRate = parseFloat(document.getElementById("interestRate").value);
var amortizationPeriod = parseFloat(document.getElementById("amortizationPeriod").value);
var paymentFrequency = parseInt(document.getElementById("paymentFrequency").value);
var resultText = "";
// Validate inputs
if (isNaN(loanAmount) || isNaN(annualInterestRate) || isNaN(amortizationPeriod) || loanAmount <= 0 || annualInterestRate < 0 || amortizationPeriod <= 0) {
resultText = "$0.00";
} else {
var monthlyInterestRate = (annualInterestRate / 100) / 12; // i in formula, assuming monthly calculation for rate conversion
var numberOfPayments;
if (paymentFrequency === 12) { // Monthly
numberOfPayments = amortizationPeriod * 12;
} else if (paymentFrequency === 26) { // Bi-Weekly (Accelerated)
monthlyInterestRate = (annualInterestRate / 100) / 12; // Use the same monthly rate for compounding
numberOfPayments = amortizationPeriod * 26;
} else if (paymentFrequency === 52) { // Weekly (Accelerated)
monthlyInterestRate = (annualInterestRate / 100) / 12; // Use the same monthly rate for compounding
numberOfPayments = amortizationPeriod * 52;
} else if (paymentFrequency === 2) { // Semi-Monthly
monthlyInterestRate = (annualInterestRate / 100) / 12; // Use the same monthly rate for compounding
numberOfPayments = amortizationPeriod * 24;
} else {
resultText = "Invalid frequency"; // Should not happen with select
numberOfPayments = 0;
}
// Calculate payment per period
var periodicPayment;
if (monthlyInterestRate === 0) { // Handle 0% interest rate
periodicPayment = loanAmount / numberOfPayments;
} else {
periodicPayment = loanAmount * (monthlyInterestRate * Math.pow(1 + monthlyInterestRate, numberOfPayments)) / (Math.pow(1 + monthlyInterestRate, numberOfPayments) – 1);
}
// Adjust payment for different frequencies if needed, but the formula uses the effective periodic rate
// For accelerated bi-weekly/weekly, the loan amount and term remain the same, but the number of payments increases.
// The formula P = [ L * i * (1 + i)^n ] / [ (1 + i)^n – 1] already accounts for the periodic rate 'i' and total periods 'n'.
// We simply need to present the result based on the selected frequency.
if (paymentFrequency === 26) { // Bi-Weekly (Accelerated)
// The formula yields the monthly equivalent if i and n were based on monthly.
// To get bi-weekly, we actually need to re-evaluate 'i' and 'n' based on the payment frequency.
// Let's recalculate with the correct periodic rate and number of periods for each frequency.
var periodsPerYear = 26;
var periodicRate = (annualInterestRate / 100) / periodsPerYear;
numberOfPayments = amortizationPeriod * periodsPerYear;
if (periodicRate === 0) {
periodicPayment = loanAmount / numberOfPayments;
} else {
periodicPayment = loanAmount * (periodicRate * Math.pow(1 + periodicRate, numberOfPayments)) / (Math.pow(1 + periodicRate, numberOfPayments) – 1);
}
} else if (paymentFrequency === 52) { // Weekly (Accelerated)
var periodsPerYear = 52;
var periodicRate = (annualInterestRate / 100) / periodsPerYear;
numberOfPayments = amortizationPeriod * periodsPerYear;
if (periodicRate === 0) {
periodicPayment = loanAmount / numberOfPayments;
} else {
periodicPayment = loanAmount * (periodicRate * Math.pow(1 + periodicRate, numberOfPayments)) / (Math.pow(1 + periodicRate, numberOfPayments) – 1);
}
} else if (paymentFrequency === 2) { // Semi-Monthly
var periodsPerYear = 24; // 2 payments per month * 12 months
var periodicRate = (annualInterestRate / 100) / periodsPerYear;
numberOfPayments = amortizationPeriod * periodsPerYear;
if (periodicRate === 0) {
periodicPayment = loanAmount / numberOfPayments;
} else {
periodicPayment = loanAmount * (periodicRate * Math.pow(1 + periodicRate, numberOfPayments)) / (Math.pow(1 + periodicRate, numberOfPayments) – 1);
}
} else { // Monthly (paymentFrequency = 12)
var periodsPerYear = 12;
var periodicRate = (annualInterestRate / 100) / periodsPerYear;
numberOfPayments = amortizationPeriod * periodsPerYear;
if (periodicRate === 0) {
periodicPayment = loanAmount / numberOfPayments;
} else {
periodicPayment = loanAmount * (periodicRate * Math.pow(1 + periodicRate, numberOfPayments)) / (Math.pow(1 + periodicRate, numberOfPayments) – 1);
}
}
if (!isFinite(periodicPayment)) {
resultText = "$0.00"; // Handle potential calculation errors
} else {
resultText = "$" + periodicPayment.toFixed(2);
}
}
document.getElementById("monthlyPayment").innerText = resultText;
}