การจอง

Room categories and rate plans

What a rate plan is, how a derived plan follows its parent's price, and where the catalog surfaces across the product today.

อัปเดตล่าสุด

Who this is for: Owner, Manager, Read-only — reading the catalog requires crs.rates.read; changing a price requires crs.rates.write, which the default Manager bundle does not carry.

A room category is a sellable kind of room — DBL — Double Room. A rate plan is a way of selling it: a price, a board basis, and the restrictions that come with it. BAR — Best Available Rate at 800.00, room only. NRF — Non-Refundable, ten percent under it, with breakfast.

Everything downstream prices off this catalog: what a channel is told, what the direct widget quotes, what a stay's folio is charged, and which stay-time policy applies.

หมายเหตุ

Reservations → Rates does not have a screen yet — the nav entry resolves to a placeholder. The catalog itself is live and is read everywhere described below; it is authored through the Open Hotel Protocols API today. This page documents what a rate plan is, so that the values you meet on the screens that do exist make sense.

Why derived plans exist#

Most houses sell one real price and several variations of it. Maintaining those as independent numbers is how a property ends up with a non-refundable rate that is dearer than its flexible one.

A derived plan does not carry a price of its own. It carries a parent and a chain of modifiers, and its price is computed from the parent every time anyone asks. Move BAR from 800.00 to 850.00 and an NRF derived at minus ten percent goes to 765.00 without anyone touching it — in the same instant, for the widget, the channels and the folio alike.

Read the four derivation modes#

Mode Price comes from
None The plan's own price. An ordinary standalone plan.
Derived The parent's base price, run through this plan's modifiers
Cascade The parent's effective price — which may itself be derived — run through this plan's modifiers
Auto The plan's own price today; the demand-driven rule is not wired yet

Derived and cascade differ only in a chain three deep, and the difference is the whole point of having both. With A → B → C, a derived C reads A's raw base price and ignores what B did to it. A cascade C reads B's already-adjusted price, so B's adjustment flows down.

Modifiers apply in order, each one of: increase or decrease by an amount, or increase or decrease by a percentage. The running price is clamped at zero, so a stack of discounts produces a free rate rather than a negative one.

หมายเหตุ

A parent chain that loops back on itself does not hang the product. Resolution gives up after a bounded depth and falls back to the plan's own price — the rate stays sellable, but it stops tracking the parent you thought it was following.

Know what a derived plan inherits#

Price is not the only thing that can travel down the chain. A rate plan names, per fact, which of its parent's restrictions it inherits: the rate itself, closed-to-arrival, closed-to-departure, stop-sell, minimum stay on arrival, minimum stay through, maximum stay, an availability offset, and a maximum to sell.

Inheriting stop-sell is the one that matters operationally: without it, closing the parent leaves the child open, and the house keeps selling a date it meant to shut. See restrictions and stop-sell.

See the catalog in the product#

Until the Rates screen lands, the catalog surfaces on the screens that consume it:

  • Connecting a channel — mappings bind your rate plans to the channel's own rate ids. Discover options lists the channel side to map against.
  • Distribution settings — the availability series is per room category, and the price guardrails bound what any plan may be sold at.
  • Stay-time policies — a policy can be scoped to a rate plan, which is how a day-use or early-check-in rate carries its own clock times.
  • Revenue → Recommendations — a recommendation is a proposed price for a plan; accepting it writes the price and queues an ARI push.

What's next#