Pricing Rules Overview
The ‘Pricing Rules’ module allows you to apply pricing rules and create dynamic price lists that take into account a number of criteria. Rules take precedence within the system. This means that when the conditions of a specific rule are met, they will take precedence over price lists defined elsewhere in the system, such as in the ‘Vehicles’ module.
To access the ‘Pricing Rules’ module, locate the menu item in the admin panel, ‘Chauffeur Booking System’ -> ‘Pricing Rules’. Clicking on this item will take you to a page where all the pricing rules defined in the system are displayed. To add a new rule, click the ‘Add New’ button.
Adding a New Rule
After clicking ‘Add New’, you will be directed to a page that allows you to create a new rule. First, enter the rule’s name. Below, you will see four main tabs: ‘General’, ‘Conditions’, ‘Prices’, and ‘Options’. The three most important tabs are ‘Conditions’, ‘Prices’, and ‘Options’, which I will focus on in the following sections of this topic.
‘Conditions’ Tab
In the ‘Conditions’ tab, you specify when you want this pricing rule to be applied. In essence, you determine here when the system should use the prices defined in this rule.
Important!
Leaving the settings in the ‘Conditions’ tab as default will result in the pricing rule always being applied to all situations. Only when you specify specific ‘Conditions’ settings will you limit the application of the rule to those specific conditions.
Good to Know
When you are dealing with a list from which you select a given option and you want to select more than one, simply click on the items while holding down the SHIFT or CTRL key on your keyboard.
‘Conditions’ -> ‘General’ Tab
Service Types
Set the type of service to which the rule applies. The default setting affects all service types.
Transfer Types
Choose the transfer type for which the rule applies. The default setting impacts all transfer types.
Booking Forms
Specify the booking form to which the rule applies. The default setting affects all forms in the system.
Routes
Select the routes for which the rule should be active. The default setting applies to all routes in the system. This option only applies to the ‘Flat rate’ service type.
‘Conditions’ -> ‘Vehicles’ Tab
Vehicles
Select the car(s) to which the rule applies. Not making a selection means the rule applies to all cars in the system.
Vehicle Companies
Choose the companies for which the rule applies. Not making a selection means the rule applies to all companies in the system.
‘Conditions’ -> ‘Locations’ Tab
The conditions set in this tab apply only to two types of services: ‘Distance’ and ‘Hourly’.
Important!
Try to avoid combining ‘Geofence’, ‘Zip-Code’, and ‘Country’ conditions in a single rule to prevent conflicts. The conditions for these tabs do not add up, and the common part is taken into account.
Example 1.
You have selected a Geofence area (e.g. Berlin area in Germany) as the pickup location. At the same time, in the ‘Country’ tab you have set the country Austria as the pickup location. This rule will not work because the indicated areas do not have a common part for pickup location.
Example 2.
You have selected the Geofence area (e.g. Berlin area in Germany) as the pickup location, and you have set Austria in the ‘Country’ tab as the drop-off location. This rule will work. Pickup and drop-off locations may be different and do not have to overlap.
Example 3.
You have entered the ZIP Code of Paris as the pickup location and at the same time you have indicated France in the ‘Country’ tab as the pickup location. This rule will only work when the customer selects Paris as the pickup location and will not work for any other area in France (or anywhere else in the world).
‘Conditions’ -> ‘Locations’ -> ‘Fixed’ Tab
Fixed Pickup Locations and Fixed Drop-Off Locations
Select from the list the existing locations in the system for trip starting and ending (Locations can be created in a separate module called ‘Locations’). Not making a selection means the rule applies to all locations. These conditions work only if the fixed locations are enabled in the booking form.
‘Conditions’ -> ‘Locations’ -> ‘Geofence’ Tab
Pickup Geofence and Drop-Off Geofence
Choose from the list the existing geofence areas in the system (virtual areas representing real geographic regions. Geofence areas can be created in a separate module called ‘Geofence’). Not making a selection means the rule applies worldwide. These conditions work only for non-fixed locations.
‘Conditions’ -> ‘Locations’ -> ‘ZIP Code’ Tab
Pickup ZIP Codes and Drop-Off ZIP Codes
Enter the ZIP codes of the locations. You can enter multiple ZIP codes, separating each with a semicolon. These conditions work only for non-fixed locations.
‘Conditions’ -> ‘Locations’ -> ‘Country’ Tab
Pickup Countries Location and Drop-Off Countries Location
Select the countries for trip starting and ending from the list. Not making a selection means the rule applies worldwide. These conditions work only for non-fixed locations.
‘Conditions’ -> ‘Locations’ -> ‘Other’ Tab
Swap Locations
The ‘Swap Locations’ feature allows you to take into account the reverse direction of configured pickup – drop-off connections when calculating prices. Once activated, the rule will include pairs for both the original pickup and drop-off locations and their inverse counterparts. This option applies to the ‘Fixed’, ‘Geofence’, ‘ZIP Code’, and ‘Country’ tabs.
Example
If you have configured a Paris -> Berlin connection, enabling ‘Swap Locations’ will also include Berlin -> Paris as a condition for this rule to work.
‘Conditions’ -> ‘Date’ Tab
Pickup Dates
Specify the ‘From’-‘To’ date ranges for Pickup by choosing a start date and an end date to define the time frame during which the pricing rule should be activated. You can define multiple date ranges.
Return Dates
Specify the ‘From’-‘To’ date ranges for Return by choosing a start date and an end date to define the time frame during which the pricing rule should be activated. You can define multiple date ranges.
Return/Pickup Date Difference
Set this option for trips that last longer than one day. Enter the number of days that determine how many days after the trip’s start date the pricing rule will be activated. For example, entering ‘0’ means the rule will apply when the pickup and return dates are the same. ‘1’ means the return date is one day after the pickup date, ‘2’ means it’s two days after, and so on.
‘Conditions’ -> ‘Time’ Tab
Pickup Hours
Specify the ‘From’-‘To’ time ranges for Pickup by selecting a start time and an end time to define the time frame during which the pricing rule should be activated. You can define multiple time ranges.
Return Hours
Specify the ‘From’-‘To’ time ranges for Return by selecting a start time and an end time to define the time frame during which the pricing rule should be activated. You can define multiple time ranges.
‘Conditions’ -> ‘Week’ Tab
Day Numbers
Select the days of the week for which the rule applies, regarding the start date of the trip.
‘Conditions’ -> ‘Distance’ Tab
Distance
Specify the ‘From’-‘To’ distance ranges and set per kilometer (or mile) pricing rates for the given range. This setting works only for ‘Distance’ or ‘Flat rate’ type services. Use these fields to adjust the price based on the travel distance:
- ‘From’ field: Enter the starting range of distance in kilometers (or miles, depending on the program settings).
- ‘To’ field: Enter the ending range of distance in kilometers (or miles).
- ‘Price Alter Type’ field: Choose from the list one of the six available price alteration types:
- ‘- Inherited -‘: The price remains unchanged. The rate per kilometer (or mile) is inherited from the vehicle pricing settings in the ‘Vehicles’ module. Leave the ‘Price’ field next to it blank.
- ‘Set value’: Enter the value in the ‘Price’ field, which will be the rate per kilometer (or mile) for this range.
- ‘Increase by value’: Enter the value in the ‘Price’ field by which the rate per kilometer (or mile) will be increased.
- ‘Decrease by value’: Enter the value in the ‘Price’ field by which the rate per kilometer (or mile) will be decreased.
- ‘Increase by percentage’: Enter the percentage value in the ‘Price’ field by which the rate per kilometer (or mile) will be increased.
- ‘Decrease by percentage’: Enter the percentage value in the ‘Price’ field by which the rate per kilometer (or mile) will be decreased.
- ‘Price’ field: Enter a numerical or percentage value, depending on the selected price alteration type. A numerical value represents the price per kilometer (or mile). For example, entering ‘2’ means a price of ‘2’ per kilometer (or mile).
The ‘From’-‘To’ range takes numeric values, the decimal separator is a dot and the smallest step is ‘0.1’. To create ranges from ‘0’ to ‘5’, ‘5’ to ‘10.2’ and above ‘10.2’, you can write them as ‘0’-‘5’, ‘5’-‘10.2’, ‘10.2’-‘9999’.
Important!
The ‘Price’ field is not mandatory. If left blank, the rule will retrieve the price from the ‘Prices’ tab. This allows you to configure multiple ranges while defining the price globally for them in the ‘Prices’ tab. If you want prices from the ‘Prices’ fields to be taken into account after configuring the ranges, go to the ‘Prices’ tab and set the ‘Calculation based on distance’ option in ‘Price source type’ setting.
Important!
Decreasing or increasing the price by a value or percentage (options ‘Increase by’ and ‘Decrease by’) applies to the distance price (‘Per kilometer’ or ‘Per mile’) configured for the vehicle in the ‘Vehicles’ module.
Example
If you choose ‘Set value’ and enter ‘5’ in the ‘Price’ field, it means that for the distance range ‘From’-‘To’, the price will be ‘5’ per kilometer (or mile). By selecting ‘Decrease by value’ and entering ‘2’ in the ‘Price’ field, you decrease the base price per kilometer (or mile) by ‘2’. Choosing ‘Increase by percentage’ and entering ’20’ increases the base price per kilometer (or mile) by 20%.
Distance Between Base and Pickup Location
Similar setting as above, but it pertains to the distance between the company’s base location and the pickup location.
Distance Between Drop-Off and Base Location
Similar setting as above, but it pertains to the distance between the drop-off location and the company’s base location.
‘Conditions’ -> ‘Duration’ Tab
Ride Duration
Specify the ‘From’-‘To’ time ranges and set per kilometer (or mile) pricing rates for the given range. Use these fields to adjust the price based on the travel time:
- ‘From’ field: Enter the starting time range in the format HHHH:MM (hours:minutes).
- ‘To’ field: Enter the ending time range in the format HHHH:MM (hours:minutes).
- ‘Price’ field: Enter a numerical value. The numerical value represents the price per kilometer (or mile). For example, entering ‘2’ means a price of ‘2’ per kilometer (or mile).
Important!
The ‘Price’ field is not mandatory. If left blank, the rule will retrieve the price from the ‘Prices’ tab. This allows you to configure multiple ranges while defining the price globally for them in the ‘Prices’ tab. If you want prices from the ‘Prices’ fields to be taken into account after configuring the ranges, go to the ‘Prices’ tab and set the ‘Calculation based on duration’ option in ‘Price source type’ setting.
‘Conditions’ -> ‘Passengers’ Tab
Passengers Number
Enter the number of passengers ‘From’-‘To’ as a rule condition. This condition applies only when the option to define the number of passengers is enabled in the booking form settings (‘Booking Forms’ menu, ‘General’ -> ‘Passengers’ Tab).
‘Prices’ Tab
In the ‘Prices’ tab, you determine changes in different types of prices.
Price Source Type
Select one of the nine available settings from the list:
- ‘Set directly in the “Prices” tab’: The rule considers prices defined only in this tab (‘Prices’) and ignores prices specified in the ‘Conditions’ tab.
- ‘Calculation based on distance (all ranges)’: The rule takes into account prices from the ‘Conditions’ -> ‘Distance’ tab, ‘Distance’ option, and ignores prices specified in this tab. The rule calculates the average price per kilometer (or mile), taking into account all ‘From’-‘To’ ranges. The calculated rate per kilometer (or mile) is then multiplied by the total distance and constitutes the final price.
- ‘Calculation based on distance (exact range)’: The rule considers prices from the ‘Conditions’ -> ‘Distance’ tab, ‘Distance’ option, and ignores prices specified in this tab. The rule checks if there is a matching range, ‘From’-‘To’, and if found, applies the price per kilometer (or mile) from the ‘Price’ field next to that range.
- ‘Calculation based on duration (all ranges)’: The rule takes into account prices from the ‘Conditions’ -> ‘Duration’ tab, ‘Ride Duration’ option, and ignores prices specified in this tab. The rule calculates the average price per hour, taking into account all ‘From’-‘To’ ranges. The calculated rate per hour is then multiplied by the total ride duration and constitutes the final price.
- ‘Calculation based on duration (exact range)’: The rule considers prices from the ‘Conditions’ -> ‘Duration’ tab, ‘Ride Duration’ option, and ignores prices specified in this tab. The rule checks if there is a matching range, ‘From’-‘To’, and if found, applies the price per hour from the ‘Price’ field next to that range.
- ‘Calculation based on distance between base and pickup location (all ranges)’: Similar to ‘Calculation based on distance (all ranges)’, but it calculates the average price per kilometer (or mile) from the ranges in the ‘Distance between base and pickup location’ option in ‘Conditions’ -> ‘Distance’ tab.
- ‘Calculation based on distance between base and pickup location (exact range)’: Similar to ‘Calculation based on distance (exact range)’, but it checks for a matching range in the ‘Distance between base and pickup location’ option in ‘Conditions’ -> ‘Distance’ tab.
- ‘Calculation based on distance between drop-off and base location (all ranges)’: Similar to ‘Calculation based on distance (all ranges)’, but it calculates the average price per kilometer (or mile) from the ranges in the ‘Distance between drop-off and base location’ option in ‘Conditions’ -> ‘Distance’ tab.
- ‘Calculation based on distance between drop-off and base location (exact range)’: Similar to ‘Calculation based on distance (exact range)’, but it checks for a matching range in the ‘Distance between drop-off and base location’ option in ‘Conditions’ -> ‘Distance’ tab.
Booking Sum Type
Choose the method of calculating the price. The ‘Variable’ option means that the price is variable, calculated based on various parameters. The ‘Fixed’ option means that parameters such as distance, number of passengers, time, have no impact on the price. It is fixed within the rule and is the total price. If you select ‘Fixed’, define the ‘Fixed’ price values below in the pricing table.
Prices
Define prices in the table that will be applied by this pricing rule. Please remember that the prices defined here will be considered only when the ‘Price Source Type’ option is set to ‘Set directly in the “Prices” tab’.
Important!
If you don’t intend to change a particular price, choose ‘- Inherited -‘ in the ‘Price alter’ column instead of ‘Set value’. Leaving the ‘Set value’ option with a value of ‘0’ may result in zeroing out certain price types in your configuration.
‘Options’ Tab
Next Rule Processing
This setting defines the program’s behavior after executing this pricing rule. Setting the option to ‘Enable’ means that after executing this rule, the program will check if there are other matching pricing rules, and if so, it will activate the rule with the highest ‘Order’ parameter value. Setting the option to ‘Disable’ means that after executing this rule, no further rules will be executed (at this rule level).
If you have more than one pricing rule in your configuration, try to assign each of them an ‘Order’ value (in the ‘Post Attributes’ menu and the ‘Order’ field on the right side of the page). A higher value means that a rule has a higher priority, so a rule with an ‘Order’ value of ’99’ will be executed before a rule with an ‘Order’ value of ’98’. In combination with the ‘Next Rule Processing’ option, you can set the order of rule execution and determine when rule processing ends.
Rule Level
Allows for hierarchical grouping of pricing rules. Rule levels are the so-called levels of rule execution. If they are used, the system first executes the rules at the highest level, i.e. ‘9999’, then ‘9998’, etc. down to the level ‘-9999’. If you use rule levels (and this is unnecessary in most cases), the system first looks for a matching rule at the highest level, taking into account the ‘Order’ parameter of this rule. If it finds such a rule, it applies the prices defined in it, then checks the ‘Next Rule Processing’ setting of this rule. If ‘Enable’ is set, it looks for the next matching rule at the same level. If the value ‘Disable’ is set, it stops searching rules at this level and goes down one level. At the lower level, the entire procedure for executing the rules is repeated.
Good to Know
Setting ‘Disable’ in the ‘Next Rule Processing’ option means that the program stops executing rules at a given level. If you use rule levels in your configuration, at least one rule will be executed at each level.
Minimum Order Value
Enter the minimum acceptable order value, greater than ‘0’. If the calculated fare for a trip falls below this threshold, the plugin automatically rounds it up to meet the minimum requirement. For example, if the fare for a trip is ’15’, and the ‘Minimum Order Value’ is set to ’50’, the plugin will round the order value to ’50’.
This option has three additional settings that allow you to include or exclude the prices of booking extras, extra time, and waypoints in the minimum order value calculation.
Example 1.
The ‘Minimum Order Value’ has been set to ’50’. The option taking into account the price of extras has been disabled. The client ordered a trip, its fare cost is $17, and the cost of selected extras is $75. With this setting, the plugin will first round the fare to $50 and then add the value of the extras ($75) which will give the total price of $125.
Example 2.
The ‘Minimum Order Value’ has been set to ’50’. The option taking into account the price of extras has been enabled. The client ordered a trip, its fare cost is $17, and the cost of selected extras is $25. With this setting, the plugin will first add both prices together (fare cost + selected extras cost) and as a result, the price ($42) will be rounded, which will give the total price of $50.
Important!
When rounding prices, the plugin incorporates the Initial Fee value, which complements the total price. For instance, if the fare is ’40’ and the minimum price is set to ’50’, the Initial Fee will be ’10’. When configuring the ‘Minimum Order Value’, ensure to utilize the ‘Hide Fees’ option found in the ‘Booking Forms’ menu under the ‘General’ -> ‘Prices’ tab. More details about the ‘Hide Fees’ option can be found in the article Including Initial Fee in Pricing Calculation.
Custom Vehicle Selection
This option allows you to change the behavior of the ‘Select’ button when choosing a vehicle on the step #2 of the reservation form. You can modify the label and URL address and apply automatic redirection to the specified URL when transitioning to the step #2 of the form. For example, you can redirect the customer to a contact form based on price rule conditions (e.g., for distances > 1000 km) or, for example, you can create a rule based on the Geofence area and when it is met, you can redirect the customer to a form for an individual quote.
Example Applications
- Fixed Base Rate for the First 10 km, Incremental Rate Beyond
- Including Initial Fee in Pricing Calculation
- Variable Rate per Distance for Different Distance Intervals
- Average Rate per Distance for Different Distance Intervals
- Fixed Rate for a Specific Distance Range
Summary
Document version: 1.5
Last updated: May 17, 2024
Plugin version: 7.3+