A mortgage payment is often more than just the principal and interest on the loan. For many homeowners, the monthly payment also includes amounts set aside to cover property taxes and homeowners insurance. This portion is known as an escrow payment. An escrow account is a special account managed by your mortgage lender, where funds are collected and then paid out to the relevant authorities (tax assessor, insurance company) on your behalf when they are due.
How Your Monthly Mortgage Payment is Calculated
The total monthly mortgage payment is the sum of four main components:
Principal & Interest (P&I): This is the core payment that goes towards repaying the loan itself and the interest accrued. The calculation for this uses the standard mortgage formula.
Property Taxes: Your estimated annual property taxes are divided by 12 to get the monthly amount added to your escrow payment.
Homeowners Insurance: Similarly, your annual homeowners insurance premium is divided by 12.
Private Mortgage Insurance (PMI): If your down payment was less than 20% of the home's purchase price, you'll likely pay PMI. This is an additional monthly cost, typically a small percentage of the loan amount annually, divided by 12.
The Math Behind the Calculation
The Principal & Interest (P&I) payment is calculated using the following formula:
M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1]
Where:
M = Your total monthly mortgage payment (Principal & Interest portion only)
P = The principal loan amount (the amount you borrowed)
i = Your calculated monthly interest rate (annual interest rate divided by 12)
n = The total number of payments over the loan's lifetime (loan term in years multiplied by 12)
Your total estimated monthly mortgage payment is the sum of the calculated M (P&I) plus your monthly taxes, monthly insurance, and monthly PMI.
Why Use an Escrow Account?
Lenders often require escrow accounts to ensure that property taxes and homeowners insurance premiums are paid on time. This protects their investment in your property. For homeowners, it simplifies budgeting by spreading these larger, less frequent expenses over 12 months. Your lender will typically review your escrow account annually to adjust your payments based on changes in tax rates or insurance premiums.
Example Scenario
Let's consider a loan of $300,000 at an annual interest rate of 6.5% for 30 years. Annual property taxes are $3,000 ($250/month), and annual homeowners insurance is $1,200 ($100/month). Let's assume PMI is $300 annually ($25/month).
P&I Calculation: Using the formula, the Principal & Interest payment would be approximately $1,896.20.
Monthly Taxes: $3,000 / 12 = $250.00
Monthly Insurance: $1,200 / 12 = $100.00
Monthly PMI: $300 / 12 = $25.00
The total estimated monthly mortgage payment would be approximately $1,896.20 + $250.00 + $100.00 + $25.00 = $2,271.20.
This calculator helps you estimate these costs, providing a clearer picture of your total monthly housing expense.
function calculateMortgage() {
var principal = parseFloat(document.getElementById("principal").value);
var annualInterestRate = parseFloat(document.getElementById("annualInterestRate").value);
var loanTerm = parseFloat(document.getElementById("loanTerm").value);
var monthlyTaxes = parseFloat(document.getElementById("monthlyTaxes").value);
var monthlyInsurance = parseFloat(document.getElementById("monthlyInsurance").value);
var monthlyPMI = parseFloat(document.getElementById("monthlyPMI").value);
var resultDiv = document.getElementById("result");
var totalMonthlyPaymentSpan = document.getElementById("totalMonthlyPayment");
var principalInterestSpan = document.getElementById("principalInterest");
var taxesSpan = document.getElementById("taxes");
var insuranceSpan = document.getElementById("insurance");
var pmiSpan = document.getElementById("pmi");
// Clear previous results and styles if inputs are invalid
totalMonthlyPaymentSpan.textContent = "$0.00";
principalInterestSpan.textContent = "$0.00";
taxesSpan.textContent = "$0.00";
insuranceSpan.textContent = "$0.00";
pmiSpan.textContent = "$0.00";
if (isNaN(principal) || principal <= 0 ||
isNaN(annualInterestRate) || annualInterestRate < 0 ||
isNaN(loanTerm) || loanTerm <= 0 ||
isNaN(monthlyTaxes) || monthlyTaxes < 0 ||
isNaN(monthlyInsurance) || monthlyInsurance < 0 ||
isNaN(monthlyPMI) || monthlyPMI 0) {
principalInterest = principal * (monthlyInterestRate * Math.pow(1 + monthlyInterestRate, numberOfPayments)) / (Math.pow(1 + monthlyInterestRate, numberOfPayments) – 1);
} else {
// Handle zero interest rate case to avoid division by zero
principalInterest = principal / numberOfPayments;
}
var totalMonthlyPayment = principalInterest + monthlyTaxes + monthlyInsurance + monthlyPMI;
// Format currency
var formatCurrency = function(amount) {
return "$" + amount.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
};
totalMonthlyPaymentSpan.textContent = formatCurrency(totalMonthlyPayment);
principalInterestSpan.textContent = formatCurrency(principalInterest);
taxesSpan.textContent = formatCurrency(monthlyTaxes);
insuranceSpan.textContent = formatCurrency(monthlyInsurance);
pmiSpan.textContent = formatCurrency(monthlyPMI);
}