# 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.

- Calculator id: `refinance-break-even` · Category: Finance (`finance`) · Tool name: `calculate_refinance_break_even`
- Canonical page: https://tttkmbb.com/finance/refinance-break-even · This document: https://tttkmbb.com/finance/refinance-break-even.md · JSON definition: https://tttkmbb.com/finance/refinance-break-even.json

## Purpose

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.

**Use when:** 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).

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `current_balance` | number |  | required | Principal still owed on the existing loan. (> 0, max 1000000000000) |
| `current_rate_percent` | number | % | required | Annual rate of the existing loan in percent. (min 0, max 100) |
| `remaining_term_months` | integer | months | required | Months left on the existing loan. (min 1, max 480) |
| `new_rate_percent` | number | % | required | Annual rate offered on the new loan in percent. (min 0, max 100) |
| `new_term_months` | integer | months | required | Term of the new loan in months (360 for a new 30-year loan). (min 1, max 480) |
| `closing_costs` | number |  | optional, default 0 | Total fees to refinance (origination, appraisal, title, recording). (min 0, max 1000000000) |
| `finance_closing_costs` | boolean |  | optional, default false | If true the closing costs are added to the new principal instead of being paid up front. |

## Output

| Field | 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. |

## 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.

## Data Sources

- CFPB – Owning a Home: refinancing — https://www.consumerfinance.gov/owning-a-home/ (government, retrieved 2026-09-24)
- Investopedia – Refinance: What It Is, How It Works, Types and Example — https://www.investopedia.com/terms/r/refinance.asp (reference, retrieved 2026-09-24)
- Wikipedia – Amortization calculator (annuity payment formula) — https://en.wikipedia.org/wiki/Amortization_calculator (reference, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/refinance-break-even?current_balance=…&current_rate_percent=…&remaining_term_months=…&new_rate_percent=…&new_term_months=…`
- `POST https://tttkmbb.com/api/v1/calculate/refinance-break-even` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/refinance-break-even · OpenAPI operationId `calculate_refinance_break_even` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "refinance-break-even", "inputs": {…}}`

## Example

- 200,000 at 7 % with 25 years left → 6 % for 30 years, 4,000 costs: inputs `{"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: inputs `{"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&current_rate_percent=7&remaining_term_months=300&new_rate_percent=6&new_term_months=360&closing_costs=4000
```

## Limitations

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). 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. All values are computed from the formula above; no measurement or live data is involved.

## 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

- [Mortgage Payment Calculator](https://tttkmbb.com/finance/mortgage-payment.md) — Full payment of the new mortgage with taxes and insurance.
- [Amortization Schedule Calculator](https://tttkmbb.com/finance/amortization-schedule.md) — Year-by-year balance of either loan.
- [Loan Payment Calculator](https://tttkmbb.com/finance/loan-payment.md) — Payment for any balance, rate and term.
