Install
openclaw skills install @voronindenis5/refi-break-even-rangerUse when evaluating a mortgage refinance — computes true break-even months from closing costs and points vs monthly savings, net lifetime saving at your actual stay-horizon, compares multiple lender offers side by side, and handles cash-out and term changes; guards against the two classic refi traps (resetting the 30-year clock, ignoring how long you'll keep the loan).
openclaw skills install @voronindenis5/refi-break-even-rangerRefinance decisions look simple and aren't. The advertised math ("save $220/month!") hides four traps: (1) closing costs and points must be recovered before you sell or move — break-even vs your actual horizon; (2) refinancing a 7-year-old loan into a new 30-year loan RESETS amortization, so lower rate ≠ lower lifetime interest; (3) the lowest rate often carries the highest upfront costs, so offer comparison must be net, not headline rate; (4) cash-out changes the loan amount and everything downstream.
This skill runs the real amortization math for both loans to a common horizon and returns:
monthly savings, break-even months, interest paid over the horizon by each loan, net saving
after upfront costs, equity-build delta, and a plain verdict (REFI / STAY / ONLY-IF-YOU-STAY).
compare ranks multiple lender offers by net horizon saving — which routinely flips the
"obvious" winner.
Don't use for: purchase-mortgage shopping (different cost structure), reverse mortgages, or investment-property DSCR analysis (needs tax/rates context beyond scope).
python3 scripts/refi_ranger.py analyze --balance 280000 --current-rate 6.5 --current-payment 1768 --new-rate 5.25 --term 30 --closing 4200 --points 0.5 --horizon-years 7compare — it ranks by net horizon saving
and exposes the rate-vs-points tradeoff.--term 15) —
sometimes the same payment buys a far shorter clock.P·r / (1 − (1+r)^−n) — same as lenders use.horizon months; net saving =
(current payments − current equity) − (new payments − new equity + upfront). This catches
the clock-reset trap: a new 30-year loan amortizes slowly at first, so equity-build matters.--horizon-years.Borrower: balance $280k @ 6.5%, paying $1,768/mo, ~7 years left on the job,
maybe moving in ~7 years... but let's check 2 years too.
$ refi_ranger.py analyze --balance 280000 --current-rate 6.5 --current-payment 1768 \
--new-rate 5.25 --term 30 --closing 4200 --points 0.5 --horizon-years 7
New payment $1,546 → saves $221.83/mo; upfront $5,600
Break-even: 25 months. Interest over 84 mo: $121,867 → $97,360
NET SAVING over horizon: $7,160 → REFI (only if you stay 25+ months)
Same offer, 2-year horizon: verdict flips to STAY (−$11,162).
Three lenders: compare ranks CU B 5.375%/$2,500 closing FIRST (net $9,039)
above Bank C's flashy 4.99%/$10,700 (net $4,536) — points eat the win.
references/refi-decision-guide.md — the decision framework, horizon honesty, PMI/term
interactions, cash-out chapter, negotiation levers, and the rate-shop credit-window rule.references/amortization-math.md — formulas, worked examples, clock-reset trap quantified,
equity curves, and how points pricing maps to break-even.