Introduction
This calculator applies a price (typically a discount) based on the landing history of an aircraft, registration group, or operator with the FBO.
The calculator counts how many landings were handled by the FBO and applies a discount when the count falls within a specified range. By default, each order counts as 1 landing, but this can be extended to count additional landings (e.g., touch and gos) and exclude certain arrivals (e.g., NOLAND exceptions).
Settings
Core Settings
From (int). Eg: From=5;
The minimum number of prior landings (inclusive) for the quantity to be 1. If the count of prior landings is between From and To (inclusive), the quantity is 1; otherwise 0. Supports From=0 and To=0 for first-time customer discounts.
To (int). Eg: To=10;
The maximum number of prior landings (inclusive) for the quantity to be 1. Can be calculated from a custom property if not specified (see RegistrationCountCustomProperty or OperatorCountCustomProperty).
StartDate (datetime). Eg: StartDate=01Jan2013;
The start date for counting prior orders. Can be:
- An absolute date: StartDate=01 Jan 2022
- A relative date expression: StartDate=StartOfDay(), StartDate=StartOfMonth("+2m")
The date is converted to UTC using the handling station's timezone. If the value cannot be parsed, an exception is thrown.
EndDate (datetime). Eg: EndDate=StartOfMonth("+1m");
The end date for counting prior orders. If not specified, the current order's arrival date is used. Can be:
- An absolute date: EndDate=12Feb2022
- A relative date expression: EndDate=StartOfDay("+1d"), EndDate=EndOfMonth()
The date is converted to UTC using the handling station's timezone. If specified but cannot be parsed, an exception is thrown.
Grouping Settings
RegistrationGroupCustomProperty (string). E.g.: RegistrationGroupCustomProperty=Free landings group;
Custom property code on aircraft registration that defines a shared group. All registrations with the same group value share their landing counts. For example, all NetJets aircraft can share the same count.
RegistrationCountCustomProperty (string). E.g.: RegistrationCountCustomProperty=Free landings;
Custom property code on aircraft registration containing the number of free landings (used as the "To" value). When set, the To value is calculated as this number minus 1.
OperatorCountCustomProperty (string). E.g.: OperatorCountCustomProperty=Free landings;
Custom property code on operator contact containing the number of free landings (used as the "To" value).
OperatorGroupCustomProperty (string). E.g.: OperatorGroupCustomProperty=Operator group;
Custom property code on operator contact that defines a shared group. All operators with the same group value share their landing counts.
Landing Count Settings
AdditionalCountCustomProperty (string). E.g.: AdditionalCountCustomProperty=Touch And Gos;
Custom property code on order containing additional landings to add to the count. For example, if an order has "Touch And Gos" = 3, that order counts as 4 landings (1 arrival + 3 touch and gos). Value must be an integer; blank or invalid values are treated as 0.
ExcludeWhenCustomProperty (string). E.g.: ExcludeWhenCustomProperty=Exception;
Custom property code on order to check for exclusion values. Used together with ExcludeWhenCustomValues.
ExcludeWhenCustomValues (string). E.g.: ExcludeWhenCustomValues=NOLAND,OVERFLIGHT;
Comma-separated list of values that exclude the arrival from counting. When an order's ExcludeWhenCustomProperty matches one of these values, the base landing count is 0 instead of 1. Additional counts (touch and gos) still apply. Matching is case-insensitive.
Priority Order
The calculator checks in this order and uses the first match:
- Registration Group - If RegistrationGroupCustomProperty is set and aircraft belongs to a group
- Operator Group - If OperatorGroupCustomProperty is set and operator belongs to a group
- Individual Operator - If OperatorCountCustomProperty is set and operator has a count value
- Individual Registration - Default fallback, counts by aircraft registration only
Landing Count Calculation
For each prior order the landing count is calculated as:
- Base landing: 1 (or 0 if excluded by ExcludeWhenCustomValues)
- Additional landings: Value from AdditionalCountCustomProperty (or 0 if blank/invalid)
- Total per order: Base + Additional
Scenarios:
- Normal order: 1 base + 0 additional = 1 landing
- Order with 3 touch and gos: 1 base + 3 additional = 4 landings
- NOLAND order: 0 base + 0 additional = 0 landings
- NOLAND order with 3 touch and gos: 0 base + 3 additional = 3 landings
Examples
Example 1: Basic Frequent Customer Discount
Apply 5% discount to customers with 5-10 prior orders since Jan 2013.
Calculator Settings:
Example 2: Tiered Discounts
- 5% discount for 5-10 prior orders
- 10% discount for 11+ prior orders
Product 1 (5% - Silver):
Example 3: With Touch And Gos
Count touch and gos as additional landings. An order with 3 touch and gos counts as 4 landings.
Calculator Settings:
Scenario:
- Order 1: Normal arrival = 1 landing
- Order 2: Arrival + 3 touch and gos = 4 landings
- Order 3: Normal arrival = 1 landing
- Total: 6 landings
Example 4: With NOLAND Exception
Exclude arrivals marked as NOLAND but still count touch and gos.
Calculator Settings:
Example 5: Registration Group with Free Landings
Share landing counts across a fleet (e.g., all NetJets aircraft) with configurable free landings per group.
Setup:
- Create custom property "Free landings group" on Aircraft Registration
- Set value "NETJETS" on all NetJets registrations
- Create custom property "Free landings" on Aircraft Registration
- Set value "20" on one registration in the group
Calculator Settings:
Example 6: Registration Group with Touch And Gos
Combine registration groups with touch and go counting.
Calculator Settings:
Example 7: First-Time Customer Discount
Apply discount only to first-time customers (0 prior orders).
Calculator Settings:
Example 8: Date Range with Relative Dates
Count orders from start of current month to end of current month.
Calculator Settings:
Suppose you would like to apply a 5% discount to clients having a history of 5 to 10 handling orders from 1 Jan 2013 until present.
To achieve this you could create a product called 'Frequent Customer Discount Ivory' and select this calculator with settings as following:
From=5; To=10;StartDate=01Jan2013
This settings will apply a discount starting with the 6th order up to the 11th order inclusive. This is because with the 6th order, the system contains already 5 prior orders and with the 11th order, the system would have 10 other orders. So the interval specified in the calculator settings would match.
Moreover, you need to set a price agreement with a percentage price of 5%.
Lastly, add the product as a child to your Handling Product as Always Auto-Add.
As a result, for the 6th order up to the 11th order (on the same registration), the customer will get a 5% discount.
Example 10:
In case you need to apply a different discount to customers with more than 10th orders, suppose 10% discount, you should create a second product, 'Frequent Customer Gold', with calculator settings From=11; To=99999;StartDate=01Jan2013.
and a price agreement with 10%.
The result should be that starting with the 12th order and more, the 10% discount product applies.
Example 11: Example with EndDate Specified
Eg: Apply a 10% discount for clients who have between 3 to 6 handlings with us between 01 Jan 2022 & 03 June 2022
To achieve this follow the steps from example 1 but in the config string section add the EndDate parameter as shown below:
From=3; To=6;StartDate=02Jan2022; EndDate=03June2022; or for a time span EndDate=StartMonth("-1m");
These settings will apply a discount from the 4th order to the 7th between the two dates
Additional examples
Settings for frequent customer discount (2-5 prior orders):
Scenario 2: Customer does not qualify
- Registration: PH-ABC
- Prior orders: 1 order
- Calculation: 1 is not between 2 and 5
- Result: Quantity = 0 (no discount)
Scenario 3: First-time customer discount
- Settings: From=0; To=0; StartDate=01 Jan 2022
- Prior orders: 0 orders
- Calculation: 0 is between 0 and 0 (inclusive)
- Result: Quantity = 1 (first-time discount applies)
Scenario 4: With EndDate interval
- Settings: From=1; To=4; StartDate=01 Jan 2022; EndDate=StartOfMonth("+2m")
- Registration: PH-ABC
- Prior orders between 01 Jan 2022 and start of month + 2 months: 3 orders
- Calculation: 3 is between 1 and 4
- Result: Quantity = 1
Scenario 5: With specific EndDate
- Settings: From=1; To=4; StartDate=01 Jan 2022; EndDate=12Feb2022
- Registration: PH-ABC
- Prior orders between 01 Jan 2022 and 12 Feb 2022: 2 orders
- Calculation: 2 is between 1 and 4
Result: Quantity = 1
Displaying Landing Count
To show the calculated landing count on an order, create a custom value with a formula (ask FBO One Support to do this for you):
Comments
0 comments
Please sign in to leave a comment.