Mortgage Affordability Calculator
ANA›Life Services Authority›National Calculator Authority›Mortgage Affordability Calculator
.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }
Mortgage Affordability Calculator
Estimate the maximum home price you can afford based on your gross income, monthly debts, down payment, and current interest rates using standard lending guidelines.
Annual Gross Income ($)
Monthly Debt Payments ($) (car, student loans, credit cards, etc.)
Down Payment ($)
Annual Interest Rate (%)
Loan Term (Years)
30 Years 20 Years 15 Years 10 Years
Annual Property Tax Rate (%)
Annual Home Insurance ($)
Monthly HOA Fees ($) (if applicable)
Calculate Affordability
function morCalc() { var resultDiv = document.getElementById('mor_result');
var annualIncome = parseFloat(document.getElementById('mor_annual_income').value); var monthlyDebts = parseFloat(document.getElementById('mor_monthly_debts').value) || 0; var downPayment = parseFloat(document.getElementById('mor_down_payment').value) || 0; var annualRate = parseFloat(document.getElementById('mor_interest_rate').value); var loanTermYears = parseInt(document.getElementById('mor_loan_term').value); var propTaxRate = parseFloat(document.getElementById('mor_property_tax_rate').value) || 1.2; var annualInsurance = parseFloat(document.getElementById('mor_home_insurance').value) || 1200; var monthlyHOA = parseFloat(document.getElementById('mor_hoa_fees').value) || 0;
// --- Validation --- if (isNaN(annualIncome) || annualIncome ⚠ Please enter a valid annual gross income.'; return; } if (isNaN(annualRate) || annualRate 25) { resultDiv.style.display = 'block'; resultDiv.innerHTML = '⚠ Please enter a valid interest rate between 0.1% and 25%.'; return; } if (downPayment ⚠ Down payment cannot be negative.'; return; }
// --- Core Calculations --- // Monthly gross income var monthlyIncome = annualIncome / 12;
// Standard lending ratios: // Front-end ratio (housing expense ratio): max 28% of gross monthly income // Back-end ratio (total debt-to-income ratio): max 36% of gross monthly income var frontEndLimit = monthlyIncome * 0.28; var backEndLimit = monthlyIncome * 0.36;
// Maximum allowable total housing payment (PITI + HOA) // Back-end: total housing + existing debts ⚠ Your existing monthly debts exceed the maximum allowable debt-to-income ratio. Consider reducing debts before applying for a mortgage.'; return; }
// Fixed monthly costs (insurance + HOA); property tax depends on home price var monthlyInsurance = annualInsurance / 12;
// Available for P&I + property tax // Property tax monthly = (homePrice * propTaxRate/100) / 12 // Let P = max loan amount, H = home price = P + downPayment // Monthly P&I = P * r(1+r)^n / ((1+r)^n - 1) where r = monthly rate, n = months // Monthly prop tax = H * propTaxRate / 1200 // Equation: P&I + HpropTaxRate/1200 + monthlyInsurance + monthlyHOA = maxHousingPayment // P&I = P * mortgageFactor // H = P + downPayment // P * mortgageFactor + (P + downPayment) * propTaxRate/1200 + monthlyInsurance + monthlyHOA = maxHousingPayment // P * (mortgageFactor + propTaxRate/1200) = maxHousingPayment - downPayment*propTaxRate/1200 - monthlyInsurance - monthlyHOA
var monthlyRate = annualRate / 100 / 12; var numPayments = loanTermYears * 12;
// Mortgage payment factor (per dollar of loan) var mortgageFactor; if (monthlyRate === 0) { mortgageFactor = 1 / numPayments; } else { var compounded = Math.pow(1 + monthlyRate, numPayments); mortgageFactor = (monthlyRate * compounded) / (compounded - 1); }
var propTaxMonthlyFactor = propTaxRate / 100 / 12; // per dollar of home price
// Solve for max loan amount P var numerator = maxHousingPayment - downPayment * propTaxMonthlyFactor - monthlyInsurance - monthlyHOA; var denominator = mortgageFactor + propTaxMonthlyFactor;
if (numerator ⚠ Fixed costs (insurance, HOA, property tax on down payment) already exceed your maximum housing budget. Consider increasing income or reducing fixed costs.'; return; }
var maxLoanAmount = numerator / denominator; var maxHomePrice = maxLoanAmount + downPayment;
if (maxHomePrice ⚠ Unable to calculate a positive affordable home price with the given inputs.'; return; }
- // Verify actual monthly payment breakdown
- var compounded2 = Math.pow(1 + monthlyRate, numPayments);
- var monthlyPI = monthlyRate === 0
- ? maxLoanAmount / numPayments
- maxLoanAmount * (monthlyRate * compounded2) / (compounded2 - 1); var monthlyPropTax = (maxHomePrice * propTaxRate / 100) / 12; var totalMonthly = monthlyPI + monthlyPropTax + monthlyInsurance + monthlyHOA;
// DTI ratios var frontEndDTI = (totalMonthly / monthlyIncome) * 100; var backEndDTI = ((totalMonthly + monthlyDebts) / monthlyIncome) * 100;
// Down payment percentage var downPct = (downPayment / maxHomePrice) * 100;
// PMI note (if down payment 0) { // Typical PMI: 0.5%–1% of loan amount annually; use 0.75% estimate pmiMonthly = maxLoanAmount * 0.0075 / 12; pmiNote = 'Est. PMI (0.75%/yr)*$' + pmiMonthly.toFixed(2) + '/mo'; }
// Total interest paid over life of loan var totalPaid = monthlyPI * numPayments; var totalInterest = totalPaid - maxLoanAmount;
// Format currency function fmt(n) { return n.toLocaleString('en-US', {minimumFractionDigits: 0, maximumFractionDigits: 0}); } function fmt2(n) { return n.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2}); }
var pmiWarning = downPct ' + 'Maximum Affordable Home Price: $' + fmt(maxHomePrice) + '' + 'Maximum Loan Amount$' + fmt(maxLoanAmount) + '' + 'Down Payment$' + fmt(downPayment) + ' (' + downPct.toFixed(1) + '%)' + 'Monthly Payment Breakdown' + 'Principal & Interest (P&I)$' + fmt2(monthlyPI) + '' + 'Property Tax (' + propTaxRate + '%/yr)$' + fmt2(monthlyPropTax) + '' + 'Home Insurance$' + fmt2(monthlyInsurance) + '' + 'HOA Fees$' + fmt2(monthlyHOA) + '' + pmiNote + 'Total Housing Payment (PITI+HOA)$' + fmt2(totalMonthly) + '' + 'Debt-to-Income Ratios' + 'Front-End DTI (housing / income)' + frontEndDTI.toFixed(1) + '% (limit: 28%)' + 'Back-End DTI (all debts / income)' + backEndDTI.toFixed(1) + '% (limit: 36%)' + 'Loan Summary' + 'Loan Term' + loanTermYears + ' years (' + numPayments + ' payments)' + 'Interest Rate' + annualRate + '% APR' + 'Total Interest Paid$' + fmt(totalInterest) + '' + 'Total Amount Paid (P&I only)$' + fmt(totalPaid) + '' + '' + pmiWarning; }
#### Formulas Used
1. Maximum Housing Payment (PITI + HOA):
Front-End Limit = Gross Monthly Income × 0.28 Back-End Limit = Gross Monthly Income × 0.36 − Monthly Debts Max Housing Payment = min(Front-End Limit, Back-End Limit)
2. Maximum Loan Amount (P):
Solving: P × MF + (P + D) × (t/1200) + Imo + HOA = Max Housing Payment ⇒ P = [Max Housing Payment − D × (t/1200) − Imo − HOA] / [MF + (t/1200)]
Where:
- MF (Mortgage Factor) = r(1+r)n / [(1+r)n − 1]
- r = Monthly interest rate = Annual Rate / 1200
- n = Total number of payments = Years × 12
- D = Down payment
- t = Annual property tax rate (%)
- Imo = Monthly home insurance = Annual Insurance / 12
3. Maximum Home Price: Home Price = Max Loan Amount + Down Payment
4. DTI Ratios:
Front-End DTI = Total Housing Payment / Gross Monthly Income Back-End DTI = (Total Housing Payment + Monthly Debts) / Gross Monthly Income
#### Assumptions & References
- 28/36 Rule: Standard conventional lending guideline — housing costs should not exceed 28% of gross monthly income (front-end), and total debt payments should not exceed 36% (back-end). Some lenders allow up to 43% back-end DTI for qualified mortgages (CFPB).
- Property Tax: Default rate of 1.2% is a U.S. national average; actual rates vary significantly by state and county (source: Tax Foundation).
- Home Insurance: Default of $1,200/year is a U.S. national average estimate; actual premiums vary by location, home value, and coverage (source: Insurance Information Institute).
- PMI: Private Mortgage Insurance is typically required when the down payment is less than 20% of the home price. Estimated at 0.75% of the loan amount annually; actual rates range from 0.5%–1.5% depending on credit score and LTV ratio (source: Urban Institute).
- Fixed-Rate Mortgage: This calculator assumes a conventional fixed-rate mortgage. ARM (adjustable-rate) products will have different payment structures.
- Gross Income: Calculations use pre-tax (gross) income, consistent with standard underwriting practices.
- References: Consumer Financial Protection Bureau (CFPB) — Debt-to-Income Calculator; Fannie Mae Selling Guide; HUD Homebuyer Education Guidelines.
More Calculators
- NJ Commercial Property Tax Estimator
- New Jersey Commercial Property Transfer Tax Calculator
- New Jersey Electrical Permit Fee Estimator
- New Jersey Commercial Mortgage Payment Calculator
- Commercial Lease Cost Per Square Foot Calculator
- New Jersey EV Charger Installation Cost Estimator
- NJ Residential Electrical Load Calculator
- Montana Climate Zone Heating Load Calculator
- HVAC Load Calculator (Manual J Estimate)
- Heat Load Calculator
- HVAC System Sizing Calculator — Tonnage Estimator
- HVAC Maintenance Cost Estimator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...