Calculate exactly how many months it will take to recover the costs of your refinance.
Your Results
Understanding Your Mortgage Refinance Break-Even Point
Deciding to refinance your mortgage isn't just about snagging a lower interest rate. It's a strategic financial move that requires calculating your "break-even point"—the moment where the monthly savings from your new loan finally cover the upfront costs of getting that loan.
Why the Break-Even Point Matters
Refinancing usually involves closing costs, which can range from 2% to 5% of the loan amount. If you plan to move in two years, but it takes four years to break even on your refinance, you will actually lose money. This calculator helps you determine if staying in your home long enough makes the refinance profitable.
How to Use This Calculator
Current Monthly P&I: Enter only the Principal and Interest portion of your current payment (exclude taxes and insurance).
Remaining Balance: The total amount you still owe on your mortgage.
New Interest Rate: The annual percentage rate offered by your new lender.
Closing Costs: All fees including appraisal, title insurance, and origination points.
Example Calculation
Scenario Factor
Example Value
Current Monthly Payment
$1,800
New Monthly Payment
$1,550
Monthly Savings
$250
Closing Costs
$5,000
Break-Even Point
20 Months
Is Refinancing Right for You?
If your break-even point is less than 36 months and you plan to stay in your home for at least 5 to 10 years, refinancing is generally a strong financial decision. However, if the break-even point extends beyond 60 months, you may want to reconsider or look for a "no-closing-cost" refinance, which typically carries a slightly higher interest rate but lower upfront friction.
function calculateRefi() {
var currentPI = parseFloat(document.getElementById("currentMonthlyPI").value);
var balance = parseFloat(document.getElementById("remainingBalance").value);
var rate = parseFloat(document.getElementById("newInterestRate").value);
var term = parseFloat(document.getElementById("newLoanTerm").value);
var costs = parseFloat(document.getElementById("closingCosts").value);
var resultArea = document.getElementById("refiResultArea");
var mainResult = document.getElementById("refiMainResult");
var monthlySavingsText = document.getElementById("refiMonthlySavings");
var detailText = document.getElementById("refiDetail");
if (isNaN(currentPI) || isNaN(balance) || isNaN(rate) || isNaN(term) || isNaN(costs)) {
alert("Please enter valid numbers in all fields.");
return;
}
// Monthly interest rate
var monthlyRate = (rate / 100) / 12;
// Total number of payments
var totalPayments = term * 12;
// New Monthly Payment Formula: P = L[c(1 + c)^n] / [(1 + c)^n – 1]
var newPayment = balance * (monthlyRate * Math.pow(1 + monthlyRate, totalPayments)) / (Math.pow(1 + monthlyRate, totalPayments) – 1);
var monthlySavings = currentPI – newPayment;
resultArea.style.display = "block";
if (monthlySavings <= 0) {
mainResult.innerHTML = "No Break-Even Point Found";
monthlySavingsText.innerHTML = "New payment: $" + newPayment.toFixed(2);
detailText.innerHTML = "Your new monthly payment would be higher than or equal to your current payment. Refinancing may not be beneficial unless you are shortening your term significantly or switching from an adjustable to a fixed rate.";
} else {
var breakEvenMonths = costs / monthlySavings;
var breakEvenYears = (breakEvenMonths / 12).toFixed(1);
mainResult.innerHTML = Math.ceil(breakEvenMonths) + " Months";
monthlySavingsText.innerHTML = "Monthly Savings: $" + monthlySavings.toFixed(2);
detailText.innerHTML = "It will take approximately " + Math.ceil(breakEvenMonths) + " months (" + breakEvenYears + " years) to recover your closing costs. After this point, you will save $" + monthlySavings.toFixed(2) + " every month.";
}
resultArea.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}