Hotel contract data guide
Hotel contracting system fields: rooms, occupancy, seasons and rates
The parameters a hotel contracting platform needs before a contract can become a sellable price: what each field holds, how the fields depend on one another, and where contracts usually leave them ambiguous.
Hotel and contract header
Every other field hangs off the header: the hotel or property, its code in your own system, the contracting party, the contract reference and date, the overall validity period and the contract currency. Region, star rating and confirmation type (free sale or on request) usually sit here as well, because they apply to every rate below.
Capture the header first and keep it with every record. A rate that has lost its contract reference cannot be matched to a later amendment, and a currency read from one table but not the header is how a whole contract ends up priced in the wrong money.
Room types and board basis
Room types are the products being sold: the room name as the hotel writes it (“Standard Sea View”, “Family Suite”), mapped to a code in your own catalogue. Board basis is a separate dimension (RO, BB, HB, FB, AI), not part of the room name, even when a contract prints “DBL HB” in a single cell.
Keep the hotel’s wording next to your mapped code. Two hotels can call the same product by different names, and one hotel can reuse a name for a room that changed between seasons. The original wording is what a reviewer needs when a mapping looks wrong.
Occupancy rules
Occupancy says who may stay in each room: minimum and maximum adults, maximum children, maximum total persons, and whether extra beds are allowed. It is what turns a room type into bookable combinations such as 2 adults, 2 adults + 1 child, or 3 adults with an extra bed.
Contracts often express occupancy indirectly, through the price columns themselves (single, double, triple, extra bed) or in a footnote. A contracting system should store occupancy as explicit rules rather than infer it from which prices happen to be present, because a missing price and a forbidden occupancy are different things.
Seasons and validity periods
A season is a named period with start and end dates, and one season name can cover several date ranges (for example, Low season in both spring and autumn). Every rate refers to a season, so season dates are the backbone of the price table.
Store each date range explicitly, with the year, and check that the ranges lie inside the contract validity, do not overlap unintentionally and leave no gaps. Seasons that cross New Year, and contracts that print dates without years, are where errors usually come from.
Room prices and pricing model
A room price is one amount at the intersection of room type, board, occupancy and season, plus the currency and the pricing unit: per room per night, or per person per night. That unit is a field in its own right, and it changes the meaning of every amount in the table.
Supplements and reductions belong in separate fields rather than folded into the base rate: a board upgrade, a sea-view supplement, a single-use supplement or a third-person reduction. Kept separate, they can be validated and amended on their own.
Child policy and child prices
Child policy defines age bands (for example 0–1.99, 2–6.99, 7–11.99) and how many children each room accepts. Child prices then give a free stay, a percentage of the adult rate or a fixed amount for each band, often different for the first and second child.
Record the age bands exactly as the contract states them. A system that rounds “2–6.99” to “2–6” will misprice every six-year-old, and child rules that depend on sharing a room with two adults need that condition stored with the price.
Allotment, release and stop sales
An allotment contract (Kontingentvertrag in German) commits the hotel to hold a number of rooms per room type and period. The release period says how many days before arrival unsold rooms return to the hotel. Both are fields per room type and date range, not free text.
Stop sales close a room type or the whole hotel for given dates, and minimum stay rules restrict which bookings are allowed. They do not change the price, which is why they are easily missed when only the rate tables are extracted.
Special offers, cancellation and payment terms
Special offers (early booking, long stay, free nights) carry their own booking window, stay window, discount and combinability rules. Cancellation rules give a deadline before arrival and a penalty, as nights or a percentage. Payment terms fix deposits and due dates.
These terms decide whether a correct rate can actually be sold under the agreed conditions. Structure them alongside the prices, check them against the source like any other field, and approve the contract as a whole before it is synced to a reservation or pricing system.