“Twenty-four rooms, nothing free in high season, and I have raised the rate twice in three years. Yet the commission I hand over to the booking platforms is bigger every single month than my entire profit” — that is how Oksana, the owner of a 24-room hotel in Yaremche, opened the conversation.
Sound familiar? The rooms are full, the reviews are good, the rate has not been the lowest in town for a long time. And out of 710 500 ₴ of revenue, 66 105 ₴ is what is left at the end of the month, and not a single figure in the report tells you where the rest went.
The reason is almost always the same. A hotel has two levers, rate and occupancy, and they pull in opposite directions. Raise the rate and you lose nights. Cut it and the nights come cheaper. Until the room night becomes a line with a contribution of its own, you pull in whichever direction your pride points.
In this article we break the hotel down into a single unit — the room night. And we show why a rate ten percent lower delivers 10 977 ₴ more profit.
Oksana's road: from four rooms in her parents' house to 24 rooms
Oksana started with four rooms in her parents' house. The math was simple: the guest paid this much, laundry and groceries took that much, the difference was mine.
Seven years on it had become a separate rented building: 24 rooms, a front desk on two shifts, three housekeepers, a kitchen doing breakfasts.
That is exactly when the clarity disappeared. There were six times more rooms and the margin in the report looked respectable. But any sense of where the money came from was gone for good.
“With four rooms I knew everything about every night: who arrived, how much they paid, how much I made on them. Now there are 720 such nights every month, and about not one of them can I tell you a thing.”
Why “68% occupancy” tells you nothing about money
Occupancy is what colleagues ask about and what the manager gets praised for. And it contains neither the rate nor the costs: it is a fraction with the room stock in the denominator and the nights sold in the numerator.
And that stock vanishes every day: 24 rooms over 30 days is 720 room nights, and a night you failed to sell by the evening does not carry over to tomorrow.
What the owner sees in the monthly report
490 nights sold out of 720, that is 68% of the stock. An average rate of 1 450 ₴, revenue of 710 500 ₴. Fixed costs of 480 000 ₴, variable costs of 57 820 ₴, platform commission of 106 575 ₴. Profit 66 105 ₴, margin 9.3%.
Normal figures for a small hotel. Only none of them answers the owner's main question: is 1 450 ₴ a night a lot or a little?
Life before the room night became a line
The state Oksana lived in for almost three years is one that any hotel grown out of a few rooms will recognise.
- The rate was changed by feel. We looked at what the neighbours had posted, added a hundred on top — and then let us see how it goes.
- Rate and occupancy were looked at separately. Two metrics on different pages and not a single number tying them together.
- Commission was treated as part of the rate. It never reached the bank account, so nobody saw it as a cost.
- Cancellations were recorded nowhere. A night that vanished twelve hours before check-in looked simply unsold.
- Discounts were given out loud and without limit. A long stay — minus twenty-five percent, and not a line about it anywhere.
- An empty room was considered free. Not occupied, so nothing had been spent on it.
Not one of these problems was a hotel problem. All six were accounting problems — and that is precisely why neither the front desk nor the bookkeeper could see them.
The fixed 480 000 ₴ that add up without a single guest
The first thing Oksana did was split the costs not by category but by nature.
- Fixed — 480 000 ₴ a month. Rent, the front desk and the housekeepers, utilities and the rest. They are the same at 490 occupied nights and at 300.
- Variable — 118 ₴ per occupied room night. Laundry, toiletries, breakfast. They are paid only when somebody actually sleeps in the room.
| Fixed cost item | Per month | % of revenue |
|---|---|---|
| Building rent | 180 000 ₴ | 25.3% |
| Staff: front desk and housekeepers | 200 000 ₴ | 28.1% |
| Utilities | 60 000 ₴ | 8.4% |
| Other | 40 000 ₴ | 5.6% |
| Total fixed | 480 000 ₴ | 67.6% |
Two thirds of the revenue is spoken for before the first guest walks through the door. Occupancy has no effect on that part at all.
Why an empty room costs almost as much as an occupied one
Divide 480 000 ₴ by the whole stock: 720 room nights give 667 ₴ for every night on the calendar. Those 667 ₴ are carried both by the night a guest sleeps in and by the night nobody switched the light on. The entire difference between them is 118 ₴ of variable costs, that is 8.1% of the rate.
For Oksana, 720 minus 490 is 230 empty room nights. Every month the hotel pays over 153 000 ₴ for rooms to stand locked.
The unit that matters: the contribution of one room night
If an empty night is barely cheaper than an occupied one, then the value of a night sold is measured not by its rate but by how much it leaves over and above the costs that would not exist without it.
Here is the math. The rate of 1 450 ₴ minus 118 ₴ of variable costs minus 217.50 ₴ of commission (that is 15% of 1 450 ₴) — and 1 114.50 ₴ is left.
That is the contribution of one room night. Every additional night sold brings in 1 114 ₴ over and above what the hotel spends either way. Every night left unsold brings in zero at the very same cost.
“For three years I thought I was selling rooms. It turns out I am selling 720 nights a month, and every one I have not sold by the evening is gone forever. You cannot put a night in the stockroom.”
How many nights it takes to cover the fixed costs
Divide 480 000 ₴ by 1 114.50 ₴ — that comes to 431 nights out of 720. Until the hotel has sold them it earns nothing. That is 59.9% occupancy, and that is your real zero.
Check it: 490 nights at 1 114.50 ₴ is 546 105 ₴ of contribution, and minus 480 000 ₴ it gives exactly the 66 105 ₴ in the report. From there comes the price of one point of occupancy: 7.2 nights, that is 8 024 ₴ a month.
RevPAR of 987 ₴: the rate that is not in the price list
Oksana's price list says 1 450 ₴. But divide the revenue by the whole stock — 710 500 ₴ by 720 room nights — and you get 987 ₴. That is RevPAR: revenue per available room, the empty ones included.
The gap between 1 450 ₴ and 987 ₴ is 463 ₴ on every room night of the calendar. RevPAR is the more honest number, because you cannot lift it by rewriting a figure on the website. The price list is your wish; RevPAR is the market's answer.
The rate lever up: what plus ten percent delivers
For three years Oksana pushed the rate up, because “selling cheap is a shame”. Raise 1 450 ₴ by 10% and you get 1 595 ₴, and the contribution of a night grows from 1 114.50 ₴ to 1 237.75 ₴. On paper, a win.
But guests react. Occupancy falls from 68% to 61%: 439 nights instead of 490. Revenue of 439 × 1 595 = 700 205 ₴, profit of 63 372 ₴.
The rate is 145 ₴ higher and the profit is 2 733 ₴ lower. The hotel gave away 51 nights worth a thousand and more in contribution each, and bought 123.25 ₴ on each of the nights that stayed.
The rate lever down: what minus ten percent delivers
Now in the direction owners fear most. 1 450 ₴ minus 10% is 1 305 ₴. The contribution drops to 991.25 ₴, that is by 123.25 ₴.
Occupancy climbs from 68% to 78% — 562 nights. Revenue of 733 410 ₴, profit of 77 082 ₴.
Where it came from: 72 extra nights at 991.25 ₴ give 71 370 ₴ of new contribution, while on the old 490 nights the hotel lost 490 × 123.25 = 60 392.50 ₴. The difference is 10 977 ₴, and that is exactly how much the profit grew. The discount did not eat the margin, it traded 60 392 ₴ for 71 370 ₴.
Three scenarios in one table
The same hotel, the same staff, the same building. The only difference is the figure on the website.
| Scenario | Rate per night | Occupancy | Nights | Revenue | Profit |
|---|---|---|---|---|---|
| Rate +10% | 1 595 ₴ | 61% | 439 | 700 205 ₴ | 63 372 ₴ |
| Current rate | 1 450 ₴ | 68% | 490 | 710 500 ₴ | 66 105 ₴ |
| Rate −10% | 1 305 ₴ | 78% | 562 | 733 410 ₴ | 77 082 ₴ |
The cheapest option delivers the biggest profit: 77 082 ₴ against 66 105 ₴, that is 16.6% more at a rate ten percent lower. The most expensive delivers the smallest — 63 372 ₴.
The same thing in RevPAR: 973 ₴ at a rate of 1 595 ₴, 987 ₴ at 1 450 ₴ and 1 019 ₴ at 1 305 ₴. Revenue per available room is highest where the rate is lowest.
“When they first showed me this table, I asked for the calculation to be redone. I was certain that a discount is what you give when you cannot sell. It turns out a discount is what you give when you can count.”
Why a lower rate delivers a bigger profit
Because 480 000 ₴ of fixed costs cannot hear what your rate is: they are the same at 439 nights and at 562. The rate decides only how much is left from one night and how many nights you give a chance of being sold.
Compare the two speeds. The contribution fell by 11.1% while the nights grew by 14.7% — the second is bigger than the first, so the profit grows. When the rate goes up, the contribution grows by 11.1% while the nights fall by 10.4%: a night leaves with its whole contribution, and the uplift goes only to the ones that stayed.
The contribution of one night at three different rates
Here is the same calculation in three columns — and, above all, how many nights each rate needs in order to break even.
| Metric | Rate of 1 595 ₴ | Rate of 1 450 ₴ | Rate of 1 305 ₴ |
|---|---|---|---|
| Rate per night | 1 595 ₴ | 1 450 ₴ | 1 305 ₴ |
| Minus variable costs | 118 ₴ | 118 ₴ | 118 ₴ |
| Minus platform commission of 15% | 239.25 ₴ | 217.50 ₴ | 195.75 ₴ |
| Contribution of one room night | 1 237.75 ₴ | 1 114.50 ₴ | 991.25 ₴ |
| Nights to cover 480 000 ₴ | 388 | 431 | 485 |
| Matching occupancy | 53.9% | 59.9% | 67.4% |
An expensive rate really does forgive low occupancy: at 1 595 ₴ you need only 53.9% of the stock, at 1 305 ₴ you need 67.4%. But the thresholds have to be compared not with each other, but with how many nights the market gives you at each rate.
At 1 595 ₴ the market gives 61% against a threshold of 53.9% — a cushion of 7.1 points. At 1 305 ₴ it gives 78% against a threshold of 67.4% — a cushion of 10.6 points. The second cushion is wider, and the profit grows out of it.
Where a discount really does stop working
A discount works as long as the rate stays far above the variable costs. 1 305 ₴ is still eleven times more than 118 ₴, which is why the new nights bring in almost as much as the old ones.
It turns lethal when the rate comes close to the variable costs: a new night then adds pennies, and the highest occupancy in town will not cover 480 000 ₴. Check one thing only: whether the new contribution, multiplied by the new number of nights, gives you more than you had.
Platform commission: 106 575 ₴ a month
The first hidden item is not hidden at all — it simply never reaches the bank account. 15% of 710 500 ₴ is 106 575 ₴, 1.6 times more than the whole 66 105 ₴ of profit.
“While the commission sat inside the rate, I never noticed it. When it became a line of its own, it turned out that the biggest salary in my hotel goes not to the front desk and not to the kitchen, but to the website where people find me.”
What moving bookings to direct delivers
Every 10% of bookings moved to direct leaves around 10 657 ₴ a month in the hotel, that is 127 884 ₴ a year. In nights that is almost ten room nights at 1 114.50 ₴ — nights you do not have to sell, because they are already sold.
Last-day cancellations: 38 nights and 42 332 ₴
The second item is even harder to see, because by definition it is not in the till: 38 nights a month are cancelled later than a day before check-in, and there is no time left to resell them. 38 multiplied by 1 114 ₴ is 42 332 ₴ of contribution lost every month, or 64% of the hotel's profit.
Why a cancelled night is almost never resold
Because this product lives for a single day: a night not sold by the evening is gone forever. A guest looking for a room “for tonight” hardly ever turns up at a small hotel: tourists plan weeks ahead. And 38 nights is 5.3% of the stock and 7.8% of the nights sold.
“For years I treated a cancellation three hours before check-in as nothing more than a nuisance. When I saw forty-two thousand a month — more than my whole ‘other’ line — a deposit stopped feeling inconvenient for the guest.”
The long-stay discount: the one you should not remove
The third item looks like a hole, and owners rush to patch it first. Stays of seven nights and up go out with a 25% discount, and in a month there are 94 such nights: 94 × 1 450 × 0.25 = 34 075 ₴ of revenue not received.
Only it is not a hole. These nights fall in the low season, and there the alternative to a long stay is not the full rate but an empty room. The comparison has to be made not with 1 450 ₴ but with zero.
A night at 1 087.50 ₴ after the discount gives 806 ₴ of contribution: minus 118 ₴ of variable costs and minus commission. Ninety-four nights like that are over 75 000 ₴ that would not exist without the discount. A discount of 34 075 ₴ buys over 75 000 ₴ of contribution, and removing it means trading 75 000 ₴ for zero.
What changed when the room night became a line
Oksana did three things. Every room night got a contribution of its own. Rate and occupancy started coming together in one number: the month's contribution against 480 000 ₴ of fixed costs. And cancellations and discounts became lines with amounts rather than remarks at the front desk.
Two quarters later this is what could be seen:
- The rate was cut by 10% — and the profit grew by 10 977 ₴. The same building, the same staff, 562 nights instead of 490. The scariest decision in three years turned out to be the most profitable.
- Commission became a line item rather than background noise. Direct bookings stopped being an idea for later: every 10% of the channel is 10 657 ₴ a month.
- Cancellations got a price. Once 38 nights turned into 42 332 ₴, a deposit a day before check-in became obvious rather than awkward.
None of this took new rooms, a refurbishment or an advertising budget. What it took was seeing the room night as a line with a contribution of 1 114.50 ₴ — and understanding that it has to be multiplied.
The takeaway for business owners. In a business where the unit of goods vanishes every day, profit is decided not by the rate or the load on their own, but by the contribution of one unit multiplied by the number of units that rate gives you. As long as the rate stays far above the variable costs, every additional unit sold goes almost entirely into profit — and the highest rate rarely sits in the same price list as the biggest profit. This works just the same in hostels, apartments let by the night, campsites, car rental and any venue that sells time.
Parting advice
- Work out the contribution of a room night. Rate minus variable costs minus commission: 1 450 − 118 − 217.50 = 1 114.50 ₴. This is the main number in your hotel.
- Derive your own threshold in nights. 480 000 ₴ divided by 1 114.50 ₴ is 431 nights, or 59.9% of the stock. Below the threshold you are working for the landlord.
- Do not change the rate without counting the nights. Plus 10% on the price list cost Oksana 51 nights and 2 733 ₴ of profit.
- Look at RevPAR, not at the price list. 1 450 ₴ on the website and 987 ₴ per available room are different businesses, and it is the second one that brings in the money.
- Pull the commission out as a line of its own. 106 575 ₴ a month against 66 105 ₴ of profit. Every 10% of bookings moved to direct is 10 657 ₴.
- Put a price on cancellations. 38 nights at 1 114 ₴ is 42 332 ₴ a month, and after a figure like that the conversation about deposits sounds different.
- Do not remove a discount without counting the alternative. A 25% discount on long stays costs 34 075 ₴ and buys over 75 000 ₴ of contribution in the low season.
The money does not vanish — you simply cannot see it
A hotel looks like a business where location, the refurbishment and the reviews decide everything. In reality that is the ticket to entry. The money is decided by something else: how much one night leaves after variable costs and commission — and how many of the 720 nights you gave a chance.
None of these losses goes away on its own and none of them will show up in the report, because the report shows a month while the decisions are made one night at a time. But the moment the room night becomes a line with a contribution, the main thing becomes visible: a rate can be too high not for the guest, but for you.
How to see this in your own hotel
Everything described above rests on a single table: every day is a line showing occupied rooms, the average rate, platform commission and variable costs. While revenue is added up as one figure per month, neither the contribution of a room night nor the bite the booking platforms take is visible. When the same data is collected automatically, you can see how rate and occupancy pull profit in opposite directions — which is exactly why small and medium business owners use Finmap: to see the financial picture instead of reconstructing it from memory.
Read also
- Fitness club: why the money in your account is a debt, not a profit
- Cost per labour hour in cleaning: where the margin goes
Topic foundation: Management Accounting Explained: What It Is and Why Owners Need It
Frequently asked questions
Subtract from the rate only what appears because of this particular guest. In the example from this article: 1 450 ₴ minus 118 ₴ of variable costs (laundry, toiletries, breakfast) minus 217.50 ₴ of platform commission — and 1 114.50 ₴ is left. Fixed costs do not go into this calculation: the 480 000 ₴ of rent, wages and utilities add up regardless of whether anybody is living in the room. That is exactly why this number answers several questions at once. Take the cost of cancellations: 38 nights cancelled later than a day in advance are 38 × 1 114 = 42 332 ₴ of contribution lost, or 64% of the hotel's profit.
Divide the fixed costs by the contribution of one night. In the example that is 480 000 ₴ by 1 114.50 ₴ — 431 nights out of a stock of 720, that is 59.9% occupancy. Below that threshold the hotel works for the rent and the wages; above it almost every night goes into profit. The threshold depends on the rate: at 1 595 ₴ you need 388 nights (53.9%), while at 1 305 ₴ you already need 485 (67.4%). Recalculate it every time you change the price list, because the average occupancy across town knows nothing about your building.
It depends on how many nights the market gives you for every hryvnia of rate, and the answer is often the opposite of intuition. In the example, raising the rate by 10%, from 1 450 ₴ to 1 595 ₴, pulls occupancy down from 68% to 61% and yields 63 372 ₴ of profit — less than the current 66 105 ₴. A 10% discount, down to 1 305 ₴, lifts occupancy to 78% and yields 77 082 ₴, that is 16.6% more. The reason is that the contribution fell by 11.1% while the number of nights sold grew by 14.7%. That is why a pricing decision is never taken apart from a forecast of nights: it is the products that have to be compared, not the rates.
More than it seems, because it never reaches the bank account and so is never felt as a cost. In the example it is 15% of 710 500 ₴ of revenue, that is 106 575 ₴ a month — 1.6 times more than the hotel's entire profit of 66 105 ₴. Pull it out as a line of its own and count it in nights: every 10% of bookings moved to direct leaves around 10 657 ₴ a month and 127 884 ₴ a year in the hotel. That is roughly ten extra occupied nights you do not have to sell, because they are already sold.
Yes, as long as the rate after the discount stays well above the variable costs. In the example, stays of seven nights and up go out with a 25% discount: 94 nights a month, that is 34 075 ₴ of revenue not received. But this rate has to be compared not with the full price list but with an empty room, because in the low season the alternative at 1 450 ₴ simply does not exist. A night at 1 087.50 ₴ after the discount gives 806 ₴ of contribution, and 94 nights like that are over 75 000 ₴ that would not exist without the discount. Removing a discount like that means trading 75 000 ₴ for zero. A discount only turns dangerous when the rate comes close to the variable 118 ₴ — there every new night adds nothing but pennies.
RevPAR is revenue divided by the whole stock of room nights, the empty ones included. In the example from this article, 710 500 ₴ over 720 nights gives 987 ₴, while the price list says 1 450 ₴: a gap of 463 ₴ on every room night of the calendar. The value of RevPAR is that rate and occupancy taken separately are misleading, whereas it brings them together in one number. At 1 595 ₴ and 61% you get 973 ₴, at 1 450 ₴ and 68% — 987 ₴, at 1 305 ₴ and 78% — 1 019 ₴. The most expensive price list gives the lowest RevPAR. But it is not the final metric either: RevPAR knows nothing about the 15% commission or the variable 118 ₴, so pricing decisions are checked against contribution.
Divide the fixed costs by the number of rooms. In the example, 480 000 ₴ over 24 rooms is 20 000 ₴ per room every month, or 667 ₴ for every night of the stock. That is exactly the amount a room takes every day, even locked and unoccupied: rent, wages and utilities do not ask whether there is a guest. Which is why empty nights cost precisely as much as occupied ones. In the example, 230 of the 720 nights of stock stood empty — around 153 000 ₴ of fixed costs that nobody covered. That is also why an extra occupied night is so profitable: the costs are already incurred, and the night brings in 1 114 ₴ almost clear.
Start by putting a price on them, because a free cancellation looks like a favour to the guest rather than a cost. In the example, 38 nights a month are cancelled later than a day in advance and there is no longer time to resell them: that is 5.3% of the stock, 7.8% of all the nights sold and 42 332 ₴ of contribution lost — 64% of the hotel's profit. After that, three things work: a free cancellation window of two or three days instead of one, a deposit covering the first night, and a discounted non-refundable rate. The last one is nothing to fear: a night sold at a 25% discount gives 806 ₴ of contribution against zero from a cancelled one.
