In an earlier blog, we wrote about MinLOS, the minimum length of stay. A useful tool to get more out of your available rooms around peak days. But MinLOS is a blunt instrument. Sometimes you want more refined control: rewarding longer stays without outright refusing a one-night guest.
This blog is about one such refinement. You build a rate ladder in the PMS with separate rate codes, each linked to a minimum number of nights. The longer the stay, the greater the discount on BAR. With Rate Buckets in RevControl, those rates open and close automatically based on occupancy.
Why MinLOS isn’t always the right tool
MinLOS does one thing: it refuses bookings below a certain length of stay. That works, but it’s harsh. A guest who only wants to stay one night can’t book at all, even if they’re willing to pay more than BAR. On OTAs, guests often only see “unavailable” in that case, with no explanation, and this can also put pressure on your visibility on adjacent dates.
What you’d prefer: making longer stays more attractive without blocking shorter bookings. And as your hotel fills up, you gradually turn off those discounts. A stacked rate structure provides the solution.
The idea: a rate ladder below BAR
Instead of one Best Available Rate, you sell a series of rates derived from it. Each rate requires a minimum number of nights and offers a fixed discount on BAR:
| Rate code | Minimum LOS | Discount on BAR | For whom |
| BAR | 1+ nights | 0% | The standard 1-night booker |
| STAY3 | 3+ nights | -10% | Short breaks, midweek guests |
| STAY5 | 5+ nights | -18% | Holiday stays, extended business |
| STAY7 | 7+ nights | -25% | Long stays, filling low season |
Important: every STAY code is derived from BAR. If BAR rises, the entire ladder rises with it. You retain the dynamics you’ve already built in RevControl; the LOS dimension is layered on top.
Why this works better than hard restrictions
- BAR remains available. Guests who want to book one night can do so. No refusals, no lost short bookings.
- Rate parity stays intact. Your BAR is and remains the public rate on OTAs. The STAY codes are separate products.
- You entice rather than forbid. Guests themselves choose a longer stay because it benefits them.
- The discount is predictable and explainable, for the guest and for your sales team.
The automation: Rate Buckets
So far, this is a fairly standard rate structure that any PMS can handle. The tricky part is that you don’t always want these discounts open. A STAY7 with -25% discount in a week where you’d sell out anyway is simply wasted money. You mainly want deep discounts when you’re at risk of having empty rooms.
That’s where Rate Buckets comes in. With this feature in RevControl, you link each rate code to a threshold. As long as the expected occupancy stays below that threshold, the code remains open. Once occupancy exceeds it, the code closes automatically.
| Rate code | Open while occupancy | Closes above |
| BAR | Always open | - |
| STAY3 | < 75% | 75% |
| STAY5 | < 60% | 60% |
| STAY7 | < 45% | 45% |
The result: at low demand, all STAY codes are open and you actively stimulate longer stays. As occupancy rises, the biggest discounts close first, then the middle ones, and eventually you’re only selling BAR. Fully automatic, per night, per room type.
A calculation example: Hotel Bloesem
To make this concrete, let’s look at a midweek scenario at a fictional 20-room hotel in a mid-sized city.
On Wednesday, there’s a large trade fair. BAR rates: Tuesday € 100, Wednesday € 200, Thursday € 100. Expected demand for one night: Tuesday 8 bookings, Wednesday 25 (of which 5 must be turned away because you only have 20 rooms), Thursday 7.
Scenario A: BAR only, no steering
| Night | Sold | Rate | Revenue |
| Tuesday | 8 | € 100 | € 800 |
| Wednesday | 20 (sold out) | € 200 | € 4,000 |
| Thursday | 7 | € 100 | € 700 |
| Total | € 5,500 |
Wednesday is a success. But Tuesday and Thursday together leave 25 rooms empty.
Scenario B: STAY3 at -15%, bucket closes above 75%
By opening the STAY3 code, you give guests a reason to book three nights. STAY3 rates become: Tuesday € 85, Wednesday € 170, Thursday €85.
Assumption: four guests book a three-night stay from Tuesday through Thursday via STAY3. They come in first; then one-night demand fills Wednesday further until the bucket closes above 75% occupancy (= 15 rooms total).
| Night | Sold | Mix | Revenue |
| Tuesday | 12 | 4 × STAY3 (€ 85) + 8 × BAR (€ 100) | € 1,140 |
| Wednesday | 20 | 4 × STAY3 (€ 170) + 16 × BAR (€ 200) | € 3,880 |
| Thursday | 11 | 4 × STAY3 (€ 85) + 7 × BAR (€ 100) | € 1,040 |
| Total | € 6,060 |
Difference vs. Scenario A: +€ 560, or just over 10% more revenue. The four STAY3 bookings yield 12 room nights in total. On the sold-out Wednesday, they displace 4 BAR bookings, so net you sell 8 extra room nights. And they all fall on the shoulder nights that would otherwise have been empty.
Scenario C: Larger discount (-25%) on STAY3
What happens if you discount more aggressively? STAY3 rates become: Tuesday € 75, Wednesday € 150, Thursday € 75.
Assumption: six guests now book STAY3 instead of four. A bigger discount attracts more bookers.
| Night | Sold | Mix | Revenue |
| Tuesday | 14 | 6 × STAY3 (€ 75) + 8 × BAR (€ 100) | € 1,250 |
| Wednesday | 20 | 6 × STAY3 (€ 150) + 14 × BAR (€ 200) | € 3,700 |
| Thursday | 13 | 6 × STAY3 (€ 75) + 7 × BAR (€ 100) | € 1,150 |
| Total | € 6,100 |
A mere € 40 more, while offering 10 percentage points more discount. How is that possible? The two extra STAY3 bookings do bring in additional revenue, but on Wednesday they also displace two BAR bookings at € 200 each. The lost BAR revenue almost entirely cancels out the extra STAY3 revenue. Net, there’s barely anything left.
The lesson: discounting more deeply barely yields more here. The optimum is where the discount is just large enough to entice guests, without unnecessarily sacrificing BAR revenue.
Thresholds in practice
The most important choice in this system: at what occupancy rate does each bucket close? A few rules of thumb that work for most hotels:
- Set the STAY3 bucket relatively high (70–80%). This is the LOS rate you sell most often; don’t switch off that incentive too early.
- STAY5 and STAY7 close earlier (50–65%). Large discounts only make sense when you genuinely have overcapacity.
- Set your thresholds differently by day of the week. A midweek 60% behaves differently than a weekend 60%.
- Account for your room type mix. If one type structurally fills up earlier, set a tighter threshold for it.
Common mistakes
- Too many rate codes. Three levels (BAR, STAY3, STAY5) are enough for most hotels. Four or five becomes confusing and weakens each individual rate.
- Too small discounts. A STAY3 at -5% is barely noticed by a guest. Below 8%, the incentive loses its effect.
- Too large discounts. Above 25%, you sacrifice margin without meaningfully extending average length of stay.
- Setting thresholds once and forgetting them. Demand changes, seasons shift, your calendar looks different a few months out. Review your thresholds at least quarterly.
- Not measuring what happens. Without data on which rate converts, you’re flying blind.
How to approach It
- Start with three rate codes in your PMS: BAR, STAY3, and STAY5. Keep it manageable.
- Choose an initial set of discount percentages, for example: -10% and -18%. Starting conservatively is fine.
- Set up Rate Buckets with conservative thresholds (STAY3 closes above 75%, STAY5 closes above 60%).
- Test on one room type or in one season first before rolling out hotel-wide.
- Measure weekly: how many STAY bookings you receive, what the average length of stay is, what the ADR per rate level is, and how much displacement occurs on peak days.
- Only after four to eight weeks, adjust discounts and thresholds based on what you observe.
In conclusion
LOS-based pricing via rate codes and buckets doesn’t replace MinLOS, it complements it. For specific peak days, a hard restriction remains sometimes the right choice. But for the vast majority of your calendar, this approach gives your hotel more control with less lost revenue.
The beauty of this approach: once it’s set up, the system does the work. Your Friday peak fills up with BAR bookers who simply pay the full rate. Your quiet Tuesday in November is filled by STAY5 guests who would never have come otherwise. And revenue management is no longer about constantly setting and removing restrictions, but about monitoring and fine-tuning a few cleverly chosen thresholds.