Pricing rules and the Revenue screen
Revenue suggests a nightly price based on occupancy and on how many days remain until arrival: higher when the hotel is filling up, lower for empty dates close at hand. You set the rules and the bounds, the system calculates recommendations every night, and prices change only when you apply them (or have turned on auto-apply). Every application is written to a journal and can be rolled back.
Who: the hotel owner and staff with the "Hotel money" right. Others see "No access".
Before you start: room types have a price and rate plans have their own price — see Hotel rates.
Where it is#
- Open Rooms and select 💲 Rates. The Hotel settings window opens on the Rates & restrictions tab.
- Below the rate plan manager, find the Revenue block with the Open recommendations and Journal buttons.
- The Revenue window has three tabs: Recommendations, Rules, Journal.
There is nothing to switch on in your subscription plan or buy separately — the module is turned on by a checkbox in the rules (below).
Turn on the calculation and set the rules#
- Open Revenue → the Rules tab. The first time, the form is already filled with sensible defaults — "Suggested defaults — nothing is calculated until you save.".
- Tick Calculate recommendations. Without it nothing is calculated, and the recommendations tab shows "Price rules are off".
- Fill in Minimum and maximum price per night — one row per room type; the All room types row applies where a type has no row of its own. Recommendations never go outside these bounds.
- Set up the rules (what they mean is in the next section).
- Select Save rules. You will see "Rules saved — recommendations recalculated".
If it does not save — "Fix the highlighted fields" appears with the reason, for example "Minimum and maximum must be non-negative numbers, the minimum not above the maximum" or "Step: occupancy 0–100 %, change from −90 to +300 %, no repeated occupancy".
What a recommendation is made of#
All changes are percentages of the price the hotel set itself (rate plan, season, manual price in the calendar). Repeated calculations do not stack: the percentages are always applied to your price, not to the previous recommendation.
| Rule | What you set | How it works |
|---|---|---|
| Occupancy steps | "from occupancy, %" → "change, %", up to 10 steps; Whose occupancy — "Whole hotel" or "This room type" | the highest step reached applies |
| Early booking | "From days before arrival" (1–365) and "Change, %" | dates far ahead get a different price, usually a discount |
| Last-minute dates | "Up to days before arrival" (0–60), "Change, %", optionally "While occupancy below, %" | close empty dates get a discount |
| Gap between bookings | "Window up to, nights" (1–7), "Change, %", the "Lower the minimum stay to the window length" checkbox | a short free window between sold nights gets cheaper and/or can be sold as a whole |
| General | Days ahead (default 90, up to 365), Round to, Maximum change, ±% (default 50, up to 90) | how many dates to calculate, how to round and how far the price may move |
Calculation order: occupancy → days before arrival → gap between bookings → maximum change → rounding → minimum and maximum. The bounds always win.
Occupancy is counted from bookings already made — there is no forecast or pickup ("by current occupancy, no forecast").
The Example block in the form shows how the rules would change a price for a given price, occupancy, days to arrival and gap.
Review recommendations#
- The Recommendations tab. At the top — "Calculated {date} · {N} days ahead" and the Recalculate button.
- Rows are "Room type · rate", columns are dates. A cell shows the current price → the recommended price and the change in percent. The Room type filter and the Earlier dates / Later dates buttons page through dates.
- Hover over a cell to see the reason: "Occupancy 75 % (step from 70 %): +10 %", "Last-minute date…", "Gap between bookings…", "Limited by the maximum change", "Raised to the minimum price …".
Colours and icons: green — raise the price, amber — lower it; ✋ — manual price set by the front desk, the engine does not change it; 🔒 — night already sold without a fixed price, not changed; ↺ — a manual price is set over the engine's price.
When it is recalculated: every night after 03:00 hotel time, after saving the rules, when the window opens if the calculation is out of date, and with the Recalculate button.
What is not calculated: a rate plan in its own currency, a plan with a price grid by number of guests and a plan without a price — "Not calculated: …" appears under the table. Derived plans are not recalculated separately: they follow their parent.
Apply recommendations#
Selectively:
- Click cells (Shift+click selects a range in the row) or Select visible dates.
- Check "Selected {N} (↑… ↓…)".
- Select Apply selected.
All at once: Apply all ({N}) → confirm: "Prices will change on {N} cells. Manual prices and sold nights stay as they are. You can roll this back from the journal.".
The result is "Applied: {N}" or "Applied: {N}, skipped: {M}". Values are recalculated at the moment of writing, so the current recommendation is applied.
Where the price is written: to the rate plan manager's price and restriction calendar — as ordinary date entries. In the calendar they are marked "• — price set by «Revenue»". The calendar is the strongest price source, so the applied price is used for new bookings from the front desk and the website. Bookings already sold do not change.
A manual price wins. If a staff member edits a Revenue entry in the calendar by hand, it becomes a manual price, and the engine no longer touches it.
Apply automatically#
The Apply automatically checkbox on the Rules tab: the nightly run applies recommendations itself. Conditions:
- Calculate recommendations is on ("Auto-apply works only with the calculation turned on");
- every room type has both a minimum and a maximum ("Auto-apply needs both a minimum and a maximum for this room type").
Auto-apply does not touch manual prices and sold nights. In the journal these entries are "Auto-applied", author "Automatically". The recommendations tab shows "Auto-apply on".
Price floor#
The Minimum from the rules works in two places:
- For recommendations — always. A recommendation below the minimum is raised to it with the reason "Raised to the minimum price …".
- For a front desk manual price — if "Do not sell below the minimum without confirmation" is on. Then a manual nightly price below the room type minimum (for a derived plan — the minimum adjusted by its percentage) is not saved, neither when creating a booking nor when changing the price of a sold booking. This requires at least one minimum ("Set a minimum price for at least one room type").
Prices you set yourself in the rate plan manager's price calendar are not checked against the minimum.
Roll back a change#
- Open Revenue → the Journal tab (or the Journal button in the block).
- Find the entry: kind ("Applied", "Auto-applied", "Rollback"), status, author ("You" or "Automatically"), "{N} cells (↑… ↓…)". The Changes button shows "was → became" per cell.
- Select Roll back and confirm: "{N} cells return to their previous values. Cells changed since then are skipped.".
- The result is "Rolled back: {N}" or "Rolled back: {N}, skipped (changed since): {M}".
Later changes are not overwritten: if a cell was changed after the application — by a later application or by a manual price — the rollback skips it. Rollback also works with the rules turned off. An entry that has already been rolled back cannot be rolled back again — "This record has already been rolled back.".
The journal keeps the last 300 entries; the screen shows the latest 100. Changes to the rules themselves are not journaled.
What is not there yet#
- Demand forecasting and pickup — only current occupancy from bookings.
- Competitor rates and their monitoring.
- Fixed-amount changes — percentages only.
- Rules by weekday, date range or individual rate plan — the rules are shared; bounds are per room type.
- Calculation for rate plans in their own currency or with a price grid by guests.
- A confirmation window for selling below the minimum at the front desk (see above).
- A journal of rule changes — only applications and rollbacks are journaled.
- Sending prices to Booking.com, Airbnb and other platforms — iCal carries only availability; the channel manager currently runs on a test environment, see iCal and channels.
Related articles#
- Hotel rates: seasons, rate plans, guests, restrictions and cancellation
- Hotel booking actions
- Direct booking on the website: one or several rooms
- iCal and channels: availability, conflicts and limits
- Front desk, housekeeping and accountant rights
FAQ#
Will Revenue change the price of a booking already sold?#
No. Night prices are fixed in the booking at the moment of sale. An applied recommendation affects only new bookings.
I turned on the calculation, but prices do not change. Why?#
The calculation only suggests prices. Apply them on the Recommendations tab or turn on "Apply automatically".
Why does a cell show ✋ and the recommendation is not applied?#
There is a manual price for this date in the price calendar. The engine does not change it. If you want Revenue to manage the date, delete the manual entry in the calendar.
I applied recommendations by mistake. How do I undo it?#
Journal tab → the entry → Roll back. Cells that someone changed after that stay as they are.
How does the system know the occupancy?#
From the bookings on the calendar for each date — for the whole hotel or per room type, as chosen in "Whose occupancy". There is no forecast of future sales.