ES EN
Back to blog
Nightfill blog

Your discount is not the only discount on that bed

Three OTA promotions multiply, they do not add: 0.9 x 0.9 x 0.9 = 0.729. And the bar margin meant to cover the cut measures 27 MXN per occupied bed.

Published September 13, 2026 · 6 min read
Two female backpackers high-fiving in a bright hostel dorm room, enjoying travel adventures.
Photo: Ketut Subiyanto / Pexels

The number you cut is not the number that lands

It is nine in the morning, you have eleven beds unsold for tonight, and the obvious move is to take eight percent off the same-day dorm rate. That is a defensible decision. It is also the only one of at least three reductions on that bed that you actually chose.

Everything below is measured on our own hostel, Maka, in Oaxaca, by the pricing engine that has rewritten its rates every morning since August. The pesos are ours; the arithmetic is what transfers.

Three discounts, stacked, on one bed

We took a real eight bed-night Hostelworld booking apart line by line, because the code needed to know what a booking on that channel is worth. The guest had a length-of-stay promotion, a mobile promotion and an app promotion running at once. Each takes ten percent, and they do not add. They multiply: 0.9 x 0.9 x 0.9 = 0.729, exactly. That is 27.1 percent off, not 30, compounding on whatever base rate you set this morning.

Effective commission on that same booking: 26.7 percent. Not the contract rate. The one that showed up after the stack.

The engine carries both channels' worst case as constants, not assumptions: Booking.com at a 1.20 markup against a 0.20 commission, Hostelworld at 1.27 against 0.209.

The floor exists because the stack is real

Two hard rails sit under every price the engine writes. No dorm is ever discounted more than 55 percent off base, and a worst-case, fully promo-stacked, non-refundable booking must still net at least 130 MXN or the write is refused outright.

Hold that against the market. Every morning the engine scrapes three named Hostelworld competitors in Oaxaca -- Leveli, Viajero and Casa Angel -- three days out, one guest, one night. Their floor has sat between MXN 168 and MXN 206 across every run. A 130-peso net floor is not paranoia; it is roughly what survives of a two-hundred-peso bed once the channel is finished with it.

"They will spend it at the bar"

This is the argument every hostel owner has had with themselves at nine in the morning: fill the bed cheap, the margin comes back over the bar and on the tours.

So we measured it instead of believing it. Every day the engine pulls same-day bar income -- from named cocktail, beer and shot categories only, so a bottle of water does not flatter the number -- and activities income, weights each at its real 2025 P&L margin (27 percent on bar, 36 percent on activities), and divides by occupied beds.

  • 2025 P&L baseline: 32 MXN of margin per occupied bed
  • Rolling average across the last eight logged days: 34, falling to 27
  • Raw daily pickup, day to day: anywhere from 3 to 123 MXN per bed

Now read that against the discount. Eight percent off a two-hundred-peso bed is sixteen pesos, before the OTA touches it. The ancillary margin you are counting on to earn that back is worth about thirty. It is real money and the engine prices on it, but it is the same size as the discount, not an order of magnitude above it -- and a number that swings between 3 and 123 from one day to the next is not something to bet tonight's floor on.

And you are not discounting one bed

Here is the part that gets skipped at nine in the morning. A rate cut does not apply to the marginal bed. It applies to every bed sold at that rate.

Say fifteen beds sell tonight -- plausible for us, since tonight-occupancy across the logged window has run between 11 and 47 percent. Sixteen pesos off each is 240 pesos given away, and most of those bookings were arriving anyway. One genuinely extra bed brings its net rate plus roughly thirty pesos of margin, so the cut does not pay for itself at one incremental bed and probably not at two. And you have to know the bed was incremental: in the PMS, the booking that would have paid full price and the one the discount bought look identical.

What happened when we actually cut

The engine learned its own same-day discount rather than being handed one: across 22 calendar dates it deepened from 0 to -8 percent in three-point steps, chasing weak near-term pickup, under a cap that starts at 8 points and can widen to 25.

Then it checked its own history before widening. Days sitting at -8 percent averaged 33.7 percent occupancy across 23 logged days. Days at 0 percent averaged 42.0 percent across 5. A delta of 8.3 percentage points, pointing the wrong way. The engine logged that read and held the cap at 8 instead of digging further.

Be careful with that comparison, and we are. Five days against twenty-three, no day-of-week or seasonal control, every run inside a low season. The code's own comment calls it "not a real regression", and it is not evidence that discounting hurt us. It is enough for the narrower decision it was used for: it is not evidence that discounting helped either, and the engine was one step from widening its cap on the assumption that it had.

Three numbers to write down before your next cut

  • Your net per bed after the worst legal stack on your worst channel. Not your rack rate. Take one real booking, follow it to your bank, write down the ratio. Ours took an eight bed-night reservation to surface 26.7 percent.
  • Your ancillary margin per occupied bed, measured. Bar and tours at margin, not at revenue, divided by beds actually slept in. If you have never calculated it, you do not know whether it is 30 pesos or 130 -- and the case for discounting rests on which.
  • How many beds already sell at the rate you are about to cut. Multiply. That is the bill, and it falls due whether or not one extra guest arrives.

When cutting is still the right call

Same-day, mostly. A bed unsold tonight is worth zero at midnight and there is no inventory left to protect, so the arithmetic above inverts. That is why the engine runs five separate lead-time bands -- same-day, 1 to 3 days, 4 to 7, 8 to 21, and 22 to 45 -- and only the near bands learn aggressively. If your rate structure cannot tell a bed expiring in fourteen hours from one selling three weeks out, the cut leaks backwards into bookings that would have paid full.

What this data does not say

One property, owner-operated, in Oaxaca, across 22 calendar dates in low season. No revenue-uplift figure sits in it: the finding is an engine holding price after its own evidence said deeper discounting was not filling beds, which is a smaller claim than "discounting is bad". Your commission, promo stack and bar margin are different numbers; the method transfers, the pesos do not. Nightfill is independently operated, and results vary by property, market and season.

If this sounds like your property, see the three Nightfill tiers and start a free 14-day pilot on your own data: view pricing.

revenue-managementpricingotadescuentosoaxaca