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.

front desk checks the next guest in Occupied OD / OC, guest in house Vacant Dirty VD, on-change Vacant Clean VC, awaiting inspection Inspected / Ready VI / VR / VCI, sellable checkout cleaned inspected stayover: reset to dirty daily, serviced back to clean maintenance block from any vacant state Out of Service (OOS) minor issue, blocked from assignment, still counted in sellable inventory Out of Order (OOO) major issue, removed from inventory, reservations cannot be assigned block ends: returns at a set return status One full cycle per departure. Hotels without an inspection step treat Vacant Clean as sellable.
The room status state machine. Solid arrows are the daily guest cycle; dashed arrows are the maintenance side exits. In Oracle OPERA the return from OOO or OOS is explicit: you pick the "return status" the room comes back at, and the room automatically rejoins inventory at the end of the block.

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.

Housekeeping statuses (the cleanliness axis)
VDvacant dirty
Vacant and dirty. The guest has departed and the room has not been cleaned. Textbook glossaries call this same state on-change: "the guest has departed, but the room has not yet been cleaned and readied for re-sale."
VCvacant clean
Vacant and clean. Cleaned but not yet verified. According to Cloudbeds (2026) (myfrontdesk.cloudbeds.com), a clean room "is not yet ready for the new guests to occupy as it needs inspection or quality control."
VI / VRinspected / ready
Vacant, inspected, and ready. A supervisor has checked the clean and the room can be assigned. Some properties write it VCI. This status is optional in most systems: in OPERA Cloud, Inspected only exists "when the Inspected Status OPERA Control is active," and in Cloudbeds the inspected condition is disabled by default and must be switched on by an owner or administrator. Mews ships Dirty, Clean, and Inspected as standard.
ODoccupied dirty
Occupied and dirty. A guest is registered to the room and it has not been serviced yet today. This is the state every occupied room wakes up in, because the PMS resets occupied rooms to dirty each morning.
OCoccupied clean
Occupied and clean. A guest is registered and housekeeping has already serviced the room today.
PUpickup
Pickup. An OPERA-specific optional status between dirty and clean: the room only needs a light touch-up rather than a full service, for example after a very short occupancy. Available "when the Pickup Status OPERA Control is active."
OOOout of order
Out of order. The room cannot be sold. According to Oracle's OPERA Cloud documentation (docs.oracle.com), "out of order rooms are removed from room inventory, reducing the number of available rooms" and "reservations cannot be allocated to a room in Out of Order status." Used for major repairs and renovation. Full comparison with OOS below.
OOSout of service
Out of service. The room is blocked from immediate assignment for a minor issue but stays sellable. Per Oracle, "out of service rooms are not removed from inventory... and can be sold if the need arises."
Front office statuses (the occupancy axis)
OCCoccupied
Occupied. "A guest is currently registered to the room."
DOdue out
Due out. The guest is expected to check out today. Housekeeping boards use due-out lists to sequence the day: due outs become vacant dirty rooms as departures land.
Due in
Due in. The room is expected to receive an arriving guest today. Mews surfaces this as the "Arriving" filter in its Space status report; OPERA's Housekeeping Board shows arrivals alongside room status for the same reason.
COcheckout
Checkout. "The guest has settled his or her account, returned the room keys, and left the hotel." The checkout event is what flips the room to vacant dirty.
SOstayover
Stayover. "The guest is not expected to check out today and will remain at least one more night." Stayovers get a daily service, not a full turnover clean.
LClate checkout
Late checkout. "The guest has requested and is being allowed to check out later than the hotel's standard check-out time." Matters to housekeeping because it pushes the room to the back of the cleaning sequence.
NSno-show
No-show. A guest who held a reservation but never registered or checked in. In Mews, a no-show's assigned room keeps its status overnight instead of flipping to dirty, since the room was never occupied.
Day use
Day use. A reservation that arrives and departs the same day, with no overnight. OPERA even has a dedicated setting (DEFAULT DAY USE ROOM STATUS) that automatically sets the housekeeping status at day-use checkout, which "ensures that the room is made up by Housekeeping and not assigned to a new guest."
HUhouse use
House use. "The room is used by the hotel staff or someone staying from the management team," or for showrooms and training. According to Mews (2026), house-use rooms are removed from availability and are not bookable, but do not count against RevPAR, occupancy, or ADR.
COMP
Complimentary. "The room is occupied, but the guest is assessed no charge for its use."
Exception flags (when reality and the system disagree)
DND
Do not disturb. "The guest has requested not to be disturbed." The attendant skips the room and circles back later in the shift; the cleanliness status stays where it was.
SRservice refused
Service refused. The guest declined housekeeping service entirely for the day, a step past DND that some systems record explicitly.
Skipper
Skipper. "The guest has left the hotel without making arrangements to settle his or her account." A revenue problem first, a status problem second.
Sleeper
Sleeper. "The guest has settled his or her account and left the hotel, but the front office staff has failed to properly update the room's status." The room sits sellable-but-showing-occupied, quietly costing revenue.
Sleep-out
Sleep-out. "A guest is registered to the room, but the bed has not been used." Housekeeping notices it; the front desk needs to know about it.
DNCO
Did not check out. "The guest made arrangements to settle his or her account (and thus is not a skipper), but has left without informing the front office."
LOlockout
Lockout. "The room has been locked so that the guest cannot re-enter until a hotel official clears him or her," typically over a billing question.
DLdouble lock
Double lock. The door is locked from inside and out so no one can enter; staff cannot service the room.

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.

OOO
Out of Order
  • 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.
OOS
Out of Service
  • 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.

  1. OPERA Cloud housekeeping and room management documentation, Oracle Hospitalitydocs.oracle.com
  2. Mews Help Center, room status and house use documentationhelp.mews.com
  3. Cloudbeds Help Center, housekeeping documentationmyfrontdesk.cloudbeds.com
  4. Rooms division management teaching materials, Bilkent University School of Applied Technology and Managementtourism.bilkent.edu.tr
  5. Front office training materials, SetupMyHotelsetupmyhotel.com
  6. RoomKeyPMS Support Centre, room discrepancy documentationsupport.roomkeypms.com
  7. HotelKey Knowledge Base, discrepant rooms documentationkb.hotelkeyapp.com

Keep reading