Free Mortgage Payoff Calculator

Free Mortgage Payoff Calculator

Calculate how long it will take to pay off your mortgage based on your current loan details and extra payments.

Not calculated yet.

let steps = “”; const currencySymbol = “$”, fixedCurrency = “USD”; function calculateMortgagePayoff() { steps = “”; const loanAmount = parseFloat(document.getElementById(“loanAmount”).value); const interestRate = parseFloat(document.getElementById(“interestRate”).value) / 100 / 12; const loanTerm = parseFloat(document.getElementById(“loanTerm”).value) * 12; const extraPayment = parseFloat(document.getElementById(“extraPayment”).value); if (isNaN(loanAmount) || isNaN(interestRate) || isNaN(loanTerm) || isNaN(extraPayment) || loanAmount <= 0 || interestRate <= 0 || loanTerm <= 0) { alert("Please enter valid positive values for all fields."); return; } const monthlyPayment = (loanAmount * interestRate) / (1 – Math.pow(1 + interestRate, -loanTerm)); const totalMonthlyPayment = monthlyPayment + extraPayment; const payoffTime = Math.log(totalMonthlyPayment / (totalMonthlyPayment – loanAmount * interestRate)) / Math.log(1 + interestRate) / 12; document.getElementById("monthlyPayment").value = formatCurrency(monthlyPayment); document.getElementById("payoffTime").value = payoffTime.toFixed(2); steps += `Inputs:
Loan Amount: ${formatCurrency(loanAmount)}
Interest Rate: ${(interestRate * 100).toFixed(2)}%
Loan Term: ${(loanTerm / 12)} years
Extra Payment: ${formatCurrency(extraPayment)}

`; steps += `Formulas:
Monthly Payment = Loan Amount × Interest Rate / (1 – (1 + Interest Rate)^-Loan Term)
Payoff Time = log(Total Monthly Payment / (Total Monthly Payment – Loan Amount × Interest Rate)) / log(1 + Interest Rate)

`; steps += `Results:
Monthly Payment: ${formatCurrency(monthlyPayment)}
Payoff Time: ${payoffTime.toFixed(2)} years
`; if (document.getElementById(“calculationSteps”).style.display === “block”) { document.getElementById(“calculationSteps”).innerHTML = steps; } } function resetMortgagePayoff() { document.querySelectorAll(“#calculator input”).forEach(el => el.value = “”); steps = “”; document.getElementById(“calculationSteps”).innerHTML = “

Not calculated yet.

“; } function toggleCalculationSteps() { const s = document.getElementById(“calculationSteps”); const a = document.getElementById(“toggleArrow”); if (s.style.display === “none” || s.style.display === “”) { s.style.display = “block”; a.style.transform = “rotate(180deg)”; s.innerHTML = steps || “

Not calculated yet.

“; } else { s.style.display = “none”; a.style.transform = “rotate(0deg)”; } } function formatCurrency(n) { return currencySymbol + n.toFixed(2) + ” ” + fixedCurrency; }

Leave a Reply

Your email address will not be published. Required fields are marked *