Mortgage Payment Calculator Extra Payment

Mortgage Payment Calculator with Extra Payment

Calculate your mortgage payments with the option to add extra payments towards your loan principal.

Not calculated yet.

let mortgageSteps = “”; const currencySymbol = “$”, fixedCurrency = “USD”; function calculateMortgage(){ mortgageSteps=””; 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); 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 newMonthlyPayment = monthlyPayment + extraPayment; const totalInterest = (newMonthlyPayment * loanTerm) – loanAmount; const yearsPaidOff = loanTerm / 12; document.getElementById("monthlyPayment").value = formatCurrency(newMonthlyPayment); document.getElementById("totalInterest").value = formatCurrency(totalInterest); document.getElementById("loanPaidOff").value = yearsPaidOff.toFixed(1); mortgageSteps += `Inputs:
Loan Amount: ${formatCurrency(loanAmount)}
Interest Rate: ${(interestRate*12*100).toFixed(2)}%
Loan Term: ${loanTerm/12} years
Extra Monthly Payment: ${formatCurrency(extraPayment)}

`; mortgageSteps += `Formulas:
Monthly Payment = (Loan Amount × Interest Rate) / (1 – (1 + Interest Rate)^(-Loan Term))
Total Interest = (Monthly Payment × Loan Term) – Loan Amount
Loan Paid Off In = Loan Term / 12

`; mortgageSteps += `Results:
Estimated Monthly Payment: ${formatCurrency(newMonthlyPayment)}
Total Interest Paid: ${formatCurrency(totalInterest)}
Loan Paid Off In: ${yearsPaidOff.toFixed(1)} years
`; if(document.getElementById(“calculationStepsMortgage”).style.display===”block”){ document.getElementById(“calculationStepsMortgage”).innerHTML = mortgageSteps; } } function resetMortgage(){ document.querySelectorAll(“#calculator input”).forEach(el=>el.value=””); mortgageSteps=””; document.getElementById(“calculationStepsMortgage”).innerHTML=”

Not calculated yet.

“; } function toggleMortgageSteps(){ const s=document.getElementById(“calculationStepsMortgage”); const a=document.getElementById(“toggleArrowMortgage”); if(s.style.display===”none”||s.style.display===””){ s.style.display=”block”;a.style.transform=”rotate(180deg)”; s.innerHTML=mortgageSteps||”

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 *