ForHosting KIT · Finance & money

Break even occupancy calculator

With 120,000 of potential rent, 40,000 of operating expenses and 50,000 of yearly debt service, a property must be 75% occupied just to cover its costs, leaving a 25% vacancy margin. 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
Gross potential rent
120,000
Operating expenses
40,000
Debt service
50,000
You get
Break-even occupancy (%)
75
Vacancy margin (%)
25

This calculator takes a property's gross potential rent, operating expenses, and annual debt service and returns the break-even occupancy percentage — the share of full rent you must collect just to cover costs — along with the vacancy margin you have before the property runs at a loss.

What break-even occupancy tells a buyer or a lender

Break-even occupancy is the share of a property's full rent you must actually collect to pay its operating expenses and its loan. It answers the first underwriting question: how much vacancy or unpaid rent can this deal survive? The calculation adds operating expenses and annual debt service, divides the sum by gross potential rent, which is the rent you would collect with every unit let all year, and multiplies by 100. With 120,000 of potential rent, 40,000 of expenses and 50,000 of debt service, the property needs 90,000 a year, which is 75% occupancy.

Reading the vacancy margin without the usual slips

The vacancy margin is 100 minus the break-even figure, 25% in that example: the empty units or lost rent the property can absorb before it runs at a loss. A lower break-even means a wider cushion. Use yearly figures for all three amounts, so a monthly loan payment has to be multiplied by 12 first. Start from potential rent, not from the rent you already collected, or vacancy is counted twice. If costs exceed potential rent, no occupancy can cover them, and the calculator says so instead of showing a number above 100.

The break-even occupancy formula

Break-even occupancy answers a single underwriting question: what fraction of a property's full rent roll must actually be collected before the asset stops losing money? The tool sums operating expenses (opex) and annual debt service into a required cash figure, divides it by gross potential rent (GPR), and multiplies by 100. With a GPR of 120,000, opex of 40,000, and debt service of 50,000, the required cash is 90,000, so break-even occupancy is 90,000 / 120,000 x 100 = 75%.

It also returns the vacancy margin, computed as 100 minus the break-even percentage, which here is 25% — the amount of empty units or uncollected rent the deal can absorb before dipping below zero. Both figures come straight from the three cash inputs; there is no assumed vacancy factor, cap rate, or growth curve baked in.

Deal underwriting

Screen a rental or commercial acquisition by checking how much of full rent you must collect to cover opex and the loan, and how much vacancy cushion remains.

Investor and lender reporting

Produce a defensible break-even occupancy and vacancy margin figure for a memo or loan package, computed deterministically from three transparent inputs.

What is the vacancy margin output?

It is 100 minus the break-even occupancy percentage — the share of rent that can go uncollected or vacant before the property operates at a loss.

How do I calculate break-even occupancy?

Add operating expenses and annual debt service, divide by gross potential rent and multiply by 100. With 120,000 of potential rent, 40,000 of expenses and 50,000 of debt service, you need 90,000, which is 75% occupancy.

Can I leave out the loan payments?

Yes. Operating expenses and debt service are both optional and count as zero when left empty, so you can check a property bought without a loan, or compare rent with the loan alone.

What if my costs are higher than the full potential rent?

The calculator stops with a message instead of showing a figure above 100%. When expenses plus debt service exceed potential rent, the property cannot cover its costs at any occupancy, even fully let.

Does it assume a vacancy allowance or rent growth?

No. Both results come only from the three amounts you enter, with no built-in vacancy factor, capitalization rate or growth curve. Enter rent at full occupancy and let the margin show how much vacancy fits.

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/break-even-occupancy

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/break-even-occupancy \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"gross_potential_rent":120000}'
{
  "gross_potential_rent": 120000
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "finance.break_even_occupancy",
  "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.

Inputs, defaults, rounding and validation

Only gross_potential_rent is required and it must be a number strictly greater than zero. Both opex and debt_service are optional and default to 0, so you can model an unlevered property by omitting debt_service, or a raw revenue check by omitting opex; each, when supplied, must be a number of zero or more. The engine enforces a hard sanity check: if opex plus debt_service exceeds gross potential rent, break-even would exceed 100% and the deal can never cover costs at any occupancy, so it throws a typed invalid_input error ('costs exceed potential rent') instead of returning a misleading number above 100. Wrong types or negative expenses also return invalid_input.

Widget, API and eight-language landings

API tasks are billed from $0.002 against prepaid KIT balance and only successful runs are charged. This landing page exists in eight languages with translated slugs so an analyst searching in their own language finds a local page, while the JSON contract — field names and shape — stays language-neutral across every locale.

Lease-up and stress testing

Sweep occupancy scenarios via the API to see how rising expenses or a larger mortgage push the break-even point and shrink the vacancy margin.

What exactly is break-even occupancy?

It is the percentage of gross potential rent you must actually collect to cover operating expenses plus debt service: (opex + debt_service) / gross_potential_rent x 100.

Can I model a property with no mortgage?

Yes. Both opex and debt_service default to 0, so omit debt_service for an unlevered property, or omit opex to check a revenue-only threshold.

Why did I get an invalid_input error?

The engine rejects a non-positive gross_potential_rent, negative opex or debt_service, and any case where opex plus debt_service exceeds gross potential rent, since break-even would then exceed 100%.

Is the browser tool free and is it accurate?

The widget is free and runs the same deterministic code as the API, so results match exactly. The API is billed from $0.002 and only charges successful tasks.

Read the full KIT documentation →