Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Compute the month a refinance actually starts saving money — payment delta, breakeven month, and total interest on both paths including the term-reset trap. Use when asked should I refinance, when does a refi break even, compare my loan to a refi offer, or is this refinance worth the closing costs. Produces the breakeven analysis with both interest totals, the if-you-sell-before-month-N warning, and the cases where the breakeven math lies.
.claude/skills/mohitagw15856-refinance-breakeven/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-24 | ✗→✓ | ▲ Improved | 113% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 54% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 41% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 161% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 113% | 0% |
"Lower monthly payment" and "saves money" are different claims, and lenders profit from the confusion. This skill computes when a refinance genuinely breaks even — and names the two standard ways the simple math lies: the term reset that trades a lower payment for more total interest, and the cash-out that relabels borrowing as saving.
Ask for these if not provided:
bashpython3 scripts/refinance_breakeven.py --balance 380000 --rate 6.9 --months-left 336 \ --new-rate 5.6 --new-term 360 --closing 6500 python3 scripts/refinance_breakeven.py --json-input refi.json --json
Standard amortization, simple-savings breakeven (cumulative payment delta vs upfront costs). The script prints the term-reset warning itself when the new term extends the payoff date. Not modeled — and say so: reinvestment of savings, tax deductibility, ARM resets.
| The lie | The tell | The honest comparison | |---|---|---| | Term reset | 26 years left → "new 30-year loan" | Total interest both paths (the script prints it) — or price the refi at the same remaining term | | Cash-out gravity | "…and take $40k out while rates are good" | That's a new loan decision; analyze it separately at its own rate | | Points seduction | Lower rate via points | Points go into upfront cost; breakeven moves — recompute, don't eyeball | | Horizon blindness | Breakeven month 38, moving in ~2 years | If sell-month < breakeven month, the refi is a donation to the lender |
Script output: payments, delta, breakeven month, both interest totals, term-reset warning if applicable]
Refinance / Don't / Refinance at a shorter term] — because breakeven vs horizon, and the interest-total comparison in one sentence].
Rate threshold where the verdict flips; the horizon below which it flips; whether a same-term refi dominates the offered one.]
Educational model, not financial advice — verify with a licensed professional before acting on it.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 30,816 | 40,204 | +30% | 1 | 1 | 0% | 5,137 | 8,168 | +59% | 0 | 0 | — |
case-24 | fail→pass | 29,226 | 36,440 | +25% | 1 | 1 | 0% | 3,648 | 7,766 | +113% | 0 | 0 | — |
case-02 | fail→fail | 32,201 | 44,250 | +37% | 1 | 1 | 0% | 6,344 | 8,900 | +40% | 0 | 0 | — |
case-03 | fail→fail | 37,456 | 33,595 | -10% | 1 | 1 | 0% | 5,256 | 5,461 | +4% | 0 | 0 | — |
case-04 | pass→pass | 15,956 | 36,090 | +126% | 1 | 1 | 0% | 2,272 | 5,756 | +153% | 0 | 0 | — |
case-05 | pass→pass | 10,719 | 18,003 | +68% | 1 | 1 | 0% | 1,707 | 4,319 | +153% | 0 | 0 | — |
case-11 | fail→pass | 29,776 | 29,580 | -1% | 1 | 1 | 0% | 3,569 | 5,510 | +54% | 0 | 0 | — |
case-06 | pass→pass | 28,029 | 40,086 | +43% | 1 | 1 | 0% | 5,136 | 8,474 | +65% | 0 | 0 | — |
case-07 | fail→fail | 42,124 | 35,374 | -16% | 1 | 1 | 0% | 6,046 | 5,678 | -6% | 0 | 0 | — |
case-08 | pass→pass | 22,374 | 43,504 | +94% | 1 | 1 | 0% | 3,284 | 8,819 | +169% | 0 | 0 | — |
case-09 | pass→pass | 19,843 | 28,865 | +45% | 1 | 1 | 0% | 2,628 | 3,538 | +35% | 0 | 0 | — |
case-10 | fail→pass | 37,513 | 37,484 | -0% | 1 | 1 | 0% | 4,447 | 6,277 | +41% | 0 | 0 | — |
case-12 | pass→pass | 26,200 | 25,928 | -1% | 1 | 1 | 0% | 2,898 | 3,846 | +33% | 0 | 0 | — |
case-13 | fail→pass | 25,200 | 49,524 | +97% | 1 | 1 | 0% | 3,191 | 8,321 | +161% | 0 | 0 | — |
case-14 | fail→fail | 45,281 | 48,166 | +6% | 1 | 1 | 0% | 8,287 | 9,190 | +11% | 0 | 0 | — |
case-15 | fail→pass | 24,903 | 40,510 | +63% | 1 | 1 | 0% | 3,896 | 8,293 | +113% | 0 | 0 | — |
case-16 | pass→fail | 18,187 | 34,944 | +92% | 1 | 1 | 0% | 3,368 | 5,619 | +67% | 0 | 0 | — |
case-17 | pass→pass | 18,859 | 17,450 | -7% | 1 | 1 | 0% | 2,688 | 2,207 | -18% | 0 | 0 | — |
case-18 | pass→pass | 27,471 | 30,244 | +10% | 1 | 1 | 0% | 4,360 | 5,678 | +30% | 0 | 0 | — |
case-19 | fail→fail | 21,701 | 38,382 | +77% | 1 | 1 | 0% | 3,429 | 7,380 | +115% | 0 | 0 | — |
case-20 | pass→pass | 18,676 | 33,133 | +77% | 1 | 1 | 0% | 2,565 | 5,594 | +118% | 0 | 0 | — |
case-21 | pass→pass | 24,920 | 37,464 | +50% | 1 | 1 | 0% | 3,448 | 7,015 | +103% | 0 | 0 | — |
case-22 | fail→fail | 34,902 | 36,789 | +5% | 1 | 1 | 0% | 4,386 | 7,520 | +71% | 0 | 0 | — |
case-23 | fail→pass | 25,870 | 34,954 | +35% | 1 | 1 | 0% | 3,898 | 8,603 | +121% | 0 | 0 | — |
case-25 | fail→pass | 19,274 | 18,632 | -3% | 1 | 1 | 0% | 2,906 | 3,448 | +19% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted. The headline lift of +24 percentage points is the difference between those two pass rates over the 25 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.