Operations

Housekeeping Room Status Codes: The Full Reference for Hotels

Every front desk and housekeeping team runs on the same short alphabet of room status codes. Here is what each one means, why the OOO/OOS split matters for revenue, and how to keep both departments reading the same room at the same time.

What are housekeeping room status codes?

A room status code is a two-letter shorthand that tells everyone in the hotel what state a room is in right now: is it occupied, is it clean, can it be sold. The codes exist because two departments — front desk and housekeeping — need to agree on the same room without picking up a phone every time.

Most properties in Egypt and the wider region use a version of the same core set, inherited from older PMS platforms and still taught in hotel schools. The exact letters can vary by property, but the logic behind them does not: occupancy status (is a guest in the room) is tracked separately from housekeeping status (is the room clean), and the two combine into what front desk actually sees.

The core codes: VC, VD, OC, OD, VI

These five codes cover almost every room on a normal day. They are built from two independent signals — occupied vs. vacant, and clean vs. dirty — plus one extra state for a room that has been checked after cleaning.

CodeMeaningCan front desk sell it?
VCVacant CleanYes, ready for check-in
VDVacant DirtyNo, needs cleaning first
OCOccupied CleanNo, guest is staying
ODOccupied DirtyNo, guest is staying, room not yet serviced
VIVacant InspectedYes, cleaned and verified by a supervisor

VI is the code most new front-office managers skip, and it is the one that saves the most complaints. A room that goes straight from VD to VC on a housekeeper's say-so has been cleaned but not checked. VI means a supervisor walked in, looked at the bathroom, the minibar and the amenities, and signed off. On a busy arrival day, only VI rooms should go to VIP guests, return guests or anyone flagged for a room-check requirement — the ten minutes a supervisor spends inspecting is cheaper than a relocation at 11pm.

Departure day multiplies this. A room checking out at 12:00 might need to be VC by 14:00 for the next arrival. That two-hour window is exactly what a housekeeping board or a live status screen exists to protect — every minute the room sits at VD past its target time is a minute front desk is one arrival away from an apology and a discount.

OOO vs OOS: the difference that protects your revenue

This is the pair that gets confused most often, and confusing them is what causes overselling.

  1. OOO (Out of Order) — the room is physically unsellable: broken AC, plumbing leak, safety issue, renovation. It is pulled from inventory and MUST be blocked from availability, or the property will oversell on a night it cannot actually deliver.
  2. OOS (Out of Service) — the room is sellable but held back for an operational reason: deep-cleaning schedule, pest control, a management decision to rest a room. It usually still counts toward maintenance planning but the block on availability is a choice, not a physical fact.

The operational discipline that matters here is date-scoping. An OOO room is not a flag on the room forever — it is a block for specific dates, often open-ended when there is no confirmed repair date and closed the moment the fix is verified. A property that marks a room OOO and forgets to set an end date quietly loses that room from inventory indefinitely, which shows up months later as unexplained lost revenue nobody can trace back to a single decision. In Mukeem, an OOO or OOS period is entered against specific dates and is enforced directly against availability, so the room cannot be booked or walked into for those nights by mistake — and it is visible as a block, not a note someone has to remember to check.

DND, sleep-out and skipper: the codes that protect the guest and the hotel

Beyond the clean/dirty and OOO/OOS pairs, three more codes handle situations where the room status itself is not in doubt but something about the stay needs tracking.

  • DND (Do Not Disturb) — the guest has asked not to be serviced or entered. Housekeeping should skip the room and log the DND rather than knock repeatedly. Most properties set a policy for how many consecutive DND days trigger a courtesy call or a welfare check, since a DND that runs for several days can also be the first sign something is wrong.
  • Sleep-out — the guest is registered and paying for the room but did not physically occupy it last night (bed not slept in, luggage still there). This matters for occupancy reporting and for housekeeping priority: a sleep-out room usually does not need a full service, just a light check.
  • Skipper — the guest has left without checking out and, in the worst case, without settling the folio. This is a front-office and finance concern first: housekeeping flags the room as vacant with belongings gone, front desk closes the reservation and the outstanding balance moves to whatever collection or write-off process the property uses.

How front desk and housekeeping stay in sync

The codes only work if both departments are looking at the same status at the same time. The traditional way — a paper housekeeping board updated by radio call — breaks down exactly on the days it matters most: full-house departures, group check-ins, back-to-back turnovers. A status change made on a housekeeper's phone or tablet needs to reach the front desk screen in seconds, not at the next shift briefing.

See it on your own hotelA 30-minute walkthrough with your rooms, rates and reports.
Book a demo

The second half of staying in sync is assignment logic, not just visibility. Rooms should be assigned to housekeepers by section and by priority — arrivals before stayovers, VIP and early check-in requests first — and that assignment should update automatically as new checkouts land through the morning rather than being planned once at 8am and manually patched all day.

Discrepancy reports: catching the mismatches before a guest does

A discrepancy is any room where the front desk system and the physical room disagree — the system says occupied but housekeeping finds it empty, or the reverse. Discrepancies are not rare; they are the normal residue of early departures, late check-ins that never showed, and guests who moved rooms without anyone updating the record.

  1. Housekeeping runs a physical room check each shift (typically once in the morning, once in the evening) and records what they actually see: occupied, vacant, or "no luggage but marked occupied", "luggage but marked vacant", and similar.
  2. The system compares that physical check against the current reservation status for every room.
  3. Every mismatch is listed on a discrepancy report — not to blame housekeeping or front desk, but so someone with authority resolves each line before the next shift starts.
  4. Common resolutions: an early departure that was not checked out in the system, a walk-in that was roomed but not yet posted, or a guest who moved rooms informally.

Setting up room status codes for your property

None of this requires a large property to matter. A 20-room guesthouse and a 300-room resort run the exact same logic; the resort just needs more automation to keep the same accuracy at higher volume. A few practical starting points:

  • Decide your VI policy explicitly — which room types or guest flags require supervisor inspection before VC, rather than leaving it to habit.
  • Set a written rule for OOO vs OOS so any manager on duty applies the same test, not a personal judgment call each time.
  • Put a DND consecutive-day threshold in writing, even a simple one, so it is a policy decision and not something noticed by accident.
  • Run the discrepancy check at every shift handover, not once a day, on any property doing same-day turnovers.

Where Mukeem helps

Features

Housekeeping

One board for clean, dirty, occupied and out-of-order rooms, with tasks assigned to staff and any mismatch with the front desk flagged before it costs a sale.

Features

Front desk

See today’s arrivals, in-house guests and departures on one screen, assign rooms by status, and move a guest without losing a single charge.

FAQ

Questions hotels ask us

VD (Vacant Dirty) is an empty room that needs cleaning before it can be sold again. OD (Occupied Dirty) is a room with a guest currently staying in it that has not yet been serviced today. Both need housekeeping attention, but only VD is blocking a sale.

That is a property decision, since OOS rooms are physically sellable. Many hotels do block OOS rooms from channels during the held period simply to avoid a same-day cancellation conversation, but the room can be reopened for sale the moment the reason for holding it is resolved.

Most properties restrict OOO creation to maintenance or a duty manager, since it removes a room from sellable inventory. Front-desk staff on their own are usually limited to OOS or to flagging a maintenance issue that a manager then converts to OOO if it is confirmed unsellable.

There is no single universal number — it depends on your average turnover time and your next arrival pattern — but properties typically set an internal target (for example, cleaned within a set number of hours of checkout) and treat any room past that target as a priority for housekeeping and a watch item for front desk.

The three usual causes are an early departure not checked out in the system, a guest roomed at the desk before the housekeeping status was confirmed, and an informal room move that was never recorded. A shift-change discrepancy report catches all three before they reach a second guest.

Keep reading

See it on your own hotel

A 30-minute demo, with your rooms and your rates.