Understanding the true cost of homeownership is critical before signing on the dotted line. This specialized Mortgage Amortization Calculator helps you determine your estimated monthly repayment, the total interest you will pay over the life of the loan, and the total cost of the property including financing. By adjusting the loan term and interest rate, you can see how small changes impact your financial future.
Please enter valid positive numbers for all fields.
Estimated Monthly Payment:–
Total Principal:–
Total Interest Cost:–
Total Amount Repaid:–
How Mortgage Amortization Works
Amortization is the process of spreading out a loan into a series of fixed payments over a specific period of time. While your monthly payment amount generally remains the same for a fixed-rate mortgage, the portion of your payment that goes toward interest versus principal changes dramatically over the life of the loan.
In the early years of your mortgage, the majority of your payment goes toward interest. As the loan matures, a larger portion goes toward paying down the principal balance. This is why "extra payments" made early in the loan term are so effective at reducing total interest costs.
The Calculation Formula
Mortgage lenders use a standard amortization formula to determine your monthly payment ($M$):
M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1 ]
P: The principal loan amount.
i: The monthly interest rate (annual rate divided by 12).
n: The total number of payments (loan term in years multiplied by 12).
Factors That Influence Your Monthly Payment
When planning your budget for a new home, consider these variables:
Interest Rate: Even a 0.5% difference can save or cost you tens of thousands of dollars over 30 years. Rates are influenced by the Federal Reserve, the bond market, and your personal credit score.
Loan Term: A 15-year mortgage will have higher monthly payments than a 30-year mortgage, but you will pay significantly less in total interest.
Down Payment: A larger down payment reduces the Principal (P), thereby lowering your monthly obligation and potential Private Mortgage Insurance (PMI) costs.
Using This Calculator for Refinancing
You can also use this tool to evaluate refinancing options. Simply enter your remaining loan balance as the "Home Loan Amount," the new potential interest rate, and the new term to see if the monthly savings justify the closing costs associated with refinancing.
function calculateMortgage() {
// Get input values
var principalInput = document.getElementById('mortgagePrincipal').value;
var rateInput = document.getElementById('mortgageRate').value;
var termInput = document.getElementById('mortgageTerm').value;
var errorDiv = document.getElementById('errorDisplay');
var resultsDiv = document.getElementById('mortgageResults');
// Parse values
var principal = parseFloat(principalInput);
var annualRate = parseFloat(rateInput);
var years = parseFloat(termInput);
// Validation
if (isNaN(principal) || principal <= 0 ||
isNaN(annualRate) || annualRate < 0 ||
isNaN(years) || years <= 0) {
errorDiv.style.display = 'block';
resultsDiv.style.display = 'none';
return;
}
errorDiv.style.display = 'none';
var monthlyPayment = 0;
var totalPayments = 0;
var totalInterest = 0;
// Handle 0% interest case
if (annualRate === 0) {
monthlyPayment = principal / (years * 12);
totalPayments = principal;
totalInterest = 0;
} else {
// Standard Amortization Logic
var monthlyRate = (annualRate / 100) / 12;
var numberOfPayments = years * 12;
// Formula: M = P[r(1+r)^n]/[(1+r)^n-1]
var numerator = monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments);
var denominator = Math.pow(1 + monthlyRate, numberOfPayments) – 1;
monthlyPayment = principal * (numerator / denominator);
totalPayments = monthlyPayment * numberOfPayments;
totalInterest = totalPayments – principal;
}
// Update UI
document.getElementById('monthlyPaymentDisplay').innerHTML = '$' + formatMoney(monthlyPayment);
document.getElementById('totalPrincipalDisplay').innerHTML = '$' + formatMoney(principal);
document.getElementById('totalInterestDisplay').innerHTML = '$' + formatMoney(totalInterest);
document.getElementById('totalCostDisplay').innerHTML = '$' + formatMoney(totalPayments);
resultsDiv.style.display = 'block';
}
function formatMoney(amount) {
return amount.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
}