Pricing Procedure

New features added, version 7.5.2

See Also Programs

The Pricing Program Determines Price Method

The system first checks program CMMM, Customer Master Maintenance, for the Price Method. The price method can be Margin, Standard, or Revenue.

Revenue and Standard pricing are the same, except that when the customer is set up with the Revenue price method, the Revenue Level field on the Attributes tab in program CMMM, Customer Master Maintenance, is taken into account.

If the Price Method is Margin

1. The system checks program CMCM, Customer Credit Maintenance, for the Customer Margin percent.

2. If there is no Customer Margin percent, the system checks program ARLM, Location Maintenance, for the default Margin percent.

3. If the order entry operator has changed the margin percentage on the Order Codes screen in the sales order entry program, that margin percentage will override both the customer margin percent and the sales location margin percentage, but not the price matrix margin percentage described below.

Apply Customer Discounts

The system checks program CMMM, Customer Master Maintenance, to determine if the customer's Discounts Allowed flag is set to on. If the flag is set to on, the system checks program CMCM, Customer Credit Maintenance, to determine the discount percentage from the Order Discount percent field. If one of these conditions is not met, no discount is automatically applied to the customer order.

 

Check for non stock

If an item is a non-stock item, it can have margin pricing applied, if the operator enters the list price, and the Override flag is not set to on.

 

Check for Price Matrix Entries

The system checks the price matrix for a margin price for the appropriate customer/customer price group and item/item price group combination.

Calculate Unit Price

Margin pricing is calculated based on the cost of a product with the margin percent applied from one of the following sources:

The system calculates the unit price as follows:

Unit price = cost * sales um conversion * 100 * price um conversion

  (100 - margin)

 

The unit price is then rounded according to the round to information entered for the item in program ICSM, Inventory Sales Data Maintenance, and discounted by any discount percentage entered for the sales order line.

The extended price for the quantity ordered is calculated as follows: Extended price = (quantity ordered / price um) * unit price.

 

Example: The margin percent for the customer is 20%. Our item - water bottles - is stocked with the unit of measure of EA and a unit cost of $1. The price unit of measure is BOX, which has 10 EA units in it. The sales unit of measure is PALLET, which has 20 BOX units in it, and 200 EA in it.

So, in this example:

Quantity Ordered = 1 PALLET

Margin % = 20

UM Stock UM conversion

EA 1

BOX 10

PALLET  200

 

In program ICSM, Inventory Sales Data Maintenance, the sales information would be:

UM UM Conversion

Sales UM - PALLET 200

Price UM - BOX .05 (10/200) a box is 1/20th of a pallet

 

So, the unit price would be calculated as follows:

Unit price = 1.00 * 200 * .05 * 100 = 1000

 100 - 20  80

Unit price = 12.50

 

If an order level, customer, or price matrix discount was entered, the discount percentage would be taken from the $12.50.

To calculate the extended price for our example:

Extended price = (1/.05) * 12.50 = $250

 

Recalculate Unit Price on Shipping

Sales order prices for margin priced customers are recalculated during shipping when the following conditions are met:

The S type cost is set up to be Actual or Average cost.

and

The sales order line is tied to a purchase order line.

or

The unit cost for the item has changed.

or

Sales order status is S - Confirmed Complete.

and

There is a pullcard assigned to the sales order line in program ICKM, Inventory Pull Card Moves.

and

The actual transfer is done in program ICKM, Inventory Pull Card Moves, after shipping.

and

The ICKM_RECOST_ORDER_LINE parameter in program MURM, Initialization Parameter Maintenance, is set to Y.

OR

If the Price Method is Standard or Revenue

Revenue and Standard pricing are the same, except that when the customer is set up with the Revenue price method, the Revenue Level field on the Attributes tab in program CMMM, Customer Master Maintenance, is taken into account.

The Pricing Program first Determines Source for List Price

List price source is specified in program ARLM, Location Maintenance, with the OE List Price Source pop-list. The list price can be calculated from three places:

The effective list price is determined by the location control record list price rule. This rule states the list price hierarchy as follows:

1. Quantity Price from CMPC, Price Matrix Maintenance.

2. Book Price from CMPC, Price Matrix Maintenance.

3. List Price from ICSM, Inventory Sales Data Maintenance.

This means that if the quantity price is chosen as the source in program ARLM, Location Maintenance, and there is no quantity price, the program will select the book price as the list price. If there is no book price, the program will select the list price.

If book price is chosen as the source in program ARLM, Location Maintenance, and there is no book price, the list price will be selected.

If the list price is chosen in program ARLM, Location Maintenance, the list price is selected.

Both discount and list price entered in program CMPC, Price Matrix Maintenance, are used to determine the sales order line unit price.

The order date in the sales order header is compared to the price matrix effective dates to determine whether the special price applies to the sales order line.

 

Pricing Program then Determines the Customer Price Group

1. The system checks program ICMM, Item Master Maintenance, for the product code assigned to the ordered item.

2. If a product code exists, the system checks program ICMM, Item Master Maintenance, for a product line assigned to the product code.

3. The system then checks the Pricing Tab of program CMMM, Customer Master Maintenance, for a Customer Price Group for this customer with the combination of product code or product code and product line. If one exists, the program has determined the customer price group.

4. If no customer price group exists from the previous step, the system checks the Attributes Tab of program CMMM, Customer Master Maintenance, for a Customer Price Group for the customer. If one exists, the program has determined the customer price group.

 

The Pricing Program Determines the Plant

The Price From pop-list in the sales order header determines the plant from which the pricing will be taken.

The Pricing Program Determines the Item Price Group

The sales location in the sales order header determines the item price group for the item. The pricing program checks the ICSM, Inventory Sales Data Maintenance, record for the plant that was determined in the last step to determine the Item Price Group for the item.

The Pricing Program Determines the Book Price.

If the CMPC Book Price is chosen as the source for the list price in program ARLM, Location Maintenance, and a book price exists in program CMPC, Price Matrix Maintenance, that book price will be used as the list price for order entry.

Catalog ID is a determining factor in the book price selected. If the sales order has not been assigned a catalog ID, all entries in program CMPC, Price Matrix Maintenance, are considered.

If a catalog ID was entered for the sales order, only entries in the price matrix for the specified catalog ID and entries entered without a catalog ID will be considered.

 

Sales Order 1

Sales Order 2

Matrix Catalog ID

Catalog ID is NULL

Catalog ID B assigned

NONE

Considered

Considered

A

Considered

Not Considered

B

Considered

Considered

 

The Book Price is defined as follows:

The book price is the price associated with the lowest quantity bracket the system finds in program CMPC, Price Matrix Maintenance, in the following priority sequence:

1. Catalog ID, Customer Number, and Item Number

2. Catalog ID, Customer Price Group, and Item Number

3. Catalog ID, Customer Number, and Item Price Group

4. Catalog ID, Customer Price Group, and Item Price Group

The program checks this information for the customer and item for which the order is being entered.

1. The system checks program CMPC, Price Matrix Maintenance, for the catalog ID, customer number, and item number price.

2. The system checks program CMPC, Price Matrix Maintenance, for the catalog ID, customer price group, and item number price.

3. The system checks program CMPC, Price Matrix Maintenance, for the catalog ID, customer number, and item price group.

4. The system checks program CMPC, Price Matrix Maintenance, for a catalog ID, customer price group, and item price group.

5. If a book price does not exist, the list price will be the base list price from program ICSM, Inventory Sales Data Maintenance.

Pricing Program Determines Quantity Price.

If the CMPC Quantity Price is chosen as the source for the list price in program ARLM, Location Maintenance, and a quantity price exists in program CMPC, Price Matrix Maintenance, that quantity price will be used as the list price for order entry.

Catalog ID is a determining factor in the quantity price selected. If the sales order has not been assigned a catalog ID, all entries in program CMPC, Price Matrix Maintenance, are considered.

If a catalog ID was entered for the sales order, only entries in the price matrix for the specified catalog ID and entries entered without a catalog ID will be considered.

 

Sales Order 1

Sales Order 2

Matrix Catalog ID

Catalog ID is NULL

Catalog ID B assigned

NONE

Considered

Considered

A

Considered

Not Considered

B

Considered

Considered

 

Quantity Price is defined as follows:

The program chooses the first quantity price that exists according to the appropriate quantity price break from CMPC, Price Matrix Maintenance, in the following priority sequence.

1. Catalog ID, Customer Number, and Item Number

2. Catalog ID, Customer Price Group, and Item Number

3. Catalog ID, Customer Number, and Item Price Group

4. Catalog ID, Customer Price Group, and Item Price Group

The program checks this information for the customer, item, and order quantity for which the order is being entered.

1. The system checks program CMPC, Price Matrix Maintenance, for a catalog ID, customer number, and item number price with quantity price breaks.

2. The system checks program CMPC, Price Matrix Maintenance, for a catalog ID, customer price group, and item number price with quantity price breaks.

3. The system checks program CMPC, Price Matrix Maintenance, for a catalog ID, customer number, and item price group with quantity price breaks.

4. The system checks program CMPC, Price Matrix Maintenance, for a catalog ID, customer price group, and item price group with quantity price breaks.

5. If a quantity price break does not exist and the list price is specified as quantity price, the first book price will be used as the list price. See the section on determining book price. If there is no book price, see step 6.

6. If a book price does not exist, the list price will be the base list price from program ICSM, Inventory Sales Data Maintenance.

Pricing Program Determines Special Price

Catalog ID is a determining factor in the special price selected. If the sales order has not been assigned a catalog ID, all entries for the store or enterprise in the price matrix are considered.

If a catalog ID was entered for the sales order, only entries for the store or enterprise in the price matrix for the specified catalog ID and entries entered without a catalog ID will be considered.

 

Sales Order 1

Sales Order 2

Matrix Catalog ID

Catalog ID is NULL

Catalog ID B assigned

NONE

Considered

Considered

A

Considered

Not Considered

B

Considered

Considered

 

Special Price is defined as:

The lowest special price from program CMSP, Store Special Price, or program CMUP, Enterprise Special Price, for the ordered quantity.

1. The system checks program CMSP, Store Special Price, for the item number and quantity ordered.

2. The system checks program CMSP, Store Special Price, for the item price group and quantity ordered.

3. The system checks program CMUP, Enterprise Special Price, for the item number and quantity ordered.

4. The system checks program CMUP, Enterprise Special Price, for the item price group and quantity ordered.

5. Selects the lowest price saved from program CMSP, Store Special Price, and program CMUP, Enterprise Special Price, as the special price. If a special price does not exist, no special price is displayed.

Pricing Program Determines Contract Price

The system checks for the contract price from program CMCP, Customer Contract Maintenance, for the customer, item number, unique ID if available, and then sales unit of measure. The program looks for active and inactive contracts and approved and not approved contracts. If any combination of customer, item number, and sales unit of measure has a unique ID, only the combination with the unique ID will be considered. If the previous selection exists, it is used as the contract price.

If there are multiple contracts with unique ID's, the contract price is chosen according to the unique ID entered in the order entry program.

If the contract does not have a unique ID, and no unique ID is entered in the sales order entry program, the program looks at all contract lines for the customer and item with no unique ID and chooses the lowest contract price within the correct effectivity dates.

Flat discounts can be entered for contract prices.

Pricing Program Determines Unit Price and Discount

The unit price is selected from a firm contract price or the lowest available price from the book price, quantity price, and special prices. The lowest required margin is determined during the calculation of book, quantity, and special prices. It is referred to as the working margin. The highest available discount is determined during the calculation of book, quantity, and special prices. It is referred to as the working discount.

1. If the price is from a firm contract, it becomes the unit price. No discounts can be applied to contract prices.

2. If the price is derived from the book price, quantity price, or special price, it is set as the working unit price.

3. The working margin is applied to the item cost to calculate the margin list price. See the Margin Price Method section for information on how margin prices are calculated using the cost.

4. The working discount is deducted from the list price to calculate the discounted list price.

5.  The working discount is deducted from the margin list price to calculate the discounted margin list price.

6. The working unit price is compared to the discounted list price.

7. The working unit price is compared to the discounted margin list price.

8. The discounted list price is compared to the discounted margin list price.

9. The lowest of the three compared prices will be displayed as the unit price. If a discounted price is the lowest, the discount will be displayed as the discount. If a discounted price is not the lowest, the discount will be displayed as 0.

10. Discounts can be entered or overridden manually on the order line.

11. Customer discounts are applied to the total of the line item extended unit prices after all other price and discounts are determined.

12. Order level discounts can be applied if the sales order is eligible and the user accepts the order level discount.

13. The final calculated unit price is rounded according to the rounding rules entered for this item in program ICSM, Inventory Sales Data Maintenance. For more information, see List Price Rounding.

During sales order entry, if the list price is anything but zero and there is a difference between it and the unit price, the difference will be posted to the Trade Discount posting type and general ledger account.

If the Set List Price Equal to Unit Price flag is set to on in program ARLM, Location Maintenance, the list price will be set automatically to the calculated unit price for the sales order line, and no differences will be posted to the Trade Discount posting type.

If the quantity entered exceeds the maximum quantity for the customer/item combination in program CMPC, Price Matrix Maintenance, and the Indicate SO Price Restrictions flag is set to on in program ARLM, Location Maintenance, the message Special Large Quantity Pricing Required will be displayed and a workflow will be sent to the buyer assigned to the item in the item planning programs.

As an example, consider the following price entries in the price matrix. In this example, the List Price Source in program ARLM, Location Maintenance, is set as Quantity Price. The unit cost of the item is 4.

From Quantity

To Quantity

List

Discount

Margin

0

100

10

 

 

101

1000

9

 

 

401

500

 

 

50

501

10000

 

20

 

800

801

 

25

 

1001

10000

 

 

33.3333

When calculating the unit price for this item, the following results would be obtained.

Order Quantity

List Price

Discount

Unit Price

50

10

0

10

200

9

0

9

450

8

0

8

600

9

20

7.2

800

9

25

6.75

2000

6

20

4.8

If the cost increased to 6, the results would be:

Order Quantity

List Price

Discount

Unit Price

50

10

0

10

200

9

0

9

450

9

0

9

600

9

20

7.2

800

9

25

6.75

2000

9

20

7.2

Price Override flag

The price override flag is displayed. If the flag is set to off, the pricing process is used to retrieve the list price, unit price, and discount. The user can modify the discount, but the list and unit prices can not be changed.

If the discount is changed to a non-zero value, the unit price is calculated as the discounted list price, which overrides the previously calculated prices through the pricing logic.

If the discount is changed to zero, the line is re-priced using the pricing logic.

If the user sets to the override flag on, then the pricing logic is no longer used and discounts cannot be entered, but both list and unit price can be entered. When the flag is set to off, after being set to on, the list price will be calculated.

Flat Discount Field

The flat discount is entered by the user and can be entered when the Override flag is set to on or off. It is used in calculating the price extension for the order line.

If the user enters the price extension, the difference between the calculated price extension and entered price extension is automatically entered in this field.

Flat discounts can be entered for contract pricing.

Order Level Discounts

Order level discounts are treated differently from other discounts in the system. Order level discount records are entered in program CMDM, Discount Level Maintenance, for customers and customer price groups and items and item price groups. Each record is set up with a discount percentage that is applied to the order when the sales order total is greater than or equal to the value entered in the Min Order field in program CMDM, Discount Level Maintenance. Records can be entered for a specific customer, a specific customer price group, for all customer and price groups, for a specific item, for a specific item price group, or for all items and price groups.

If an order level discount is set up with items and item price groups, if an order is entered that contains items that are not included in the list of items and item price groups on the second page of program CMDM, Discount Level Maintenance, the order level discount for the customer/customer price group record will be applied to the lines that do not contain eligible items.

Order level discounts can be added to existing sales order line discounts or can overwrite them. Depending on the setting of the CMDM_DISC_OVERRIDES_LINE_DISC parameter in program MURM, Initialization Parameter Maintenance, when the order level discounts are initially applied, they will either be applied to all sales order lines or will only be applied to those without existing discounts.

If applied to all sales order lines automatically, they will either overwrite or add to existing discounts, depending on the order level discount's setting in program CMDM, Discount Level Maintenance. Otherwise the discount will only be applied to order lines for which another discount does not already exist. If another discount exists for the order line, that discount will be used. If you wish the order level discount to be applied to all sales order lines regardless of other discounts, you can press the [Calc Discount] button, and the order level discount will be applied to all sales order lines, either overwriting or adding to existing discounts, depending on the order level discount's setting in program CMDM, Discount Level Maintenance.

Warnings can be set up to be displayed to users when a sales order is nearing eligibility for an order level discounts, either by percentage or dollar amount. Eligibility is determined by the Min Order value in program CMDM, Discount Level Maintenance, but sales orders can have their order values calculated according to unit price or list price, according to the setting in program CMDM, Discount Level Maintenance.

According to the parameter in program CMDM, Discount Level Maintenance, once a sales order value has reached eligibility, either the discounts will be applied automatically, or the program will ask if you want to apply the discount to the order. You will have three choices, [Apply Now], [Notify Later], and [Cancel Msgs].

Parameters at the top of program CMDM, Discount Level Maintenance, correspond to parameters in program MURM, Initialization Parameter Maintenance.

Customer/Item Surcharges

See the Customer/Item Surcharges section for more information.

Customer/Item Surcharges are calculated as the quantity ordered*weight*surcharge amount. The surcharge is not added to the list or unit price, but is instead added last to the extended price.

Large Quantity Pricing Features

Pricing can be set up do that when a sales order line quantity exceeds the highest quantity for the item/item price group and customer/customer price group, the quantity price for the sales order line will be set to the price for the highest quantity bracket entered in the price matrix for the item/item price group and customer/customer price group, taking into consideration all catalog IDs. This provides pricing coverage for large quantities when price matrix is not filled out to upper quantity limit possible.

For example, suppose the item had the following entries in the price matrix.

Quantity Range

List Price

1-10

10

20-50

5

50-100

2.5

If a sales order line were entered for the quantity of 150, the price applied when this feature is not active would be 10. When this feature is active, the price would be 2.5.

To activate this feature, the OE_STICKY_QTY_PRICE must be set to YES in program MURM, Initialization Parameter Maintenance.