Blog · Board and management reporting · Hospitality
Room revenue analysis explains actual revenue through available room nights, occupancy and average daily rate. Build a comparable property export, calculate each measure and reconcile the revenue change with an exact bridge.
Room revenue analysis explains actual room revenue through available room nights, occupancy and average daily rate, or ADR. Calculate each measure from the same property and reporting period, then bridge the revenue change so every dollar has a place. RevPAR provides a useful cross-check because it combines occupancy and ADR on the available-room base.
Use room revenue for completed stays in the period, following the property's approved financial reporting policy. Include the corresponding sold room nights and available room nights. Leave restaurant, meeting and other operating revenue for the separate hospitality revenue analysis.
These are actual operating results. A reservation export taken before the stay period answers a different question: what business was on the books at that moment. Use the worked hotel pace example for reservation snapshots; do not place an advance booking value beside completed-stay revenue and call the difference performance.
Keep the property set constant. A newly opened hotel increases portfolio revenue but cannot explain improvement at an existing hotel. Where the portfolio changed, show comparable properties separately from additions and departures.
Occupancy = Room nights sold / Available room nights
ADR = Room revenue / Room nights sold
RevPAR = Room revenue / Available room nights
Room revenue = Available room nights × Occupancy × ADR
Hilton's annual filing defines these operating measures, using sold room nights for ADR and available room nights for RevPAR. The two rates answer different questions: what a sold room earned, and what the available inventory earned.
Available room nights are the sum of the daily available inventory. When inventory changes during the month, multiplying the month-end room count by calendar days will miss that change. Retain the daily inventory export and its approved out-of-service adjustments.
Start with daily property records containing stay date, property, available room nights, sold room nights and posted room revenue. Use a date key consistently; an overnight business date and the accounting posting date can differ. Reconcile the summed revenue to the room-revenue account before reviewing rates.
Summarize the matched periods in a Google Sheet with this layout:
| Column | Field | Calculation |
|---|---|---|
| A | Period | Matched month and property scope |
| B | Available room nights | Sum of approved daily inventory |
| C | Sold room nights | Sum of eligible completed room nights |
| D | Room revenue (USD) | Finance-approved room-only amount |
| E | Occupancy | C divided by B |
| F | ADR (USD) | D divided by C |
| G | RevPAR (USD) | D divided by B |
For a daily export on a tab named Daily, assume A is stay date, B is property and E is room revenue. September 2026 room revenue for Harbor House is:
=SUMIFS(Daily!$E$2:$E$5000,Daily!$A$2:$A$5000,">="&DATE(2026,9,1),Daily!$A$2:$A$5000,"<"&DATE(2026,10,1),Daily!$B$2:$B$5000,"Harbor House")
Google's SUMIFS documentation explains how the criteria select the rows to sum. Use the same date and property criteria for available and sold room nights. The date column must contain dates, and every criteria range must cover the same rows.
In the summary, calculate the ratios as follows and fill down:
E2: =IF(B2=0,NA(),C2/B2)
F2: =IF(C2=0,NA(),D2/C2)
G2: =IF(B2=0,NA(),D2/B2)
Covirage is not affiliated with Google or Hilton.
Harbor House is an illustrative US hotel. It compares September 2026 with September 2025. Each period contains 30 days. In the prior period, 100 rooms were available throughout: 100 × 30 = 3,000 room nights. Renovation removes 150 available room nights from the current period under this example's approved inventory policy.
| Period | Available nights | Sold nights | Room revenue (USD) | Occupancy | ADR (USD) | RevPAR (USD) |
|---|---|---|---|---|---|---|
| September 2025 | 3,000 | 2,100 | 315,000 | 70.0% | 150.00 | 105.00 |
| September 2026 | 2,850 | 2,223 | 355,680 | 78.0% | 160.00 | 124.80 |
Occupancy rises by 8.0 percentage points while ADR rises by $10.00. Actual room revenue increases by $40,680, or 40,680 / 315,000 = 12.9%, rounded to one decimal place. These ratios are exact at the displayed precision; retain full precision for the bridge.
Change available nights first, occupancy second and ADR last. This order allocates the interaction effects consistently; a different order can change the individual contributions while preserving the total.
With prior results in row 2 and current results in row 3, the formulas are:
Capacity effect: =(B3-B2)*E2*F2
Occupancy effect: =B3*(E3-E2)*F2
ADR effect: =C3*(F3-F2)
| Bridge step | Calculation | Effect (USD) | Running revenue (USD) |
|---|---|---|---|
| Prior actual | Starting revenue | 315,000 | |
| Available inventory | (2,850 − 3,000) × 70% × 150 | -15,750 | 299,250 |
| Occupancy | 2,850 × (78% − 70%) × 150 | 34,200 | 333,450 |
| ADR | 2,223 × (160 − 150) | 22,230 | 355,680 |
The effects add to −15,750 + 34,200 + 22,230 = $40,680. Starting revenue plus those effects equals current revenue exactly. A second proof is 78% × 160 = 124.80 for current RevPAR, followed by 2,850 × 124.80 = 355,680 for revenue.
The capacity reduction held revenue back, while higher occupancy and ADR more than offset it. That is a measured description, not proof that a specific pricing action caused demand to rise. The general revenue-driver analysis approach applies the same discipline to other revenue comparisons.
The revenue manager owns the commercial interpretation, operations validates inventory and sold nights, and finance signs off the room-revenue total. That division gives each discrepancy a clear reviewer.
Bring a property export with dates, available room nights, sold room nights and actual room revenue. Covirage maps the columns; its tools compute and check the comparisons, and the external AI model explains them with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See Covirage for hospitality for the supporting industry context.
ADR divides room revenue by room nights sold, while RevPAR divides the same revenue by available room nights. ADR describes the rate achieved on sold rooms. RevPAR combines achieved rate with occupancy, so it also reflects the rooms that remained unsold.
Keep food and beverage, meeting and ancillary revenue outside the room-revenue numerator. Use the finance-approved allocation for packages that contain multiple services. Review those other streams in a separate total-property revenue reconciliation rather than adding them to ADR or RevPAR.
Use a documented available-room policy and apply it consistently to both periods. Retain the inventory adjustments behind the denominator. Where renovations or other closures reduce available room nights, show the capacity effect separately so a higher occupancy percentage does not hide the reduced base.