Estimate how much house you can buy based on your income and debts.
$
$
$
%
$
$
Maximum Home Price
$0
Monthly Payment (P&I + Tax + Ins)$0
Loan Amount$0
Debt-to-Income (Front-End)0%
Debt-to-Income (Back-End)0%
How Much House Can I Afford?
Determining your budget is the first critical step in the home buying process. This Mortgage Affordability Calculator uses the standard debt-to-income (DTI) rules employed by most lenders to estimate the maximum home price you can comfortably afford without overstretching your finances.
Understanding the 28/36 Rule
Lenders typically use two ratios to determine your loan eligibility:
Front-End Ratio (28%): Your housing costs (mortgage principal, interest, taxes, and insurance) should not exceed 28% of your gross monthly income.
Back-End Ratio (36%): Your total monthly debt payments (housing costs plus credit cards, student loans, car loans, etc.) should not exceed 36% of your gross monthly income.
Our calculator determines your maximum monthly payment based on the lower of these two limits to ensure you stay within a safe financial range.
Key Factors Affecting Your Affordability
Income: Higher gross income increases your borrowing power.
Debts: High monthly debt obligations reduce the amount available for a mortgage payment.
Down Payment: A larger down payment reduces the loan amount required, allowing you to purchase a more expensive home for the same monthly payment.
Taxes & Insurance: These recurring costs are included in your DTI calculation. Areas with lower property taxes can increase your affordability.
Tips to Increase Your Home Budget
If the result is lower than you hoped, consider paying down existing debts to lower your DTI ratio, saving for a larger down payment, or shopping around for a lower interest rate. Improving your credit score can also help you qualify for better rates, directly impacting how much house you can afford.
function calculateHouseAffordability() {
// 1. Retrieve Input Values
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 loanTerm = parseFloat(document.getElementById('loanTerm').value);
var propertyTax = parseFloat(document.getElementById('propertyTax').value);
var homeInsurance = parseFloat(document.getElementById('homeInsurance').value);
// 2. Basic Validation
if (isNaN(annualIncome) || annualIncome <= 0) {
alert("Please enter a valid Annual Income.");
return;
}
// Handle defaults for empty optional fields
if (isNaN(monthlyDebt)) monthlyDebt = 0;
if (isNaN(downPayment)) downPayment = 0;
if (isNaN(interestRate) || interestRate <= 0) {
alert("Please enter a valid Interest Rate.");
return;
}
if (isNaN(loanTerm) || loanTerm <= 0) loanTerm = 30;
if (isNaN(propertyTax)) propertyTax = 0;
if (isNaN(homeInsurance)) homeInsurance = 0;
// 3. Calculate Monthly Gross Income
var monthlyGrossIncome = annualIncome / 12;
// 4. Determine Max Allowable Monthly Housing Payment
// Rule 1: Front-end ratio (28% of income max for housing)
var maxHousingFront = monthlyGrossIncome * 0.28;
// Rule 2: Back-end ratio (36% of income max for total debt)
// Total Debt Allowed = Income * 0.36
// Max Housing Back = Total Debt Allowed – Current Monthly Debts
var maxTotalDebtAllowed = monthlyGrossIncome * 0.36;
var maxHousingBack = maxTotalDebtAllowed – monthlyDebt;
// The limiting factor is the smaller of the two
var maxAffordablePITI = Math.min(maxHousingFront, maxHousingBack);
// Ensure result isn't negative (if debts are too high)
if (maxAffordablePITI 0) {
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = loanTerm * 12;
// Formula for Loan Amount
var mathPow = Math.pow(1 + monthlyRate, numberOfPayments);
loanAmount = availableForPI * ( (mathPow – 1) / (monthlyRate * mathPow) );
} else {
availableForPI = 0; // If taxes/insure eat up budget
loanAmount = 0;
}
// 7. Calculate Max Home Price
var maxHomePrice = loanAmount + downPayment;
// 8. Calculate Actual Ratios for Display
var actualHousingCost = availableForPI + monthlyTax + monthlyInsurance;
var frontEndRatio = (actualHousingCost / monthlyGrossIncome) * 100;
var backEndRatio = ((actualHousingCost + monthlyDebt) / monthlyGrossIncome) * 100;
// 9. Display Results
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
maximumFractionDigits: 0
});
document.getElementById('maxHomePrice').innerText = formatter.format(maxHomePrice);
document.getElementById('monthlyPaymentResult').innerText = formatter.format(actualHousingCost);
document.getElementById('loanAmountResult').innerText = formatter.format(loanAmount);
document.getElementById('frontEndRatioResult').innerText = frontEndRatio.toFixed(1) + "%";
document.getElementById('backEndRatioResult').innerText = backEndRatio.toFixed(1) + "%";
// Show results div
document.getElementById('resultsArea').style.display = "block";
}