Logic used when calculating Target Price.

This section describes the logic used by the system when performing the target price calculation.

1.  The system clears the properties used by the price module and prepares for the new price calculation.  The system also checks various control parameters to determine which special pricing options should be used, and how many decimals points should be used for the target price.

2.  The system passes the customer and inventory information (item, location, prodline, class) to the price module.

3.  The system determines if a minimum GPM (gross profit margin) should apply to the order line.  The system determines this by checking for specific Longcode records that can be defined at the global, item, company/item, or company level.

4.  Trim product line if required.

5.  Check for Class Exceptions – The Class Exception table or Progdisc file allows you to skip class pricing for specific items.  Records can be set up in the file and they can be used to specify the class to be used by the special pricing system for the item.  This information if it is present will override the item class field for the item in the Inventory Master file.

6.  The system logs or records the properties that are being passed to the price module to be used to calculate the target price.  This information can be displayed in the order entry program to allow you to determine how a specific price is being calculated by the system.

7.  The system checks for any general rebates that are available for the order line being processed.

8.  The system determines if a Cost Based Price is being used – based on the price level passed to the price module.  If the price level being used is U,L,S,N, or C, the system.

•      Calculates a Cost Based Price if sales order price level (PRL) is “U”,”S”,”L”, or “N”.  When cost based pricing is used, the discount in customer master or order is used as a markup percentage instead of a discount percentage.

•      Records the general rebate amount but does not adjust price or commission cost if instant display is “N”

•      Records the general rebate amount and adjusts both price and commission cost if the instant display flag in the rebate record is set = Y

•      Records the price record number from rebate record if rebate amt is not 0 (to identify source of rebate) and loads the price record number into the rebate record field of the sales order line.

•      Applies PQDS discounts if there are any records in the PQDS system for the specific company being processed (only PQDS records with company equal to the Sales Order Company will be used).

•      Logs the properties from the price object so that the price calculation can be displayed if necessary.

•      The system then returns the cost based price and it does not check any of the other pricing options for the customer/item combination.

Note:  PQDS adjustments are made to cost based pricing if the parameter SOPQDSDS is set to Y and POQDS records exist for the specific company being processed.  Class discounts are not applied.

9.  The system checks if a contract was passed to the price module.  If a contract number is specified during the order entry process, the system will search for a qualifying special pricing record with the specified contract number .  When a contract is specified during the order entry process, the system will also automatically select both an active and  a standby special pricing record if it qualifies based on the customer, item, and quantity being processed.  The Single Contract Price Calculation steps are.

•      Logging the contract# passed to the price module.

•      Calculating a single contract price for the customer.  The system passes the contract, item, customer, and quantity from the order line to the price module and it then searches (backwards) through the special pricing file looking for a qualifying record for the company.  If the system finds a record for the customer, the system calculates the appropriate price (this can be a price specified in the special pricing record, or a price based on a discount percentage and a price level specified in the special pricing record).  The system then checks the Class Discount and the PQDS flags in the special pricing record and applies the appropriate adjustments if the flags are set to Y.  The system will only apply PQDS adjustments to the price if the PQDS records are for the same customer being processed.

•      If no qualifying contract price is found for the customer being processed, the system checks for qualifying special pricing records for any of the Buying Groups that the customer belongs to.  If the system finds a qualifying record for the buying group, the system calculates the appropriate price (this can be a price specified in the special pricing record, or a price based on a discount percentage and a price level specified in the special pricing record).  The system then checks the Class Discount and the PQDS flags in the special pricing record and applies the appropriate adjustments if the flags are set to Y.  The system will only apply PQDS adjustments to the price if the PQDS records are for the same buying group as that listed in the special pricing record being processed.

10. Price Level Price.  If a contract number or a cost based customer price level is not being used for the order line being processed, the system continues checking the other pricing options that are available in the system.  The price level price is always checked.  The other price options that are checked by the system are based on the SOTARGET string that is used by the Price Module.  This allows you to enable or disable certain types of pricing system wide.  The steps used to calculate the price level price are.

•      Calculate Price Level Price (from Company or Order Price level and Inventory Price Levels or from Prices File - if record is present in Prices File).

•      Subtract general rebate from price and from commission cost if instant display flag is set to “Y”

•      Record general rebate amount but do not adjust price or commission cost if instant display is “N”

•      Record price record number from rebate record if rebate amt is not 0 (to identify source of rebate) and load into rebate record field of sales order.

Note: PQDS and Class adjustments are not applied to Price Level Prices.

11. Discounted Price Level Price.

•      Calculate DPL Price based on the Price Level Price adjusted by the discount in Customer Record (or Order).

•      Adjust for PQDS – Based on F248:SOPQDSDS – if switch is set to “Y”, the PQDS adjustments are made to the discounted price level price or to the cost based price.  If switch is set to “N” then PQDS adjustments are not made to the discounted price level price.  Only PQDS records with Company = the company being processed will be used to adjust the DPL price.

•      Subtract general rebate from price and from commission cost if instant display flag is set to “Y”

•      Record general rebate amount but do not adjust price or commission cost if instant display is “N”

Note: PQDS adjustments are applied to the Discounted Price Level Prices.  Class Prices are not applied to Discounted Price Level Prices (this is what class pricing is for).

12. Calculate Sale Price (if SOTARGET string includes “S”)

•      Calculate Sales Price

•      Adjust for class discounts.  (Only Program (Class) Discount records with Company name = “SALE” will be used).

•      Adjust for PQDS  (only PQDS records with Company = SALE will be used)

•      If special price record contains a rebate, the rebate will be used if the special price record is the target price (due to being lowest price, due to force flag setting, or due to fact that record was selected by operator).

13. Calculate Quantity Price (if SOTARGET string includes “Q”)

•      Calculate QUANTITY Price

•      Adjust for class discounts.  (Only Program (Class) Discount records with Company name = “QUANTITY” will be used).

•      Adjust for PQDS  (only PQDS records with Company = QUANTITY will be used)

Note: If the special price record contains a rebate, the rebate will be used if the special price record is the target price (due to being lowest price, due to force flag setting, or due to fact that record was selected by operator).

14. Calculate GSA Price (if SOTARGET string includes “G”)

•      Calculate GSA Price

•      Adjust for class discounts.  (Only Program (Class) Discount records with Company name = “GSA” will be used).

•      Adjust for PQDS  (only PQDS records with Company = GSA will be used)

Note:  If the special price record contains a rebate, the rebate will be used if the special price record is the target price (due to being lowest price, due to force flag setting, or due to fact that record was selected by operator).

15. Calculate Contract Price  (if SOTARGET string includes “C”)

•      Calculate Contract Price

•      Adjust for class discounts.  (Only Program (Class) Discount records with Company name equal to the Sales Order Company will be used).

•      Adjust for PQDS  (only PQDS records with Company name equal to the Sales Order Company will be used)

Note:  If the special price record contains a rebate, the rebate will be used if the special price record is the target price (due to being lowest price, due to force flag setting, or due to fact that record was selected by operator).

16. Calculate Buying Group Pricing (if SOTARGET string includes “B”).

•      Calculate Buying Group Price

•      Adjust for class discounts.  (Only Program (Class) Discount records with Company name equal to that from the selected Buying Group special pricing record will be used).

•      Adjust for PQDS  (only PQDS records with Company name equal to that from the selected Buying Group special pricing record will be used)

Note: If the special price record contains a rebate, the rebate will be used if the special price record is the target price (due to being lowest price, due to force flag setting, or due to fact that record was selected by operator).

17. Calculate Class Pricing

•      Calculate Price level Price

•      Apply Class Discounts from Program (Class) Discount Table. Only the class discounts for the Sales Order Company being processed will be used.  

•      Apply Quantity Adjustments to Discounted Price Level Price.  Note: The Quantity Adjustments must be for the same Company being processed on the sales order.

•      Apply Value Adjustments to value (based on Discounted Price Level Price and order quantity).  Note: The Value Adjustments must be for the same Company being processed on the sales order.

•      Take the lower of the Quantity adjusted or Value Adjusted price as the Class Price.  The Class price will be equal to the price level price if there are no class, value, or quantity adjustment records that apply to the sale.  If class, quantity, or value adjustments apply, the class, quantity or the value adjustments can result in a Class Price higher or lower than the DPL price.

18. Calculate Buying Group Class Pricing

•      Determine which Buying Groups the Order Entry Company belongs to.  The calculations below are made for each buying group that includes the Company used on the sales order.

•      Calculate Price level Price

•      Apply Class Discounts from Class Discount Table.  Only the Program (Class) Discount records for the Buying Group being processed will be used for each Buying Group.

•      Apply Quantity Adjustments to Discounted Price Level Price.  Note: The Quantity Adjustments must be for a Buying Group that includes the Company that is being processed on the sales order.

•      Apply Value Adjustments to value (based on Discounted Price Level Price and order quantity).  Note: The Value Adjustments must be for a Buying Group that includes the Company being processed on the sales order.

•      Take the lower of the Quantity or Value Adjusted price as the Buying Group Class Price.  The Class price will be equal to the price level price if there are no class, value or quantity adjustment records that apply to the sale.  If class, quantity or value adjustments apply, the class, quantity or the value adjustments can result in a Class Price higher or lower than the PL price.

19. Calculate Manufacturer Pricing (if SOTARGET string includes “M”)

•      Search the Product Authorization file for a record for the Company being processed and the Manufacturer assigned to the item being ordered.

•      Calculate Price Level Price based on the Product Authorization Record that is found.  The BASIS field in the selected Product Authorization record determines the price level used (if set to 1, the system uses the level 1 price for the item when determining the Price Level Price).

•      Adjust the Price Level Price by the Factor field in the Product Authorization record.

•      Apply any rebates available for the company and item being processed (company, buying group and general rebates are all checked).  If a qualifying rebate record is found, the rebate is recorded and if the rebate is an instant display rebate, the system reduces the manufacturer price and the commission cost for the sales order line by the amount of the rebate.

Note:  Manufacturer prices are not adjusted for PQDS (quantity and value adjustments).

20. Calculate Manufacturer Buying Group Pricing (if SOTARGET string includes “M”)

•      Determine which Buying Groups the Company being processed belongs to.

•      Search Product Authorization file for record for the Buying Group being processed and the Manufacturer assigned to the item being ordered

•      Calculate Price Level Price based on the Product Authorization Record that is found.  The BASIS field in the selected Product Authorization record determines the price level used (if set to 1, the system uses the level 1 price for the item when determining the Price Level Price).

•      Adjust the Price Level Price by the Factor field in the Product Authorization record.

•      Apply any rebates available for the company and item being processed (company, buying group and general rebates are all checked).  If a qualifying rebate record is found, the rebate is recorded and if the rebate is an instant display rebate, the system reduces the manufacturer price and the commission cost for the sales order line by the amount of the rebate.

Note: Manufacturer prices are not adjusted for PQDS (quantity and value adjustments).

Once the above prices are calculated, the lowest available price is moved into the target price and the target price source is updated to show where the price was obtained.  If any of the qualifying prices came from a special price record that has the Force Flag set and if the record is not a rebate, the price from the special price record will be used (even if there is another lower price available).

More:

Special Pricing Operations Programs