30 Years Fixed
20 Years Fixed
15 Years Fixed
10 Years Fixed
Estimated Home Budget
$0
Max Monthly Payment (P&I)$0
Estimated Loan Amount$0
How is Your Home Buying Budget Calculated?
Determining how much house you can afford involves more than just looking at your bank account. Lenders primarily use the Debt-to-Income (DTI) ratio to assess your borrowing capacity. This calculator uses the standard 36% DTI rule, which suggests that your total monthly debt payments (including your new mortgage) should not exceed 36% of your gross monthly income.
The Key Components of Affordability
Gross Annual Income: Your total earnings before taxes and deductions. This is the starting point for all lender calculations.
Monthly Debts: This includes recurring obligations like car payments, student loans, minimum credit card payments, and personal loans. It does not typically include utilities or groceries.
Down Payment: The cash you have upfront. A larger down payment reduces your loan-to-value ratio and can help you secure better interest rates.
Interest Rate: Even a 1% difference in interest rates can change your purchasing 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 allowable monthly debt is $3,000. If you currently have $500 in car payments and student loans, your maximum available monthly mortgage payment (Principal & Interest) would be $2,500.
With a 30-year fixed-rate mortgage at 6.5%, that $2,500 monthly payment supports a loan of approximately $395,000. If you have a $50,000 down payment, your total home affordability is $445,000.
Pro Tip: Don't forget to account for property taxes, homeowners insurance, and HOA fees, which usually add 15-25% to your monthly Principal and Interest payment.
function calculateAffordability() {
var annualIncome = parseFloat(document.getElementById("annualIncome").value);
var monthlyDebts = parseFloat(document.getElementById("monthlyDebts").value) || 0;
var downPayment = parseFloat(document.getElementById("downPayment").value) || 0;
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(interestRate) || annualIncome <= 0 || interestRate <= 0) {
alert("Please enter valid positive numbers for income and interest rate.");
return;
}
// 1. Calculate Monthly Gross Income
var monthlyGrossIncome = annualIncome / 12;
// 2. Calculate Max Monthly Mortgage Payment based on DTI
// Formula: (Monthly Gross * DTI%) – Monthly Debts
var maxMonthlyBudget = (monthlyGrossIncome * (dtiLimit / 100)) – monthlyDebts;
if (maxMonthlyBudget <= 0) {
document.getElementById("resultsArea").style.display = "block";
document.getElementById("maxHomePrice").innerText = "Insufficient Income";
document.getElementById("maxHomePrice").style.color = "#d93025";
document.getElementById("monthlyPayment").innerText = "$0";
document.getElementById("loanAmountResult").innerText = "$0";
return;
}
// 3. Calculate Loan Amount based on Monthly Payment
// Monthly Payment P = L * [c(1+c)^n] / [(1+c)^n – 1]
// Solve for L: L = P * [(1+c)^n – 1] / [c(1+c)^n]
var monthlyRate = (interestRate / 100) / 12;
var numberOfPayments = loanTerm * 12;
var loanAmount = maxMonthlyBudget * (Math.pow(1 + monthlyRate, numberOfPayments) – 1) / (monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments));
// 4. Total Price = Loan + Down Payment
var totalHomePrice = loanAmount + downPayment;
// Update UI
document.getElementById("maxHomePrice").style.color = "#1e8e3e";
document.getElementById("maxHomePrice").innerText = "$" + Math.round(totalHomePrice).toLocaleString();
document.getElementById("monthlyPayment").innerText = "$" + Math.round(maxMonthlyBudget).toLocaleString();
document.getElementById("loanAmountResult").innerText = "$" + Math.round(loanAmount).toLocaleString();
document.getElementById("resultsArea").style.display = "block";
}