Insights
Occupancy, ADR and RevPAR, worked out in naira
The three numbers every hotel report starts with, how to work them out for your own hotel, and the mistakes that quietly make them wrong.
by Mark Ezema ·
Occupancy tells you how much of your room capacity you sold. ADR tells you the average revenue from each room sold. RevPAR spreads room revenue across all available rooms, including the empty ones.
Take a 20-room hotel selling 65% of its room-nights at an average of ₦28,000. If it lowers that average to ₦25,000, how many more nights must it sell to earn the same room revenue?
We’ll work through that hypothetical example, then use it to test the rate cut.
Three calculations, using the same period
- Occupancy (%) = rooms sold ÷ rooms available × 100.
- ADR (average daily rate, also called average room rate or ARR) = room revenue ÷ rooms sold.
- RevPAR (revenue per available room) = room revenue ÷ rooms available.
For overnight stays, count room-nights: one room for one night is one room-night. A three-night stay contributes three. Use revenue and room counts from the same dates.
Our 20-room hotel is open throughout October’s 31 nights, with no extended closures. It has 620 available room-nights: 20 × 31.
It sells 403 room-nights and earns ₦11,284,000 in room revenue. For this example, there are no short rests, packages, service charges or other room charges to separate.
- Occupancy: 403 ÷ 620 × 100 = 65%.
- ADR: ₦11,284,000 ÷ 403 = ₦28,000.
- RevPAR: ₦11,284,000 ÷ 620 = ₦18,200.
You can also calculate RevPAR as occupancy × ADR, using occupancy as a decimal: 0.65 × ₦28,000 = ₦18,200.
The hotel did not charge ₦18,200 for every room. That figure spreads its room revenue over the whole available inventory so empty rooms count too.
Would a lower rate earn more?
At an average rate of ₦25,000, matching the existing room revenue requires:
₦11,284,000 ÷ ₦25,000 = 451.36 room-nights.
The hotel must sell at least 452 whole room-nights, or 49 more than the original 403. The exact break-even occupancy is 72.8%; rounding to 452 nights takes it to about 72.9%.
That only matches room revenue. Extra guests also use laundry, toiletries and other services. RevPAR does not deduct those costs, so matching RevPAR does not mean matching profit.
Before cutting the rate, ask where those additional bookings would come from and what serving them would cost. Afterwards, compare the result with the calculation.
Use consistent counting rules
The arithmetic is simple; the inputs need care. These points follow STR’s hotel benchmarking guidance:
- Complimentary stays: exclude genuinely free rooms from rooms sold. A free night earned through a paid promotion or contract is treated differently.
- Unavailable rooms: a short repair closure stays in available inventory. Extended and seasonal closures have separate rules; do not remove a room merely because it was unsellable that night.
- Short rest: include paid day-use rooms. Reselling a room can take the sold-room count above the physical inventory and occupancy above 100%.
- Taxes: exclude taxes from room revenue. Service-charge treatment depends on whether the hotel collects for itself or on behalf of someone else.
- Breakfast: allocate a priced package between its components. Incidental complimentary breakfast can have different treatment; do not subtract an arbitrary food amount.
Keep your reporting policy documented. Before comparing with another hotel’s figures, check that both use the same definitions.
Count revenue when the stay happens
If a company pays in November for accommodation supplied in October, the room revenue belongs to October. November contains the receipt. Using the payment date for both would distort the comparison between months.
Use the same distinction when reading a daily report: sales describe what was earned; payment checks describe the evidence of money received. Our daily report guide and template keep those questions separate.
Janus calculates occupancy from recorded stays, night by night. Recording the correct dates and stay details is still essential: a calculation cannot account for a stay that was never entered. See how a stay is recorded.


