Calculator Methodology

Effective Date: August 2026

Overview

Every calculator on this site is built on the standard US fixed-rate mortgage amortization formula. This page documents the exact math, variable definitions, and assumptions behind each tool so you can verify the numbers or rebuild a calculator yourself.

All calculators compute principal and interest (P&I) only. They do not include property taxes, homeowners insurance, PMI, or HOA dues, which vary by property and loan and would make the results less general. To estimate your full monthly housing payment (PITI), add those costs to the P&I figure the calculator returns.

1. The Monthly Payment Formula

Every calculator starts from the standard amortizing-loan payment formula. Given a principal P, an annual interest rate expressed as a percentage r, and a loan term of n years, the monthly payment M is:

M = (P × i × (1 + i)^N) / ((1 + i)^N − 1)

where:
  P = principal (loan amount)
  i = monthly interest rate = r / 100 / 12
  N = total number of payments = n × 12

If the interest rate is zero, the payment is simply P / N. This formula is used by the mortgage payment calculator, the refinance calculator, the APR calculator, and the seller concessions calculator.

2. Amortization Schedule

The amortization schedule is generated by iterating month-by-month from payment 1 through payment N. For each payment:

interest      = remainingBalance × i
principal     = monthlyPayment − interest
newBalance    = remainingBalance − principal

remainingBalance starts at P (the original loan amount)
and decreases each month until it reaches 0.

Early in the loan, most of each payment is interest because the balance is at its highest. As the balance shrinks, the interest portion of each payment shrinks and the principal portion grows. The schedule shown in the calculators matches exactly what a lender will produce for the same loan amount, rate, and term.

3. Total Interest Paid

Total interest over the life of the loan is the sum of all monthly interest payments, or equivalently:

totalInterest = (M × N) − P

where:
  M = monthly payment (from the formula above)
  N = total number of payments
  P = principal

This figure appears in the mortgage payment calculator and the refinance calculator (as the total interest remaining on the current loan and the total interest on the new loan).

4. Buydown Calculator

The buydown calculator applies the monthly payment formula with a reduced rate during the buydown period, then the full note rate for the remaining term.

The buydown rate schedules are:

Buydown type   Year 1     Year 2     Year 3     Year 4+
3-2-1          rate−3%    rate−2%    rate−1%    note rate
2-1            rate−2%    rate−1%    note rate note rate
1-1            rate−1%    rate−1%    note rate note rate
1-0            rate−1%    note rate  note rate note rate

For each year, the calculator computes a new monthly payment based on the remaining balance at the start of that year, the buydown rate for that year, and the remaining term (original term minus years elapsed). This reflects how a real buydown is serviced: the amortization continues from the current balance, not the original balance.

Monthly savings during the buydown period = base payment (at the note rate) − buydown payment (at the reduced rate). Total buydown cost = the sum of all monthly savings across the buydown years. This is the amount the seller, builder, or borrower must fund upfront at closing.

5. Discount Points Calculator

The points calculator compares two scenarios on the same loan: the base rate (no points) and the reduced rate (with points).

pointsCost      = (P × points) / 100
oldPayment      = monthlyPayment(P, baseRate, term)
newPayment      = monthlyPayment(P, baseRate − (points × reduction), term)
monthlySavings  = oldPayment − newPayment
breakEvenMonths = pointsCost / monthlySavings
totalSavings    = (monthlySavings × N) − pointsCost

where:
  P          = loan amount
  points     = number of points purchased (e.g., 1, 1.5, 2)
  reduction  = rate reduction per point (typically 0.25%)
  N          = total number of payments (term × 12)

If monthlySavingsis zero or negative (the points raised the payment, which should not happen with valid inputs), the break-even is reported as "Never."

6. Refinance Calculator

The refinance calculator computes the current payment on the remaining balance at the current rate and remaining term, and the new payment on the same balance at the new rate and new term.

oldPayment        = monthlyPayment(balance, oldRate, oldTerm)
newPayment        = monthlyPayment(balance, newRate, newTerm)
monthlySavings    = oldPayment − newPayment
breakEvenMonths   = closingCosts / monthlySavings
oldTotalInterest  = (oldPayment × oldTerm × 12) − balance
newTotalInterest  = (newPayment × newTerm × 12) − balance
lifetimeSavings   = oldTotalInterest − newTotalInterest − closingCosts

Note that if the new term is longer than the remaining term, the monthly payment may drop even at the same rate, but the total interest may increase because you are paying interest over more months. The lifetime-savings figure accounts for this by subtracting closing costs from the interest differential.

7. APR Calculator

The APR calculator solves for the rate that makes the present value of all monthly payments equal to the net loan amount (principal minus upfront fees). This is the definition of APR under the Truth in Lending Act (Regulation Z).

Given:
  P     = loan amount
  F     = upfront fees
  M     = monthlyPayment(P, rate, term)  // the stated payment
  N     = total number of payments

Solve for the monthly rate r such that:

  P − F = M × (1 − (1 + r)^−N) / r

Then:
  APR = r × 12 × 100

The calculator uses Newton-Raphson iteration starting
from the stated monthly rate, converging to machine
precision (typically in under 10 iterations).

This produces the same APR you will see on a Loan Estimate, assuming the fees you entered match the lender's Section A fees. APR does not include third-party fees (title, appraisal, recording) or escrow items (taxes, insurance), consistent with how lenders compute it.

8. Seller Concessions Calculator

The seller concessions calculator computes the effect of a seller credit on cash at closing.

downPaymentAmount = (price × downPct) / 100
concessionAmount  = (price × concessionPct) / 100
loanAmount        = price − downPaymentAmount
monthlyPayment    = monthlyPayment(loanAmount, rate, term)
cashAtClosing     = max(downPaymentAmount − concessionAmount, 0)

where:
  price          = home purchase price
  downPct        = down payment as a percent of price
  concessionPct  = seller concession as a percent of price

The concession does not change the loan amount or the monthly payment — it only reduces the out-of-pocket cash the buyer brings to closing. If the concession exceeds the closing costs, the "cash at closing" figure is floored at zero (the buyer cannot receive cash back from a seller concession on most loan types).

Assumptions & Limitations

  • All calculators assume a fixed-rate, fully amortizing loan. Adjustable-rate mortgages (ARMs) follow a different schedule after the initial fixed period.
  • No prepayments. The schedules assume you make exactly the scheduled payment each month. Making extra principal payments will shorten the term and reduce total interest relative to the calculator output.
  • No escrow.Taxes, insurance, and PMI are not included. Your real monthly payment will be higher than the calculator's P&I figure.
  • Rounding. Lenders round payments to the nearest cent and may round interest differently; the calculator uses JavaScript floating-point, so the last cent may differ from a lender&aposs amortization schedule by a negligible amount.
  • Buydown rate reductions are applied as whole percentage points (3, 2, 1) per the standard 3-2-1 / 2-1 structures. Some lenders offer fractional buydowns; those are not supported by the calculator but the methodology extends naturally.

Source Code

The formulas above are implemented in lib/finance.ts and components/calculator/utils.ts in this site's open source repository. You are welcome to inspect, audit, or reuse the code.