Estimate how much home you can afford based on your income and debts.
30 Years Fixed
20 Years Fixed
15 Years Fixed
10 Years Fixed
Estimated Maximum Home Price:
How Much House Can I Afford?
Determining your home buying budget is the most critical step in the real estate process. Lenders typically use the Debt-to-Income (DTI) ratio to decide how much they are willing to lend you. This calculator uses the industry-standard 36% DTI rule to estimate your purchasing power.
Understanding the 28/36 Rule
The 28/36 rule is a common guideline used by mortgage lenders:
Front-End Ratio (28%): Your mortgage payment, including taxes and insurance, should not exceed 28% of your gross monthly income.
Back-End Ratio (36%): Your total debt payments (mortgage plus car loans, student loans, and credit cards) should not exceed 36% of your gross monthly income.
Factors That Affect Your Affordability
Several variables influence your final number:
Interest Rates: Even a 1% difference in rates can change your purchasing power by tens of thousands of dollars.
Down Payment: A larger down payment reduces your loan amount and may eliminate the need for Private Mortgage Insurance (PMI).
Property Taxes: These vary significantly by location. A high-tax area will lower the principal amount you can afford.
Loan Term: A 15-year mortgage has higher monthly payments than a 30-year mortgage, which reduces the total price you can afford but saves you thousands in interest.
Example Calculation
If you earn $100,000 per year, your gross monthly income is $8,333. Under the 36% rule, your total monthly debt should not exceed $3,000. If you have a $400 car payment, your available mortgage budget (including taxes and insurance) is $2,600 per month.
function calculateAffordability() {
var annualIncome = parseFloat(document.getElementById("annualIncome").value);
var monthlyDebts = parseFloat(document.getElementById("monthlyDebts").value);
var downPayment = parseFloat(document.getElementById("downPayment").value);
var interestRate = parseFloat(document.getElementById("interestRate").value);
var loanTerm = parseInt(document.getElementById("loanTerm").value);
var taxRate = parseFloat(document.getElementById("propertyTax").value) / 100;
if (isNaN(annualIncome) || isNaN(monthlyDebts) || isNaN(downPayment) || isNaN(interestRate)) {
alert("Please enter valid numerical values.");
return;
}
// 1. Calculate Monthly Gross Income
var monthlyGross = annualIncome / 12;
// 2. Use the 36% DTI Rule (Back-end ratio)
var maxTotalMonthlyDebt = monthlyGross * 0.36;
// 3. Subtract existing debts to find available PITI (Principal, Interest, Taxes, Insurance)
var availablePITI = maxTotalMonthlyDebt – monthlyDebts;
if (availablePITI <= 0) {
document.getElementById("maxHomePrice").innerHTML = "Insufficient Income";
document.getElementById("monthlyBreakdown").innerHTML = "Your monthly debts exceed 36% of your gross income.";
document.getElementById("affordability-result").style.display = "block";
return;
}
// 4. Reverse calculate the loan amount from the monthly payment
// We must account for the fact that Taxes/Insurance are based on Home Price, not Loan Amount.
// MonthlyPayment = [Loan * r(1+r)^n / ((1+r)^n – 1)] + (HomePrice * taxRate / 12)
// var HomePrice = Loan + DownPayment
// MonthlyPayment = [Loan * M] + [(Loan + DownPayment) * T]
// MonthlyPayment = Loan(M + T) + DownPayment(T)
// Loan = (MonthlyPayment – DownPayment * T) / (M + T)
var periodicRate = (interestRate / 100) / 12;
var numberOfPayments = loanTerm * 12;
var monthlyTaxFactor = taxRate / 12;
// Mortgage constant M
var mConstant = (periodicRate * Math.pow(1 + periodicRate, numberOfPayments)) / (Math.pow(1 + periodicRate, numberOfPayments) – 1);
var maxLoan = (availablePITI – (downPayment * monthlyTaxFactor)) / (mConstant + monthlyTaxFactor);
var maxHomePrice = maxLoan + downPayment;
if (maxLoan < 0) {
document.getElementById("maxHomePrice").innerHTML = "Adjust Down Payment";
document.getElementById("monthlyBreakdown").innerHTML = "Your monthly budget cannot cover the taxes/insurance for this down payment.";
document.getElementById("affordability-result").style.display = "block";
return;
}
// Display Results
document.getElementById("maxHomePrice").innerHTML = "$" + Math.round(maxHomePrice).toLocaleString();
document.getElementById("monthlyBreakdown").innerHTML =
"Based on a monthly budget of $" + Math.round(availablePITI).toLocaleString() +
" for PITI (Principal, Interest, Taxes, & Insurance) and a " + loanTerm + "-year term.";
document.getElementById("affordability-result").style.display = "block";
}