Mortgage Affordability Calculator
This calculator helps you estimate the maximum mortgage you can afford based on your income, debts, and desired down payment. Understanding your potential borrowing power is a crucial first step in your home-buying journey.
Your Estimated Maximum Mortgage Affordability
#mortgage-calculator-app {
font-family: sans-serif;
max-width: 600px;
margin: 20px auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
background-color: #f9f9f9;
}
#calculator-title, #result-title {
text-align: center;
color: #333;
}
#calculator-description {
margin-bottom: 20px;
color: #555;
line-height: 1.6;
}
.input-group {
margin-bottom: 15px;
}
.input-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
color: #444;
}
.input-group input[type="number"] {
width: calc(100% – 12px);
padding: 8px;
border: 1px solid #ddd;
border-radius: 4px;
box-sizing: border-box; /* Important for padding and border */
}
button {
display: block;
width: 100%;
padding: 10px 15px;
background-color: #007bff;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
margin-top: 10px;
}
button:hover {
background-color: #0056b3;
}
#result-section {
margin-top: 30px;
padding-top: 20px;
border-top: 1px solid #eee;
}
#mortgageAffordabilityResult, #maxLoanAmountResult, #maxHomePriceResult {
margin-top: 10px;
font-size: 1.1em;
color: #333;
text-align: center;
font-weight: bold;
}
function calculateMortgageAffordability() {
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) / 100; // Convert percentage to decimal
var loanTermYears = parseFloat(document.getElementById("loanTermYears").value);
var affordabilityResultDiv = document.getElementById("mortgageAffordabilityResult");
var maxLoanAmountResultDiv = document.getElementById("maxLoanAmountResult");
var maxHomePriceResultDiv = document.getElementById("maxHomePriceResult");
// Clear previous results
affordabilityResultDiv.innerHTML = "";
maxLoanAmountResultDiv.innerHTML = "";
maxHomePriceResultDiv.innerHTML = "";
// Basic validation
if (isNaN(annualIncome) || annualIncome <= 0 ||
isNaN(monthlyDebt) || monthlyDebt < 0 ||
isNaN(downPayment) || downPayment < 0 ||
isNaN(interestRate) || interestRate < 0 ||
isNaN(loanTermYears) || loanTermYears <= 0) {
affordabilityResultDiv.innerHTML = "Please enter valid positive numbers for all fields.";
return;
}
// Lender Debt-to-Income (DTI) Ratios:
// Common front-end DTI: 28% of gross monthly income
// Common back-end DTI: 36% of gross monthly income
// We'll use a combination, ensuring total housing costs + debt payments don't exceed a percentage of income.
// Let's assume a maximum total DTI of 43% for this calculator for a more conservative estimate.
var grossMonthlyIncome = annualIncome / 12;
var maxTotalDebtPaymentAllowed = grossMonthlyIncome * 0.43; // 43% DTI
var maxMortgagePaymentAllowed = maxTotalDebtPaymentAllowed – monthlyDebt;
if (maxMortgagePaymentAllowed 0) {
var mortgagePaymentFactor = Math.pow(1 + monthlyInterestRate, numberOfPayments);
maxLoanAmount = (maxMortgagePaymentAllowed * (mortgagePaymentFactor – 1)) / (monthlyInterestRate * mortgagePaymentFactor);
} else { // Handle 0% interest rate scenario
maxLoanAmount = maxMortgagePaymentAllowed * numberOfPayments;
}
// Calculate maximum affordable home price
var maxHomePrice = maxLoanAmount + downPayment;
// Display results
affordabilityResultDiv.innerHTML = "Estimated Maximum Monthly Mortgage Payment: $" + maxMortgagePaymentAllowed.toFixed(2);
maxLoanAmountResultDiv.innerHTML = "Estimated Maximum Loan Amount: $" + maxLoanAmount.toFixed(2);
maxHomePriceResultDiv.innerHTML = "Estimated Maximum Home Price: $" + maxHomePrice.toFixed(2);
}