Please enter valid positive numbers for all fields.
Your Savings Report
Original Payoff Date:—
New Payoff Date:—
Time Saved:—
Total Interest (Standard):—
Total Interest (With Extra):—
Total Interest Saved:—
Why Use a Mortgage Extra Payment Calculator?
Paying off your mortgage early is one of the most effective ways to build wealth and secure financial freedom. By applying even a small amount of extra cash toward your principal balance each month, you can drastically reduce the amount of interest you pay over the life of the loan. This Mortgage Extra Payment Calculator helps you visualize exactly how much time and money you can save.
How Extra Payments Reduce Your Interest
Mortgages are typically amortized, meaning that in the early years of your loan, a large portion of your monthly payment goes toward interest, while only a small fraction pays down the principal. Interest is calculated based on your remaining balance.
When you make an extra principal-only payment:
You directly lower the remaining balance immediately.
Future interest calculations are based on this lower balance.
More of your regular payment goes toward principal in the following month.
This "snowball effect" shortens your loan term and eliminates months (or years) of interest payments.
Example: The Power of $100
Consider a $300,000 mortgage at a 6% interest rate with a 30-year term. Your standard principal and interest payment is approximately $1,799.
Standard Scenario: Over 30 years, you pay roughly $347,500 in total interest.
With +$100/Month: By paying $1,899 monthly, you could shave off nearly 4 years from your loan term and save over $55,000 in interest.
Strategies for Paying Off Your Mortgage Faster
There are several ways to accelerate your mortgage payoff aside from monthly extra payments:
Bi-Weekly Payments: Instead of paying monthly, pay half your monthly payment every two weeks. This results in 26 half-payments (13 full payments) per year, effectively making one extra payment annually without feeling the pinch.
Lump Sum Payments: Apply tax refunds, work bonuses, or inheritance money directly to your principal.
Refinancing: If interest rates drop, refinancing to a shorter term (e.g., 30-year to 15-year) forces higher principal payments and yields massive interest savings.
Use the calculator above to experiment with different "Extra Monthly Payment" amounts to find a strategy that fits your budget.
function calculateMortgageSavings() {
// Get inputs
var balance = parseFloat(document.getElementById('currentBalance').value);
var rate = parseFloat(document.getElementById('interestRate').value);
var years = parseFloat(document.getElementById('remainingTerm').value);
var extra = parseFloat(document.getElementById('extraPayment').value);
var errorDiv = document.getElementById('mepError');
var resultDiv = document.getElementById('mepResult');
// Validation
if (isNaN(balance) || isNaN(rate) || isNaN(years) || balance <= 0 || rate < 0 || years <= 0) {
errorDiv.style.display = 'block';
resultDiv.style.display = 'none';
return;
}
// Handle empty extra payment (treat as 0)
if (isNaN(extra) || extra 0.01 && monthsPassed = bal) {
totInterest += interestForMonth;
bal = 0;
} else {
bal -= principalForMonth;
totInterest += interestForMonth;
}
monthsPassed++;
}
return {
interest: totInterest,
months: monthsPassed
};
}
// Scenario 1: No Extra Payment
var scenarioStandard = simulateLoan(balance, monthlyRate, standardPayment, 0);
// Scenario 2: With Extra Payment
var scenarioExtra = simulateLoan(balance, monthlyRate, standardPayment, extra);
// Calculate Savings
var interestSaved = scenarioStandard.interest – scenarioExtra.interest;
var monthsSaved = scenarioStandard.months – scenarioExtra.months;
var yearsSaved = Math.floor(monthsSaved / 12);
var remMonthsSaved = monthsSaved % 12;
// Dates
var today = new Date();
var origDate = new Date(today.getFullYear(), today.getMonth() + scenarioStandard.months, 1);
var newDate = new Date(today.getFullYear(), today.getMonth() + scenarioExtra.months, 1);
// Format Helpers
var fmtMoney = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' });
var fmtDate = new Intl.DateTimeFormat('en-US', { month: 'short', year: 'numeric' });
// Output to DOM
document.getElementById('originalPayoffDate').innerText = fmtDate.format(origDate) + " (" + scenarioStandard.months + " months)";
document.getElementById('newPayoffDate').innerText = fmtDate.format(newDate) + " (" + scenarioExtra.months + " months)";
var timeSavedText = "";
if (yearsSaved > 0) timeSavedText += yearsSaved + " years ";
if (remMonthsSaved > 0) timeSavedText += remMonthsSaved + " months";
if (timeSavedText === "") timeSavedText = "0 months";
document.getElementById('timeSaved').innerText = timeSavedText;
document.getElementById('originalInterest').innerText = fmtMoney.format(scenarioStandard.interest);
document.getElementById('newInterest').innerText = fmtMoney.format(scenarioExtra.interest);
document.getElementById('interestSaved').innerText = fmtMoney.format(interestSaved);
resultDiv.style.display = 'block';
}