ForHosting KIT · Finance & money

Mortgage points break-even

One point on a 300,000 loan costs 3,000; if it lowers the payment from 1,800 to 1,750, the 50 saved each month repays it in 60 months, or 5 years. Enter your loan, the points and both payments. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Loan principal
300,000
Discount points
1
PI without points
1,800
PI with points
1,750
Decimal places
2
You get
Points cost
3,000
Monthly savings
50
Breakeven months
60
Breakeven years
5

Months to recover discount-point cost from lower monthly payment. Search intent: mortgage points breakeven. No network calls, random seeds, or server state are required. Failed jobs are not billed.

What buying points means

Discount points are an upfront payment to the lender in exchange for a lower monthly payment. One point costs one percent of the loan, so on a 300,000 mortgage a single point costs 3,000. The question is how long the lower payment takes to give that money back. The calculator multiplies the loan by the points and divides by 100 to get the cost, subtracts the payment with points from the payment without them to get the monthly saving, and divides the cost by that saving. With payments of 1,800 and 1,750, you save 50 a month and break even after 60 months, or 5 years.

Using the break-even to decide

Compare the break-even with how long you expect to keep this loan. If you sell or refinance before that point, the lower payment never pays back the points; if you keep it longer, each month after break-even is a real saving. Enter both payments as principal and interest only, for the same loan, so the difference reflects the points and nothing else. The result shows the cost of the points, the monthly saving and the break-even in months and in years, rounded once to the decimals you choose.

Other languages?

EN-only delivery; Nitro hydrates the other seven locales.

How much does one discount point cost?

One point equals one percent of the loan amount. On a 300,000 mortgage, a single point costs 3,000 upfront: the calculator multiplies the loan by the points and divides by 100.

How is the monthly saving worked out?

It is the principal-and-interest payment without points minus the payment with points. With 1,800 and 1,750 the saving is 50 a month, and that saving is what slowly repays the cost of the points.

What if I sell the home before the break-even point?

Then the lower payment never fully repays what you spent on points. In the example you would need to keep the loan at least 60 months; selling or refinancing sooner leaves part of the cost unrecovered.

Why is the break-even also shown in years?

Because a period like 60 months is easier to judge as 5 years when you compare it with how long you plan to stay. The years are simply the months divided by twelve.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/finance/points-breakeven

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/finance/points-breakeven \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"loan_amount":300000,"points":1,"monthly_payment_without":1800,"monthly_payment_with":1750}'
{
  "loan_amount": 300000,
  "points": 1,
  "monthly_payment_without": 1800,
  "monthly_payment_with": 1750
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "finance.points_breakeven",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON contract from spreadsheets, CMS hooks, automation, or teaching demos.

How it works

No network calls, random seeds, or server state are required. Failed jobs are not billed. Search intent is matched with precise English keywords. Optional fields document defaults. No network calls, Months to recover discount-point cost from lower monthly payment. breakeven_months = (loan×points/100) / monthly_savings. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON contract from spreadsheets, CMS hooks, automation, or teaching demos. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested.

Inputs, limits and rounding

Optional decimals use half-up once. Outputs echo key inputs for logging and automation. No network calls, random seeds, or server state are required. Failed jobs are not billed. Search intent is matched with precise English keywords. Optional fields document defaults. Half-up rounding is Provide required JSON fields as documented in params. Invalid types or ranges raise invalid_input. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON contract from spreadsheets, CMS hooks, automation, or teaching demos. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input.

When to use it

Use when the search intent matches this calculator. Months to recover discount-point cost from lower monthly payment. No network calls, random seeds, or server state are required. Failed jobs are not billed. Search intent is matched with precise English keywords. Optional fields document defaults. Half-up The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON contract from spreadsheets, CMS hooks, automation, or teaching demos. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input.

Quick check

Verify a formula in the free browser widget.

Automation

Call the API with the same JSON fields from scripts.

Teaching

Show pinned golden examples without proprietary tools.

Is the browser widget free?

Yes. Tier A runs client-side with the same core as the API.

Does it call the network?

No. Computation is local and deterministic.

What happens on bad input?

The handler throws invalid_input; failed jobs are not billed.

Can I use the API?

Yes. Send the same JSON documented in params.

Read the full KIT documentation →