Skip to content

Bookings · Pricing engine

Day rate, after-hours rate,
member rate.

Rate plans attach to a facility and carry a price per context. A booking that straddles the end of the working day is split at the boundary and charged at both rates, in the location’s own timezone.

  • 4pricing contexts: member, business hours, standard, after hours
  • 15 minresolution the booking is walked at, to split it across the boundary
  • Per locationtimezone used for the boundary, not the org default

01: Capabilities

Small engine, predictable output.

There is no surge, no promo code and no discount stack. What there is resolves the same way every time, which is what makes a quote you can explain to a member at month end.

  • Rate plans per facility

    A rate plan links to a facility and holds a price for each context. One plan can serve several facilities, and a facility can carry more than one plan.

  • After-hours split

    Your working day is a start time, an end time and a set of workdays. A booking crossing the boundary is walked in 15-minute steps and charged partly at each rate, rather than rounded to whichever rate it started on.

  • Member rate

    Set a member price and anyone with an active membership gets it. Note it applies to the whole booking, in and out of hours, so set it knowing it replaces both.

02: Rate plan

Four contexts, and the engine asks for all four by name.

A price row carries an hourly amount and the context it applies to. These four are the ones the pricing code looks for. Prices are per hour.

Rate plan · Atrium
Example
  • memberAnyone with an active membership$36.00
  • business_hoursInside your working day$45.00
  • standardFallback when no business-hours price is set$45.00
  • non_business_hoursOutside your working day$58.00
A weekend context can also be saved, and the admin and invoice screens label it, but nothing asks for it when a booking is priced. A weekend rate will not be charged. We would rather say so here than have you find out from an invoice.

03: How a price resolves

The same four steps, every booking.

No hidden surcharges and no per-customer haggling spreadsheet. If a price looks wrong, it is one of these four steps, and the member portal receipt shows the breakdown.

  • A booking crossing 17:00 is charged partly at each rate, not all at one
  • The boundary uses the location's timezone, so a two-country operator gets both right
  • A member price replaces the in-hours and after-hours rate alike
  • Set no rate at all and the facility's own hourly price is used
  1. 01Is this person a member?

    If they hold an active membership and a member price exists, that is the rate, for the whole booking. It is one boolean: which plan they are on does not change it.

  2. 02Split the booking at the boundary

    The booking is walked in 15-minute steps against your working day (start, end, and which days count), evaluated in the location's timezone.

  3. 03Price each part

    Time inside the working day takes the business-hours rate, falling back to standard, then the facility's own hourly price. Time outside takes the after-hours rate, falling back to the in-hours one.

  4. 04Convert and add tax

    If the facility is priced in tokens, the amount converts at your token rate, or uses the per-facility token override when one is set. Tax and the payment-fee surcharge come from your settings.

04: Not in the engine

What this page deliberately does not promise.

This section used to be a list of features. It is a list of absences instead, because an operator who picks us for surge pricing will find out in week two.

  • No surge or utilisation pricing

    Rates do not move on their own. If Friday evenings are busy, you set the after-hours rate to reflect that; nothing bumps it for you.

  • No promo codes

    There is no code to issue and nothing to redeem one against. An invoice line can carry a manual discount percentage that someone types, which is a different thing.

  • No rate inheritance

    Editing one plan does not cascade into others. A plan can be scoped to locations, but there is no parent rate that children override.

  • No per-tier pricing

    Pricing reads one boolean: active membership or not. A premium plan and a standard plan pay the same member rate. Plans differ in token allowance, not in price.

Tokens are the lever most operators actually reach for here: allowances per plan, pooled at the company. That is covered on token economy, and the design decisions behind it in the tokens playbook.

Set two rates and book across the boundary.

The fastest way to judge this is to price one room in and out of hours, then make a booking that spans 17:00 and read the quote.