Hospitality · Revenue and yield

RevPAR (revenue per available night)

Revenue per available room, or per available night for rentals, is rent revenue divided by nights available. It combines price and occupancy into one yield number.

Plan your metrics

What it is

Hotels call it RevPAR: revenue per available room. Vacation rental teams often say RevPAN: revenue per available night. The idea is the same.

RevPAR = rent revenue ÷ available nights, which equals ADR × occupancy when both use the same nights.

Why operators track it

  • One yield number. Raising price and losing nights can leave RevPAR flat. It shows the net effect.
  • Comparing homes and markets. Normalizes for nights available.
  • Hotel owners. Hotel owners and developers commonly read RevPAR against a comparable set of hotels.
  • Pricing strategy. The main outcome dynamic pricing aims to improve.

How it is calculated

RevPAR = rent revenue ÷ available nights = ADR × occupancy

  • Available nights should match the occupancy version. Using adjusted paid occupancy, available = total − owner − hold nights.
  • Rent revenue uses the same definition as ADR.
  • For hotels, available rooms × nights; out-of-order rooms are often removed.

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 had $29,150 of rent and 111 available nights in October. RevPAR = $262.61. That equals ADR $342.94 × adjusted paid occupancy 76.6%. On all 124 calendar nights it is $235.08.

RevPAR by home (per available night)Beach house (3 bd)$326Condo (2 bd)$138Lake house (5 bd)$525Studio (1 bd)$121ADR $400 × occ 81%ADR $200 × occ 69%ADR $700 × occ 75%ADR $150 × occ 81%Portfolio: $29,150 ÷ 111 available nights = $262.61. Check: ADR $342.94 × adjusted occupancy 76.6% = $262.61.On all 124 calendar nights it would be $235.08. Say which denominator you use.
Example data RevPAR combines price and occupancy. The lake house earns most per available night even with the lowest occupancy.

How to read it

  • Decompose changes. If RevPAR moved, check whether ADR or occupancy moved it.
  • Normalize by size. Bigger homes earn more per night. Compare within bedroom count or per bedroom.
  • Match the denominator to any external figure you compare against.
  • We do not publish a benchmark. Levels vary by market, season, and property type.

Definitional choices and common pitfalls

  • Denominator. Available nights after owner and hold, or all calendar nights. Owners often think in all nights.
  • Revenue basis. Rent only, or total revenue including fees and upsells (sometimes called TRevPAR). Label it.
  • Hotels vs homes. Hotels use rooms. Mixed portfolios report hotels and homes separately or per bedroom.
  • Comparable set. Market comparisons need the same denominator and revenue basis.

How different roles use it

Role How they use it
Revenue manager Primary yield metric by home, market, and month.
Owner relations Shows owners yield vs last year and vs comparable homes.
Finance / trust accounting Rolls up to portfolio revenue forecasts.
Product / engineering lead Exposes the denominator as a setting.

Questions it answers

  • Which homes earn the least per available night?
  • Did our pricing changes improve yield or just shift ADR and occupancy?
  • How do markets compare on yield?

How to present it in a report

  • RevPAR, ADR, and occupancy side by side, same nights.
  • Year over year for the same month.
  • A note naming the denominator.
Customer report mockupExample data
Yield by homeOctober 2026
RevPAR$262.61per available night
ADR$342.94
Adjusted occupancy76.6%
HomeRentAvailable nightsADROccupancyRevPAR
Beach house (3 bd)$8,80027$40081.5%$325.93
Condo (2 bd)$4,00029$20069.0%$137.93
Lake house (5 bd)$12,60024$70075.0%$525.00
Studio (1 bd)$3,75031$15080.6%$120.97

Data you need

Fields

Field What it means Example value
Rent by night As for ADR $400
Night type Guest, owner, hold, open hold
Unit attributes Bedrooms, market, unit type (home or hotel room) 5 bd, lake

What the raw data looks like

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

Home Month Rent Available nights Calendar nights
Beach house 2026-10 $8,800 27 31
Condo 2026-10 $4,000 29 31
Lake house 2026-10 $12,600 24 31

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.
  • Dynamic pricing tools hold recommended rates, final rates, minimum stay rules, and comparable sets. For example: PriceLabs and Wheelhouse. Some managers build their own.
  • Market data providers estimate market occupancy, ADR, and pace. For example: AirDNA, which uses listing data plus partner data (AirDNA), and Key Data, which works with property manager data (Key Data). Their definitions may differ from yours.

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

  • Block types missing. Without them, available nights cannot be separated from owner use.
  • Hotel out-of-order rooms. Not always recorded in the PMS.
  • Inconsistent revenue basis between systems in a mixed portfolio.

FAQ

What is the difference between RevPAR and RevPAN?
Mostly the word. RevPAR is per available room (hotels). RevPAN is per available night, used for rentals. The formula is the same.
Does RevPAR include cleaning fees?
Usually no. A total revenue version includes them. Label which one you show.
Why does RevPAR equal ADR times occupancy?
Rent ÷ guest nights × guest nights ÷ available nights = rent ÷ available nights. It holds only when both use the same nights.
For your data teamFormula variants, tables, SQL sketch, and dashboard spec

Formula details

revpar = SUM(rent) / available_nights
available_nights = total_nights - owner_nights - hold_nights   (adjusted)
                 = total_nights                                 (calendar basis)
check: revpar = adr * occupancy (same nights)

Worked example detail

Home Rent Available RevPAR
Beach house (3 bd) $8,800 27 $325.93
Condo (2 bd) $4,000 29 $137.93
Lake house (5 bd) $12,600 24 $525.00
Studio (1 bd) $3,750 31 $120.97
Total $29,150 111 $262.61

Tables and fields

Table Fields Notes
reservation_nights reservation_id, unit_id, night_date, rent_amount
calendar_nights unit_id, night_date, night_type

SQL sketch

SELECT c.unit_id,
       SUM(n.rent_amount) / NULLIF(COUNT(*) FILTER (WHERE c.night_type IN ('guest','open')),0) AS revpar
FROM calendar_nights c
LEFT JOIN reservation_nights n ON n.unit_id=c.unit_id AND n.night_date=c.night_date
WHERE c.night_date >= '2026-10-01' AND c.night_date < '2026-11-01'
GROUP BY c.unit_id;

Build spec

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

metric: hospitality.revpar
grain: one row per unit per period
inputs:
  - rent by night
  - calendar night type
logic:
  - revpar = rent / available nights
  - available = guest + open nights (adjusted basis)
edge_cases:
  - available = 0: null
  - setting for calendar basis
  - hotel rooms: unit = room

As a dashboard card

  • KPI for RevPAR with ADR and occupancy below it, and a bar per home.

Common mistakes

  • Mixing denominators between occupancy and RevPAR.
  • Comparing a five-bedroom home to a studio without normalizing.
  • Counting revenue from cancelled stays.

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