Find out exactly how much home you can afford based on your income and debts.
30 Years Fixed
15 Years Fixed
20 Years Fixed
Estimated Maximum Purchase Price:
*This estimate assumes a 43% total debt-to-income limit and excludes property taxes/insurance.
How Is Mortgage Affordability Calculated?
Mortgage affordability is primarily determined by your Debt-to-Income (DTI) ratio. Lenders generally want to see that your total monthly debts (including your new mortgage) do not exceed 36% to 43% of your gross monthly income.
Key Factors Influencing Your Budget
Gross Annual Income: Your total earnings before taxes are the foundation of your borrowing power.
Monthly Debts: Car payments, student loans, and credit card minimums reduce the amount available for a monthly mortgage payment.
Down Payment: The more cash you bring to the table, the higher the home price you can afford for the same monthly payment.
Interest Rates: Even a 1% change in interest rates can swing your buying power by tens of thousands of dollars.
Example Calculation
If you earn $100,000 per year, your gross monthly income is $8,333. Using a 36% DTI ratio, your total debt limit is $3,000. If you already have $500 in monthly car and student loan payments, you have $2,500 left for your monthly mortgage (Principal + Interest). At a 7% interest rate on a 30-year loan, that $2,500 payment supports a loan of roughly $375,000. Add your down payment to this number to find your total home price.
Improving Your Affordability
To increase your home-buying budget, consider paying down high-interest revolving debts or shopping for a lower interest rate. Increasing your down payment also reduces the monthly interest burden, allowing for a more expensive property.
function calculateMortgageAffordability() {
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 dtiLimit = parseFloat(document.getElementById("dtiRatio").value);
if (isNaN(annualIncome) || isNaN(monthlyDebts) || isNaN(downPayment) || isNaN(interestRate)) {
alert("Please enter valid numerical values.");
return;
}
// 1. Calculate Monthly Gross Income
var monthlyGrossIncome = annualIncome / 12;
// 2. Calculate Maximum Monthly Payment Allowed (based on DTI)
var maxTotalMonthlyDebt = monthlyGrossIncome * (dtiLimit / 100);
var maxMonthlyMortgagePayment = maxTotalMonthlyDebt – monthlyDebts;
if (maxMonthlyMortgagePayment <= 0) {
document.getElementById("affordability-result").style.display = "block";
document.getElementById("maxPrice").innerHTML = "N/A";
document.getElementById("monthlyPaymentResult").innerHTML = "Your current debts exceed the target DTI ratio.";
return;
}
// 3. Calculate Loan Amount based on Payment
// Formula: P = PMT * ((1 – (1 + r)^-n) / r)
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = loanTerm * 12;
var maxLoanAmount = maxMonthlyMortgagePayment * ((1 – Math.pow(1 + monthlyRate, -numberOfPayments)) / monthlyRate);
// 4. Calculate Total Home Price
var totalHomePrice = maxLoanAmount + downPayment;
// Display results
document.getElementById("affordability-result").style.display = "block";
document.getElementById("maxPrice").innerHTML = "$" + totalHomePrice.toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 0});
document.getElementById("monthlyPaymentResult").innerHTML = "Estimated Monthly P&I: $" + maxMonthlyMortgagePayment.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("loanAmountResult").innerHTML = "Total Loan Amount: $" + maxLoanAmount.toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 0});
}