Calculate Your Mortgage Rate

Mortgage Affordability Calculator

Use this calculator to estimate how much you can borrow for a mortgage based on your income, debts, and desired loan terms. Understanding your potential borrowing power is a crucial first step in the home-buying process.

How Mortgage Affordability is Calculated

Lenders typically assess your ability to afford a mortgage by looking at your Debt-to-Income ratio (DTI) and your overall financial stability. This calculator provides an estimate based on common lending guidelines:

  • Debt-to-Income Ratio (DTI): This is a key metric for lenders. It compares your total monthly debt payments (including the estimated mortgage payment) to your gross monthly income. Many lenders prefer a DTI of 43% or lower, although this can vary.
  • Principal, Interest, Taxes, and Insurance (PITI): The estimated monthly mortgage payment includes not only the principal and interest on the loan but also an estimate for property taxes and homeowner's insurance. These are often escrowed by the lender.
  • Loan-to-Value Ratio (LVR): While not directly calculated here, your down payment affects the LVR. A higher down payment (lower LVR) can make you a more attractive borrower.

Important Note: This calculator provides an estimate only. Actual loan approval amounts and terms will depend on the specific lender, your credit score, employment history, and other financial factors. It's always best to speak with a mortgage professional for personalized advice.

Example Calculation

Let's say you have an Annual Household Income of $90,000, Total Monthly Debt Payments of $600, a Down Payment of $25,000, an estimated Interest Rate of 6.0%, a Loan Term of 30 years, and estimated Annual Property Taxes & Insurance of $3,600.

  • Gross Monthly Income = $90,000 / 12 = $7,500
  • Maximum P&I Payment (assuming 43% DTI limit) = $7,500 * 0.43 = $3,225
  • Estimated Monthly Property Taxes & Insurance = $3,600 / 12 = $300
  • Maximum allowable monthly mortgage payment (PITI) = $3,225 – $600 (existing debt) = $2,625
  • This $2,625 must cover P&I, taxes, and insurance. So, the maximum P&I payment is $2,625 – $300 = $2,325.
  • Using a mortgage payment formula (or an online calculator for P&I), a $2,325 monthly payment at 6.0% for 30 years supports a loan amount of approximately $389,000.
  • Total estimated maximum home price = Loan Amount + Down Payment = $389,000 + $25,000 = $414,000

Therefore, in this example, you might be able to afford a home priced around $414,000, depending on lender criteria.

var calculateMortgageAffordability = function() { var annualIncome = parseFloat(document.getElementById("annualIncome").value); var monthlyDebt = parseFloat(document.getElementById("monthlyDebt").value); var downPayment = parseFloat(document.getElementById("downPayment").value); var interestRate = parseFloat(document.getElementById("interestRate").value); var loanTermYears = parseFloat(document.getElementById("loanTermYears").value); var propertyTaxesAndInsurance = parseFloat(document.getElementById("propertyTaxesAndInsurance").value); var resultDiv = document.getElementById("result"); resultDiv.innerHTML = ""; // Clear previous results // Input validation if (isNaN(annualIncome) || annualIncome <= 0 || isNaN(monthlyDebt) || monthlyDebt < 0 || isNaN(downPayment) || downPayment < 0 || isNaN(interestRate) || interestRate <= 0 || isNaN(loanTermYears) || loanTermYears <= 0 || isNaN(propertyTaxesAndInsurance) || propertyTaxesAndInsurance < 0) { resultDiv.innerHTML = "Please enter valid positive numbers for all fields."; return; } var grossMonthlyIncome = annualIncome / 12; var monthlyInterestRate = (interestRate / 100) / 12; var loanTermMonths = loanTermYears * 12; var annualPropertyTaxesAndInsurance = propertyTaxesAndInsurance; // Already annual var monthlyPropertyTaxesAndInsurance = annualPropertyTaxesAndInsurance / 12; // Assuming a maximum DTI of 43% (common guideline, can vary) var maxDTI = 0.43; var maxTotalDebtPayment = grossMonthlyIncome * maxDTI; var maxMortgagePaymentAllowed = maxTotalDebtPayment – monthlyDebt; // This maxMortgagePaymentAllowed must cover P&I, taxes, and insurance var maxPrincipalAndInterest = maxMortgagePaymentAllowed – monthlyPropertyTaxesAndInsurance; if (maxPrincipalAndInterest 0) { maxLoanAmount = maxPrincipalAndInterest * (Math.pow(1 + monthlyInterestRate, loanTermMonths) – 1) / (monthlyInterestRate * Math.pow(1 + monthlyInterestRate, loanTermMonths)); } else { // Handle 0% interest rate case, though unlikely for mortgages maxLoanAmount = maxPrincipalAndInterest * loanTermMonths; } var estimatedMaxHomePrice = maxLoanAmount + downPayment; // Format results for display var formattedMaxLoanAmount = maxLoanAmount.toLocaleString(undefined, { minimumFractionDigits: 0, maximumFractionDigits: 0 }); var formattedEstimatedMaxHomePrice = estimatedMaxHomePrice.toLocaleString(undefined, { minimumFractionDigits: 0, maximumFractionDigits: 0 }); var formattedGrossMonthlyIncome = grossMonthlyIncome.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }); var formattedMonthlyDebt = monthlyDebt.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }); var formattedMaxMortgagePaymentAllowed = maxMortgagePaymentAllowed.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }); var formattedMonthlyPropertyTaxesAndInsurance = monthlyPropertyTaxesAndInsurance.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }); resultDiv.innerHTML = `

Estimated Affordability:

Gross Monthly Income: $${formattedGrossMonthlyIncome} Total Monthly Debt Payments: $${formattedMonthlyDebt} Estimated Monthly Property Taxes & Homeowner's Insurance: $${formattedMonthlyPropertyTaxesAndInsurance} Maximum Allowable Monthly Mortgage Payment (PITI): $${formattedMaxMortgagePaymentAllowed} Estimated Maximum Loan Amount: $${formattedMaxLoanAmount} Estimated Maximum Home Price (Loan + Down Payment): $${formattedEstimatedMaxHomePrice} This is an estimate. Your actual borrowing power may vary. `; }; .calculator-wrapper { font-family: sans-serif; max-width: 700px; margin: 20px auto; padding: 20px; border: 1px solid #eee; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .calculator-wrapper h2 { text-align: center; color: #333; margin-bottom: 15px; } .calculator-inputs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin-bottom: 20px; } .calculator-wrapper .input-group { display: flex; flex-direction: column; } .calculator-wrapper label { margin-bottom: 5px; font-weight: bold; color: #555; } .calculator-wrapper input[type="number"], .calculator-wrapper input[type="text"] { padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 16px; width: 100%; box-sizing: border-box; /* Include padding and border in the element's total width and height */ } .calculator-wrapper input[type="number"]:focus, .calculator-wrapper input[type="text"]:focus { border-color: #007bff; outline: none; box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25); } .calculator-wrapper button { display: block; width: 100%; padding: 12px 20px; background-color: #007bff; color: white; border: none; border-radius: 5px; font-size: 18px; cursor: pointer; transition: background-color 0.3s ease; margin-top: 10px; } .calculator-wrapper button:hover { background-color: #0056b3; } .calculator-result { margin-top: 25px; padding: 15px; background-color: #e9ecef; border: 1px solid #ced4da; border-radius: 5px; text-align: left; color: #333; } .calculator-result h3 { margin-top: 0; color: #007bff; margin-bottom: 10px; } .calculator-explanation { margin-top: 30px; padding-top: 20px; border-top: 1px solid #eee; font-size: 14px; color: #666; line-height: 1.6; } .calculator-explanation h3 { color: #333; margin-bottom: 10px; } .calculator-explanation ul { margin-top: 5px; padding-left: 20px; } .calculator-explanation li { margin-bottom: 8px; } @media (max-width: 600px) { .calculator-inputs { grid-template-columns: 1fr; } }

Leave a Comment