The three core KPIs: occupancy, ADR and RevPAR
All three KPIs are based on two quantities: available and sold room nights.A room night is one room for one night. A 25-room hotel has 750 available room nights in a 30-day month. If a room is occupied for three nights, that is three sold room nights. These two figures, together with room revenue (revenue from the overnight stay alone, without breakfast, restaurant or spa), give you the three core KPIs.
Occupancy tells you what share of the available room nights was sold. ADR (average daily rate) tells you what a sold room night brought in on average. RevPAR (revenue per available room) spreads room revenue across all available room nights, including the empty ones. It therefore shows how well you sold your capacity as a whole.
Why RevPAR matters so much: high occupancy can almost always be reached with low prices, and a high ADR with a few expensive bookings. Both can hurt the business. RevPAR only rises when the balance between price and occupancy improves. Decide once in-house whether blocked rooms, for example during renovation, count as available, and then stick with it.
| KPI | Formula | Answers the question |
|---|---|---|
| Occupancy | Sold room nights ÷ available room nights × 100 | How full was the hotel? |
| ADR | Room revenue ÷ sold room nights | At what price did we sell? |
| RevPAR | Room revenue ÷ available room nights, or ADR × occupancy | How much did each available room earn? |
| TRevPAR | Total revenue (rooms, breakfast, food and beverage, spa, extras) ÷ available room nights | What does a room bring in including all ancillary revenue? |
| GOPPAR | Gross operating profit (GOP) ÷ available room nights | What is left after operating costs per available room? |
A worked example for a 25-room hotel
Let’s take a hypothetical 25-room hotel in September, i.e. 30 days. All figures are an example and net, i.e. excluding VAT and tourist tax. The hotel sells 510 room nights in the month, generating room revenue of €56,100. With breakfast, restaurant, bar and extras, total revenue comes to €78,000. After staff, cost of goods, energy, commissions and other operating costs, a gross operating profit (GOP) of €24,000 remains.
That gives these KPIs: 750 available room nights, 68% occupancy, €110 ADR and €74.80 RevPAR. The cross-check works: €110 × 68% also gives €74.80. Across the whole hotel, each available room brings in €104 of total revenue per night (TRevPAR) and €32 of operating profit (GOPPAR).
It gets interesting when you compare. Suppose the hotel had sold 570 room nights at €95 in September the previous year: 76% occupancy, but only €54,150 room revenue and €72.20 RevPAR. So occupancy fell, yet RevPAR rose, and 60 fewer rooms had to be cleaned. That is exactly the context you miss if you only look at occupancy.
Looking ahead: pickup, pace, booking window, channel mix and cancellation rate
Occupancy and RevPAR tell you what happened. The following KPIs show what is coming.Pickup is the number of room nights added for a future period within a given time span, minus cancellations. Example: for the first Saturday in October, 14 rooms were on the books on Monday and 19 on Sunday. The weekly pickup is five rooms. Unusually high pickup is a signal that you may be too cheap; if it doesn’t come, it’s time for a promotion or a look at the OTAs.
Pace compares today’s on-the-books position for a period with the position the same period had at the same lead time last year. If the hotel has 15 rooms booked 30 days before the October weekend, compared with 11 at the same point last year, demand is running ahead. Pace is the most important early warning, because it shows deviations weeks before the stay.
The booking window measures how many days lie between booking and arrival. A city hotel often lives on short-notice bookings, while a mountain resort hotel gets many bookings months in advance. If you know your booking window, you know when rate changes take effect and when they come too late. Channel mix shows through which routes your room nights are sold: direct, by phone, via Booking.com, Expedia or other OTAs. It is the basis for judging commissions and dependencies.
The cancellation rate sets cancelled bookings against all bookings for a period. If 18 out of 180 bookings are cancelled, it is 10%. If it rises noticeably, look at channel and rate: flexible OTA bookings often cancel more than direct bookings with a deposit. No-shows belong in a separate figure, because they have different causes and different consequences for the invoice.
| KPI | How to calculate it | What you use it for |
|---|---|---|
| Pickup | Room nights on the books today minus room nights on the books X days ago, for the same stay period | Seeing whether a date is picking up or stalling |
| Pace | On the books today ÷ on the books at the same lead time last year | Early warning weeks before the stay |
| Booking window | Average days between booking date and arrival | Finding the right moment for rate changes |
| Channel mix | Room nights or room revenue per channel ÷ total | Judging commission costs and OTA dependency |
| Cancellation rate | Cancelled bookings ÷ all bookings × 100 | Reviewing rate and cancellation terms |
The five numbers a small hotel should check every week
A hotel with 15 to 50 rooms doesn’t need a revenue team, but it does need a fixed quarter of an hour each week. For example, go through the same five numbers every Monday, write down what stands out, and decide whether to change rates or restrictions. Regularity matters more than the perfect number: if you look the same way every week, you start to see patterns.
Always look at two periods: last week, to learn, and the next 30 to 90 days, to act. For the future, what counts is the on-the-books position per date and the pickup of the last seven days; for the past, RevPAR, ADR and channel mix.
Your 15-minute weekly review
- On the books for the next 30, 60 and 90 days: where are the gaps, where is it getting tight?
- Pickup of the last 7 days: which dates are picking up, which are standing still?
- Last week’s RevPAR compared with the same week last year or with budget
- ADR per channel: are you selling direct and through OTAs at comparable prices, and what is left after commission?
- Last week’s cancellation rate and no-shows, broken down by channel
From review to decision
- 01Note what stands out
For example: “Saturday in three weeks has picked up six rooms in seven days; last year it was two.”
- 02Check the cause
Is there an event, a public holiday, a group? Or is your rate well below the level in your area?
- 03Decide on an action
Raise the rate, set a minimum stay, close a discounted rate or offer a package for weak days.
- 04Check the effect
Next week, check whether pickup and ADR developed as expected.
Typical mistakes when calculating and comparing
The most common mistake is averaging over the whole season. A winter season with 72% occupancy can consist of fully booked Christmas holidays and half-empty weeks in January. The average hides exactly the weeks in which you could have made a difference with rates or packages. Look at weeks at least, days of the week ideally, and compare holiday periods with holiday periods.
The second mistake is mixing gross and net. An ADR including VAT, breakfast and tourist tax is a different figure from a net ADR for the room only. Both are legitimate, but not comparable. Decide which basis you use and write it next to the number. This matters especially when you compare your figures with numbers from an OTA extranet, an industry report or last year’s data from another system.
Other pitfalls: commissions are forgotten, so an OTA’s ADR looks better than it is. Blocked rooms count as available one time and not the next. Cancelled bookings stay in occupancy. And KPIs are viewed without comparison: a RevPAR of €74.80 says little on its own, but compared with last year or with budget it says a lot.
How STRYK helps with your KPIs
In STRYK the KPIs come from the same data your team works with: bookings, rooms, rates and invoices. In the controlling view of the finance area you see occupancy, ADR, RevPAR and room revenue for any period you choose, each as gross values, along with available, sold and blocked room nights. A comparison period, such as the same month last year, sits right next to it. The channel overview shows room nights, share, room revenue and ADR per booking source, so you can see your channel mix without a spreadsheet of your own.
The reports in the PMS also show bookings, average length of stay, cancellation rate, no-shows, breakdown by booking channel and category, as well as revenue and outstanding amounts. Every report can be exported as PDF, Excel or CSV, with the same filters as on screen. If you work with a tax advisor or owner, the management report can also show revenue and operating profit per available room once the accounting accounts are fully mapped; until then STRYK deliberately does not show these values.
For looking ahead there is the Intelligent Pricing add-on. It analyses occupancy, pickup, pace, booking curve, lead time and ADR per category and stay date and turns them into rate recommendations you can review. You will find more in the guide to dynamic pricing.
| KPI | Where you find it |
|---|---|
| Occupancy, ADR, RevPAR, room revenue | Controlling in the finance area, with comparison period |
| Channel mix and ADR per channel | Channel overview in controlling |
| Cancellation rate, no-shows, length of stay | Booking reports, export as PDF, Excel or CSV |
| Revenue and profit per available room | Management report, once the accounts are fully mapped |
| Pickup, pace, booking curve | Intelligent Pricing (add-on) |