Home › Finance › Refinance Break-Even Calculator
Refinance Break-Even Calculator
Compares the payment on the remaining term of a current loan with a new loan at a different rate and term, and reports the monthly saving, the months needed for savings to recoup closing costs, and the difference in total interest over the life of both loans.
When to use
You are deciding whether refinancing a mortgage or other amortizing loan is worth its closing costs, given how long you expect to keep the loan.
Do not use when: You want a cash-out refinance amount or an adjustable-rate comparison (this assumes fixed rates), or you only need a payment (use loan-payment).
Formula
payment(P, r, n) = P × r/1200 / (1 − (1 + r/1200)^−n). current_payment = payment(current_balance, current_rate, remaining_term); new_amount = current_balance (+ closing_costs if financed); new_payment = payment(new_amount, new_rate, new_term); monthly_savings = current_payment − new_payment; break_even_months = closing_costs / monthly_savings; lifetime_savings = (current_payment × remaining_term − current_balance) − (new_payment × new_term − new_amount) − closing_costs
Assumes both loans are fixed-rate and held to maturity, ignores the time value of the savings and any tax effects. A new loan with a longer term can lower the payment yet raise lifetime interest; both figures are reported so the trade-off is visible.
Inputs
| Parameter | Type | Unit | Required | Description |
|---|---|---|---|---|
current_balance | number | yes | Principal still owed on the existing loan. Range: > 0, ≤ 1000000000000 | |
current_rate_percent | number | % | yes | Annual rate of the existing loan in percent. Range: ≥ 0, ≤ 100 |
remaining_term_months | integer | months | yes | Months left on the existing loan. Range: ≥ 1, ≤ 480 |
new_rate_percent | number | % | yes | Annual rate offered on the new loan in percent. Range: ≥ 0, ≤ 100 |
new_term_months | integer | months | yes | Term of the new loan in months (360 for a new 30-year loan). Range: ≥ 1, ≤ 480 |
closing_costs | number | default 0 | Total fees to refinance (origination, appraisal, title, recording). Range: ≥ 0, ≤ 1000000000 | |
finance_closing_costs | boolean | default false | If true the closing costs are added to the new principal instead of being paid up front. |
Outputs
| Output | Type | Unit | Description |
|---|---|---|---|
current_monthly_payment | number | Payment that amortizes current_balance over remaining_term_months at current_rate_percent. | |
new_loan_amount | number | current_balance, plus closing_costs when financed. | |
new_monthly_payment | number | Payment on the new loan. | |
monthly_savings | number | current_monthly_payment − new_monthly_payment (negative when the new payment is higher). | |
break_even_months | number | months | closing_costs / monthly_savings: months of savings needed to recoup the costs (absent when there are no monthly savings). |
break_even_time | string | Break-even in years and months (rounded up to whole months). | |
remaining_interest_current_loan | number | current_monthly_payment × remaining_term_months − current_balance. | |
total_interest_new_loan | number | new_monthly_payment × new_term_months − new_loan_amount. | |
lifetime_savings | number | remaining_interest_current_loan − total_interest_new_loan − closing_costs: net gain over the full life of both loans (negative = refinancing costs more overall). | |
summary | string | Plain-language interpretation of the break-even and lifetime figures. |
Example
200,000 at 7 % with 25 years left → 6 % for 30 years, 4,000 costs: {"current_balance":200000,"current_rate_percent":7,"remaining_term_months":300,"new_rate_percent":6,"new_term_months":360,"closing_costs":4000} → {"current_monthly_payment":1413.56,"new_loan_amount":200000,"new_monthly_payment":1199.1,"monthly_savings":214.46,"break_even_months":18.7,"break_even_time":"1 year 7 months","remaining_interest_current_loan":224067.52,"total_interest_new_loan":231676.38,"lifetime_savings":-11608.86}
300,000 at 6.5 % with 28 years left → 5.5 % for 28 years, 6,000 costs financed: {"current_balance":300000,"current_rate_percent":6.5,"remaining_term_months":336,"new_rate_percent":5.5,"new_term_months":336,"closing_costs":6000,"finance_closing_costs":true} → {"current_monthly_payment":1941.05,"new_loan_amount":306000,"new_monthly_payment":1786.94,"monthly_savings":154.11,"break_even_months":38.9,"remaining_interest_current_loan":352192.21,"total_interest_new_loan":294410.3,"lifetime_savings":51781.91}
GET https://tttkmbb.com/api/v1/calculate/refinance-break-even?current_balance=200000¤t_rate_percent=7&remaining_term_months=300&new_rate_percent=6&new_term_months=360&closing_costs=4000
Machine access
- API:
GET https://tttkmbb.com/api/v1/calculate/refinance-break-even(query parameters) orPOSTwith a JSON body{"inputs": {...}} - Schema: https://tttkmbb.com/api/v1/calculators/refinance-break-even · Markdown: https://tttkmbb.com/finance/refinance-break-even.md · JSON definition: https://tttkmbb.com/finance/refinance-break-even.json
- MCP: server
https://tttkmbb.com/mcp, toolrun_calculator with calculator_id="refinance-break-even" - OpenAPI operationId:
calculate_refinance_break_even - Freshness:
static. Authentication: none. Rate limit: fair use (see rate limits).
Sources
FAQ
Why can monthly savings be positive while lifetime savings are negative?
Because resetting a loan to a new 30-year term spreads the balance over more months: the payment falls, but interest accrues for longer. Compare with a new term equal to the remaining term to isolate the rate effect.
What break-even period is acceptable?
A common rule of thumb is to refinance when you expect to keep the loan well beyond the break-even point, e.g. a 19-month break-even is attractive if you will stay at least 3–5 years.
Related calculators
- Mortgage Payment Calculator — Full payment of the new mortgage with taxes and insurance.
- Amortization Schedule Calculator — Year-by-year balance of either loan.
- Loan Payment Calculator — Payment for any balance, rate and term.