
How members see dynamic pricing
Calendar day prices
When a member opens the booking date picker, each day in the calendar displays a percentage indicator showing how the price for that day compares to the base rate.
Time selector prices
When a member opens the start or end time dropdown, each time slot shows the calculated price alongside the percentage adjustment.- Start time dropdown — shows the price for a booking of the same duration starting at each time slot.
- End time dropdown — shows the price for a booking starting at the selected start time and ending at each time slot.

How pricing is calculated
Dynamic pricing is applied per hour of a booking. Each hour is evaluated independently, and the final price is the sum of all hourly prices after adjustments.Demand-based pricing
The system predicts demand for each hour using a machine learning model trained on:- Historical booking data — past occupancy patterns by hour, day of week, and season.
- Holiday calendars — public holidays and location-specific closures.
- Forecasted bookings — already-confirmed future bookings that reduce remaining capacity.
Availability-based pricing
When availability drops below certain thresholds, additional adjustments can be applied:
The system checks the most restrictive threshold first. Only one availability factor is applied per hour.
Last-minute pricing
Bookings made close to the start time can receive an additional adjustment. Two modes are available:- Fixed — a flat percentage adjustment applied when the booking is made within the configured last-minute period.
- Gradual — the adjustment increases as the booking time approaches. A booking made 5 minutes before start receives a larger adjustment than one made 2 hours before.
Adjustment priority
When multiple pricing rules could apply, the system follows a strict priority order:- Previously charged bookings — if a booking has already been charged, its original pricing factors are preserved. Editing a charged booking does not recalculate dynamic pricing.
- Resource rate overrides — if the resource rate used for pricing has its own demand or last-minute factors configured, those take precedence over location-level settings.
- Location-level settings — global demand and last-minute factors apply when no resource rate override exists.
Configuration
Enabling dynamic pricing
Dynamic pricing requires two conditions:- The location subscription must have billing available (For example, the Workplaces product does not include billing and therefore cannot use the Dynamic Pricing module).
- The Dynamic Pricing must must be turned on in your Admin Panel.
Location-level settings
Availability threshold settings
Resource rate overrides
Each resource rate can override the location-level factors:Resource rate overrides are useful when some resources (e.g. premium meeting rooms) should have different pricing sensitivity than others (e.g. hot desks).
Portal behaviour
- Prices are fetched lazily — only when the date picker is open and only for the visible month.
- Time slot prices load when the start or end time dropdown is opened.
- Prices update automatically when the selected start or end time changes, since the booking duration affects the total cost.
- Changing the selected day does not trigger a full recalculation — cached prices are reused for days already fetched.
- All price data comes from the
POST /api/public/bookings/priceendpoint, which returns the total price and individual adjustment components for a given time range.