RevPAR vs ADR: How to Calculate Both and When Each One Matters
This guide explains RevPAR and ADR with formulas and worked examples, when each one matters, the related hotel KPIs, and what public rates reveal about competitors.
Table of contents

Your monthly report shows ADR up and RevPAR down, and someone has to explain how both can be true.
RevPAR, revenue per available room, divides room revenue by every room the hotel has.
ADR, average daily rate, divides the same revenue by the rooms that were actually sold.
That one difference in the denominator explains the puzzle: ADR can't see empty rooms, and RevPAR can.
This guide covers both formulas with worked numbers, which one to watch when, the KPIs that sit next to them, and what public hotel rates can and can't tell you about a competitor.
Key Takeaways
- RevPAR equals room revenue divided by rooms available. It also equals ADR times occupancy, so a 120-room hotel that sells 96 rooms at $150 has a RevPAR of $120.
- ADR only counts rooms that were sold. Under the industry's accounting rules, complimentary rooms without a promotion or contract stay out of the count.
- Two hotels can share a RevPAR and nothing else. A full hotel at $120 and a 60%-full hotel at $180 both land at $108, with very different cleaning bills.
- GOPPAR moves faster than RevPAR. CoStar says percentage changes in gross operating profit per room generally run 1.5 to 2.0 times the RevPAR change, which is why owners also watch the metrics around it (our STR report guide covers the comp-set indexes).
- Public rates are a forward proxy for ADR. They show what competitors ask for future nights, and they can never show a competitor's RevPAR, because occupancy isn't public.
What Is RevPAR?
RevPAR means revenue per available room.
CoStar, which runs the STR hotel benchmark, calls it "the hospitality industry's gold standard for measuring top-line performance" in its RevPAR explainer.
There are two ways to get it, and they always agree:
RevPAR = room revenue ÷ rooms available
RevPAR = ADR × occupancy
Take a 120-room hotel on a Tuesday.
It sells 96 rooms and books $14,400 in room revenue.
| Metric | Formula | Result |
|---|---|---|
| Occupancy | 96 sold ÷ 120 available | 80% |
| ADR | $14,400 ÷ 96 sold | $150 |
| RevPAR | $14,400 ÷ 120 available | $120 |
| Check | $150 × 80% | $120 |
Room revenue means rooms only.
Breakfast, parking, and spa income stay out (they belong to TRevPAR, below).
RevPAR works at any scale: one hotel on one night, a portfolio over a quarter, or a whole city.
That's why it's the number owners, lenders, and market reports quote first.
What Is ADR (Average Daily Rate) in a Hotel?
ADR in a hotel is the average price paid per occupied room over a period.
STR's ADR definition is one line:
ADR = room revenue ÷ rooms sold
The detail is in "rooms sold."
Following the Uniform System of Accounts for the Lodging Industry (USALI), STR counts only revenue-generating rooms and rooms occupied as part of a promotion or contract.
A complimentary room given to a friend of the owner stays out of both the revenue and the room count.
To calculate ADR for the Tuesday above: $14,400 ÷ 96 = $150.
ADR tells you how well you priced the rooms you sold.
It says nothing about the 24 rooms that sat empty, which is exactly the gap RevPAR closes.
RevPAR vs ADR: Which One Matters?

Here are two 100-room hotels on the same night:
| Hotel A | Hotel B | |
|---|---|---|
| Rooms sold | 90 | 60 |
| ADR | $120 | $180 |
| Occupancy | 90% | 60% |
| Room revenue | $10,800 | $10,800 |
| RevPAR | $108 | $108 |
| Cleaning and amenity cost at $30 per occupied room | $2,700 | $1,800 |
| Room revenue after that cost | $8,100 | $9,000 |
Same RevPAR, opposite strategies.
Hotel A fills the building at a lower price; Hotel B sells fewer rooms at a higher one.
With an illustrative $30 of cost for every occupied room, Hotel B keeps $900 more on the same RevPAR.
That's the case for watching ADR next to RevPAR.
ADR leads when the question is pricing: holding a brand's rate position, judging a sold-out night (occupancy is maxed, so ADR is the only lever left), or checking whether discounting crept in.
RevPAR leads when the question is the whole top line: comparing this month with last year, comparing hotels of different sizes, or reporting to an owner.
The trap sits between the two.
Say a hotel sells 70 of 100 rooms at $150: occupancy 70%, ADR $150, RevPAR $105.
It cuts the rate 15% to $127.50 and sells 82 rooms.
Occupancy jumps 12 points, ADR falls $22.50, and RevPAR lands at $104.55.
The top line barely moved, and housekeeping now cleans 12 more rooms.
So which is better, RevPAR or ADR?
Read them together: ADR shows the price of each sale, occupancy shows how many sales, and RevPAR shows what the two produced together.
How to Calculate RevPAR From a Week of Numbers
Daily numbers come out of the property management system as three columns: rooms available, rooms sold, and room revenue.
Here's a week for a 120-room hotel:
| Day | Available | Sold | Room revenue | ADR | RevPAR |
|---|---|---|---|---|---|
| Mon | 120 | 84 | $11,760 | $140 | $98.00 |
| Tue | 120 | 102 | $15,810 | $155 | $131.75 |
| Wed | 120 | 108 | $17,280 | $160 | $144.00 |
| Thu | 120 | 96 | $14,400 | $150 | $120.00 |
| Fri | 120 | 90 | $14,850 | $165 | $123.75 |
| Sat | 120 | 114 | $21,660 | $190 | $180.50 |
| Sun | 120 | 60 | $7,200 | $120 | $60.00 |
| Week | 840 | 654 | $102,960 | $157.43 | $122.57 |
Calculate the week's figures from the totals.
Averaging the seven daily ADRs gives $154.29, about $3 too low, because quiet Sunday (60 rooms at $120) gets the same weight as busy Saturday (114 rooms at $190).
In a spreadsheet with available in column B, sold in C, and revenue in D (rows 2 to 8):
Occupancy =SUM(C2:C8)/SUM(B2:B8) → 77.9%
ADR =SUM(D2:D8)/SUM(C2:C8) → $157.43
RevPAR =SUM(D2:D8)/SUM(B2:B8) → $122.57
The same arithmetic runs at national scale.
For the week of September 13 to 19, 2026, CoStar reported U.S. occupancy of 71.1%, ADR of $179.30 (the highest weekly ADR on record), and RevPAR of $127.43.
Multiply the first two and you get $127.48; the 5-cent gap is rounding in the published figures.
Beyond RevPAR: TRevPAR, GOPPAR, and Other Hotel KPIs
RevPAR stops at the rooms department.
The hotel KPIs around it fill in the rest:
| Metric | Formula | What it adds |
|---|---|---|
| Occupancy | Rooms sold ÷ rooms available | Demand, before price |
| ADR | Room revenue ÷ rooms sold | Price, before demand |
| RevPAR | Room revenue ÷ rooms available | Both, for rooms only |
| TRevPAR | Total revenue ÷ rooms available | Food, beverage, parking, spa, and every other revenue line |
| GOPPAR | Gross operating profit ÷ rooms available | Profit after operating costs |
| RevPAR index (RGI) | Your RevPAR ÷ comp-set RevPAR × 100 | Your fair share of the market's revenue |
CoStar's explainer notes that GOPPAR's percentage changes usually run 1.5 to 2.0 times RevPAR's.
Fixed costs explain it: when revenue rises and payroll doesn't, profit rises faster than revenue (and falls faster on the way down).
A resort with three restaurants should report TRevPAR next to RevPAR, or a big share of its revenue goes unmeasured.
A select-service hotel with no restaurant gets little from TRevPAR, so RevPAR and GOPPAR cover it.
The index metrics (RGI, plus the occupancy and rate indexes MPI and ARI) need comp-set actuals that only a benchmarking report holds, which the STR report guide linked above explains.
What Public Rates Can Tell You About a Competitor's ADR
A competitor's RevPAR and realized ADR live in its own PMS and in benchmark reports, as comp-set averages.
What's public is the price it asks for future nights on booking sites.
That asking rate is a forward-looking proxy for ADR.
It shows where a competitor is positioning a night before it happens.
To see what that looks like, we priced one Tuesday night (November 10 to 11, 2026, 2 adults, 1 room) for the first 50 hotels in a TripAdvisor search of three cities, on October 15, 2026:
| City | Hotels priced | Median lowest public rate | Middle half of hotels | Typical gap between a hotel's cheapest and priciest site |
|---|---|---|---|---|
| New York | 50 | $352 | $261 to $438 | 28% |
| London | 50 | $260 | $165 to $339 | 31% |
| Dubai | 50 | $184 | $104 to $247 | 37% |
The rates are per night before taxes, from 9 to 11 booking sites per hotel.

Two things stand out.
First, asking rates usually run above realized ADR.
For scale, CoStar's U.S. ADR for the mid-September week above was $179.30, across every hotel class nationwide and after the discounts, corporate rates, and group rates guests actually paid.
The pull covers the first page of a top-city search for one future night, before any of that.
Second, a hotel's public rate depends on the booking site.
The same room-night was listed about 30% apart between a hotel's cheapest and most expensive booking site, which is the territory of rate parity monitoring.
Rate-shopping data comes from reading booking-site prices for set dates, and hotel data APIs return those prices as JSON.
StayAPI's TripAdvisor hotel prices endpoint takes a TripAdvisor location ID and dates and returns every booking site's offer:
curl -G "https://api.stayapi.com/v1/tripadvisor/hotel/prices/313125" \
-H "x-api-key: YOUR_API_KEY" \
-d check_in=2026-11-10 \
-d check_out=2026-11-11 \
-d adults=2
The response for Holiday Inn London - West, truncated:
{
"success": true,
"location_id": 313125,
"pricing_summary": { "lowest_price": "$151" },
"available_offers": [
{
"provider": "StayForLong",
"price_per_night": "$151",
"total_stay_price": "$181",
"is_lowest_price": true
},
{
"provider": "Booking.com",
"price_per_night": "$172",
"total_stay_price": "$207",
"is_lowest_price": false
}
]
}
| Field | Example | What it is |
|---|---|---|
pricing_summary.lowest_price |
"$151" | The cheapest offer for the dates |
available_offers[].provider |
"Booking.com" | The site selling the room |
available_offers[].price_per_night |
"$172" | Nightly rate before taxes |
available_offers[].total_stay_price |
"$207" | The whole stay with taxes (UK VAT here) |
To find a competitor's TripAdvisor location ID without code, run a city search in the TripAdvisor search tool.
Here's how the sources compare for a competitor you want to watch:
| What you want to know | Benchmark report | Booking sites by hand | Data API (StayAPI) |
|---|---|---|---|
| Realized ADR, occupancy, RevPAR | Comp-set averages, after the fact | No | No |
| Asking rate for a future night | No | Yes, one site and one hotel at a time | Yes, every listed site in one call |
| 10 competitors, every day | No | About 100 page checks a day | One scheduled script |
| Cost | Paid subscription | Free, plus staff time | Free tier, then a paid plan |
Polled daily for a comp set, these prices become the rate-shopping feed that our hotel rate shopper guide walks through.
The limit stays the same however often you poll: public rates show price and keep occupancy hidden, so they can't produce a competitor's RevPAR.
For the live city view, the New York hotel rates page runs on the same TripAdvisor search.
Getting Started
- Export the last 30 days from your PMS: rooms available, rooms sold, and room revenue per day.
- Calculate occupancy, ADR, and RevPAR from the weekly totals with the spreadsheet formulas above, and compare each week with the same week last year.
- For comp-set actuals and the RGI, MPI, and ARI indexes, use a benchmarking report (the STR report guide covers costs and setup).
- Sign up at stayapi.com (free tier, 50 requests, no credit card) and pull public rates for 5 to 10 competitors on the nights you're pricing.
- Schedule that StayAPI pull daily into a spreadsheet with N8N or Make.com, so each competitor's asking rate sits next to your own ADR. For a full rate-intelligence setup across a portfolio, see price intelligence or book a demo call.
FAQ
What is RevPAR?
RevPAR is revenue per available room: a hotel's room revenue divided by all the rooms it had available, sold or not.
It combines price and occupancy in one number, which is why it's the headline metric in hotel performance reports.
How do you calculate RevPAR?
Divide room revenue by rooms available, or multiply ADR by occupancy.
A 120-room hotel with $14,400 in room revenue has a RevPAR of $120, and so does one selling 80% of its rooms at a $150 ADR.
Which is better, RevPAR or ADR?
They answer different questions, so hotels track both.
ADR measures pricing on the rooms you sold, while RevPAR measures what pricing and occupancy produced together.
A falling ADR with a flat RevPAR usually means discounts bought occupancy without adding revenue.
What is a good RevPAR?
There's no universal number, as CoStar puts it in its RevPAR explainer, because RevPAR depends on the market and the hotel class.
In practice, a good RevPAR is up on the same period last year and above your comp set's, which is what the RevPAR index (RGI) measures: above 100 means you're taking more than your fair share.
What is the difference between RevPAR and TRevPAR?
RevPAR counts room revenue only.
TRevPAR, total revenue per available room, adds every revenue line (restaurants, bars, parking, spa, meeting space) and divides by the same rooms available.
How do you calculate ADR?
Divide room revenue by rooms sold.
Count only rooms that earned revenue or were occupied under a promotion or contract, and leave complimentary stays out.
Can RevPAR fall while ADR rises?
Yes.
If a hotel raises rates and loses more occupancy than the price gain covers, ADR goes up while RevPAR goes down: 70% occupancy at $150 is a $105 RevPAR, and 60% at $165 is $99.
Ready to simplify your hotel data?
Join other developers using StayAPI to build the next generation of travel applications. Get started for free today.