Determine your maximum home budget based on income, debts, and current interest rates.
30 Years
20 Years
15 Years
10 Years
Please enter valid numerical values for income, down payment, and interest rate.
You Can Afford A House Worth$0
Maximum Loan Amount:$0
Monthly Principal & Interest:$0
Est. Monthly Tax & Insurance:$0
Total Monthly Payment (PITI):$0
Debt-to-Income Ratio Used:36%
How Much House Can You Afford?
Understanding your purchasing power is the first critical step in the home buying journey. This Mortgage Affordability Calculator uses the standard debt-to-income (DTI) ratios employed by lenders to estimate the maximum home price you can manage financially. It balances your gross income against your existing debts and the projected costs of the new home.
How Affordability is Calculated
Lenders typically use two main rules to determine how much they will lend you:
The 28% Rule (Front-End Ratio): Your mortgage payment (including principal, interest, taxes, and insurance) should not exceed 28% of your gross monthly income.
The 36% Rule (Back-End Ratio): Your total monthly debt payments (mortgage + credit cards + student loans + car loans) should not exceed 36% of your gross monthly income.
This calculator determines the maximum monthly payment allowed under both rules and uses the lower of the two to ensure you remain within a safe financial limit. This conservative approach helps prevent "house poverty," where too much income is tied up in housing costs.
Key Factors Affecting Your Budget
Several variables significantly impact your maximum home price:
Interest Rate: A higher interest rate increases your monthly payment, which lowers the total loan amount you can afford. Even a 1% difference can change your purchasing power by tens of thousands of dollars.
Down Payment: A larger down payment reduces the loan amount needed for a specific home price, or allows you to buy a more expensive home for the same monthly payment.
Existing Debt: High monthly obligations (like car payments or student loans) reduce the amount of income available for a mortgage, strictly limiting your budget via the Back-End Ratio.
Property Taxes & Insurance: These are ongoing costs included in your monthly payment. Areas with high property taxes will reduce the amount allocated to the actual mortgage loan.
Improving Your Affordability
If the result isn't quite what you were hoping for, consider paying down existing monthly debts before applying. Reducing a $400 monthly car payment can increase your mortgage borrowing power by approximately $50,000 to $70,000, depending on interest rates. Additionally, saving for a larger down payment not only helps you afford more but may also eliminate the need for Private Mortgage Insurance (PMI).
function calculateAffordability() {
// Get inputs
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 = parseFloat(document.getElementById('loanTerm').value);
var taxRate = parseFloat(document.getElementById('propertyTaxRate').value);
var insuranceRate = parseFloat(document.getElementById('insuranceRate').value);
var errorDiv = document.getElementById('macError');
var resultDiv = document.getElementById('macResult');
// Validation
if (isNaN(annualIncome) || isNaN(downPayment) || isNaN(interestRate) || isNaN(loanTerm) || annualIncome <= 0) {
errorDiv.style.display = 'block';
resultDiv.style.display = 'none';
return;
}
errorDiv.style.display = 'none';
// Handle optional monthly debts
if (isNaN(monthlyDebts)) monthlyDebts = 0;
if (isNaN(taxRate)) taxRate = 1.2;
if (isNaN(insuranceRate)) insuranceRate = 0.5;
// 1. Calculate Monthly Gross Income
var monthlyIncome = annualIncome / 12;
// 2. Determine Max Allowable PITI (Principal, Interest, Taxes, Insurance)
// Rule 1: Front-end ratio (28% of income)
var maxPitiFront = monthlyIncome * 0.28;
// Rule 2: Back-end ratio (36% of income – other debts)
var maxPitiBack = (monthlyIncome * 0.36) – monthlyDebts;
// We take the minimum of the two to be safe/realistic
var maxAllowedMonthlyPayment = Math.min(maxPitiFront, maxPitiBack);
// If debts are too high, affordability might be negative or zero
if (maxAllowedMonthlyPayment <= 0) {
document.getElementById('maxHomePrice').innerHTML = "$0";
document.getElementById('maxLoanAmount').innerHTML = "$0";
document.getElementById('monthlyPI').innerHTML = "$0";
document.getElementById('monthlyTaxIns').innerHTML = "$0";
document.getElementById('totalMonthly').innerHTML = "$0";
document.getElementById('dtiUsed').innerHTML = "N/A – Debts too high";
resultDiv.style.display = 'block';
return;
}
// 3. Solve for Max Home Price
// Formula Logic:
// MonthlyPayment = (LoanAmount * MortgageFactor) + (HomePrice * MonthlyTaxRate) + (HomePrice * MonthlyInsRate)
// LoanAmount = HomePrice – DownPayment
// MortgageFactor = (r(1+r)^n) / ((1+r)^n – 1)
var r = (interestRate / 100) / 12;
var n = loanTerm * 12;
// Calculate Mortgage Factor (Principal & Interest per dollar borrowed)
var mortgageFactor = 0;
if (r === 0) {
mortgageFactor = 1 / n;
} else {
mortgageFactor = (r * Math.pow(1 + r, n)) / (Math.pow(1 + r, n) – 1);
}
var combinedTaxInsRateMonthly = ((taxRate + insuranceRate) / 100) / 12;
// Algebraic derivation:
// MaxPayment = ((Price – Down) * MFactor) + (Price * TaxInsRate)
// MaxPayment = (Price * MFactor) – (Down * MFactor) + (Price * TaxInsRate)
// MaxPayment + (Down * MFactor) = Price * (MFactor + TaxInsRate)
// Price = (MaxPayment + (Down * MFactor)) / (MFactor + TaxInsRate)
var maxHomePrice = (maxAllowedMonthlyPayment + (downPayment * mortgageFactor)) / (mortgageFactor + combinedTaxInsRateMonthly);
// Edge case: If down payment is huge, price might be constrained only by down payment + affordability
// But mathematically the formula holds. However, ensure Loan Amount isn't negative.
if (maxHomePrice < downPayment) {
maxHomePrice = downPayment; // You can just buy it cash
}
var maxLoanAmount = maxHomePrice – downPayment;
if (maxLoanAmount < 0) maxLoanAmount = 0;
// 4. Calculate Breakdown components based on the calculated Price
var monthlyTaxAndIns = maxHomePrice * combinedTaxInsRateMonthly;
var monthlyPI = maxLoanAmount * mortgageFactor;
var totalMonthly = monthlyPI + monthlyTaxAndIns;
// Formatting currency
var formatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
maximumFractionDigits: 0
});
// Update UI
document.getElementById('maxHomePrice').innerHTML = formatter.format(maxHomePrice);
document.getElementById('maxLoanAmount').innerHTML = formatter.format(maxLoanAmount);
document.getElementById('monthlyPI').innerHTML = formatter.format(monthlyPI);
document.getElementById('monthlyTaxIns').innerHTML = formatter.format(monthlyTaxAndIns);
document.getElementById('totalMonthly').innerHTML = formatter.format(totalMonthly);
// Show which ratio was the limiting factor
if (maxPitiFront < maxPitiBack) {
document.getElementById('dtiUsed').innerHTML = "28% (Front-End Limit)";
} else {
document.getElementById('dtiUsed').innerHTML = "36% (Back-End Limit)";
}
resultDiv.style.display = 'block';
}