Home Loan Prepayment Calculator (India)
Calculate how prepayments on your home loan can reduce your loan term and interest.
let prepaymentSteps = “”;
const currencySymbol = “₹”, fixedCurrency = “INR”;
function calculatePrepayment(){
prepaymentSteps=””;
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 prepaymentAmount = parseFloat(document.getElementById(“prepaymentAmount”).value);
const prepaymentFrequency = parseFloat(document.getElementById(“prepaymentFrequency”).value);
if (isNaN(loanAmount) || isNaN(interestRate) || isNaN(loanTerm) || isNaN(prepaymentAmount) || isNaN(prepaymentFrequency) || loanAmount <= 0 || interestRate <= 0 || loanTerm <= 0) {
alert("Please enter valid positive values for all fields.");
return;
}
// Calculate original EMI
const emi = loanAmount * interestRate * Math.pow(1 + interestRate, loanTerm) / (Math.pow(1 + interestRate, loanTerm) – 1);
// Calculate new balance after prepayment
const loanBalanceAfterPrepayment = loanAmount – prepaymentAmount;
// Calculate new EMI after prepayment (approximate, simple model)
const newEmi = loanBalanceAfterPrepayment * interestRate * Math.pow(1 + interestRate, loanTerm) / (Math.pow(1 + interestRate, loanTerm) – 1);
// Calculate interest savings
const totalInterestSaved = (emi – newEmi) * loanTerm;
document.getElementById("loanBalanceAfterPrepayment").value = formatCurrency(loanBalanceAfterPrepayment);
document.getElementById("interestSavings").value = formatCurrency(totalInterestSaved);
prepaymentSteps += `
Inputs:Loan Amount: ${formatCurrency(loanAmount)}
Interest Rate: ${(interestRate*12*100).toFixed(2)}%
Loan Term: ${loanTerm/12} years
Prepayment Amount: ${formatCurrency(prepaymentAmount)}
Prepayment Frequency: ${formatCurrency(prepaymentFrequency)}
`;
prepaymentSteps += `
Formulas:EMI = Loan Amount × Interest Rate × (1 + Interest Rate)^Term / ((1 + Interest Rate)^Term – 1)
Interest Savings = (Original EMI – New EMI) × Term
`;
prepaymentSteps += `
Results:Loan Balance After Prepayment: ${formatCurrency(loanBalanceAfterPrepayment)}
Interest Savings: ${formatCurrency(totalInterestSaved)}
`;
if (document.getElementById(“calculationStepsPrepayment”).style.display === “block”) {
document.getElementById(“calculationStepsPrepayment”).innerHTML = prepaymentSteps;
}
}
function resetPrepayment() {
document.querySelectorAll(“#calculator input”).forEach(el => el.value = “”);
prepaymentSteps = “”;
document.getElementById(“calculationStepsPrepayment”).innerHTML = “
Not calculated yet.
“;
}
function togglePrepaymentSteps() {
const s = document.getElementById(“calculationStepsPrepayment”);
const a = document.getElementById(“toggleArrowPrepayment”);
if (s.style.display === “none” || s.style.display === “”) {
s.style.display = “block”;
a.style.transform = “rotate(180deg)”;
s.innerHTML = prepaymentSteps || “
Not calculated yet.
“;
} else {
s.style.display = “none”;
a.style.transform = “rotate(0deg)”;
}
}
function formatCurrency(n) {
return currencySymbol + n.toFixed(2) + ” ” + fixedCurrency;
}