Refinancing your loan, whether it's a mortgage, auto loan, or personal loan, can be a strategic move to potentially lower your monthly payments, reduce the total interest paid over the life of the loan, or access cash. However, refinancing usually involves closing costs, which are fees associated with the new loan. The Refinance Break Even Point is a critical metric that helps you determine how long it will take for the savings from your new loan to offset these upfront costs.
Why is the Break Even Point Important?
Simply put, the break even point tells you the number of months you need to keep the refinanced loan for it to become financially beneficial compared to staying with your original loan. If you plan to move, sell the asset, or pay off the loan before reaching the break even point, refinancing might not be cost-effective.
How the Refinance Break Even Calculator Works
This calculator helps you estimate the break even point by comparing the total cost of your current loan with the total cost of your refinanced loan, including closing costs. The calculation involves several steps:
Calculate Current Monthly Payment: Using the original loan balance, interest rate, and term, we determine your current monthly payment.
Calculate Total Paid on Current Loan: This is simply the current monthly payment multiplied by the total number of months in the original loan term.
Calculate New Monthly Payment: Using the refinanced loan balance, new interest rate, and new loan term, we calculate the new monthly payment.
Calculate Total Paid on New Loan: This is the new monthly payment multiplied by the total number of months in the new loan term.
Calculate Monthly Savings: The difference between the current monthly payment and the new monthly payment.
Calculate Break Even Point: The total closing costs of the refinance divided by the monthly savings. This gives you the number of months required to recoup the refinance costs.
The Math Behind the Calculation
The core of the calculation relies on the standard loan payment formula (Amortization Formula) to determine monthly payments:
M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1]
Where:
M = Monthly Payment
P = Principal Loan Amount
i = Monthly Interest Rate (Annual Rate / 12)
n = Total Number of Payments (Loan Term in Months)
Once the monthly payments are calculated for both the current and new loans, the break-even point (in months) is approximated by:
Break Even Point (Months) = Refinance Closing Costs / (Current Monthly Payment - New Monthly Payment)
Example Scenario
Let's say you have:
Current Loan Balance: $200,000
Current Interest Rate: 5.0%
Original Loan Term: 360 months (30 years)
Refinanced Loan Balance: $205,000 (includes some rolled-in costs)
New Interest Rate: 3.5%
New Loan Term: 360 months (30 years)
Refinance Closing Costs: $3,000
Using the calculator, you would input these values. The calculator would then determine:
Current Monthly Payment (approx.): $1,073.64
New Monthly Payment (approx.): $919.64
Monthly Savings: $1,073.64 – $919.64 = $154.00
Break Even Point: $3,000 / $154.00 = 19.48 months
In this example, it would take approximately 19.5 months for the savings from the lower interest rate to cover the $3,000 in closing costs. If you plan to keep the loan for longer than 19.5 months, refinancing is likely a good financial decision.
Factors to Consider Beyond the Break Even Point
Loan Term: Extending the loan term can lower monthly payments but may increase the total interest paid over time.
Total Interest Paid: Always compare the total interest paid on the new loan versus the old loan.
Fees: Be aware of all fees, not just closing costs, such as origination fees, appraisal fees, etc.
Your Financial Goals: Are you looking for lower payments, shorter term, or to cash out equity?
Use this calculator as a guide to make informed decisions about your refinancing options.
function calculateMonthlyPayment(principal, annualRate, termMonths) {
if (principal <= 0 || annualRate < 0 || termMonths <= 0) {
return 0;
}
var monthlyRate = annualRate / 100 / 12;
var payment = principal * (monthlyRate * Math.pow(1 + monthlyRate, termMonths)) / (Math.pow(1 + monthlyRate, termMonths) – 1);
return isNaN(payment) ? 0 : payment;
}
function calculateBreakEven() {
var currentLoanBalance = parseFloat(document.getElementById("currentLoanBalance").value);
var currentInterestRate = parseFloat(document.getElementById("currentInterestRate").value);
var refinancedLoanBalance = parseFloat(document.getElementById("refinancedLoanBalance").value);
var newInterestRate = parseFloat(document.getElementById("newInterestRate").value);
var loanTermMonths = parseInt(document.getElementById("loanTermMonths").value);
var refinanceClosingCosts = parseFloat(document.getElementById("refinanceClosingCosts").value);
var newLoanTermMonths = parseInt(document.getElementById("newLoanTermMonths").value);
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = 'Enter your details to see the break even point.'; // Reset
// Input validation
if (isNaN(currentLoanBalance) || currentLoanBalance <= 0 ||
isNaN(currentInterestRate) || currentInterestRate < 0 ||
isNaN(refinancedLoanBalance) || refinancedLoanBalance <= 0 ||
isNaN(newInterestRate) || newInterestRate < 0 ||
isNaN(loanTermMonths) || loanTermMonths <= 0 ||
isNaN(refinanceClosingCosts) || refinanceClosingCosts < 0 ||
isNaN(newLoanTermMonths) || newLoanTermMonths <= 0) {
resultDiv.innerHTML = 'Please enter valid numbers for all fields.';
return;
}
var currentMonthlyPayment = calculateMonthlyPayment(currentLoanBalance, currentInterestRate, loanTermMonths);
var newMonthlyPayment = calculateMonthlyPayment(refinancedLoanBalance, newInterestRate, newLoanTermMonths);
var monthlySavings = currentMonthlyPayment – newMonthlyPayment;
if (monthlySavings <= 0) {
resultDiv.innerHTML = 'New loan payment is not lower than current payment. Refinancing may not save money monthly.';
return;
}
var breakEvenMonths = refinanceClosingCosts / monthlySavings;
if (isNaN(breakEvenMonths) || breakEvenMonths < 0) {
resultDiv.innerHTML = 'Could not calculate break even point. Please check your inputs.';
return;
}
var formattedBreakEvenMonths = breakEvenMonths.toFixed(2);
var formattedMonthlySavings = monthlySavings.toFixed(2);
var formattedCurrentPayment = currentMonthlyPayment.toFixed(2);
var formattedNewPayment = newMonthlyPayment.toFixed(2);
resultDiv.innerHTML = 'Monthly Savings: $' + formattedMonthlySavings + " +
'Break Even Point: ' + formattedBreakEvenMonths + ' months' +
'(Current Payment: $' + formattedCurrentPayment + ', New Payment: $' + formattedNewPayment + ')';
}