Determine if refinancing your home loan makes financial sense by calculating your potential monthly savings and your break-even point.
30 Years
20 Years
15 Years
10 Years
Refinance Summary
Monthly Savings$0.00
Break-even Period0 Months
Lifetime Interest Savings$0.00
How to Use the Mortgage Refinance Calculator
Deciding when to refinance your mortgage depends on more than just the interest rate. This calculator helps you understand the "Break-Even Point"—the moment where your monthly savings finally exceed the upfront costs of the new loan.
Key Mortgage Refinance Terms
Current Loan Balance: The total amount you still owe on your existing home loan.
Closing Costs: Fees charged by the lender and third parties to process the new loan (typically 2-5% of the loan amount).
Break-even Period: The number of months it takes for your monthly interest savings to pay back the closing costs.
Refinance Strategy Example
Imagine you have a $300,000 balance at 6.5% interest. If you refinance to a 5.0% rate on a new 30-year term, your monthly principal and interest payment drops significantly. If your closing costs are $5,000 and you save $280 per month, your break-even point would be approximately 18 months. If you plan to stay in the home for at least 2 years, this refinance is a smart financial move.
The "1% Rule"
Many financial experts suggest that if you can lower your interest rate by at least 0.75% to 1%, refinancing is worth investigating. However, always consider how long you intend to stay in the property. If you plan to sell the home before reaching the break-even point, the refinance might actually cost you more money than it saves.
function calculateRefi() {
var balance = parseFloat(document.getElementById('loan_balance').value);
var currentRate = parseFloat(document.getElementById('current_rate').value) / 100 / 12;
var newRate = parseFloat(document.getElementById('new_rate').value) / 100 / 12;
var termYears = parseFloat(document.getElementById('loan_term').value);
var termMonths = termYears * 12;
var closingCosts = parseFloat(document.getElementById('closing_costs').value);
if (isNaN(balance) || isNaN(currentRate) || isNaN(newRate) || isNaN(closingCosts) || balance 0) {
breakEvenMonths = Math.ceil(closingCosts / monthlySavings);
}
// Lifetime savings (interest saved over the life of the new loan term)
var totalNewPayments = newPayment * termMonths;
var totalOldPayments = currentPayment * termMonths;
var totalSavings = (totalOldPayments – totalNewPayments) – closingCosts;
// Display results
document.getElementById('results_area').style.display = 'block';
document.getElementById('monthly_savings').innerText = '$' + monthlySavings.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
if (monthlySavings <= 0) {
document.getElementById('breakeven_months').innerText = 'Never';
document.getElementById('total_savings').innerText = 'No Savings';
document.getElementById('total_savings').style.color = '#e53e3e';
} else {
document.getElementById('breakeven_months').innerText = breakEvenMonths + ' Months';
document.getElementById('total_savings').innerText = '$' + totalSavings.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('total_savings').style.color = '#2b6cb0';
}
// Smooth scroll to results
document.getElementById('results_area').scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}