RevPAR vs. ADR: what the numbers actually show
Two listings can post the same revenue and mean completely different things. Worked examples showing how ADR and RevPAR diverge, and what each one tells you.
ADR and RevPAR are often mentioned in the same breath, which makes them sound interchangeable. They aren’t. ADR measures your pricing. RevPAR measures your pricing and your occupancy together. (If the three metrics themselves are new to you, start with the primer.) Two listings can have identical ADR and very different RevPAR — or identical RevPAR and very different ADR — and the difference is exactly the information you need to act on.
The formulas
- ADR (Average Daily Rate) = total room revenue ÷ nights booked
- RevPAR (Revenue Per Available Night) = total room revenue ÷ nights available (booked and unbooked)
ADR only looks at the nights you actually sold. RevPAR looks at every night the listing was open, whether it sold or not — which is what makes it the number that captures missed opportunity.
The two are linked by one identity that’s worth remembering:
RevPAR = ADR × occupancy rate
$200 ADR at 50% occupancy is a $100 RevPAR. So is $125 at 80%. Every example below is this equation working in different directions.
Example 1: Same revenue, different story
Say a listing has 30 available nights in a month.
Scenario A — high price, lower occupancy: 15 nights booked at $200/night. Revenue = $3,000. ADR = $3,000 ÷ 15 = $200. RevPAR = $3,000 ÷ 30 = $100.
Scenario B — lower price, higher occupancy: 20 nights booked at $150/night. Revenue = $3,000. ADR = $3,000 ÷ 20 = $150. RevPAR = $3,000 ÷ 30 = $100.
Both scenarios produce the same revenue and the same RevPAR — $100. But the ADR tells a completely different pricing story: Scenario A is a premium listing selling half its nights; Scenario B is a mid-priced listing selling two-thirds of its nights. If you only looked at RevPAR, you’d think these two months were identical. They’re not — they just landed at the same total through opposite strategies.
Example 2: Same ADR, different RevPAR
Now hold price constant and change occupancy.
Month 1: 12 nights booked at $180/night out of 30 available. ADR = $180. Revenue = $2,160. RevPAR = $2,160 ÷ 30 = $72.
Month 2: 24 nights booked at $180/night out of 30 available. ADR = $180 — unchanged. Revenue = $4,320. RevPAR = $4,320 ÷ 30 = $144.
Here, ADR gives you zero signal that anything changed — the price per booked night is identical both months. RevPAR doubles, because it captures the occupancy swing that ADR is blind to. This is the core reason RevPAR exists: it’s the one number that can’t be flattered by cherry-picking only the nights that sold.
Example 3: Diagnosing a slow month
A host sees revenue drop from $4,000 to $2,800 month over month, on a 30-night listing.
Prior month: 20 nights booked at $200/night. ADR = $200. RevPAR = $4,000 ÷ 30 = $133. Slow month: 20 nights booked at $140/night. ADR = $140. RevPAR = $2,800 ÷ 30 = $93.
Occupancy is identical — 20 nights both months. ADR dropped from $200 to $140. That’s a pricing problem, not a demand problem: the same number of guests booked, but at a lower rate, likely from a rate drop, a promotion, or a shift in booking mix toward cheaper dates. RevPAR falling here is a symptom; ADR is where the cause actually shows up.
Compare that to a different slow month: 14 nights booked at $200/night. ADR = $200 — unchanged. Revenue = $2,800. RevPAR = $2,800 ÷ 30 = $93 — the same RevPAR as above, but for a completely different reason. Here occupancy dropped from 20 nights to 14, while price held steady. That’s a demand problem: fewer people booked at the same price, which points toward visibility, seasonality, or competition you can size up with market research — not a pricing mistake.
Both slow months land on the identical $93 RevPAR. Only by checking ADR alongside occupancy can you tell whether the fix is a price adjustment or a push on bookings.
Every scenario, side by side
Here are all the examples above in one table, each on a 30-night month. Read across a row and you can see which number moved.
| Scenario | Nights booked | Occupancy | ADR | Revenue | RevPAR |
|---|---|---|---|---|---|
| 1A — premium price | 15 | 50.0% | $200 | $3,000 | $100.00 |
| 1B — mid price | 20 | 66.7% | $150 | $3,000 | $100.00 |
| 2 — Month 1 | 12 | 40.0% | $180 | $2,160 | $72.00 |
| 2 — Month 2 | 24 | 80.0% | $180 | $4,320 | $144.00 |
| 3 — prior month | 20 | 66.7% | $200 | $4,000 | $133.33 |
| 3 — slow, price drop | 20 | 66.7% | $140 | $2,800 | $93.33 |
| 3 — slow, demand drop | 14 | 46.7% | $200 | $2,800 | $93.33 |
A simple way to read it: if RevPAR moved and ADR moved with it, look at your pricing. If RevPAR moved and occupancy moved with it, look at demand: visibility, season, competition. If both moved, take them one at a time.
When a higher RevPAR makes you less money
RevPAR is a revenue metric, and it can’t see costs. Every booked night costs you something (utilities, supplies, wear), and every stay has a turnover (cleaning, laundry). So pushing occupancy up with a discount can raise RevPAR and still lower profit.
Say a stay costs $70 to turn over and each occupied night costs $30 to run, before platform fees:
| Option A — hold the price | Option B — discount to fill | |
|---|---|---|
| Nightly rate | $200 | $170 |
| Nights booked (stays) | 15 (5 stays) | 18 (6 stays) |
| Revenue | $3,000 | $3,060 |
| RevPAR | $100.00 | $102.00 |
| Costs (nights + turnovers) | $800 | $960 |
| Net before fees | $2,200 | $2,100 |
Option B wins on RevPAR and loses $100 on profit. The three extra nights bring in $510. But the $30 discount gives back $450 on the 15 nights you’d have sold anyway, and the extra stay adds $160 in costs: +$510 − $450 − $160 = −$100. Use RevPAR to see how well you’re filling the calendar, and check profit per booking before you decide a discount was worth it.
Getting the inputs right
The formulas are simple. The mistakes are usually in what you feed them.
- Leave blocked nights out of “available.” If you blocked 4 nights in a 31-day month for your own use, you had 27 available nights, not 31. With 18 nights booked for $3,240, that’s 66.7% occupancy and a $120 RevPAR. Divide by 31 and you get 58.1% and $104.52, which makes the listing look like it underperformed on nights it was never selling.
- Use room revenue only. Leave cleaning fees, pet fees and taxes out of ADR and RevPAR. A cleaning fee spread across a short stay inflates ADR and hides whether your nightly rate is right.
- Compare like with like. A 28-night February and a 31-night March have different denominators, which is exactly why RevPAR beats raw revenue for month-over-month comparisons. Just be consistent about which nights count as available.
FAQ
Is a higher RevPAR always better?
For revenue, yes. For profit, not always. RevPAR ignores the cost of each booked night and each turnover, so a discount that raises occupancy can lift RevPAR and still leave you with less (see the table above).
Which matters more for Airbnb hosts, ADR or RevPAR?
Neither one on its own. RevPAR is the better summary because it can’t be inflated by only counting nights that sold. ADR and occupancy are the two halves that explain why it moved. Track all three.
Can RevPAR be higher than ADR?
No. RevPAR is ADR multiplied by occupancy, and occupancy can’t exceed 100%. At full occupancy the two are equal. Any empty night pulls RevPAR below ADR.
Should cleaning fees count in ADR?
No. Keep ADR to nightly room revenue. Cleaning fees are charged per stay, not per night, so including them makes short stays look like higher-priced nights and blurs your pricing signal.
What’s a good RevPAR for my listing?
There’s no universal number. It depends on your market, season and property type. The useful comparison is your own RevPAR month over month, and against similar listings near you, which you can size up with HostLens.
Why both numbers, together, matter
RevPAR alone tells you that something changed. ADR alongside occupancy tells you why. A host chasing RevPAR without watching ADR can end up discounting rates to fill nights, not realizing the drop in per-night value is quietly eating the margin those extra bookings were supposed to create.
Calculating this by hand every month means pulling nights booked, nights available, and total revenue for each period — then doing the division twice, once for ADR and once for RevPAR. HostLedger calculates both automatically for any month you pick, so the diagnosis is sitting there the moment a month looks off, rather than something you reconstruct after the fact.