Refinance Calculator
Overview
Refinance break-even and savings calculator wired to /refinance-calculator/[loanType] and /refinance-calculator/[loanType]/[state] via LoanTypeRefinanceCalculatorPage.tsx.
Formula
Current and new monthly P&I:
M = P × [r(1+r)^n] / [(1+r)^n − 1]
Monthly savings:
monthlySavings = currentPayment − newPayment
Break-even:
breakEvenMonths = ceil(totalClosingCosts / monthlySavings) // when monthlySavings > 0
Lifetime net savings (term-change aware):
totalSavingsOverLife = (currentPayment × remainingMonths) − (newTotalPaid) − totalClosingCosts
Where newTotalPaid is scheduled P&I × new-term months, or simulated total P&I paid when extra principal payments apply.
Source: src/lib/refinance-calculator-math.ts
Inputs
| Input | Default |
|---|---|
| Remaining balance | $250,000 |
| Current rate | 7.0% |
| Years remaining | 25 |
| New rate | 6.5% |
| New loan term | 30 years |
| Closing costs | $6,000 |
| Cash-out (optional) | $0 |
| Extra monthly payment on new loan | $0 |
| Monthly escrow | $0 |
| Current LTV (optional) | — |
| Target LTV for PMI removal | 78% |
| Discount points | 0 |
Outputs
Current payment, new payment, monthly savings, break-even months, interest savings, lifetime net savings, effective rate (after points), PMI estimate, PMI removal month, total monthly with escrow.
Assumptions
- Fixed-rate amortizing loans for both current and new scenarios.
- Current payment computed on remaining balance over remaining term (simplified — does not use actual historical origination date).
- Cash-out increases new loan principal.
- PMI modeled at 0.5%/yr on new loan amount when initial LTV > 80%; removed when balance crosses target LTV (default 78%).
- Escrow is a pass-through added to total monthly; does not affect P&I or savings math.
- Discount points: 1 point = 1% of new loan amount added to closing costs; −0.25% rate per point (standard industry convention per Freddie Mac / Bankrate refinance methodology).
Methodology sections
Term-change lifetime savings
When old and new terms differ (e.g., 30 years remaining → 15-year new loan), lifetime savings compares total P&I outlay over each horizon rather than multiplying monthly savings by the new term alone. Helper: computeTermChangeLifetimeSavings().
Early payoff on new loan
Optional extraMonthlyPayment simulates amortization via simulateLoanWithExtraPayment(), updating newPayoffMonths, totalInterestNew, and lifetime savings.
PMI removal
When currentLTV is provided, home value = balance ÷ (LTV ÷ 100). If new-loan LTV > 80%, monthly PMI = 0.5%/yr of loan amount until balance ÷ home value ≤ targetLTVForPMIRemoval (default 78%).
Discount points
Points cost = discountPoints × 1% × newLoanAmount. Effective rate = newRate − (discountPoints × 0.25). Convention cited: Freddie Mac Refinance Guide / Bankrate discount points methodology (0.25% rate reduction per point).
Known limitations
- Does not model FHA MIP tiers, VA funding fee, or lender-specific pricing grids.
- PMI uses flat 0.5%/yr; does not vary by credit score.
- Current-loan side does not model extra payments on the existing loan.
Files touched
src/components/calculators/RefinanceCalculator.tsxsrc/lib/refinance-calculator-math.tssrc/pages_old/LoanTypeRefinanceCalculatorPage.tsxapp/refinance-calculator/[loanType]/page.tsxapp/refinance-calculator/[loanType]/[state]/page.tsx
Fixed in Phase 1.2 (2026-08)
- Term-change lifetime savings —
totalSavingsOverLifenow uses remaining old-term months vs new-term months. - Early payoff — optional extra payment on new loan with payoff and interest simulation.
- Escrow, PMI removal, discount points — optional inputs with pass-through escrow, LTV-based PMI removal, and standard points convention.
Fixed in Phase 1.1b (2026-06-13)
Wired RefinanceCalculator to live refinance routes (previously rendered MortgageCalculator).