Hotel room status codes combine two facts about a room: whether a guest is in it and how clean it is. Housekeeping tracks the cleanliness axis (dirty, clean, inspected), the front office tracks the occupancy axis (occupied, vacant, due out), and the property management system joins them into codes like VD (vacant dirty), VC (vacant clean), and OD (occupied dirty). Two maintenance statuses sit outside the cycle: OOO (out of order) removes a room from sellable inventory, while OOS (out of service) blocks assignment but keeps the room sellable. The remaining terms describe exceptions, like a skipper (guest left without settling the bill) or a sleeper (the system still shows a departed guest in the room).
The room status lifecycle
Every room in a hotel walks the same loop, every day, whether the property tracks it in Oracle OPERA, Mews, Cloudbeds, or on a whiteboard. A guest checks out, the room becomes vacant dirty, a room attendant cleans it, a supervisor inspects it, the front desk assigns it to the next arrival, and the loop starts again. The maintenance statuses are side exits from that loop, not part of it.
The lifecycle also runs on autopilot more than most trainees expect. According to the Mews Help Center (2026) (help.mews.com), occupied rooms are automatically flipped back to dirty on the property's housekeeping interval, a vacant room untouched for seven consecutive days flips to dirty on its own, and a no-show's assigned room is deliberately not flipped, since nobody slept in it. Cloudbeds documents the same pattern: its PMS resets occupied rooms to dirty at roughly 2:00 AM daily as a service reminder, and marks a room dirty the moment a guest checks in so nobody can be walked into an unserviced room. The statuses are not just labels someone types in; the PMS is an active participant in the state machine.
The full code table
Exact letters vary by PMS, but the underlying vocabulary is standard across the industry. The definitions below are checked against Oracle OPERA Cloud documentation, the Mews and Cloudbeds help centers, hospitality-school teaching materials published by Bilkent University's tourism school, and SetupMyHotel's front office training glossary. Where vendors genuinely differ, the row says so.
OOO vs OOS: the distinction that moves revenue
These two codes get confused constantly, and the confusion is expensive, because one of them shrinks the hotel. The vendor documentation is unusually consistent here. Oracle's OPERA Cloud user guide states that out of order rooms "are removed from room inventory, reducing the number of available rooms," while out of service rooms "are not removed from inventory... and can be sold if the need arises." The Mews Help Center draws the identical line: OOO "is intended to block a room from being sold for a prolonged period of time," affects RevPAR and occupancy because inventory drops, and is used for major repairs; OOS "is intended to block a room for an immediate assignment, for example, a minor repair," stays in availability, and affects neither RevPAR nor ADR.
- Removed from sellable inventory. The available room count drops for those dates.
- Reservations cannot be assigned to the room at all.
- For major repairs, renovation, deep maintenance. Prolonged blocks.
- Directly reduces occupancy and RevPAR, so revenue managers scrutinize every OOO night.
- Stays in sellable inventory. Availability math is unchanged.
- Blocked from immediate assignment, but the front desk can still sell it on a full house.
- For minor fixes: a failed bulb, a missing bed cover, a loose fixture.
- No effect on RevPAR, ADR, or occupancy statistics.
One nuance worth knowing: older textbook glossaries define only "out-of-order" ("the room cannot be assigned to a guest") and do not draw the OOO/OOS distinction at all. The two-tier model is a PMS-era refinement, which is why staff trained on older materials and staff trained inside OPERA or Mews sometimes talk past each other. When in doubt, ask the only question that matters: is this room still in the sellable count or not?
Discrepancy reports: skips, sleepers, and the physical check
Room status is recorded twice, by two departments with different vantage points. The front office knows what the folio says; housekeeping knows what the room actually looks like. When the two disagree, you have a room status discrepancy, and every serious PMS ships a report to surface them. RoomKeyPMS's support documentation defines the two canonical cases:
- Skip discrepancy: "the Front Desk room status shows a room as Occupied, but the Housekeeping room status is marked as Vacant." The classic cause is a guest who paid at check-in and simply left, or used express checkout, without stopping at the desk. If no arrangement to pay was ever made, that guest is a skipper.
- Sleep discrepancy: "the Front Desk room status shows a room as Vacant, but the Housekeeping room status is marked as Occupied." A guest settles the bill, is marked departed, and then goes back to the room, or the desk simply failed to update the record, producing a sleeper.
The reconciliation mechanic has not changed in decades, only the tooling: someone physically verifies the room. Housekeeping records the status it observes on its floor sweep, the PMS compares that against the front office record, and the discrepancy report goes to the front desk to chase down, guest by guest. HotelKey's knowledge base describes the same loop and adds the modern touch of logging who resolved each discrepancy and what the room's status became afterward. In the traditional paper workflow this was the afternoon (PM) housekeeping report; in a modern PMS it is a live screen, but the point is identical: the system's opinion of a room is only trustworthy if someone regularly checks it against the actual room.
That is worth sitting with, because it is the honest limitation of the entire status system. The codes track where a room is in the process with great precision, and say nothing about how well any step was performed. A room can be marked inspected with a cracked lamp and a stained duvet, and the state machine is perfectly satisfied. Status is a claim; the discrepancy check exists because claims drift from reality, and cleanliness claims drift just as much as occupancy claims. We wrote about that verification gap, and how hotels are starting to close it with photo and video evidence, in how hotels use AI for quality control and our audit of which housekeeping platforms support video.
How the codes map to data
If you are building anything on top of hotel operations, an integration, a housekeeping dashboard, an AI agent that reads room state, this whole page reduces to a small schema: a room has a housekeeping status (dirty, clean, inspected, pickup), a front office status (vacant, occupied), a reservation status (arrival, stayover, due out, no-show), and an optional maintenance block (OOS or OOO, with a return status). Every code in the table above is a value of one of those four fields, and every "exception" is a constraint violation between two of them. A skip is front-office-occupied plus housekeeping-vacant. A sleeper is the reverse.
We maintain a machine-readable version of exactly this state machine in our hotel operations data model, a reference schema that encodes rooms, statuses, transitions, and discrepancy rules in a form an agent or an integration can fetch and use directly. And if you want to see the model running, build your own hotel housekeeping board walks through implementing a live status board on top of it.
Quick FAQ
What is the difference between OOO and OOS in a hotel?
OOO (out of order) removes the room from sellable inventory: the available count drops and the PMS will not let anyone assign a reservation to it. OOS (out of service) blocks the room from immediate assignment for a minor issue, but the room stays in inventory and can still be sold if needed. Oracle's OPERA Cloud documentation and the Mews Help Center define the two the same way. Because OOO reduces inventory, it lowers occupancy and RevPAR; OOS does not.
What is a skipper in a hotel?
A guest who has left the hotel without making arrangements to settle his or her account. It is different from DNCO (did not check out), where the guest already settled the account but left without informing the front office, and from a sleeper, where the guest properly checked out but the front office failed to update the room status, so the system still shows the room occupied.
What does DND mean for housekeeping?
DND (do not disturb) means the guest has requested not to be disturbed, so the room attendant skips the room and returns later in the shift. The cleanliness status stays wherever it was, usually occupied dirty, until service happens or the guest declines it for the day, which some systems record separately as service refused (SR).
Who can change a hotel room's status?
Cleanliness statuses belong to housekeeping: attendants mark rooms clean, supervisors mark them inspected. Occupancy statuses follow front office events (check-in, check-out) and are set by the PMS. Many systems gate the inspected status behind permissions; in Cloudbeds it is off by default and only owners and administrators can enable it. And the PMS changes statuses on its own too, resetting occupied rooms to dirty each morning and flipping rooms to dirty on checkout.
What is the difference between vacant clean and vacant ready?
Vacant clean (VC) means cleaned but not yet verified by a supervisor. Vacant ready (VR, also written VI or VCI) means the clean has been inspected and the room can be assigned to an arriving guest. Properties that skip the inspection step treat clean as sellable, which is exactly the gap where quality problems reach guests.
Sources
Sources are named at the publisher level with their root domain, rather than linked or titled; every figure is verifiable at the named source.
- OPERA Cloud housekeeping and room management documentation, Oracle Hospitalitydocs.oracle.com
- Mews Help Center, room status and house use documentationhelp.mews.com
- Cloudbeds Help Center, housekeeping documentationmyfrontdesk.cloudbeds.com
- Rooms division management teaching materials, Bilkent University School of Applied Technology and Managementtourism.bilkent.edu.tr
- Front office training materials, SetupMyHotelsetupmyhotel.com
- RoomKeyPMS Support Centre, room discrepancy documentationsupport.roomkeypms.com
- HotelKey Knowledge Base, discrepant rooms documentationkb.hotelkeyapp.com

