ForHosting KIT · Health & fitness

Social distancing calculator

Enter the usable floor area and the required distance to get the most people who fit while keeping that gap: 100 square metres at 2 metres gives each person 4 square metres, so 25 people. Leftover space is never rounded up. 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
Area
100
Distance
2
You get
Area per person
4
Max occupancy
25
Density
0.25
Used area
100

A social distancing calculator converts usable room area and a required center-to-center distance into the largest whole number of people who can occupy that floor while keeping the stated gap. Enter the clear area after you have already subtracted furniture, stages, and circulation you will not stand in, then enter the policy distance—two metres, six feet, or any other strictly positive length in the same linear unit that squared to produce the area. The tool gives each person a square exclusion cell of side equal to the distance, divides area by that cell, and floors the ratio so a leftover strip never becomes a fractional occupant.

How maximum occupancy is derived from area and distance

Maximum occupancy in this tool is the largest whole number of people who can share a room when every occupant is assigned a square exclusion cell whose side equals the required interpersonal distance.

Area is the usable floor plate you can actually occupy — length times width for a rectangle, or a surveyed net area after you have already subtracted stages, bars, fixed seating, and aisles you will not stand in — and it must share units with distance so that square metres pair with metres and square feet pair with feet. Distance is the center-to-center gap a public-health policy, venue licence, or house rule requires between people: two metres, six feet, one and a half metres, or any other strictly positive length.

That single length becomes a square footprint of distance times distance, which is the area each person claims on a square packing grid. Occupancy is then the floor of area divided by that cell, with a tiny floating-point epsilon so exact multiples of the cell do not drop one person from rounding noise. A remainder of unused area is reported rather than rounded up, because a partial cell cannot hold another person at the stated distance.

Venue reopening and event permits

Hall managers enter usable floor area and a two-metre or six-foot rule to publish a defensible maximum occupancy on a permit or door sign.

Office and waiting-room capacity

Facilities teams convert open-plan area and a house distancing policy into an integer headcount for desks, clinics, and reception zones.

How is maximum occupancy calculated from area and distance?

Example: area 100, distance 2 → cell 4 → 25 people.

What if area or distance is not a positive number?

Area and distance must both be strictly positive finite numbers; zero, negative, missing, or non-numeric values cannot define an occupancy.

Do area and distance have to use matching units?

Yes. The calculator never converts units. Use square metres with metres, square feet with feet, or any other single length unit so the ratio stays dimensionless and correct.

Is this a fire-code occupant load?

No. It is a square-grid distancing model only. Fire, licensing, and furniture limits may be stricter; apply those separately or subtract unusable floor from area before you call.

What does the social distancing calculator cost?

The browser tool is free and runs locally.

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/health/social-distancing

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/health/social-distancing \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area":100,"distance":2}'
{
  "area": 100,
  "distance": 2
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "health.social_distancing",
  "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.

Zero or negative area or distance is rejected with invalid_input instead of inventing infinitely many people.

How maximum occupancy is derived from area and distance

The response echoes area and distance, reports area_per_person as the exclusion cell, max_occupancy as the integer count, density as people per unit area, used_area and unused_area as the split of the floor, a formula string, a short message, and the arithmetic steps. There is no fire-code occupant-load table, no hexagonal packing option, no furniture CAD, and no unit converter: the page answers only how many people the area-and-distance model implies, with stable numbers suitable for reopening plans, event permits, and API consumers that must match goldens run after run.

How to call the API and what comes back

String forms of numbers are accepted when they match a strict finite numeric pattern; unit suffixes, thousand separators, or free text fail validation. Prefer sending numbers rather than pre-formatted strings when you control the client; when you must send strings, avoid unit labels that would fail the finite-number pattern. Round-trip checks are easy: recompute distance squared, floor-divide area by that cell, and confirm the published occupancy and leftover area match. A room smaller than one cell yields occupancy zero rather than an error, which is physically honest. Send a JSON body with two required fields: area (aliases room_area, floor_area, surface, surface_area, A) and distance (aliases spacing, min_distance, required_distance, d, gap). Both must be finite positive numbers within the published absolute range so the products, ratios, and leftover area remain finite in IEEE double precision on the Worker and in the browser. On success the response echoes rounded area and distance, sets area_per_person to distance squared, max_occupancy to the non-negative integer floor of area over that cell, density to people per unit area, used_area and unused_area to the filled and leftover floor, formula to the published identities, message to a short English summary, and steps to an ordered substitution log. Failed validation — missing fields, non-finite values, or area or distance that is not a positive number — returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item.

Practical tips, limits, and related searches

Measure the clear standing or seating rectangle after subtracting stages, bars, fixed furniture, and any aisle you will not occupy, then choose a distance that matches your policy — two metres, six feet, or a custom gap are all valid as long as area is that length unit squared. Keep values inside the published absolute range so counts cannot overflow into non-finite results the solver must reject. Prefer this capability when you already know usable area and a target square-grid distance and only need an integer occupancy; if your source is classroom length and width with a desk pitch, a layout-row seating calculator is the closer search. If unused_area is large, either reduce distance slightly so more whole cells fit, enlarge the room, or accept the remainder as circulation; this calculator never adds a partial person. When teaching or writing tests, pair an exact multiple (area one hundred, distance two → twenty-five people) with a remainder case that leaves leftover floor, and include a deliberate zero or negative distance to prove the invalid_input path. This landing targets people searching for a social distancing calculator, maximum occupancy from room area, how many people fit at two metres, required distance occupancy, or a free distancing capacity tool; it is not a fire-code occupant-load estimator, not a furniture CAD placer, not an HVAC sizing tool, and not medical or legal advice. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when you deliberately send zero distance to verify error handling. Event officers, office managers, and SaaS facilities tools can all call the same endpoint for reproducible take-offs without sharing a spreadsheet formula that drifts between browsers.

Golden fixtures for occupancy apps

Developers generate known-good exact and remainder cases plus deliberate zero-distance rejections for unit tests and CI.

Read the full KIT documentation →