Availability
Whether a room can be booked is derived, never typed in.
A unit's availability is derived from the reservations against it. There is no "available" switch to flip. Change a move-out date and availability moves with it; cancel a booking and the room frees itself.
That is deliberate: a manually-set flag is a second source of truth, and the moment it disagrees with the bookings, one of them is lying and nobody can tell which.
The states
| State | Meaning |
|---|---|
| Available now | Bookable today. |
| Available from date | Confirmed free from a known date — a filed move-out. |
| Reserved | Someone has it, or has it from a date. |
| Possibly available from date | Soft, and the important one — see below. |
| Occupied | In use, with no known end. |
A confirmed date that has already passed reads as available now, not as a stale future date.
Confirmed versus possible
Confirmed means a move-out notice has been filed. It is a commitment: billing, settlement and the successor booking all key off it.
Possible means a resident has told someone they intend to leave, without filing. It is recorded as an expected departure, and it does exactly one thing — advertises the unit as possibly available from that date, for waitlist purposes.
An expected departure is never read by billing or occupancy. It cannot free a room, cannot end a tenancy, and cannot be relied on for a start date you promise a new resident. It is a lead, not a fact. It clears itself automatically once a real notice is filed.
External occupancy
Some units are blocked by things that are not reservations in this system — an imported rent roll, a channel calendar, an owner using their own unit. Those blocks are real, and the availability view shows them.
External blocks must never be fed to the double-booking detector. They are not reservations and they do not carry the same identity, so treating them as such produces phantom conflicts on rooms that are perfectly fine — and the noise trains people to ignore the detector, which is worse than not having one.
Owner residents
An owner living in their own unit occupies it, but is not a normal tenancy: no refundable deposit, no ordinary rent roll treatment. Availability views can be filtered to exclude them.
Two things about that filter behave in a way worth knowing:
- Absent means excluded. With no filter specified, owner residents are left out. That is the default because it is the common case.
- Explicitly clearing the filter is a distinct state from not setting it — it means "exclude nobody", and it is how you deliberately see everything.
Degrading safely
Availability labels render on every public property card. A single corrupt date — the kind an external rent-roll sync can introduce — falls back to the plain no-date label rather than breaking the page. If a unit shows "Occupied" with no date where you expected one, a bad source date is worth ruling out.
See also Contract dates, The tenancy lifecycle and the Rent Roll chapter for the availability grid itself.