Occupancy, ADR, and RevPAR: the three numbers every host should know
Occupancy rate, average daily rate, and revenue per available night explained — and how to use them to tell a pricing problem from a booking problem.
Hotels have used occupancy rate, ADR, and RevPAR for decades to understand performance. Most Airbnb hosts have never calculated any of them — not because the numbers don’t apply, but because nobody handed them a way to compute them without a spreadsheet and a formula sheet.
Occupancy rate
Occupancy rate is simply the percentage of available nights that were booked. If your listing was open 30 nights in a month and booked for 21 of them, occupancy is 70%. It’s the number that tells you whether demand is there at all — but on its own, it says nothing about whether those bookings were profitable.
occupancy rate = nights booked ÷ nights available
“Available” means nights the listing was open to book. Nights you blocked for yourself, for repairs or for a family visit aren’t available, so leave them out of the denominator.
Average daily rate (ADR)
ADR is the average amount you earned per booked night, calculated by dividing total room revenue by the number of nights actually booked. It ignores empty nights entirely, which makes it a pure read on your pricing — not your booking volume. A high ADR with low occupancy might mean you’re priced above your local market; a low ADR with high occupancy might mean you’re leaving money on the table.
ADR = room revenue ÷ nights booked
“Room revenue” is what you charged for the nights themselves. Leave out cleaning fees, pet fees and taxes.
Revenue per available night (RevPAR)
RevPAR combines the two: total room revenue divided by total available nights, whether booked or not. It’s the single number that captures both pricing and occupancy at once, which is why it’s the metric most useful for comparing performance month over month or property to property.
RevPAR = room revenue ÷ nights available = ADR × occupancy rate
A worked month, start to finish
Here’s one listing’s June, step by step. The month has 30 nights, and the host blocked 2 for a family visit. The listing hosted 5 stays totalling 21 nights, earned $3,570 in nightly revenue, and collected $375 in cleaning fees.
| Step | Calculation | Result |
|---|---|---|
| Nights available | 30 − 2 blocked | 28 |
| Occupancy | 21 ÷ 28 | 75.0% |
| ADR | $3,570 ÷ 21 | $170.00 |
| RevPAR | $3,570 ÷ 28 | $127.50 |
| Check | $170.00 × 75.0% | $127.50 |
The $375 in cleaning fees doesn’t appear anywhere. It’s real money, but it’s charged per stay, not per night. Adding it would push ADR to about $188 and make your nightly pricing look stronger than it is.
Why the combination matters
The value of these three numbers is in reading them together. A slow month with low occupancy but strong ADR usually points to a demand problem — the price is fine, but not enough people are booking. A slow month with high occupancy but weak ADR usually points to a pricing problem — you’re full, but underpriced. RevPAR tells you the size of the gap; occupancy and ADR tell you which lever to pull.
Here’s what that looks like over three months on the same listing:
| Month | Available | Booked | Occupancy | ADR | Revenue | RevPAR |
|---|---|---|---|---|---|---|
| July | 31 | 26 | 83.9% | $190 | $4,940 | $159.35 |
| August | 31 | 27 | 87.1% | $160 | $4,320 | $139.35 |
| September | 30 | 15 | 50.0% | $190 | $2,850 | $95.00 |
Both August and September are down on July, but for opposite reasons.
- August was the busiest month and still earned less. Occupancy went up while ADR fell $30. The calendar was full, so the listing was underpriced for the demand it had. That’s a pricing problem.
- September held its $190 ADR, but occupancy fell to half. The price didn’t change and fewer people booked. That’s a demand problem: season, visibility or competition. Cutting the price might help, but it isn’t the obvious fix the way it would be in August.
Looking only at revenue, both months just look “down.” Occupancy and ADR are what tell them apart. For more scenarios, including two months with identical RevPAR for different reasons, see RevPAR vs. ADR: what the numbers actually show.
Most hosts feel a slow month happening before they can explain it. These three numbers turn that feeling into a diagnosis.
FAQ
What’s a good occupancy rate for an Airbnb?
It depends on your market and season, so there’s no single target. Higher isn’t automatically better: a listing that’s full every night is often priced too low. Compare your occupancy with your own past months and with similar listings nearby, and read it together with ADR.
Do blocked nights count as available?
No. Only count nights the listing was open to book. Counting blocked nights makes occupancy and RevPAR look worse for nights you were never selling.
Should I include cleaning fees in ADR or RevPAR?
No. Keep both to nightly room revenue. Cleaning fees are charged per stay, so including them inflates ADR for short stays and hides whether your nightly rate is right. Track cleaning income separately.
Should I use the price the guest paid or my payout?
Either works if you’re consistent. Nightly revenue before platform fees is the more common choice, because it reflects the price you set and stays comparable across platforms. Your payout, after fees, is what belongs in profit calculations like profit per booking.
How often should I calculate these?
Monthly is enough for most hosts. Compare each month with the month before and, once you have the history, the same month last year. That second comparison separates real changes from normal seasonality.
Skipping the manual math
Calculating occupancy, ADR, and RevPAR by hand means pulling booked nights, revenue, and calendar availability for the month and doing the division yourself — for every month, every listing. HostLedger calculates all three automatically for any month you pick, so the diagnosis is available the moment you need it, not after a half hour with a calculator.