RevPAR vs ADR: How to Calculate Both and When Each One Matters

Denis Gramm, StayAPI
By Denis Gramm, StayAPI · · 13 min read

I hope you enjoy reading this blog post. If you want our team to help you with hotel data integration, click here.

Quick summary

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.

RevPAR vs ADR: How to Calculate Both and When Each One Matters | StayAPI

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?

RevPAR vs ADR: Which One Matters? | StayAPI

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.

Range chart of the lowest public rate per hotel for one Tuesday night in November 2026: New York median $352, London $260, Dubai $184 | StayAPI

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

  1. Export the last 30 days from your PMS: rooms available, rooms sold, and room revenue per day.
  2. Calculate occupancy, ADR, and RevPAR from the weekly totals with the spreadsheet formulas above, and compare each week with the same week last year.
  3. For comp-set actuals and the RGI, MPI, and ARI indexes, use a benchmarking report (the STR report guide covers costs and setup).
  4. 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.
  5. 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.

Ship in 3 days

Ready to simplify your hotel data?

Join other developers using StayAPI to build the next generation of travel applications. Get started for free today.