Hospitality · Revenue and yield

ADR (average daily rate)

Average daily rate is rent revenue divided by guest nights sold. It measures price realization: what a home actually earned per night, not the listed rate.

Plan your metrics

What it is

ADR is the average price per occupied night. Hotels use it per room. Vacation rentals use it per home (sometimes per bedroom).

The main question is what counts as revenue. Most teams use nightly rent only, excluding cleaning fees, taxes, and refundable deposits. Some include other guest fees. Write the choice down.

Why operators track it

  • Pricing. Shows whether dynamic pricing is holding rate or discounting to fill nights.
  • Owner conversations. Owners compare ADR to what they expected when they signed.
  • Building block. ADR × occupancy = RevPAR.
  • Channel comparison. ADR by channel shows where guests pay more for the same home.

How it is calculated

ADR = rent revenue ÷ guest nights sold

  • Rent revenue = nightly rent for stays in the period, after discounts, before channel fees. Exclude taxes.
  • Guest nights sold = paid nights in the period. Comp stays excluded.
  • Allocate revenue for stays that cross month end by night.

Worked example

Example data The same made-up portfolio is used on every hospitality page: a manager with 120 homes, four of them shown in detail.

The four example homes earned $29,150 in October rent over 85 guest nights. ADR = $29,150 ÷ 85 = $342.94. If cleaning fees of $4,150 were included, ADR would be $391.76, which is why the definition matters.

ADR by home: rent revenue ÷ guest nightsBeach house (3 bd)$400Condo (2 bd)$200Lake house (5 bd)$700Studio (1 bd)$150$8,800 ÷ 22 nights$4,000 ÷ 20 nights$12,600 ÷ 18 nights$3,750 ÷ 25 nightsPortfolio ADR = $29,150 ÷ 85 guest nights = $342.94. Not the average of the four home ADRs ($362.50),because homes with more nights carry more weight. Including cleaning fees would raise it to $391.76.
Example data ADR by home. The portfolio ADR is weighted by nights, and it changes if fees are included.

How to read it

  • Read it with occupancy. A rising ADR with falling occupancy may be pricing past demand.
  • Compare a home to itself. Year over year, same month. Seasonality dominates.
  • Watch length of stay discounts. Weekly and monthly discounts lower ADR on purpose.
  • Mixed portfolios. A five-bedroom home and a studio should not share one ADR target. Normalize per bedroom or segment.
  • We do not publish a benchmark. Levels vary by market, season, and property type.

Definitional choices and common pitfalls

  • Fees in or out. Cleaning, pet, and resort fees can be included or excluded. Most use rent only. Show which.
  • Gross or net of channel fees. ADR is usually before channel fees. Some owner reports show net only, which lowers it.
  • Cross-month stays. Split revenue by night. Recognizing a whole stay at check-in moves revenue between months.
  • Per unit or per bedroom. Per bedroom compares different home sizes more fairly. Hotels use per room.
  • Taxes. Exclude occupancy and sales taxes. They are pass-through.

How different roles use it

Role How they use it
Revenue manager Watches ADR by home, date, and channel against pricing tool recommendations.
Owner relations Explains rate decisions to owners, especially in low season.
Finance / trust accounting Checks that statement revenue matches ADR × nights.
Product / engineering lead Defines which reservation fields roll into rent revenue.

Questions it answers

  • Did we hold rate this October compared to last October?
  • Which channel brings the highest ADR for the same home?
  • Did discounts to fill gaps lower ADR more than they raised occupancy?
  • How does ADR differ by bedroom count?

How to present it in a report

  • Headline ADR with the definition note (rent only, before channel fees).
  • ADR by home, same month last year beside it.
  • ADR and occupancy on the same chart.
  • A footnote for any fees included.
Customer report mockupExample data
ADR by homeOctober 2026 · rent only, before channel fees
Portfolio ADR$342.94$29,150 over 85 nights
Highest$700Lake house
With cleaning fees$391.76for reference
HomeGuest nightsRentADRPer bedroom
Beach house (3 bd)22$8,800$400$133
Condo (2 bd)20$4,000$200$100
Lake house (5 bd)18$12,600$700$140
Studio (1 bd)25$3,750$150$150

Data you need

Fields

Field What it means Example value
Reservation Booking with dates and status R-88412, Oct 3 to Oct 7
Nightly rent Rent by night after discounts $400
Fees Cleaning, pet, other, stored separately $250 cleaning
Taxes Collected taxes, separate from rent $148
Channel Where the booking came from Airbnb

What the raw data looks like

Example data A few rows as they might come out of the source system.

Reservation Home Check-in Nights Rent Cleaning fee Taxes Channel
R-88412 Beach house 2026-10-03 4 $1,600 $250 $148 Airbnb
R-88470 Beach house 2026-10-08 5 $2,000 $250 $185 Vrbo
R-88533 Studio 2026-10-11 3 $450 $100 $42 Direct

Where this data usually lives

  • Property management system (PMS) holds units, the calendar with block types, reservations, rates, fees, and often owner statements and trust accounting. For example: Guesty, Hostaway, OwnerRez, Track, Streamline, and Escapia. Some larger managers run their own in-house PMS.
  • OTAs and booking channels (Airbnb, Vrbo, Booking.com, and partner distribution sites) hold payout reports, host fees, reviews, and cancellations. Payouts are usually net of host fees.
  • Dynamic pricing tools hold recommended rates, final rates, minimum stay rules, and comparable sets. For example: PriceLabs and Wheelhouse. Some managers build their own.

The same field can live in more than one system. Agree with the customer which one is the source of truth.

Common data gaps and traps

  • Rent and fees in one total. Some channel payouts lump them together. Split them from the reservation detail.
  • Adjustments after checkout. Refunds and resolution credits change rent. Decide whether ADR uses the final amount.
  • Nightly rate not stored. Only a stay total. Divide evenly by night, and say so.
  • Currency. Multi-country portfolios need one reporting currency.

FAQ

Does ADR include cleaning fees?
Usually not. Most definitions use nightly rent only. If you include fees, label it, because it raises ADR noticeably on short stays.
Is ADR the same as the listed nightly rate?
No. ADR is what guests actually paid, after discounts, averaged over nights sold.
Should ADR be calculated per bedroom?
For mixed portfolios it helps. A per-bedroom ADR compares a studio and a five-bedroom home more fairly. Keep the per-unit figure too.
For your data teamFormula variants, tables, SQL sketch, and dashboard spec

Formula details

adr           = SUM(rent by night) / COUNT(guest nights)
adr_incl_fees = (SUM(rent) + SUM(guest fees)) / COUNT(guest nights)
adr_per_bed   = SUM(rent) / SUM(guest nights x bedrooms)

Worked example detail

Home Rent Guest nights ADR
Beach house (3 bd) $8,800 22 $400.00
Condo (2 bd) $4,000 20 $200.00
Lake house (5 bd) $12,600 18 $700.00
Studio (1 bd) $3,750 25 $150.00
Total $29,150 85 $342.94

Tables and fields

Table Fields Notes
reservation_nights reservation_id, unit_id, night_date, rent_amount Rent split by night.
reservations reservation_id, unit_id, status, channel, check_in, check_out

SQL sketch

SELECT n.unit_id, SUM(n.rent_amount) / NULLIF(COUNT(*),0) AS adr
FROM reservation_nights n JOIN reservations r USING (reservation_id)
WHERE r.status = 'confirmed' AND n.night_date >= '2026-10-01' AND n.night_date < '2026-11-01'
GROUP BY n.unit_id;

Build spec

Copy this into a ticket. It lists the grain, inputs, logic, and edge cases.

metric: hospitality.adr
grain: one row per unit per night, aggregated
inputs:
  - rent by night
  - reservation status
  - fee lines kept separate
logic:
  - adr = sum(rent) / count(guest nights)
  - optional adr_incl_fees
  - optional per bedroom
edge_cases:
  - no guest nights: null
  - comp stays: exclude
  - refund after stay: use final amount, note restatement

As a dashboard card

  • KPI for ADR with last year's same month, and a bar per home.

Common mistakes

  • Averaging home ADRs instead of dividing totals.
  • Including taxes.
  • Recognizing whole stays at check-in.

Version 1.0 · Last reviewed 2026-10-20 · Machine-readable definition