The formulas, shown in full
Written and maintained by Moh Bami in Tampa, Florida. Every number this site prints comes out of the functions below. Nothing is rounded before it is displayed, and no figure is typed by hand anywhere on the site.
Notation
B0 current unpaid principal balance, before the curtailment r annual nominal rate as a decimal (0.065 for 6.5%) i monthly periodic rate, r / 12 n remaining scheduled payments C curtailment — the lump sum P0 current monthly principal and interest, excluding escrow
A curtailment is a lump-sum payment applied to principal. Re-amortization is recalculating the payment so the smaller balance still retires on the original maturity date. A recast is both.
Remaining term from a payment
n = -ln(1 - B0 · i / P0) / ln(1 + i)
The guard
If P0 <= B0 · i the payment does not cover one month’s interest, the
logarithm’s argument is zero or negative, and the loan never amortizes. The function throws,
and the interface says: “That payment is lower than the monthly interest on that balance.
Check the numbers.” It does not silently return NaN, and it does not print a figure.
The recast
B1 = B0 - C P1 = B1 · i / (1 - (1+i)^-n) when i > 0 P1 = B1 / n when i = 0
The rate and the remaining term are the ones on the note. The maturity date does not move — that is the whole difference between a recast and a refinance.
The identity
P1 = P0 · (B1 / B0)
This is exact, not an approximation: payment is linear in balance when the rate and remaining term are fixed. On the canonical case a 13.1% cut in balance is exactly a 13.1% cut in payment, and both routes agree to the cent at $2,195.81. The site computes both and asserts they match.
The recast fee is never capitalized. It is not subtracted from B1 anywhere in the code, and it never appears in the amortization schedule.
The counterfactual that decides it
n' = -ln(1 - B1 · i / P0) / ln(1 + i) interest, recast P1 · n - B1 interest, no recast P0 · n' - B1
Pay the same lump sum and keep the payment where it is. The term shortens instead. This is the option every calculator in this niche leaves out, and it is almost always the cheapest one.
Refinancing, both ways
costs rolled in Bref = B1 + K costs paid cash Bref = B1, and K is added to lifetime cost separately Pref = Bref · iNew / (1 - (1+iNew)^-nNew) break-even vs recast = K / (P1 - Pref), when positive
Both variants are modelled because they produce different lifetime numbers and the difference is not small. The refinance rate is an assumption, labelled as one, and editable.
The fee break-even
breakEvenMonths = fee / (P0 - P1)
Guarded against division by zero: where the payment does not actually fall, the figure is reported as “—” rather than as infinity.
The canonical worked example
$400k at 6.5%, 4 years in, $50k lump. Balance before the curtailment $380,238, 312 payments remaining. Every unit test on this site checks against these figures.
| Option | Payment | Remaining term | Remaining interest |
|---|---|---|---|
| Do nothing | $2,528.27 | 312 months | $408,583 |
| Recast | $2,195.81 | 312 months | $354,855 |
| Lump sum, no recast | $2,528.27 | 227.6 months | $245,120 |
| Refinance, 6.5% / 30 yr | $2,125.25 | 360 months | $428,853 |
Recasting costs $109,736 more in total interest than paying the same lump sum and keeping the payment, and pays the loan off 84 months later. It buys $332.46 a month of cash flow.
How the servicer data is sourced
- Every figure comes from the servicer’s own page or its own fee schedule. Nothing is taken from another calculator, a comparison site, or a forum.
- Where a servicer publishes nothing, the row says so by name and gives the telephone number. It is never filled with a plausible-looking number.
- Where a published figure elsewhere contradicts the primary source, both are stated and the primary source wins. 4 such contradictions are recorded.
- Every row carries the date it was checked, and the date renders on the page.
- A figure that could not be confirmed against a primary document is marked Unverified and is never used to prefill the calculator.
Open data debt
| Servicers on file | 24 |
| With the exact document URL recorded | 2 |
| Document named, link to the servicer’s domain only | 17 |
| Publishing no policy at all | 5 |
| Carrying an unverified figure | 2 |
2 of 24 rows carry the exact document URL. For the rest the document is named in words and the link goes to the servicer’s own domain. A deep path that 404s would be worse than naming the document, and recording those URLs is the top maintenance task on this site.
What this site does not do
- It does not advise. It never writes “you should recast”. It computes, cites, and leaves the decision where it belongs.
- It does not collect anything. No email gate, no phone field, no account. The arithmetic runs in your browser and nothing is transmitted.
- It does not estimate PMI. If you want the PMI line, you enter your own figure.
- It does not blend escrow into the payment. Every competitor does, and every competitor’s “new payment” is therefore wrong against the real bill.
- It does not publish a star rating it has not collected.
Review cadence
Quarterly, and on any published fee-schedule change. The whole table was last checked on 27 August 2026. If a figure here is wrong, send the document and it will be corrected and re-dated.