The core business of an FBO is selling and re-selling products and services. Much of the power of FBO One comes from its sophisticated pricing module.
The pricing module for FBO One is designed to keep simple price lists simple and to keep complex price structures organized.
- Orders in FBO One
- Master data - Products and Price Agreements
- Price agreements
Orders in FBO One:
Orders in FBO One are structured as follows:
A Handling in FBO One serves as a comprehensive record for tracking information related to an aircraft's arrival and subsequent departure. While the system allows for flexibility, certain simplifications can be applied by utilizing a customized workflow. It's important to note that most of the information within a handling is optional, accommodating various scenarios.
Even for a simple transaction like an over-the-counter sale of a product, such as a can of oil, a handling is still created. However, in such cases, the handling may not include any specific references or require flight-related information. Instead, it follows a streamlined workflow tailored for over-the-counter orders.
Think of handling orders as projects specifically designed to manage the arrival, parking, and departure processes for an aircraft. By organizing information within a handling, FBO One enables efficient tracking and management of all relevant tasks and activities associated with aircraft operations.
Each handling in FBO One can have one or more orders associated with it. An order represents a collection of items that are to be paid for by a specific customer. While a handling typically has a single order, multiple orders may be necessary in certain cases.
One common scenario is when different items need to be charged to different customer accounts. For example, fuel may be paid for by a fuel broker, so it is placed on a separate order, while other services, such as ground handling equipment rental, remain on the primary order.
Secondary, related orders serve various purposes, including:
Credit orders: These are used to refund incorrectly charged services from a previous order.
Follow-up orders: They are created to charge for services that couldn't be included on earlier paid or invoiced orders.
By utilizing secondary orders, FBO One allows for better organization and accurate billing of services tailored to specific customer accounts.
Orders contain references to:
- The paying customer's account; the Debtor
- The current status in the workflow.
Order workflows are divided in three stages: Quote → Open in Front Office Operations → Back Office Accounting. For each stage, one or more states can be defined.
For an aircraft handling workflow for a VIP flight with a prior reservation, an example of the workflow is:
- Open Quote (Quote stage)
- Confirmed handling request (Front office)
- Arrived (Front office)
- Checkout completed (Front office)
- Departed (Front office)
- Awaiting invoice approval (Back office)
- Invoiced (Back office)
- Open (Front office)
- Checkout completed (Front office)
- Invoiced (Back office)
Each order has a list of order lines. These are also casually referred to as services. Order lines come in three categories: Chargeable Services, Headers, and Price Components.
Chargeable services are charges on the order for real products and services provided.
In the example above, lines 1 and 2 are both chargeable services. They have an Amount that adds up toward the order's grand total.
Headers are for grouping services.
Headers in FBO One serve a cosmetic purpose and do not affect the total of an order. The Amount column for a header is always blank. The order lines below each header, known as children, are indented on the receipt, creating a tree-like structure similar to a family tree.
It's important to note that the Unit Price column of each header displays the subtotal of its children. This subtotal is used as input for calculating the disbursement fee, which is associated with the Third Party Services.
Price components are used in FBO One to break down complex prices into simpler parts. They allow for structuring prices and are often used for defining fuel prices.
For example, the disbursement fee mentioned on line 6 in the example covers the costs incurred by the FBO for collecting catering and ground transport charges and disbursing these amounts to the suppliers. The fee, which is 15% of all third-party services, is considered a price component. It is a child of the Third Party Services header line.
One key distinction between chargeable services and price components is that chargeable services can be added independently to an order and can be moved between orders. In contrast, price components are always created for a specific parent and are moved only together with that parent.
This is commonly used to define fuel prices.
The JET A UPLIFT in line 2 has a tree of price components. Because it has this breakdown, chargeable services such as the JET A UPLIFT are commonly called group-products.
Tailoring orders for different audiences:
FBO One displays and prints orders differently based on the intended audience:
- In-house pricing managers and billing staff view the 'Expanded Receipt' that includes all price components.
- Captains and pilots receive a 'Receipt' for onsite order sign-off and payment processing. Price components can be collapsed into a single line, known as collapsing a tree.
- If certain services on the receipt will be paid by a third-party broker, the unit price and amount for those services are hidden, displaying 'Contract' instead.
- Front office customer service representatives, with 'view pricing' permission, can view the 'Receipt' but access is restricted to prevent unauthorized staff from accessing price agreements.
- Clients receiving an invoice have the invoice generated in the back office. The invoice displays lines in the same format as the order's receipt. Lines not intended for the debtor are moved to a separate order invoiced to the broker.
- Invoices issued to third-party brokers for fuel or services at a contracted price show the broker's contract prices and payable amount.
- Processors of electronic payments receive an electronic receipt called the 'Online Payment' audience. It contains the same information as the regular receipt. Product names may be mapped to meet payment processor requirements. Contract prices are excluded, and only quantities are specified. Contract prices are maintained separately for generating a broker-invoice in the back office for validation and reconciliation of wire-transfer payments.
These variations cater to different stakeholders and their specific needs within the FBO One system.
Master data - Products and Price Agreements:
The handlings and orders in FBO One are generated day to day; they represent the business transactions taking place at the FBO.
In order ensure that creating orders is simple, FBO One is setup with so-called master data. The master data is an umbrella-term for all entities and records that don't change on a daily basis, and that provide the structure for the various types of handlings, orders and order lines.
For understanding pricing in FBO One, the following master data types are most relevant.
Product and local product:
Each order line in FBO One corresponds to a specific local product. These products, such as JET A UPLIFT, HANDLING FEE, and DISCOUNT, are identified by a unique product code, typically written in capital letters and kept concise. The product code is displayed on the screen and used for selection in the Add Service menu. Additionally, products have descriptions that appear as the order line's Product text on the receipt. This dual representation allows for different products to be selected by internal staff while presenting a single description to the client.
Products possess properties and settings that define their type, unit of measure, appearance, grouping, and unit price.
It is possible to share products across multiple FBO locations as long as these locations are managed under the same back-office administration. To activate a product for a specific FBO location, a local product must be created, associating the product with that particular location. The local product inherits the properties and settings of the global product but can be customized on a per-location basis. For example, localized properties include the accounting ledger code and the description displayed on the receipt.
Determining whether to create independent products for each location or use a single product shared between locations requires careful consideration. In cases where locations are in close proximity and managed by closely cooperating teams, maintaining a smaller number of products can be advantageous and ensure consistency across all FBOs. However, when there is less coordination between FBOs, it is generally recommended to keep the products completely separate. This reduces the risk of unintended interference between FBOs when making changes specific to one location.
Please note that the decision regarding product organization should be based on the specific requirements and operational structure of the FBOs involved.
Orders in FBO One can have default products automatically added based on the auto-add list. This list includes products like Parking charges, Jet A uplift, and Avgas uplift. Each auto-add product has filter criteria that determine when it should be applied. For instance, a Jet A uplift product may have a filter set for aircraft fuel type as jet fuel.
The auto-add products are continuously evaluated whenever an order is updated. This means that existing order lines may be automatically removed, and new ones may be added over time. For example, if the aircraft registration changes from one that requires jet fuel to one that needs Avgas, the Jet A uplift service will be removed, and the Avgas service will be added.
For group products that have a hierarchy of price components, each child product can be flagged as auto-add. This allows for automatic inclusion of price components when adding the group product to a new order.
When a product is a child of a header product, the header line will be automatically added to the order when any of its child products are included. If the header product has price components, such as third-party disbursement fees, they will also be auto-added and auto-removed along with their parent product.
Orders are recalculated on every change. During recalculation prices are applied to each order line and the quantity may be updated. For example, the number of hours parked for a Parking charges service will be updated based on the most actual on- and off-blocks times, and the price will be looked up based on the parking category used, such as outside parking or hangar.
All lines on the order are recalculated in turn:
- Refresh the applicable auto-add services
- Refresh placement of any fuel-additive lines
- Additives to fuel (Prist) may need to be moved from their current order to a related order; it is not always allowed to charge Prist together with fuel. This is specified in the contract of the debtor.
- Group all order lines by the product's assigned priority.
- Usually, all products have the same priority value 0. For calculating surcharges to the overall order, such as a credit card fee, it is useful to have the fee assigned a higher priority. This ensures that the credit card fee is calculated after the regular charges, and therefore the fee can be based on the amounts of the services calculated before it.
- For each group, go over each of the order line trees
- For each order line in the tree, calculate the unit price, quantity and amount
- First calculate the order lines that have a price that is independent of the subtotal of their parent
- Then calculate line lines that are relative to the subtotal of its parent - a line that reflects a 15% discount for example.
- For each order line in the tree, calculate the unit price, quantity and amount
Recalculating each line involves:
- Calculate the quantity
- The default quantity for an auto-add product is specified in in the auto-add product list. For manually added products, the user has to enter the quantity when adding the product to an order. The quantity can be automatically calculated by assigning a calculator to the product. There are calculators for calculating the duration of parking, duration of equipment used, credit card fees, and aircraft weight related fees.
- Calculate the unit price
- When a product has no applicable price agreements, the unit price on the order line will remain blank. This is fine for headers, group products, and products marked as IsTaskWithoutPrice. For other products, the unit price column will display 'To follow' and the user will need to specify the price manually. In the product, a formula can be specified to override the unit price based on the applicable price agreement and properties of the aircraft.
- Calculate the amount
- The amount is always equal to quantity * unit price
- In case value added tax (VAT) applies, lookup the applicable VAT rate and calculate the VAT amount
For each of the above steps, FBO One provides default behavior.
Unit prices in FBO One are defined for each local product. The common name for these unit price specifications is price agreement.
Introduction by example: handling with a discount
Suppose we create orders with a handling fee, and the handling fee can have a discount that needs to be presented as a child of the Handling fee line. For this setup, we create the Handling fee and Discount products, and set up the discount to be an automatically added child product of the Handling fee.
Before price agreements are defined, the receipt will show like this:
To create a default price of $200 for the handling fee, we create a price agreement as follows:
To set a default discount of 10%, we create a price agreement that specifies the percentage and that specifies that it applies only where the Discount is used as child of the Handling fee product. This allows us add the discount as a child to another product later on, and to be able to specify a different price or percentage there.
The overall list of price agreements will therefore be as follows:
Based on the above price agreements, the order will recalculate as follows:
Unit price lookup
To find the applicable unit price for an order line, the order calculator looks through the list of price agreements in the following sequence.
- Sort the price agreements. The most specific price agreements are on top of the list. This sort order is also applied when displaying price agreements, in a Product page or in the Administration | Price Agreements page.
- Price agreements have filter criteria that determine when they are valid. Filter properties include for example the debtor, aircraft registration, origin and destination of the aircraft, and the order line quantity. The more specific the filters for a price agreement, the higher it will be in the list.
- Look for a unit price. Starting from the top of list, the first price agreement is taken that has a unit price and that matches all filter properties.
- Look for a percentage. Again, starting from the top of list, the first matching price agreement is taken.
- If only a unit price is found, then that will be the resulting unit price. This is the case for the Handling fee line in the example above.
- If only a percentage is found, it will be multiplied by the Amount calculated for the parent order line. This how the Discount line in the example is calculated.
- If both a unit price and a percentage are found, they will be multiplied and returned as the resulting unit price. This allows for setting surcharges or discounts expressed as a percentage over the standard rate, without having to create a separate product and child order line.