Advanced pricing
Pricing rules allow you to dynamically change the price of your appointments based on many different factors. This allows you to implement almost any pricing construct you can think of, for example:
- Increase prices by 50% on the weekends
- Round to the nearest $5 and add $2 if the appointment length is less than 1 hour
- Add an amount based on a selection from a drop-down menu or a custom form
- Charge an upfront deposit of 10% if booked more than a month in advance
- Add inclusive or exclusive taxes either as percentage of the price or a lump sum
Set up pricing rules
-
Setting up pricing rules differs per schedule type:
-
Resource Schedule
On a Resource schedule, on the Resources tab, under Price, select the option: , and then click
-
Capacity Schedule
In case of a Capacity schedule, on the Resources tab, under Price, select the option: , and then click
-
Service Schedule
No additional step is needed to activate pricing rules. However, in order to show prices in the list of services, you need to explicitly check the option:
near the bottom of the Services tab, and click
-
Resource Schedule
- Navigate back to the Resources (or Services) Tab. Then click to go to the configuration screen.
-
Set the base price
The base price is the starting price of a booking before any pricing rules are applied. How the base price is set differs per schedule type:
-
Resource Schedule
At the top of the pricing rules configuration screen, you can set a base price. By default, this price is per reservation. You can also choose a base price per unit of time (minute, half hour, day, etc.). For instance, you can charge $15 per half hour per reservation.
-
Capacity Schedule
At the top of the pricing rules configuration screen, you can set the default base price for slots. This base price is per reservation. If required, you can override the default base price for a slot while creating or editing this slot.
-
Service Schedule
For service schedules each service has its own base price. A service’s base price can be set while creating or editing the service.
-
Resource Schedule
-
Add pricing rules
On the “Edit Pricing Details” screen you can create new pricing rules in the section “Create Pricing Rule”:
- First select an action to perform on the price. For example, “Increase the price by”.
- Depending on the action you choose a field may appear where you can provide additional information. For the option “Increase the price by” a field will appear to specify the amount.
- Next, specify the conditions that determine when to perform this action. For example, “If … the weekday is one of, Saturday or Sunday”. The action will only be applied if all the conditions are met. If you don’t specify any conditions, the action is always applied.
- Click at the bottom of the page.
- The pricing rule will now appear at the top of the page under “Pricing rules”. The pricing rules are evaluated in order from top to bottom; the order can be changed by dragging them to the desired position in the list.
“Price per item” versus “Total price”
Within the context of pricing rules “price” and “total” have very specific meanings:
- If you have a Resource schedule, then “price” means price per selected unit (per reservation, per minute, per hour, etc.), while the “total” is added once per booking. For example: With a price of $6 per hour, and a total of $10, for a reservation of 2 hours the final price becomes 2 × $6 + $10 = $22.
- If you are using a Capacity schedule, then “price” is multiplied by the quantity, while the “total” is added once per booking. For example: With a price of $5 for a quantity of 3, and a total of $10, the final price becomes 3 × $5 + $10 = $25.
- If you are using a Service schedule then there is no distinction between the two terms.
For repeating reservations, each repetition is counted as a separate booking. This means a total will be added for each repetition. This total need not be the same for each repetition if there are price rules that affect only slots on a specific date.
Time partitioning
When you use a price per time unit on a Resource schedule, price calculations can get complex if an appointment spans periods where different price rules apply. Consider, for example, a situation where weekend bookings are twice as expensive as non-weekend bookings. When making a booking that includes one weekend day and one non-weekend day, the system will correctly apply the higher price for the weekend day only. You can imagine that this can get quite complex if multiple rules apply during different overlapping periods.
When using a price per reservation, only the price of the starting time applies and no time partitioning will be used. Similarly, only the start time is taken into account for slots on a Capacity schedule and appointments on a Service schedule.
Stop evaluating rules
The action “Stop evaluating rules” allows you to skip all subsequent rules when the condition matches. This can be useful, for example, to have a set of rules only apply in the weekend and skip them for all other days.
Using a price from a custom field
To use a custom field, first ensure a custom field is enabled on the schedule so that the relevant actions will show up. Next, add one of the actions: “Add field to price” or “Add field to total” and select the custom field from which you want to add the value. For a detailed example of how to set up a drop-down field that adds to the price see the Tips and tricks section.
From the drop-down options the system will automatically try to extract a price.
For example, Extra towels $5
. When this option is selected by the user, $5 will be added.
Percentages can be specified by adding a %
sign.
For example: Bring your own surfboard −20%
If you place a value between square brackets [ ]
, then this value will be stored in the database, and show up in email confirmations.
You should make sure to repeat the price between the brackets, otherwise the price will be ignored.
For example: Extra sauna time +$10 [xtr-sauna $10]
Using a price from an attached form
To use a price from an attached form add a rule with the action “Add form”. This option is only visible if a form is attached to the schedule. (See Adding custom forms).
You indicate a field contains a price by adding curly brackets { }
that contain the price at the end of a field’s option.
For example:
Lunch basket +$10 {$10}
or Catered lunch $20[basket]{$20}
The price between { }
will not be shown on the form, to display the price also add it to the text before the brackets.
Values from attached form fields are added to the total price by default.
To add them to the price per item instead, you can add a #
after the price.
For example: Extra blanket +$5 {$5#}
See “Price per item” versus “Total price” for an explanation of the difference between the two.
User groups
With user groups you can make some price rules only apply to specific users. The user groups documentation explains how to create groups and assign users to them. Once you created at least one user group, a new condition will appear when creating a price rule: … the user’s group is. This condition allows you to limit a pricing rule to a specific group. You can use this to reduce the price for people in a specific group, or raise the price for people not in any group.
Set to unavailable
The action “Set to unavailable” allows you to make it impossible to make a reservation under certain conditions. For example, “Set to unavailable if … the time until start is less than 1:00:00” (less than 1 day)
This can be useful, for instance, if only users in the premium user group are allowed to book on weekends. Or you can make a class unavailable if no one has signed up 2 days in advance. Keep in mind the user will only see this as “unavailable”. It is up to you to explain why it is unavailable, for instance by using a custom message above the schedule.
Deposits
Pricing rules can also be used to implement deposits. This means that people are presented with the total price, but are only required to pay the deposit upfront and the remainder is collected later. Note that the system does not have support for collection the remainder, you would need to track this yourself. There are actions available to set a fixed amount or a percentage of the total as a deposit. While tax information may be displayed for deposits, see next paragraph, no tax is actually applied to a deposit.
Taxes
Pricing rules offer flexibility in handling taxes, allowing both inclusive and exclusive tax methods. With inclusive taxes, the stated price includes all applicable taxes, like a fixed percentage or a lump sum (e.g., VAT). For exclusive taxes, the taxes are added separately to the base price, either as a fixed amount or a percentage of the total (e.g., sales tax). Consult local regulations or a tax professional for specific guidance on how tax needs to be calculated and displayed in your jurisdiction. If you offer discounts through coupons or price rules, those discounts will be applied before the tax is calculated, ensuring tax is levied only on the discounted amount.
In order to start adding taxes to your price:
- Navigate to the pricing rules of your schedule, via the Resources tab.
- Choose from the drop-down menu either an absolute amount to be added (“Set tax to”) or a percentage (“Set tax to %”). Select the % option when you wish to add a sales tax (exclusive) or a VAT (inclusive).
- Choose whether the tax should be included in the listed price (this is the default setting) or added during checkout and on the invoice.
Note: not all payment and invoice providers available through SuperSaaS offer the ability to display tax separately. Some may only display taxes as a percentage instead of a lump sum.
In the case of currency based credit, taxes are split between the credit and the rest of the payment in the same ratio. Some payment providers require the tax rate to be calculated beforehand, which may require an adjustment of the credit rate in cases where a payment is partially done with credit. This could lead to small differences in the displayed percentage. Some providers round the tax amount in a certain way (called “bankers rounding”) that causes a 1 cent difference with the amount displayed on the checkout screen (which uses regular rounding). This can be avoided by adding a price rule that rounds the price to a suitable amount before the tax is applied.