Amortization Calculators with Extra Payments

Amortization Calculator with Extra Payments

Calculate your loan amortization schedule with extra payments to reduce the loan term or monthly payment.

Results

document.getElementById(“amortizationForm”).addEventListener(“submit”, function(event) { event.preventDefault(); const loanAmount = parseFloat(document.getElementById(“loanAmount”).value); const interestRate = parseFloat(document.getElementById(“interestRate”).value) / 100 / 12; const loanTerm = parseInt(document.getElementById(“loanTerm”).value) * 12; const extraPayment = parseFloat(document.getElementById(“extraPayment”).value); const monthlyPayment = (loanAmount * interestRate) / (1 – Math.pow(1 + interestRate, -loanTerm)); let remainingBalance = loanAmount; let totalInterest = 0; let monthsToPayOff = loanTerm; while (remainingBalance > 0) { const interestForMonth = remainingBalance * interestRate; let principalForMonth = monthlyPayment – interestForMonth + extraPayment; if (remainingBalance < principalForMonth) { principalForMonth = remainingBalance; } remainingBalance -= principalForMonth; totalInterest += interestForMonth; monthsToPayOff–; if (remainingBalance <= 0) { break; } } const totalPayments = (monthlyPayment * loanTerm) + (extraPayment * monthsToPayOff); const newLoanTerm = (loanTerm – monthsToPayOff) / 12; document.getElementById("totalInterest").textContent = "Total Interest Paid: $" + totalInterest.toFixed(2); document.getElementById("totalPayments").textContent = "Total Payments Made: $" + totalPayments.toFixed(2); document.getElementById("newLoanTerm").textContent = "New Loan Term: " + newLoanTerm.toFixed(2) + " years"; }); .calculator-container { max-width: 600px; margin: 0 auto; background: #f9f9f9; padding: 20px; border-radius: 10px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .calculator-title { text-align: center; margin-bottom: 20px; } .calculator-title h2 { margin: 0; font-size: 1.5em; } form label { display: block; margin: 10px 0 5px; font-weight: bold; } input[type=”number”] { width: 100%; padding: 10px; margin-bottom: 15px; border-radius: 5px; border: 1px solid #ccc; } .button-group { display: flex; justify-content: space-between; } button { padding: 10px 15px; background-color: #007bff; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 1em; } button[type=”reset”] { background-color: #dc3545; } #result { margin-top: 20px; background-color: #e9ecef; padding: 15px; border-radius: 10px; } #result h3 { margin-top: 0; }

Leave a Reply

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