Estimate the maximum home price you can afford based on your income and debts.
$
$
$
%
30 Years
20 Years
15 Years
10 Years
$
Please fill in all fields with valid numbers.
Calculation Results
Maximum Home Price
$0
Loan Amount$0
Monthly Principal & Interest$0
Down Payment$0
Limiting Factor–
*Calculations based on standard 28%/36% debt-to-income ratios.
How Much House Can I Afford?
Determining your home affordability is the first crucial step in the home buying process. This Home Affordability Calculator helps you estimate a realistic budget by analyzing your income, existing debts, and down payment savings. It uses the standard debt-to-income (DTI) ratios preferred by mortgage lenders to ensure you don't overstretch your finances.
Understanding Debt-to-Income Ratio (DTI)
Lenders use two main ratios to determine how much they are willing to lend to you:
The Front-End Ratio (28%): Ideally, your monthly housing costs (principal, interest, taxes, and insurance) should not exceed 28% of your gross monthly income.
The Back-End Ratio (36%): Your total monthly debt payments (including the new mortgage plus student loans, car payments, and credit cards) should not exceed 36% of your gross monthly income.
Our calculator checks both scenarios and uses the lower (more conservative) number to determine your maximum affordability.
Key Factors Affecting Your Affordability
Several variables impact your purchasing power:
Interest Rates: A higher interest rate increases your monthly payment, significantly reducing the total loan amount you qualify for.
Down Payment: A larger down payment reduces the loan amount required, allowing you to purchase a more expensive home for the same monthly payment.
Monthly Debts: Reducing existing debts (like paying off a car loan) lowers your back-end DTI ratio, potentially increasing your buying power.
Loan Term: A 30-year term offers lower monthly payments than a 15-year term, typically allowing you to borrow more, though you will pay more in interest over time.
How to Use This Calculator
Simply enter your gross annual income (before taxes), your monthly debt obligations, the cash you have saved for a down payment, and the current estimated interest rate. The calculator will determine the maximum loan size you qualify for and add your down payment to show the total home price you can afford.
function calculateAffordability() {
// 1. Get DOM elements
var incomeInput = document.getElementById('annualIncome');
var debtsInput = document.getElementById('monthlyDebts');
var downPayInput = document.getElementById('downPayment');
var rateInput = document.getElementById('interestRate');
var termInput = document.getElementById('loanTerm');
var taxInsInput = document.getElementById('taxInsEstimate');
var resultContainer = document.getElementById('resultContainer');
var errorDisplay = document.getElementById('errorDisplay');
// 2. Parse values
var annualIncome = parseFloat(incomeInput.value);
var monthlyDebts = parseFloat(debtsInput.value);
var downPayment = parseFloat(downPayInput.value);
var annualRate = parseFloat(rateInput.value);
var years = parseFloat(termInput.value);
var monthlyTaxIns = parseFloat(taxInsInput.value);
// 3. Validation
if (isNaN(annualIncome) || isNaN(monthlyDebts) || isNaN(downPayment) ||
isNaN(annualRate) || isNaN(years) || isNaN(monthlyTaxIns)) {
errorDisplay.style.display = 'block';
resultContainer.style.display = 'none';
return;
}
if (annualIncome <= 0 || annualRate <= 0) {
errorDisplay.innerHTML = "Income and Interest Rate must be greater than zero.";
errorDisplay.style.display = 'block';
resultContainer.style.display = 'none';
return;
}
errorDisplay.style.display = 'none';
// 4. Logic Implementation
var grossMonthlyIncome = annualIncome / 12;
var r = (annualRate / 100) / 12; // Monthly interest rate
var n = years * 12; // Total number of payments
// Rule 1: Front-End Ratio (28% of Income max for Housing)
// Max Housing Payment = (Income * 0.28)
// This payment covers: P&I + Tax/Ins
// So, Max P&I = (Income * 0.28) – Tax/Ins
var maxHousingPaymentFront = grossMonthlyIncome * 0.28;
var maxPI_Front = maxHousingPaymentFront – monthlyTaxIns;
// Rule 2: Back-End Ratio (36% of Income max for Total Debt)
// Total Allowed Debt = Income * 0.36
// Available for Housing = Total Allowed Debt – Existing Monthly Debts
// Max P&I = Available for Housing – Tax/Ins
var maxTotalDebtPayment = grossMonthlyIncome * 0.36;
var maxHousingPaymentBack = maxTotalDebtPayment – monthlyDebts;
var maxPI_Back = maxHousingPaymentBack – monthlyTaxIns;
// Determine which rule limits the borrower
var maxAllowablePI = 0;
var limitingFactorText = "";
if (maxPI_Front < maxPI_Back) {
maxAllowablePI = maxPI_Front;
limitingFactorText = "Front-End Ratio (Income)";
} else {
maxAllowablePI = maxPI_Back;
limitingFactorText = "Back-End Ratio (Debts)";
}
// Handle case where debts are too high
if (maxAllowablePI <= 0) {
document.getElementById('displayHomePrice').innerHTML = "$0";
document.getElementById('displayLoanAmount').innerHTML = "$0";
document.getElementById('displayPI').innerHTML = "$0";
document.getElementById('displayDownPayment').innerHTML = formatCurrency(downPayment);
document.getElementById('displayFactor').innerHTML = "Debts/Expenses too high";
resultContainer.style.display = 'block';
return;
}
// Calculate Max Loan Amount based on Max Allowable P&I
// PV Formula: PV = PMT * [(1 – (1+r)^-n) / r]
var maxLoanAmount = maxAllowablePI * ((1 – Math.pow(1 + r, -n)) / r);
// Calculate Max Home Price
var maxHomePrice = maxLoanAmount + downPayment;
// 5. Formatting and Output
function formatCurrency(num) {
return '$' + num.toFixed(0).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
}
document.getElementById('displayHomePrice').innerHTML = formatCurrency(maxHomePrice);
document.getElementById('displayLoanAmount').innerHTML = formatCurrency(maxLoanAmount);
document.getElementById('displayPI').innerHTML = formatCurrency(maxAllowablePI);
document.getElementById('displayDownPayment').innerHTML = formatCurrency(downPayment);
document.getElementById('displayFactor').innerHTML = limitingFactorText;
resultContainer.style.display = 'block';
}