Set Your Own Price, but Never Below Cost
Once a number is fixed, someone has to guard the line beneath it.
Pricing rules used to add only relative markups on top of supplier prices. Sellers can now set a final price directly; when it falls below the offer’s net price at that moment, the rule rejects it and the offer is not sold, rather than being quietly raised to cost or converted into another currency.
Some sellers do not want “cost plus 12 per cent.” They want “this room at this hotel sells for exactly this.” A channel that controls its own inventory may keep one end price everywhere; another team may need to match a printed rate sheet. Every markup in the rule engine was relative, a percentage, a fixed amount, a multiplier or a tier stacked on the supplier price, so an absolute price meant working around the rules.
The risk of an absolute price is that it stays fixed while costs move. A price configured today can sit below the offer’s own net price tomorrow. Two quick fixes are tempting: raise the price silently to the cost line, or convert currencies automatically when they differ. Both leave the guest paying something other than what the seller configured, and nobody notices.
A new rule action sets the price outright. It takes three inputs: an amount, a currency that defaults to the offer’s own, and whether the amount is per room or for the whole booking. Its guardrail is a floor: the price may not fall below the offer’s net price at that moment. Below the floor the rule rejects, and a rejected offer is dropped instead of being sold at the original price. A currency mismatch is rejected with no quiet conversion, and a whole-booking price must divide evenly across the rooms. Nothing is rounded.
We traded the convenience of automatic correction for a rule anyone can state: the offer sells at the price you configured, or it does not sell. A price set too low shows up as an offer missing from results, not as margin missing at month end. A rejected offer also carries a rejection mark in its pricing record, so it can be traced later.