ForHosting KIT · Finance & money

DSCR calculator

A property with 50,000 of net operating income and 40,000 of yearly debt service has a DSCR of 1.25 and a 10,000 cushion, enough to pass the usual 1.25 minimum. Enter income and loan payments to check yours. 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
Net operating income
50,000
Debt service
40,000
You get
Debt service coverage ratio (DSCR)
1.25
Debt-service cushion
10,000
Required threshold
1.25

This calculator divides a property's net operating income (NOI) by its annual debt service to produce the debt service coverage ratio (DSCR), the absolute cash cushion left after the loan, and a pass/fail flag against a lender threshold.

What the coverage ratio tells a lender

The debt service coverage ratio compares what a property earns with what its loan costs. Net operating income is divided by the debt service due over the year. A ratio of exactly 1.0 means income just covers the payments with nothing to spare; below 1.0, the property does not earn enough to pay its loan. Lenders usually want more room than that: 1.25 is the common minimum for commercial mortgages and the starting threshold here, and you can replace it with your lender's figure. With 50,000 of income and 40,000 of debt service, the ratio is 1.25 and the property passes.

Reading the ratio and the cushion together

The cushion, income minus debt service, shows the same margin as an amount: 10,000 in that example. The ratio is shown to three decimals by default, because coverage tests often turn on small differences, and the pass or fail check uses the unrounded figure, so a value sitting right on the threshold is judged correctly. Negative income gives a negative ratio, which describes a property that is losing money. To stress test a deal, lower the income or raise the payments, for example after a rate rise, and watch when the ratio drops under 1.25.

What DSCR measures and how it is computed

The debt service coverage ratio tells a lender how comfortably a property's income covers its loan payments. Worked example: an NOI of 50,000 against debt service of 40,000 gives a DSCR of 1.25, a cushion of 10,000, and passes: true at the default 1.25 threshold. A DSCR of exactly 1.0 means income precisely equals the loan payment with no margin; anything below 1.0 means the property does not earn enough to service its debt.

Inputs, defaults, rounding and validation

The threshold defaults to 1.25, the common commercial-mortgage minimum, but you can pass any lender-specific hurdle. The dscr is rounded with a half-up rule to a configurable number of decimals (default 3, finer than most outputs because coverage ratios turn on small differences), while the cushion is always rounded to 2 decimals as a currency figure. The pass/fail test uses the raw, unrounded ratio, so a value sitting right on the threshold is judged correctly.

Loan sizing and covenants

Check whether a property's NOI clears a lender's DSCR minimum before submitting a loan request, and see the exact cash cushion above the payment.

Scenario stress testing

Sweep NOI and debt service assumptions to see how a rate rise or income dip pushes the ratio under 1.25 and turns passes to false.

What DSCR counts as passing?

The tool returns passes: true when dscr is greater than or equal to the threshold, which defaults to 1.25 but can be set to any lender's minimum.

Can NOI be negative?

Yes. A loss-making property is allowed and yields a negative DSCR and a negative cushion, which will fail against any positive threshold.

What does a DSCR of exactly 1.0 mean?

That the property's income just equals its loan payments, with nothing to spare. Anything below 1.0 means it does not earn enough to service its debt, which is why lenders ask for a margin above it.

Can I use my lender's own threshold?

Yes. The starting threshold is 1.25, the common minimum for commercial mortgages, but you can enter any figure your lender requires. The check passes when the ratio is equal to or above it.

What is the cushion in the result?

Net operating income minus debt service, shown as an amount rather than a ratio. With 50,000 of income and 40,000 of debt service, the cushion is 10,000 a year.

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/debt-service-coverage

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/debt-service-coverage \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"noi":50000,"debt_service":40000}'
{
  "noi": 50000,
  "debt_service": 40000
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "finance.debt_service_coverage",
  "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.

What DSCR measures and how it is computed

The tool divides net operating income (noi) by annual debt_service to produce the dscr, and separately reports the cushion — the plain dollar difference noi minus debt_service — so you see both the ratio and the absolute margin. It then compares the ratio to a threshold (default 1.25) and returns passes: true when dscr is greater than or equal to that threshold.

Inputs, defaults, rounding and validation

Both noi and debt_service are required. noi must be a finite number and may be negative to model a property currently losing money, which yields a negative DSCR. debt_service must be a number strictly greater than zero — a zero or negative debt service returns a typed invalid_input error, because dividing by it would be undefined or meaningless.

Widget, API and eight-language landings

Use the API to score a whole loan book, run covenant checks across a portfolio, or test many NOI and debt scenarios against different thresholds in one batch. API tasks are billed from $0.002 against prepaid KIT balance, and only successful runs are charged. The landing is published in eight languages with translated slugs and keywords so an analyst or borrower searching in their own language finds a local page, while the JSON contract — noi, debt_service, threshold in, dscr, cushion, passes out — stays identical across every locale.

Portfolio covenant monitoring

Call the API to score DSCR across many properties against each loan's threshold and flag any that fall below their covenant.

What is the cushion output?

It is the absolute dollar difference between NOI and debt service (noi minus debt_service), rounded to 2 decimals — the cash left over after the loan payment.

Why must debt service be greater than zero?

DSCR is NOI divided by debt service, so a zero or negative debt_service is undefined and returns a typed invalid_input error.

Is the browser tool free and accurate?

The widget is free and deterministic, matching the API exactly. The API is billed from $0.002 and only charges successful tasks.

Read the full KIT documentation →