Occupancy, ADR and RevPAR: Why a Full Hotel Isn't a Profitable One
«In summer I'm fully booked: all 12 rooms taken, a waiting list, I'm turning people away. Then in December I look at the year-end numbers and can't figure out where the money went. I ran the RevPAR — 700 UAH per room per night for the year. Even though in July I was charging 1,800.»
Sound familiar? In summer it feels like the business has finally taken off. The phone won't stop, rooms are sold out a month ahead, you're already dreaming of a second property. Then November comes, then January — and that summer cushion melts before your eyes. By year-end the profit is so thin you sit there thinking: all that work, all those nerves, for this?
The problem isn't that you work badly. The problem is that you're watching occupancy instead of revenue per room. «The hotel is full» and «the hotel is earning» are two different things. Today I'll show you exactly where your money hides between them.
Occupancy, ADR and RevPAR in plain words
In the hotel business there are three numbers, and without them you're flying blind. They sound intimidating, but behind each one is a simple owner's thought.
- Occupancy — what percentage of your rooms is taken. 12 rooms, you sold 9 tonight — that's 75%. This is the number everyone loves to brag about.
- ADR (average daily rate) — how much on average you got for one sold room per night. Sold 9 rooms for 16,200 UAH — ADR 1,800.
- RevPAR (revenue per available room) — how much you earned per room you have, whether it was occupied or not. It's ADR times occupancy. 1,800 × 75% = 1,350 UAH.
RevPAR is the number that matters most. Because occupancy can be faked with discounts: halve your price and you'll hit 100% occupancy. Pretty occupancy, no money. ADR can be inflated while you sit with an empty hotel: high price, no one to sell to. RevPAR catches both mistakes at once — it shows what each room actually brings you, not how many are formally taken.
«For two years I chased occupancy. The first time I calculated RevPAR by month, I saw it: in July, with discounts, it was lower than June without them. I was filling the hotel and shrinking my own income.»
Why a full hotel doesn't mean profit
A full hotel is revenue. Profit is what's left after that revenue is handed out. And a lot gets handed out — much of it invisible at first glance.
Picture this: a guest books a room for 1,800 UAH through Booking. You see 1,800 come in — and you're happy. But 15% of that went straight to the platform, minus 270. Cleaning and fresh linen for the stay — minus 180. Coffee, water, room amenities — 60. The card processing fee — 40. And we haven't even touched rent, salaries and utilities that run every month whether anyone shows up or not.
Out of that nice 1,800, about 1,250 is left to cover everything else. And while summer is packed with rooms, that gap goes unnoticed — volume covers it all. But in the shoulder season, when rooms are scarce, every «unnoticed» 550 UAH per booking starts deciding whether you finish in the black or the red.
Let's run the numbers: why summer is packed but the year is empty
Take a mini-hotel that's realistic in structure: 12 rooms. Let's look at it not in July, when everything's great, but across the seasons of a full year.
| Season | Occupancy | Revenue per room/night (RevPAR) | Margin |
|---|---|---|---|
| Summer (Jun–Aug) | 90% | 1,620 UAH | high, + |
| Spring / autumn | 45% | 495 UAH | near zero |
| Winter (Dec–Feb) | 25% | 225 UAH | loss, − |
| Year average | ~52% | ~700 UAH | faint + |
Look at what happens. In summer RevPAR is 1,620 UAH — wonderful, the hotel feeds itself and even sets money aside. But summer is three months. Then for nine months the rooms sit half or three-quarters empty, while the fixed costs don't drop by a single kopeck.
The money you earned in summer never lands in your pocket. It quietly goes to keep the hotel alive in December and January, when it brings 225 UAH per room against a need three times higher. That's why «summer is packed but the yearly profit is faint»: summer doesn't earn you a living, it pays for your own winter.
OTA commissions — the line you never see in the till
Booking, Airbnb and the rest are great — they bring a guest when your direct channel is silent. But they take their cut for it, and that cut is one of the biggest hidden line items in a hotel.
A typical Booking commission is 15%, and with paid promotion tools it easily reaches 18–20%. Here's the trap: you never hold that money in your hands. The guest pays 1,800, the platform takes its share, less arrives to you — and psychologically you count income by the amount that landed on your account, as if that's how it should be. The commission goes invisible.
Do the simple math. If, say, 60% of all your bookings come through OTAs at an average 16% commission, that's 16% of the bulk of your entire yearly revenue that you give away without noticing. For a mini-hotel, that's often a whole month's profit, spread in a thin layer across the year.
«The first time I broke Booking commissions into their own line and saw the yearly total, I felt sick. For that money I could have renovated two rooms. It just dissolved, kopeck by kopeck, in every booking.»
This doesn't mean «flee from Booking». It means: know your real price after commission and build a direct channel — a website, repeat guests, your own base — so that not every night costs you an extra 16%.
Fixed costs vs. seasonality — the hotel's core conflict
Here's the heart of the pain. Your income is seasonal, it jumps: thick in summer, empty in winter. But your main costs are fixed, flat as a wall, the same every month.
- Rent or the mortgage payment — arrives in July and January exactly the same.
- Staff — the receptionist, the housekeeper, the maintenance person. You can't lay them off for winter, because come spring they'll be gone.
- Utilities, internet, subscriptions, security — the base bill drips even when the hotel is half empty. In winter heating is more expensive too.
Say these fixed costs are 210,000 UAH a month. In summer at 90% occupancy they're covered easily and there's fat left over. But in January at 25%, revenue doesn't come close to covering them — and you top up the difference from the summer cushion. If there's no cushion, you top it up from your own pocket or a credit card.
Separate from all this are the variable per-stay costs — cleaning and linen, around 180 UAH per guest changeover. These are honest: a stay means a cost, no stay means no cost. They're easy. It's the fixed costs that make winter loss-making, and that's exactly why you need to know them to the last hryvnia.
Your break-even occupancy point
This is the most useful number to tape to your mirror. Break-even occupancy is the percentage of occupied rooms below which you operate at a loss.
It's simple to calculate. Take your fixed monthly costs and divide by what one sold room-night nets you (ADR minus the OTA commission, minus cleaning and linen — what actually settles toward covering costs). In our example, one sold room contributes about 900 UAH on average. 210,000 ÷ 900 ≈ 233 nights a month. And a 12-room hotel has 360 room-nights a month. So break-even is roughly 65% occupancy.
Now look at the table again. Summer at 90% — above break-even, you earn. Spring and autumn at 45% — below it, you're already at a loss. Winter at 25% — deep in the red. And only thanks to the three summer months does the yearly average crawl just above zero. That's the answer to «why is the year empty» in pure form: for most of the year your occupancy is below break-even, and you don't see it because you're looking at July.
Once you know your 65%, you start to steer. You realize that in the shoulder season it's better to sell a room at 900 than to hold the price at 1,400 and leave it empty — because an empty room pays nothing toward rent at all. You start filling the dips on purpose instead of hoping for a miracle.
How it sounds in real life
Most often a mini-hotel owner comes to a financial expert with one of these lines:
«Summer was insane, and by spring there was almost nothing left on the account. Where did it all go?»
It went to winter. You didn't waste that money — you used it to keep the hotel alive in the dead season, no one just showed it to you as a separate line.
«It feels like I'm earning. But to pay salaries in February, every year I dip into the credit card. Why, if I'm in the black?»
Because yearly profit and monthly cash flow are different things. Over the year you can be slightly in the black, yet inside the year you have months that physically hold no cash. That's not about profit — it's about the payment calendar. The money exists, just not when you need it.
And almost always, behind these lines is not bad work but the fact that income and costs are nowhere brought together in a way that shows the picture by channel, by room type and by month. The hotel is full — but where the money comes from and where it flows, the owner doesn't see.
How to see this in Finmap
All this math stops being scary once it's pulled into one place and updates itself. Here's what to set up specifically.
- Income by channel and room type, separately. Booking, Airbnb, direct, corporate — so you can see which channel gives more after commission, not just more bookings.
- Direct per-stay costs as their own line. OTA commissions, cleaning, linen — so your net revenue per room is honest, not «the amount that landed on the account».
- Fixed costs as one group. Rent/mortgage, staff, utilities — so each month you see the same wall and know how much you must earn to break through it.
- Margin and RevPAR by month. Not «how many rooms are taken» but «how much each room brings» — and instantly you see where you're below break-even.
- Cash flow and a payment calendar tuned to the season. So that back in summer you already see February's cash gap coming and set money aside for it, instead of running for the credit card on the last day.
When you see this every month, the worst feeling in this business disappears — the one where the money seemed to be there and then it's unclear where it went. You stop running the hotel by the feeling of a full house and start running it by the number of revenue per room.
What to do this week
- Calculate your RevPAR by month for last year — not occupancy, but revenue per room. You'll be surprised which months are actually strong.
- Break OTA commissions into their own line and look at the yearly total. This single move changes how you feel about the direct channel.
- Calculate your break-even occupancy — the percentage below which you're in the red. Put it somewhere you'll see it.
- Split costs into fixed and per-stay — so you see how much the hotel «eats» just for existing.
- Build a winter payment calendar now, while the summer money is here, not in January when it's gone.
On a related note — if the topic of seasonal dips and cash gaps hits home, read how to plan cash flow around seasonality in the piece on seasonality and cash flow planning. And to honestly judge whether your rent or mortgage is too big relative to revenue, see the breakdown of what share of revenue you can give to rent.
«RevPAR is the most honest number in a hotel. Occupancy flatters your ego; RevPAR pays your salary.»
«Summer doesn't feed the owner. Summer pays for winter. The owner's profit is what's left after winter, not what you saw in July.»
Money Doesn't Disappear. You Just Don't See It.
Your money doesn't vanish between July and December. It goes to commissions you don't notice, to fixed costs that don't know the word «shoulder season», and to a winter that summer pays for. You just haven't seen it as a separate line until now.
Bring income by channel, direct costs and fixed costs into one place — and see your real RevPAR, margin and break-even occupancy for every month. Try Finmap free for 14 days → and look at your hotel not through the eyes of a receptionist, but through the eyes of an owner who knows where every hryvnia is.
Frequently Asked Questions
RevPAR. Occupancy is easy to inflate with discounts and enjoy a full hotel while earning less. RevPAR (revenue per available room) reflects both price and fill at once — it's the honest number for how much each room you have actually brings you.
Two ways, same result. First: ADR × occupancy. 1,800 × 75% = 1,350 UAH. Second: total room revenue divided by all available room-nights for the period. The second way is handier when you count by month or by year.
Because summer is three months, while fixed costs (rent, staff, utilities) run all twelve. For nine months occupancy is below break-even, and the summer earnings quietly cover the loss-making winter and shoulder seasons. Over the year a thin plus is left.
Booking is usually 15%, with paid promotion 18–20%. The main trap is that you never see this money in the till — it's taken before the amount lands on your account. Break it into a separate line and look at the yearly total; it's often a whole month's profit.
Divide your fixed monthly costs by the net contribution of one sold room-night (ADR minus OTA commission, minus cleaning and linen). You get the number of nights needed; divide by all room-nights and you get the occupancy percentage. Below it, you're in the red.
