Determine how much house you can realistically afford based on your income and debts.
Your Estimated Home Budget
How is Home Affordability Calculated?
Buying a home is the largest investment most people will ever make. To determine your "buying power," lenders primarily look at your Debt-to-Income (DTI) ratio. This calculator uses the standard 36% rule, which suggests that your total monthly debt payments (including your new mortgage) should not exceed 36% of your gross monthly income.
The 28/36 Rule Explained
Lenders often follow the 28/36 rule. This means that no more than 28% of your gross monthly income should go toward housing expenses (Principal, Interest, Taxes, and Insurance), and no more than 36% should go toward total debt obligations, including car loans and student loans.
Factors That Influence Your Budget
Interest Rates: Even a 1% difference in interest rates can change your purchasing power by tens of thousands of dollars.
Down Payment: A larger down payment reduces the loan amount and eliminates the need for Private Mortgage Insurance (PMI) if you reach the 20% threshold.
Property Taxes: These vary significantly by location and are a mandatory part of your monthly escrow payment.
Debt Levels: High car payments or student loans directly reduce the amount a bank will lend you for a home.
Example Calculation
If you earn $100,000 per year, your gross monthly income is $8,333. Using the 36% rule, your total monthly debt limit is $3,000. If you already have $500 in monthly car and student loan payments, you have $2,500 remaining for your mortgage payment. At a 7% interest rate, this could support a home price of approximately $430,000, depending on your down payment and local taxes.
function calculateAffordability() {
var grossAnnualIncome = parseFloat(document.getElementById("grossAnnualIncome").value);
var monthlyDebts = parseFloat(document.getElementById("monthlyDebts").value);
var downPayment = parseFloat(document.getElementById("downPayment").value);
var interestRate = parseFloat(document.getElementById("interestRate").value);
var loanTerm = parseFloat(document.getElementById("loanTerm").value);
var annualTaxIns = parseFloat(document.getElementById("propertyTax").value);
if (isNaN(grossAnnualIncome) || isNaN(monthlyDebts) || isNaN(downPayment) || isNaN(interestRate) || isNaN(loanTerm)) {
alert("Please enter valid numbers in all fields.");
return;
}
// 1. Calculate Gross Monthly Income
var monthlyGrossIncome = grossAnnualIncome / 12;
// 2. Max Total Monthly Debt (36% Rule)
var maxTotalMonthlyDebt = monthlyGrossIncome * 0.36;
// 3. Available for Mortgage (PITI – Principal, Interest, Taxes, Insurance)
var availableForPITI = maxTotalMonthlyDebt – monthlyDebts;
// 4. Subtract monthly taxes and insurance
var monthlyTaxIns = annualTaxIns / 12;
var availableForPI = availableForPITI – monthlyTaxIns;
if (availableForPI <= 0) {
document.getElementById("resultBox").style.display = "block";
document.getElementById("maxHomePrice").innerHTML = "Budget too low";
document.getElementById("resultDetails").innerHTML = "Based on your current income and debts, your debt-to-income ratio is too high to qualify for a standard mortgage. Consider reducing debt or increasing your down payment.";
return;
}
// 5. Reverse Mortgage Formula to find Loan Amount
// Monthly Rate
var r = (interestRate / 100) / 12;
// Total months
var n = loanTerm * 12;
// Loan = P * [ (1+r)^n – 1 ] / [ r(1+r)^n ]
var loanAmount = availableForPI * (Math.pow(1 + r, n) – 1) / (r * Math.pow(1 + r, n));
// 6. Total Home Price
var maxHomePrice = loanAmount + downPayment;
// Format results
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
maximumFractionDigits: 0
});
document.getElementById("resultBox").style.display = "block";
document.getElementById("maxHomePrice").innerHTML = formatter.format(maxHomePrice);
var detailsHtml = "Estimated Loan Amount: " + formatter.format(loanAmount) + "" +
"Monthly Principal & Interest: " + formatter.format(availableForPI) + "" +
"Estimated Monthly Total Payment: " + formatter.format(availableForPITI) + "" +
"This estimate assumes a " + interestRate + "% interest rate for " + loanTerm + " years with a Debt-to-Income ratio of 36%.";
document.getElementById("resultDetails").innerHTML = detailsHtml;
}