Determine your potential mortgage loan eligibility based on your financial details.
15 Years
30 Years
40 Years
Your eligibility status will be displayed here.
Understanding Mortgage Loan Eligibility
Mortgage loan eligibility is the process by which a lender determines whether a potential borrower is likely to repay a mortgage loan. Lenders assess various financial factors to gauge risk and decide on loan approval and terms. This calculator provides an estimate based on common eligibility criteria, focusing on debt-to-income ratios and loan-to-value ratios.
Key Factors in Eligibility:
Annual Income: Your total earnings before taxes. Lenders use this to understand your repayment capacity.
Total Monthly Debt Payments: This includes existing loan payments (car loans, student loans, credit cards) and other recurring financial obligations.
Down Payment: The upfront amount you pay towards the property. A larger down payment reduces the loan amount and lender risk.
Loan Term: The duration over which you will repay the mortgage (e.g., 15, 30 years).
Interest Rate: The annual percentage charged by the lender.
Property Price: The estimated cost of the home you wish to purchase.
How the Calculator Works:
This calculator uses two primary metrics to estimate your eligibility:
Debt-to-Income Ratio (DTI): This is a crucial metric lenders use. It compares your total monthly debt obligations to your gross monthly income.
Gross Monthly Income: Calculated as Annual Income / 12.
Total Monthly Debt: This includes your estimated new monthly mortgage payment plus your existing monthly debt payments.
Estimated Monthly Mortgage Payment: Calculated using the loan amount (Property Price - Down Payment), interest rate, and loan term. The formula for monthly mortgage payment (M) is:
M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1] Where:
P = Principal Loan Amount (Property Price - Down Payment)
Most lenders prefer a DTI ratio of 43% or lower, though some may allow slightly higher depending on other factors.
Loan-to-Value Ratio (LTV): This ratio compares the loan amount to the value of the property.
Loan Amount:Property Price - Down Payment
LTV Ratio:(Loan Amount / Property Price) * 100
A lower LTV generally indicates lower risk for the lender. An LTV of 80% or less typically avoids Private Mortgage Insurance (PMI).
The calculator checks if your calculated DTI is within acceptable limits and if your down payment is sufficient to achieve a reasonable LTV. It provides a simplified assessment; actual loan approval depends on many more factors, including credit score, employment history, and lender-specific policies.
Disclaimer:
This calculator is for informational purposes only and does not constitute financial advice or a loan guarantee. Consult with a mortgage professional for accurate pre-approval and personalized advice.
function calculateEligibility() {
var annualIncome = parseFloat(document.getElementById("annualIncome").value);
var monthlyDebt = parseFloat(document.getElementById("monthlyDebt").value);
var downPayment = parseFloat(document.getElementById("downPayment").value);
var loanTermYears = parseInt(document.getElementById("loanTermYears").value);
var interestRate = parseFloat(document.getElementById("interestRate").value);
var propertyPrice = parseFloat(document.getElementById("propertyPrice").value);
var resultDiv = document.getElementById("result");
// Clear previous error classes
resultDiv.classList.remove("error");
// Input validation
if (isNaN(annualIncome) || annualIncome <= 0 ||
isNaN(monthlyDebt) || monthlyDebt < 0 ||
isNaN(downPayment) || downPayment < 0 ||
isNaN(loanTermYears) || loanTermYears <= 0 ||
isNaN(interestRate) || interestRate < 0 ||
isNaN(propertyPrice) || propertyPrice <= 0) {
resultDiv.innerHTML = "Please enter valid positive numbers for all fields.";
resultDiv.classList.add("error");
return;
}
var grossMonthlyIncome = annualIncome / 12;
var loanAmount = propertyPrice – downPayment;
if (loanAmount 0) {
monthlyMortgagePayment = loanAmount * (monthlyInterestRate * Math.pow(1 + monthlyInterestRate, numberOfPayments)) / (Math.pow(1 + monthlyInterestRate, numberOfPayments) – 1);
} else {
// Handle case where interest rate is 0%
monthlyMortgagePayment = loanAmount / numberOfPayments;
}
if (isNaN(monthlyMortgagePayment)) {
resultDiv.innerHTML = "Calculation error for mortgage payment. Please check inputs.";
resultDiv.classList.add("error");
return;
}
var totalMonthlyDebt = monthlyDebt + monthlyMortgagePayment;
var dtiRatio = (totalMonthlyDebt / grossMonthlyIncome) * 100;
var ltvRatio = (loanAmount / propertyPrice) * 100;
var eligibilityMessage = "";
var isEligible = true;
// Eligibility criteria (common guidelines)
var maxDti = 43; // Common maximum DTI
var maxLtv = 95; // Example, below 80% avoids PMI typically
var minDownPaymentPercentage = 5; // Minimum down payment consideration
if (dtiRatio > maxDti) {
eligibilityMessage += "Debt-to-Income Ratio (DTI) is too high (" + dtiRatio.toFixed(2) + "%). ";
isEligible = false;
}
if (ltvRatio > 100) { // This should be caught by loanAmount maxLtv && loanAmount > 0) { // Only flag if there's a loan and LTV is too high
// Lenders have different LTV limits, and lower is better. We'll focus on DTI primarily for "eligibility"
// but note if LTV is very high.
// For simplicity here, we consider > maxLtv as a potential issue.
eligibilityMessage += "Loan-to-Value Ratio (LTV) is high (" + ltvRatio.toFixed(2) + "%). ";
// We might not set isEligible to false based solely on LTV if DTI is good, as it depends on lender.
// For this calculator, let's say DTI is the primary gatekeeper for "eligibility" status.
}
if (downPayment 0) {
// This is more of a suggestion or factor than strict ineligibility, but good to flag.
// For this calculator, let's not make this a primary failure point but a noted observation.
}
if (isEligible) {
resultDiv.innerHTML = "Congratulations! You appear to be eligible for a mortgage based on these inputs. (DTI: " + dtiRatio.toFixed(2) + "%, LTV: " + ltvRatio.toFixed(2) + "%)";
} else {
resultDiv.innerHTML = "Based on these inputs, your eligibility may be impacted. " + eligibilityMessage + "(DTI: " + dtiRatio.toFixed(2) + "%, LTV: " + ltvRatio.toFixed(2) + "%)";
resultDiv.classList.add("error");
}
}