Mortgage Affordability Calculator
This calculator helps you estimate how much you can realistically afford to borrow for a mortgage. It considers your income, existing debts, and desired loan term.
.calculator-container {
font-family: Arial, sans-serif;
max-width: 600px;
margin: 20px auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
background-color: #f9f9f9;
}
.calculator-container h2 {
text-align: center;
color: #333;
margin-bottom: 15px;
}
.calculator-container p {
text-align: justify;
color: #555;
line-height: 1.6;
margin-bottom: 20px;
}
.calculator-inputs {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
}
.form-group {
display: flex;
flex-direction: column;
}
.form-group label {
margin-bottom: 5px;
font-weight: bold;
color: #444;
}
.form-group input {
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 1rem;
}
.calculator-inputs button {
grid-column: 1 / -1;
padding: 12px 20px;
background-color: #007bff;
color: white;
border: none;
border-radius: 5px;
font-size: 1.1rem;
cursor: pointer;
transition: background-color 0.3s ease;
}
.calculator-inputs button:hover {
background-color: #0056b3;
}
.calculator-result {
margin-top: 25px;
padding: 15px;
border: 1px solid #d0e0d0;
border-radius: 5px;
background-color: #e8f5e9;
text-align: center;
font-size: 1.1rem;
color: #2e7d32;
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);
var loanTermYears = parseFloat(document.getElementById("loanTermYears").value);
var resultDiv = document.getElementById("result");
if (isNaN(annualIncome) || isNaN(monthlyDebt) || isNaN(downPayment) || isNaN(interestRate) || isNaN(loanTermYears)) {
resultDiv.innerHTML = "Please enter valid numbers for all fields.";
return;
}
// Common affordability rule: Total housing costs (PITI) shouldn't exceed 28% of gross monthly income.
// Debt-to-income ratio (DTI) shouldn't exceed 36%. This calculator focuses on the monthly payment aspect.
var grossMonthlyIncome = annualIncome / 12;
var maxHousingPayment = grossMonthlyIncome * 0.28; // Using the 28% rule for maximum PITI
// Calculate maximum affordable monthly mortgage payment (Principal & Interest only)
// This is a simplified calculation. A more complex one would include taxes, insurance (PITI).
// We'll assume P&I is the primary component we can calculate based on the inputs.
// Maximum affordable loan principal based on the maximum housing payment
var maxMonthlyInterestRate = interestRate / 100 / 12;
var numberOfPayments = loanTermYears * 12;
// Mortgage payment formula: M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1]
// We need to solve for P (Principal)
// P = M [ (1 + i)^n – 1] / [ i(1 + i)^n ]
var maxLoanPrincipal = 0;
if (maxMonthlyInterestRate > 0) {
var numerator = Math.pow(1 + maxMonthlyInterestRate, numberOfPayments) – 1;
var denominator = maxMonthlyInterestRate * Math.pow(1 + maxMonthlyInterestRate, numberOfPayments);
maxLoanPrincipal = maxHousingPayment * (numerator / denominator);
} else {
// If interest rate is 0, the principal is simply maxMonthlyPayment * numberOfPayments
maxLoanPrincipal = maxHousingPayment * numberOfPayments;
}
var maxHomeAffordability = maxLoanPrincipal + downPayment;
resultDiv.innerHTML = "Estimated Maximum Home Price You Can Afford: $" + maxHomeAffordability.toFixed(2);
}