Santara AI
Back to blog
GuidesOccupancyADRRevPARRevenueVacation rentals

Occupancy, ADR and RevPAR explained for vacation rental hosts

The three numbers hotels live by, worked through for a few villas: formulas, an example month, the owner-stay and cleaning-fee mistakes, and reading by channel.

Tai Pham
October 19, 20268 min read
Cover showing the formulas for occupancy, ADR and RevPAR for vacation rental hosts

Occupancy, ADR and RevPAR are the three numbers every hotel manager watches, and they work just as well for a few villas or a small guesthouse. This guide gives you ADR, RevPAR and occupancy explained in plain terms: what each one measures, the exact formula, and how to calculate them from your own calendar in ten minutes a month.

The formulas are simple. The trouble is what you put into them. Count owner stays as bookings, or leave cleaning fees in your revenue, and the numbers start telling you a story that isn't true. Compare Airbnb's dashboard with your Booking.com extranet and you may find they don't even define "available" the same way.

So this post also covers the common mistakes, and how to read the three numbers when your bookings come from several channels. We use one hypothetical example all the way through. There are no market benchmarks here, because a benchmark is only useful when you know exactly how it was calculated.

The three numbers and their formulas

The hotel industry's standard definitions come from the CoStar (STR) glossary. Replace "room" with "unit" or "listing" and they fit short-term rentals well.

MetricWhat it tells youFormula
OccupancyHow much of what you could sell, you soldNights sold ÷ nights available
ADR (average daily rate)The average price of a night you soldRoom revenue ÷ nights sold
RevPAR (revenue per available room)Revenue spread over every night you could sellRoom revenue ÷ nights available

Two definitions sit under all three. Nights available is your number of units multiplied by the nights in the period: three villas over a 30-night month gives 90. Nights sold excludes complimentary nights, which CoStar explicitly leaves out of demand.

RevPAR also equals ADR × occupancy. That is why it is the most useful single number. A high ADR with empty nights and a full calendar at a low price can both produce a weak RevPAR, and only RevPAR shows you both at once.

A worked example

Say you run three one-bedroom villas in Canggu. Every number below is hypothetical.

In November (30 nights), you have 90 nights available. Guests stayed 54 paid nights. Room revenue, meaning nightly rates only, without cleaning fees or taxes, was $6,480. The owner of villa A stayed 5 nights, and villa C was closed for 3 nights to fix the pool pump.

CalculationResult
Occupancy = 54 ÷ 9060.0%
ADR = $6,480 ÷ 54$120.00
RevPAR = $6,480 ÷ 90$72.00
Check: $120 × 60%$72.00
Worked example for three Canggu villas in November: 60% occupancy, $120 ADR and $72 RevPAR
One hypothetical month for three villas, from nights available to RevPAR.

That is the clean version. Now look at what happens with the blocked nights.

Common mistakes that skew the numbers

Counting owner stays as bookings. If you record the owner's 5 nights as booked at $0, nights sold becomes 59. Occupancy jumps to 65.6%, and ADR drops to $109.83. Both numbers are now wrong, in opposite directions. An owner stay is not a sale. Keep it out of nights sold.

Not deciding how to treat blocked nights. Owner stays and repair closures are nights you chose not to sell. You can report occupancy two ways, and both are valid if you label them:

  • On all nights: 54 ÷ 90 = 60.0%. This shows what the property actually earned from its full capacity.
  • On sellable nights only: 54 ÷ 82 = 65.9%. This shows how well you sold the nights you offered.

Airbnb's own definition in its occupancy and rates help article is nights booked divided by "total nights available to be booked", and the same page reports nights blocked separately. So if you compare your spreadsheet with Airbnb's figure, check which denominator you used. The mistake is mixing the two from month to month.

Putting cleaning fees into revenue. If you charged 15 stays a $40 cleaning fee, that is $600. Add it to room revenue and ADR rises to $131.11, even though no guest paid more for a night. Cleaning fees pay for cleaning. Track them separately. Airbnb says the same thing in its own way: it calculates average nightly rate from total nightly revenue divided by booked nights.

Mixing gross and net. The price a guest paid and the money you received after the platform's fee are different numbers. Pick one, write down which, and use it every month. Our Airbnb vs Booking.com fees guide shows how far apart they can be.

Ignoring unit counts. If one listing sells two identical rooms, it has two units of supply, not one. Count it as one and your occupancy can go over 100%.

Counting cancelled bookings. A cancelled stay with a charge brings in revenue but no occupied night. Keep that money out of room revenue, or ADR will look higher than any guest actually paid.

How to read the numbers across channels

Most hosts sell on two or three platforms plus direct bookings. Occupancy and RevPAR belong to the property, not to a channel, because the nights available are the same whichever site sells them. ADR, on the other hand, is very useful per channel.

Continuing the example, here is how the 54 nights split:

ChannelNights soldRoom revenueADRShare of RevPAR
Airbnb30$3,900$130.00$43.33
Booking.com18$2,016$112.00$22.40
Direct6$564$94.00$6.27
Total54$6,480$120.00$72.00

"Share of RevPAR" is each channel's revenue divided by all 90 available nights. The shares add up to the property's RevPAR, which makes it easy to see where your money comes from.

Table of ADR and share of RevPAR for Airbnb, Booking.com and direct bookings in the example month
ADR is worth reading per channel; occupancy and RevPAR belong to the whole property.

A few things to keep in mind when you read a table like this:

  • Each platform reports its own way. Airbnb's Insights shows occupancy and average nightly rate for your Airbnb listings only. Booking.com's performance guide describes ADR as the average rate you receive per room night, and its Analytics tab has a Pace report and Sales statistics. Neither sees the other channel's bookings, so neither shows your property's true occupancy.
  • A higher ADR is not always a better channel. The channel with the highest ADR may also take the largest fee. Compare channels on what you actually received.
  • Low direct ADR can be a choice. If you give direct guests a better price, a lower ADR there is expected. Watch whether direct nights grow.

A monthly routine

Step 1

Export every booking for the month

Pull check-in, check-out, nightly revenue and channel for all stays from every platform, or from one calendar if all channels feed it.

Step 2

Split nights by month

A stay from 29 November to 3 December has two nights in November and two in December. Count each night in the month it falls in.

Step 3

Mark blocked nights by reason

Owner stays, maintenance and personal use go in their own column. They are not sales.

Step 4

Calculate occupancy, ADR and RevPAR

Use nights available for the whole property. Write next to each number whether it is gross or net and which denominator you used.

Step 5

Compare with the same month last year

Seasons in Bali, Phuket or Da Nang swing hard. Comparing November with October tells you less than November with last November.

How Santara AI helps you measure occupancy, ADR and RevPAR

The hardest part of these metrics is collecting clean inputs from several places. Santara AI keeps one calendar per room as the source of truth. New bookings, changes and cancellations from every connected channel land on that same calendar, and your direct booking site sells from it too. That gives you one place to count nights sold and revenue across Airbnb, Booking.com, Agoda and the rest, instead of three dashboards with three definitions. You can see which channels connect on the integrations page.

Each room also has a unit count, the number of identical units you sell, and availability can never go above it. That is the same number you need for nights available. When you close dates for an owner stay or a repair, you use stop sell, and the dates close on every connected channel.

What Santara AI doesn't do here

Santara AI does not give you market benchmarks or compare your occupancy with other properties. It also does not decide for you whether owner stays count, or whether you report gross or net. Those choices are yours. Write them down once and keep them the same.

FAQ

How do you calculate RevPAR for a vacation rental?

Divide room revenue for the period by nights available, which is your number of units times the nights in the period. Three villas earning $6,480 in a 30-night month have a RevPAR of $6,480 ÷ 90 = $72.

What is the difference between ADR and RevPAR?

ADR is the average price of the nights you sold. RevPAR spreads the same revenue over every night you could have sold, so it falls when nights go empty. RevPAR equals ADR multiplied by occupancy.

Should owner stays count in occupancy?

Not as bookings. An owner stay is a blocked night, not a sale. You can report occupancy on all nights or on sellable nights only, but label which one you use and keep it consistent.

Does ADR include cleaning fees?

In the hotel definition, ADR uses room revenue only. Airbnb also calculates its average nightly rate from nightly revenue. Track cleaning fees separately so ADR reflects what guests paid per night.

Keep reading

Your first 3 months are free.

Join For Free

By

Tai Pham

Back to blog
Keep reading

More from the blog

Read the docs