Pricing

The main purpose of the pricing functionality is to simplify the process of maintaining and updating of prices, price lists and customer agreements and campaigns. Price lists and customer agreements can be built from sales part base prices. This means that you must maintain the sales part base prices. When a base price is changed, it is possible to update all price lists and customer agreements containing this base price at the same time. The price lists and customer agreements can be defined with different quantity intervals.

Sales Part Base Price

The sales part base price is used as a base when calculating prices for different quantity intervals in a price list or a customer agreement. It should not be mistaken for being the price entered on sales part. This base price is used only for the update of part based price lists or deal per part customer agreement lines. Every base price has a status in order to be able to control how it should be used. Available statuses and their properties can be seen in the table below:

Status Base Price Editable Price List/Agreement Updated Comment
Planned Yes No Used for new and existing parts before the base price is decided
Active Yes Yes Base price is ready for the update of price lists and agreements
Closed No No Phase out of base price

The base price is calculated from the baseline price, percentage offset and amount offset entered in the sales part base price. The baseline price can be linked to IFS/Costing or entered manually. The site has to be defined for every sales part base price, since the costing information for one sales part can exist for many different sites. The percentage and amount offset are used to get the desired starting point before the base price is distributed to price lists and agreements.

In addition, it is possible to add a price break template to the sales part base price. This is beneficial when several parts have the same characteristics regarding price depending on the ordered quantity. In the price break template you define quantities with a percentage offset from sales part base price. If the use of price break templates is enabled on sales price lists and customer agreements, quantities and base prices are applied according to the price break template. So if the template consists of the quantities 0, 10 and 20, all these quantities are applied with a base price that has taken the quantity percentage offset into consideration. Note that if a price break template does not exist or is not used, all existing quantities for a part get the same base price.

In summary, the base price is calculated according to the following formula:

                Baseline Price in the Sales Part Base Prices window

                        * (1 + Percentage Offset in the Sales Part Base Prices window/100)

                        + Amount Offset in the Sales Part Base Prices window

                -----------------------------------------------------------------------------------------------------------------------

                = Base Price in the Sales Part Base Prices window, used on sales price lists and customer agreements with the use of price break templates disabled

                        * (1 + Percentage Offset for current quantity in the Price Break Template window/100)

                -----------------------------------------------------------------------------------------------------------------------

                = Base Price considering the Price Break Template, used on sales price lists and customer agreements with the use of price break templates enabled

Sales Price Group

Price lists are created for different sales price groups. A sales price group is used to group a number of sales parts with the same characteristics regarding pricing. It is possible to define more than one price lists for a sales price group. When defining what price list to use for a specific customer, it will only be possible to define one price list per price group and currency. A sales price group is entered for every sales part. In case the combination of sales part number and the sales price group is the same for different sites the price unit of measure must also be the same. This is to avoid sales parts with the same price group having different price units of measure for different sites when it is used on a price list that is valid for several sites.

There are two types of sales price groups: part-based price groups and unit-based price groups. The different types of sales price groups are used to create the relevant price lists.

Price List

A price list belongs to a price group. This means that there are two types of price lists: unit-based sales price lists and part-based sales price lists depending on the price group type.

A price list is connected to an owning company that is responsible for maintaining the price list. If required, the owning company can make the price list valid for sites from other companies in order to reduce the number of price lists to administrate.

Part-based sales price lists are based on sales part base prices. The sales part base price has a base site while a price list belongs to an owning company. You may use base prices from base sites that do not belong to the owning company of the sales price list. This means that each company can use base prices from a common source and they can attach their own offsets and discount in sales price lists.

In the price list, you can have different prices depending on the ordered quantity. This is achieved by either manually entering different offsets from sales part base price for different quantities in the price list or by using avprice break template which automatically provides different base prices for different quantities. The price list must not be in the same currency as the entered base prices. The price is automatically calculated to the right currency.

It is possible to define a default relation between the sales price list and sales part base prices. The relation is defined on the price list by specifying default values for the base site, percentage offset and amount offset. This means that sales parts are added with these default offsets and the base price fetched from the default base site first. This is beneficial when you want to define a general and firm relation between the sales price list and the sales part base price.

In the Sales Price List window header, the review of base price updates can be enabled. This gives you the opportunity to increase control when part-based sales price list lines are updated from sales part base prices. Sales price list lines awaiting review receives the Planned status.

Prices per assortment nodes are used in handling prices on a larger scale. Here a generalized price is introduced for an assortment node as a whole instead of per individual part. Prices per assortment nodes can be defined only for part-based sales price lists and not for unit-based price lists.

In a part-based sales price list, there is an option for including an assortment ID. If an assortment ID is given in the price list header, then the Assortment Node Based tab will be enabled. On this tab, you can enter prices and discounts per assortment nodes of the assortment that has been entered in the header. These prices and discounts will be applicable for the sales parts belonging to the same assortment node and are of the same sales price group as the header of the sales price list.

A unit-based price list is used for sales parts that are sold in a special unit. No sales part numbers are specified on a unit-based sales price list. Prices are entered for different unit intervals. Unit-based price lists can, for example, be used for paint that has different sales part numbers for different colors, but all have the same price.

If you use order date when you retrieve prices from price lists, these may be out of date today. They may, however, still be valid for the specific order. You should therefore change price lists, current as well as old ones, only with great care.

A price list is searched when creating a sales quotation or customer order line based on the sales part entered on the line. The sales part is always connected to a sales price group, and a sales price list is always defined per sales price group and currency valid for the price list. When connecting a price list to a customer, either in the Customer/Order/Pricelist per Price Group tab or in the Customer Price Group window, it is possible to select whether the connected price list is considered as preferred. It is also possible to connect several price lists in different currencies to the same customer. If a price list is preferred, it means that it can and will be used regardless whether there is a match between the quotation, order currency and the price list currency.

When the quotation or order is searching for a valid price list, it follows a certain priority order.

  1. Search the Customer/Order/Pricelist per Price Group tab for a connected price list in a currency matching the quotation/order currency.
  2. Search the Customer/Order/Pricelist per Price Group tab for a connected preferred price list in a currency other than the quotation/order currency.
  3. Search the Customer Price Group window for a connected price list in a currency matching the quotation/order currency.
  4. Search the Customer Price Group window for a connected preferred price list in a currency other than the quotation/order currency.

Customer Price Group

A customer price group is used to group a number of customers with the same characteristics regarding pricing. A customer price group is connected to a number of combinations of sales price groups and sales price lists. A customer can be connected to a customer price group and through this also to campaigns or different sales price lists. Those price lists can then be used on a customer order line to select the price that will be used.

Agreements

An agreement is used to enter terms and information to be applied on future customer orders. This information can be general such as validity period and delivery terms. It can also be detailed about price and discount per part, discount per sales group or discount per assortment.

If you use order date when you retrieve prices from agreements, these may be out of date today. They may, however, still be valid for the specific order. You should therefore change agreements, current as well as old ones, only with great care.

When multiple valid agreements exist for the same customer, site and currency, the system will per default retrieve the agreement with the lowest ID to the customer order, and display this in the customer order header.

If an agreement is selected to be excluded from auto-pricing, it will not be automatically retrieved to the customer order header. It is recommended that a specific part should be only on one automatic price fetching agreement per customer.

Offsets in Price List and Agreement

Offsets are used in pricing to build the agreement or price list price to be used and origins from the base price. As the same base price can be used for all different quantity intervals for a part on an agreement or a price list, it is then possible to update the whole agreement for a part by only updating the base price and reusing the defined offsets.

The offset to a base price can be defined as a Percentage Offset and/or an Amount Offset. If the Percentage Offset set to -10, and the base price of a sales part is 500 then the calculated sales price will be 450. If the percentage offset is set to 10 instead, then the calculated sales price will be 550. If the Amount Offset set to -10 and the base price of a sales part is 500, then the calculated sales price will be 490. If the amount offset is set to 10, then the calculated sales price will be 510.

Offsets can be adjusted in two ways; add to offset or by adjusting offsets. Select Add To Offset to add a value to Percentage Offset and/or Amount Offset. If the original offset is 65, and the add to offset value is set to 7, the new value for offset will be (65 + 7 = 72). This works in the same way for Percentage Offset and Amount Offset. Select Adjust Offset to adjust Percentage Offset and/or Amount Offset with a percent value. If the original offset is 65, and the adjust offset value is set to 7, the new value for offset will be (65 + 7% = 69.55). However the value you enter here is a percentage, even if you choose Amount Offset. This works in the same way for Percentage Offset and Amount Offset.

When adjusting offsets, using either the adjust offset or add to offset options,

  1. For all the valid agreement or price list lines with the same valid-from date and a later date(s), than the valid-from date specified when adjusting offsets, the offsets will be updated in the agreement or price list lines.
  2. For all valid agreement or price list lines with the valid-from date later than the valid-from date specified when adjusting offsets, the offsets will be updated. If valid lines exists with a prior valid from date, new lines will be created for the specified valid-from date.
  3. If all valid agreement or price list lines have a valid from date prior to the valid from date specified when adjusting offsets, new lines will be created for the specified valid from date.

Note: In all above situations only the valid agreement or price list lines will be modified as explained. Several customer agreement or price list lines can exist for the same part with the same minimum order quantity but with different valid-from dates. However the valid agreement or price list lines, for the specific part and the minimum order quantity will be, the ones with the same valid-from date as the specified date and ones having later date(s).

Campaign

Campaign is a price source for customer orders. It can be used to follow up transactions in a scenario where there are a few destination sites doing the selling and a supply site which purchase goods from the suppliers and distributes them to destination sites to sell them under the campaign prices. Campaigns usually involve all the retail outlets of a company where special rates are offered for certain products to all customers, specified customers or specified customer price groups, for a given period of time.

Customer Hierarchy

A customer hierarchy is a graphical method of grouping companies belonging to the same group in a tree structure, which can be reviewed. The parent company will be on the top level with all affiliated companies beneath in the required number of levels.

The hierarchies will then be used when searching for valid agreements, price lists or campaigns. You can connect an agreement, a price list or a campaign to one customer, allowing all affiliated companies on lower levels in the same branch of the hierarchy to benefit from that agreement, price list or the campaign. Any price or discount information can be retrieved from the customer hierarchy if that information is lacking in the customer entry itself. The retrieval will follow the priority order below.

During a hierarchy search, the system searches successively higher levels in a single branch of the hierarchy until it either finds a price or reaches the top level. You cannot limit the search to certain parts of the hierarchy. You can override the sales price that is found by entering a sales price or a price list directly on the order line. A manually entered sales price on a customer order line always has the highest priority.

Price on Customer Order Line

The price on customer order line is selected depending on the data entered. Given below is a prioritized order of how the price will be fetched in a customer order

 

1.     From a customer agreement set to be excluded from autopricing, manually defined on the customer order header

1.1.    Price per part

1.2.    Price on assortment node from a customer agreement set to be excluded from autopricing, manually defined on the customer order header.

2.     From a campaign

2.1.    Price per part

    2.1.1.    Price per part, from a campaign valid for customer.

        2.1.1.1.    Price per part, from a campaign valid for customer in customer hierarchy. (Hierarchy level upwards)

    2.1.2.    Price per part, from a campaign valid for customer price group.

        2.1.2.1.    Price per part, from a campaign valid for customer price group of a customer in customer hierarchy. (Hierarchy level upwards)

2.2.    Price on assortment node from campaign.

    2.2.1.    Price on assortment node, from a campaign valid for customer.

        2.2.1.1.    Price on assortment node, from a campaign valid for customer in customer hierarchy. (Hierarchy level upwards)

    2.2.2.    Price on assortment node, from a campaign valid for customer price group.

        2.2.2.1.    Price on assortment node, from a campaign valid for customer price group of a customer in customer hierarchy. (Hierarchy level upwards)

3.     From agreement.

3.1.    Price per part

3.1.1.        Price per part from customer agreement in customer hierarchy. (Hierarchy level upwards)

3.2.    Price on assortment node from the automatic price fetching customer agreement.

3.2.1.        Price on assortment node from customer agreement in customer hierarchy. (Hierarchy level upwards)

4.     From Price lists

4.1.    Part-based or unit-based price from price lists

4.1.1.        Price from price lists on Customer/Order/Pricelist per Price Group

4.1.1.1        Price from price lists connected to a customer in customer hierarchy. (Hierarchy level upwards)

4.1.2        Price from price lists per customer price group

4.1.2.1        Price from price lists (unit-based or part-based) per customer price group in customer hierarchy. (Hierarchy level upwards)

4.2.        Deal per assortment node in sales price list

4.2.1        Price from price lists on Customer/Order/Pricelist per Price Group

4.2.1.1        Price from price lists connected to a customer in customer hierarchy. (Hierarchy level upwards)

4.2.2        Price from price lists per customer price group

4.2.2.1        Price from price lists (unit-based or part-based) per customer price group in customer hierarchy. (Hierarchy level upwards)

5.     Price from sales part

 When searching for price in assortment structure it looks for the price on the assortment node closest to the part.

Ignore Campaign if Lower Price Found

In some instances, when a campaign is ongoing, there could be customer agreements or price lists connected to a customer which provides a better price for the customer, in comparison with the campaign. The Ignore If Lower Price Found checkbox in the Campaign/General tab enables the user to control the above condition. If this check box is selected, it indicates that the campaign price is ignored when a lower price is found in another sales price source.

Discount on Customer Order Line

The discount on customer order line is selected depending on the data entered. It is possible to apply either a single discount or multiple discounts and this is decided in the site entry.

In addition to these you can manually add several discount lines to define several discount types used on one customer order line. When entering a new customer order line and a discount percentage is entered manually directly on the line, this will override the automatic fetching of discount lines. In this case the manual discount entered is applied with the default discount type defined for the site.

On a customer agreement it is possible to define detailed discounts (several discount lines connected to one agreement line) per part, per sales group or per assortment.

1. Single Discount strategy:

 (1a) If a discount is connected to the price, this discount will be retrieved. The system will not search for any further discounts.

 (1b) If no discount is found in the price ladder, then the search is done in the discount ladder (“Stand-alone discount” priority ladder: stand-alone: when only discount is defined, without a price next to it)

1.       From a customer agreement set to be excluded from auto-pricing, manually defined on the customer order header.

1.1.    Discount per part without price

1.2.    Discount per sales group or assortment node from a customer agreement set to be excluded from autopricing. (If discount is fetched from sales group or assortment node is decided on the usage of assortment field in agreement header.)

2.       From a campaign*

2.1.    Discount per assortment node without price

2.1.1.    Discount per assortment node, from a campaign in customer hierarchy. (Hierarchy level upwards) 

3.       From agreement

3.1.    Discount per part without price

3.1.1.        Discount per part from customer agreement in customer hierarchy. (Hierarchy level upwards.)

3.2.    Discount per sales group or assortment node without price from Agreement (sales group or assortment is dependent on the usage of assortment field in agreement header)

3.2.1.        Discount per sales group or assortment node without price from customer agreement (sales group or assortment is dependent on the usage of assortment field in agreement header) in Customer Hierarchy (Hierarchy level upwards.)

4.       Discount from customer.

4.1.    Discount from customer in customer hierarchy. (Hierarchy level upwards.)  

2. Multiple Discounts strategy:

Multiple Discounts has been chosen:

1) If a discount is connected to the price, this discount will be retrieved, i.e. if the price on the order line is retrieved from an Agreement or a Price List the discount connected to that price will always be used. Since the discount is copied directly from the price source the system does not actually search for this discount; it is rather a reflection of the price search.

2) In addition to this discount source, the system will search for one further discount source in the “Stand-alone discount” priority ladder: (stand-alone: when only a discount is defined, without a price next to it)

1.       From a customer agreement set to be excluded from auto-pricing, manually defined on the customer order header.

1.1.    Discount per part without price

1.2.    Discount per sales group or assortment node from a customer agreement set to be excluded from autopricing. (If a discount is fetched from sales group or assortment node is decided on the usage of assortment field in agreement header.)

2.       From a campaign*

2.1.    Discount per assortment node without price

2.1.1.    Discount per assortment node without price, from a campaign in customer hierarchy. (Hierarchy level upwards) 

3.       From agreement**

3.1.    Discount per part without price

3.1.1.        Discount per part from customer agreement in customer hierarchy. (Hierarchy level upwards.)

3.2.    Discount per sales group or assortment node without price from Agreement (sales group or assortment is dependent on the usage of assortment field in agreement header)

3.2.1.        Discount per sales group or assortment node without price from customer agreement (sales group or assortment is dependent on the usage of assortment field in agreement header) in Customer Hierarchy (Hierarchy level upwards.)

4.       Discount from customer.

4.1.    Discount from customer in customer hierarchy. (Hierarchy level upwards.)  

When searching for discount in assortment structure it looks for the discount on the assortment node closest to the part. 

* Note that it is not possible to define a campaign line for a part without price (only discount). The reason for this is to ensure that a discount from campaign is used even before a customer agreement line that has both price and discount. So when entering a campaign line for a part the sales price for that part will be fetched. 

** Situation derived of the fact that there might be several active customer agreements simultaneously:

If a customer agreement exists in the customer order header, this agreement ID will be the first agreement used to check when retrieving the discount. If a discount cannot be found on this agreement, or if no agreement ID exists in the customer order header, the system will search only in one agreement, the one with the lowest ID. 

Price handling on Customer Orders generated from Work Orders

Prices and discounts are retrieved to the work orders through the use of existing pricing rules found in IFS/Customer Order. Once retrieved, the prices and/or discounts can be modified for the specific work order before generating the customer order.

When the customer order is generated, the specific price is explicitly sent from the work order to the customer order, hence price handling is not done from IFS/Customer Order during generation, rather the price from the work order will be displayed on the customer order. Additionally when generating a customer order from a work order that is based on a Fixed Price contract, we explicitly send the price 0 (zero) from the work order to the customer order.