Revenue

ADR, RevPAR and Occupancy Explained (With a Worked Example)

The three numbers every hotel manager reports on, the formulas behind them, and a worked example showing exactly how out-of-order and complimentary rooms change the math.

The three numbers, and why they disagree with each other

Occupancy tells you how full you are. ADR (Average Daily Rate) tells you how much each sold room earns. RevPAR (Revenue Per Available Room) tells you how much the whole property earns per room, sold or not. A hotel manager who only watches occupancy can be fooled: a fully-booked property selling every room at a discount can look great on the occupancy report and terrible on the P&L.

That's the whole reason all three numbers exist together. Occupancy alone hides rate. ADR alone hides how many rooms actually sold. RevPAR is the one number that punishes both a half-empty hotel and a fully-booked but under-priced one, which is why it's the number ownership and revenue managers usually ask for first.

The formulas

MetricFormulaWhat it answers
Occupancy %Rooms Sold ÷ Rooms Available × 100How full were we?
ADRRoom Revenue ÷ Rooms SoldHow much did each sold room earn?
RevPARRoom Revenue ÷ Rooms AvailableHow much did each available room earn?
RevPAR (shortcut)ADR × Occupancy %Same answer, from the other two

A worked example: a 50-room hotel on a Thursday night

This is an illustrative example only — plug in your own numbers. Say a 50-room hotel sells 38 rooms on a given night for a combined room revenue of EGP 76,000. (All figures below are for illustration; they are not real prices or averages.)

  1. Occupancy = 38 ÷ 50 × 100 = 76%
  2. ADR = EGP 76,000 ÷ 38 = EGP 2,000
  3. RevPAR = EGP 76,000 ÷ 50 = EGP 1,520
  4. Cross-check: ADR × Occupancy = EGP 2,000 × 0.76 = EGP 1,520 — matches

Notice RevPAR (EGP 1,520) is always lower than ADR (EGP 2,000) whenever occupancy is under 100%, because RevPAR spreads the same revenue across every available room, sold or not. The gap between the two numbers is itself informative: a wide gap means low occupancy is the problem; ADR sitting near RevPAR with occupancy still low means both rate and demand need attention.

How out-of-order rooms change the math

Rooms Available is not your total room count — it's total rooms minus rooms that were physically unable to sell that night. A room under maintenance, waiting on a repair, or blocked for renovation is Out of Order (OOO), and the correct treatment removes it from the denominator entirely rather than counting it as an unsold room.

Take the same 50-room hotel, but 2 rooms are OOO for that date (again, an illustrative number). Rooms Available drops to 48, not 50:

  1. Occupancy = 38 ÷ 48 × 100 = 79.2% (up from 76%)
  2. ADR = EGP 76,000 ÷ 38 = EGP 2,000 (unchanged — ADR only cares about sold rooms)
  3. RevPAR = EGP 76,000 ÷ 48 = EGP 1,583 (up from EGP 1,520)

Complimentary and house-use rooms: available, but do they count as sold?

A comp room (given free to a guest, an agent, or a VIP) and a house-use room (occupied by staff or management, not a paying guest) are both physically available and both occupied — the bed is used. The question is whether they belong in the occupancy and revenue math the same way a paying stay does.

  • They usually count toward Rooms Sold for occupancy purposes, since the room genuinely was not available to another paying guest that night.
  • They should NOT count toward Room Revenue at their rack rate, since EGP 0 (or a token rate) is what was actually earned — carrying them at full rate inflates ADR and RevPAR with revenue that never existed.
  • The safest convention: track comp and house-use nights on a separate report line, so occupancy reflects reality but ADR and RevPAR reflect only revenue actually posted to the folio.

This is exactly the kind of rule that has to be decided once, written down, and applied consistently — not re-litigated every time someone pulls a report. In Mukeem’s statistics, for example, room nights and ADR leave out house-use and complimentary stays while occupancy counts them, and the rule is printed on the report itself — so no manager re-decides it in a spreadsheet every morning.

What actually moves each number, day to day

LeverMoves OccupancyMoves ADRMoves RevPAR
Rate changes (yield/season)Sometimes (demand response)DirectlyDirectly
New OTA channel or promotionYesUsually downDepends on net effect
Length-of-stay or last-minute dealsYesDownDepends
OOO rooms returning to inventoryDown (denominator grows)No changeDown, then up as they sell
Upsell to higher room categoriesNo changeUpUp
Group or corporate block released lateDown if unsoldDown (distress pricing)Down

Which reports to read every day

A manager who checks these two things every morning catches problems before they compound over a week:

  1. The daily occupancy/ADR/RevPAR report for last night, compared to the same weekday last week (not last month — day-of-week comparisons control for the pattern of weekday vs weekend demand).
  2. The pickup report — reservations added or cancelled for the next 7 to 14 days — since RevPAR today is a lagging number, but pickup tells you where it's heading.
  3. The OOO and housekeeping-block list, so a maintenance issue that shrinks Rooms Available doesn't get missed until month-end.
See it on your own hotelA 30-minute walkthrough with your rooms, rates and reports.
Book a demo

None of this needs to be manual. Once room status, rate and folio revenue live in one system instead of a spreadsheet reconciled after the fact, the daily RevPAR report is just something you open, not something you build.

Where Mukeem helps

Features

Reports

The manager report, statistics and financial statements all read the same ledger — so occupancy, ADR and revenue are the same number wherever you look.

Features

Reservations

Take individual, group and allotment bookings with rate codes, meal plans and per-night rates — and see what is left to sell before you promise a room.

FAQ

Questions hotels ask us

No. RevPAR is a revenue metric — room revenue divided by available rooms — with no cost deducted. A hotel can grow RevPAR while margin falls if the extra revenue came from a costlier distribution channel (like a high-commission OTA) or from services that carry their own cost. RevPAR should be read alongside cost per occupied room or GOPPAR, not on its own.

No, not in the standard formulas. ADR and RevPAR are room-revenue metrics by convention, so mixing in other departments overstates both and makes them impossible to compare against other hotels or against your own prior periods. Total revenue per room (sometimes called TrevPAR) is a separate, additional metric if you want that combined view.

Most properties count any room occupied for the night as one room-night regardless of length of stay, since the room was unavailable for a full-night sale either way. If day-use bookings are a meaningful share of business, it is worth tracking them on a separate line so occupancy is not overstated relative to actual overnight demand.

RevPAR only measures the room revenue side. A hotel can post a healthy RevPAR and still lose money if payroll, energy costs, OTA commissions or F&B costs have grown faster than revenue. RevPAR needs to be read next to cost per occupied room, not treated as a stand-alone health check.

Keep reading

See it on your own hotel

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