Pricing Rules, Pricing Actions, Pricing Controls and Pricing Extensibility are the key pricing concepts.
- Pricing Rules: Pricing rules are the pricing policy or terms associated to customer or product hierarchy. Oracle Advanced Pricing allows you to associate pricing actions to a group or a level of group to which a customer belongs. You can also base pricing rules on order or line volume. Pricing rules govern who becomes eligible for a specific price.
- Pricing Actions: Pricing action are specific pricing activities that applies to an order, order line or multiple lines. Pricing action enables to populate a list price, price adjustments and selling price on the sales order. Pricing actions relates to pricing objects like price list, modifier, formulas and agreements.
- Pricing Controls: Pricing control controls how the pricing actions are applied. You may achieve pricing controls using effective dates on price lists, modifiers, and agreements. You can also achieve pricing controls by defining what pricing phase the actions be applied. The pricing phases can map to various activities during order entry and processing. There are many other ways to control pricing.
- Pricing Extensibility: Pricing needs is very different from organizations to organization. Oracle Advanced Pricings provides the flexibility to its users to accommodate industry specific pricing requirements by using its attribute mapping functionality and a set of pricing APIs.
Oracle pricing engine determines the selling prices for products and services. It provides answers to the following questions:
- Who qualifies for prices and benefits?
- What is the item or service, which is being priced or modified?
· How do we adjust the order price or the order line price?
How Pricing Works
Oracle Advanced Pricing prices any transaction by first identifying a list price. Price list contains the list price. The pricing engine determines whether the price found on the price list must adjust. Modifiers control the amount of these adjustments, and can modify a price by either giving a discount or adding a surcharge. Once the pricing engine has selected one or more modifiers that adjust the price, it computes the final selling price.
Pricing Engine, Qualifiers, Attribute Mapping, Price Lists, Modifiers and Formulas are the various pricing components.
The Pricing Engine selects the appropriate price list and adjusts the price by the applicable modifiers, based on the Pricing Engine inputs
Price lists: Price List contains price for items and/ or services. For example: Corporate Price List, Winter Promotion Price List.
Modifiers: Determines how the eligible Pricing Request or Pricing Request line be adjusted. For example: Discounts, Surcharges, Coupon Issue, Item Upgrade, Terms Substitution, Freight Charge, Promotional Goods.
Inputs to the Pricing Engine are:
Pricing Qualifiers: The pricing qualifiers determine who is eligible for a price or modifier list. For example: Order Type, Customer Class, Customer Site, and Customer Name.
Pricing Attribute: The Pricing Attribute determines what is being priced or modified on a price or modifier list. For example: Item Category, Product Brand, Location, Distance, Age, and Volume.
The Final Price is the extended price, which is equal to the original price on the price list minus any eligible discounts, plus any other applicable surcharges or promotions.
With Oracle Pricing, you can define the price lists and modifiers to be very specific, generic or any combination in between. For example:
Price List A is for Product X and applicable for Customer ABC.
Price List B is for All Products and applicable for All Customer.
Price List C is for all products belonging to Item Category A and B and applicable for All Customers.
The Pricing Engine takes the pricing request from the calling application, selects the applicable price lists and modifier lists and determines the base list price. It then calculates the final selling price by applying the benefits and surcharges from the modifier lists to the base list price.
Pricing Engine consists of two engines:
Search Engine: The search engine uses the qualifiers and pricing attributes passed from the calling application to select the price list lines and the modifier list lines that may apply to the pricing request. As part of this process, the search engine uses rules of eligibility, incompatibility, exclusivity, and precedence.
For each pricing phase the search engine executes the following functions:
· Selects eligible price list lines and modifier list lines using predefined pricing rules
· Resolve incompatibilities among eligible benefits
· Applies the eligible benefits to the pricing request
Calculation Engine: For each pricing request line and its associated pricing request line details, the calculation engine calculates the base price, adjusted price, and extended price.
Qualifiers decide who are eligible to receive benefits (discounts/ surcharges). Qualifiers can be associated to the Modifiers and Price Lists to define rules that govern who is eligible to receive a specific price, promotion, discount or benefit. There are a set of seeded basic qualifier contexts and associated qualifier attributes for use.
Examples of Qualifiers:
You can tie qualifiers to modifiers both at the list or/ and line level. This enables to restrict the eligibility for a list or group of modifier lines. For example if an order is not eligible for a modifier list, it is not eligible for any of the line level modifiers on the list, even if the lines have qualifiers for which the order is eligible.
You can create complex qualifier sets consisting of multiple qualifiers that are evaluated together in ‘AND’ and ‘OR’ relationships. You can define qualifier groups, which comprises of multiple qualifiers tied together in ‘AND’ and ‘OR’ relationships. For example: Customers must belong to VIP class and order amount must be within the range, $5000 to $9000 or Order Type must be Special Order. You can link qualifier groups to price lists and modifiers to define rules governing who can receive a particular price, discount, promotion or benefit.
With Attribute Mapping, Oracle Advanced Pricing provides the capability to refer to non-seeded (not delivered out-of-box) data elements and attributes.
Attribute Mapping controls what the pricing engine:
With Advanced Pricing, you have the capability to access your pricing related business specific data and use it according to your pricing rules. You may be capturing some data critical for you business on the customer record which demands a special pricing or a promotion. You can use flexfields on the customer record to enter these data. In turn, you can define these flexfield values as qualifiers for your discounts, surcharges and promotions.
Some typical examples where you could use the attribute mapping functionality
Define a qualifier based on the total order value since the beginning of the current calendar year. If total order value exceeds $10,000 customer gets 5% additional discount.
Define your own customer classifications in addition to the standard groupings that Oracle provides. You use these groups to control pricing; if a customer belongs group A, the customer receives a 15% discount or if the customer belongs to group B then that customer receives a 10% discount
Define a qualifier like if today is last day of the month then receive 5% discount.
Define an additional element in the product hierarchy to give discounts based on the brand of the product.
Price lists are critical to ordering products because each item entered on an order must have a price. Each price list contains basic list information and one or more pricing lines, price breaks, pricing attributes, qualifiers, and secondary price lists. Price lists contain prices and currencies associated with products and services.
Prices on the price list can be:
An absolute value
Derived from a formula
Either a positive or negative value
You may define prices that apply to the entire organization or be specific for a single operating unit. Price lists can have a start and end date. This gives an opportunity to create price lists in advance of when they need to be effective. Users cannot use these price lists on sales orders until their effective start dates. The pricing engine allows the use of secondary price lists. If an item appears on both the primary and a secondary price list with the same effective dates, the pricing engine uses the primary price list to price the item. If an item does not exist on the primary price list, the pricing engine uses the secondary price list. If an item appears on the primary price list but the effective end date has passed, the pricing engine uses the price on the secondary price list.
Oracle Pricing enables price list maintenance several ways:
Manually adding lines to the price list
Copying price list lines from one price list to another
Adding a new group of inventory items to a price list by specifying a range
Adding a new group of inventory items to a price list by specifying an item category
Adjusting the price of all items on the price list by an amount or percentage
Adjusting the price of items belonging to a category or a range of items by an amount or percentage
Modifiers enable to setup price adjustments, benefits and freight and special charges that the pricing engine applies immediately to pricing requests or accrues for later disbursement.
Examples of price adjustments: discounts and surcharges. Examples of benefits: free goods, coupons and product upgrade.
Modifiers can be defined to be automatic or manual. Automatic modifiers apply automatically to the order or order lines based on the eligibility rules defined. Manual modifiers need the user to manually associate to any applicable order or order line. You can create ask for promotions or deals, the pricing engine does not apply these modifiers unless the customer asks for them. At order entry, one must reference such modifiers to apply them. You can define modifiers to be incompatible, if you do not want the pricing engine to apply them to an order or order line in combination with other modifiers.
Using modifiers, you can:
Setup a modifier list with multiple modifier lines
Define modifiers with or with out override capability
Create eligibility rules for modifiers by assigning list and line level qualifiers
Define modifiers that are incompatible with other modifiers
Create exclusive modifiers
Create cascading modifiers
Accrue monetary and non-monetary benefits
The following are the modifier list types supported in Oracle Advanced Pricing:
For each list type that you define, you can associate certain line types. The available line types are:
Discount: Creates a negative price adjustment.
Surcharge: Creates a positive price adjustment.
Freight charge: Creates a freight charge.
Item upgrade: Replaces a specific item ordered with another item for the same price.
Terms Substitution: Term Substitution replaces freight charges, shipping charges, and payment terms with charges that are more favorable.
Other item discount: Gives a price adjustment or benefit to a specified item on an order when the customer orders one or more other items on the same order.
Promotional goods: Adds a new item with a price adjustment or benefit when the customer orders one or more other items on the same order.
Figure below illustrates the Process flow, Events and the various associated Pricing Phases:
Note: Events are points in the process flow of the calling application at which it sends a pricing request to the pricing engine. The information that the pricing engine returns, for example, base prices, price adjustments, promotions, or freight charges, depends on the pricing phases of the event.
Pricing phase controls which price lists and modifiers, the search engine would consider and in what sequence they apply to the pricing request.
Figure below illustrates Pricing Events mapping to the respective Pricing Phases:
ENTER ORDER LINE 0 LIST LINE BASE PRICE
1 LIST LINE ADJUSTMENTS
BOOK ORDER 2 ALL LINE BASE PRICE
3 ALL LINE ADJUSTMENTS
4 HEADER LEVEL ADJUSTMENTS
REPRICE ORDER 2 ALL LINE BASE PRICE
3 ALL LINE ADJUSTMENTS
4 HEADER LEVEL ADJUSTMENTS
Formulas are mathematical expressions that the pricing engine uses to determine the list prices of items and the discounts that apply to these items. Pricing Formulas enables the pricing engine to determine item prices based on a combination of price list, numeric constant, pricing attribute, factor list and customizable function. Using Pricing Formulas, you can:
Create a price by computation as an alternative to entering prices in a price list
Calculate a price adjustment. For example, you can instruct the pricing engine to calculate a discount by attaching a formula to a discount line.
You may link formulas to either a price list line or a modifier line. Formulas associated on the price list line could be dynamic or static.
Dynamic Formula Calculation: Pricing engine uses the formula to calculate list price at the time of order entry.
Static Formula Calculation: You need to execute a concurrent process before order entry, which calculates the list price.
Examples of some of the common discount scenarios used in the industry that can be easily set up using the advanced pricing module:
Any customer, who purchases 10 – 30 units of item ‘A’, gets a 10 % discount.
Any customer purchasing 50 and above units of item ‘B’ gets a 15 % special discount.
A customer with the customer status ‘ABC’ when purchases 1 – 15 units of any item gets a special discount of 10 %.
If a customer belongs to the customer class ‘XYZ’, they get 5 % additional discount on all purchases.
If a customer belongs to the ‘ABC’ or ‘XYZ’ customer class, they get an additional 3 % discount on all purchases.
Manual discounts (by Amount) with override capability, applicable for all customers.
A fixed manual discount of 25 % with non-override option is applicable for all customers purchasing item ‘A’.
Manual discounts (by Percentage) with overwrite capability, applicable for all customers.
Any customer belonging to customer class ‘ABC’ who spends $1000 or more per order receives a 4 % Preferred Customer Discount on the entire order.
Any customer buying products of a specific item category gets a Volume Discount based on the various quantity slabs. The eligibility volume is total number of units purchased for that specific item category on the entire order (quantity is accumulated across multiple items in a single order). The discount applies to all eligible lines and keeps changing as the quantity increases or decreases.
Examples of some of the common surcharge scenarios used in the industry that can be easily set up using the advanced pricing module:
Any customer belonging to the customer class ‘ABC’, when spends less than a $1000 per Order gets a Low Order Volume surcharge.
Any customer belonging to the customer class ‘XYZ’ placing a Rush Order (delivery requested within two days) receives a $5 per unit surcharge.
Any customer placing an order for item ‘A’ for less than 5 units gets a 2 % percentage surcharge.
Examples of some of the common promotional offers used in the industry that can be easily set up using the advanced pricing module:
For every three units of item ‘A’ purchased, all customers receive two currency units off.
Any customer buying products of a specific item category gets a Quantity Discount based on the various quantity slabs. The eligibility volume is the number of units purchased for that specific item category on any specific order line. This is not a cumulative type of discounting.
For every two units of item ‘B’ purchased all customers get a third one free.
Any customer placing an order for an item ‘C’ during the period ‘Sep 01, 2002’ to ‘Sep 28, 2002’ automatically gets a free product upgrade to item ‘D’ for no extra charge.
Any customer who buys an item ‘X’ gets the second one at half price (50 % discount).
Oracle Pricing has a set of Application Program Interfaces (APIs) available. You may use these APIs in custom programs for automation of some of the pricing functions.
Below is the list of some of the main Pricing APIs available:
QP_Price_formula_PUB.Get_Price_Formula (Formula Calculation API): The Formula Calculation package consists of entities to calculate the value of a formula.
QP_Price_formula_PUB.Process_Price_Formula (Update Formula Prices API): The Update Formula Prices package consists of entities to update formula prices.
QP_CUSTOM.Get_Custom_Price (Get Custom Price API): You may add custom code to this customizable function. The pricing engine while evaluating a formula that contains a formula line (step) of type “function” calls this API.
QP_PREQ_GRP.Price_Request (Price Request API): The Price Request Application Program Interface (API) is a public API that allows you to get a base price and to apply price adjustments, other benefits, and charges to a transaction.
QP_MODIFIERS_PUB.Process_Modifiers (Business Object for Modifier Setup API): The Business Object for Modifier Setup package consists of entities to set up modifiers.
QP_QUALIFIER_RULES_PUB.Process_Qualifier_Rules (Qualifiers API): The Qualifiers package consists of entities to set up qualifiers.
QP_ATTR_MAPPING_PUB.Build_Contexts (Attribute Mapping API): The Attribute Mapping package consists of entities to map attributes.
QP_Price_List_PUB.Process_Price_List (Price List Setup API): The Price List Setup package consists of entities to set up price lists.
ADVANCE PRICING TABLES