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.
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 on the Sales Part Base Prices page
* (1 + Percentage Offset on the Sales Part Base Prices page/100)
+ Amount Offset on the Sales Part Base Prices page
-----------------------------------------------------------------------------------------------------------------------
= Base Price on the Sales Part Base Prices page, 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 a price 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.
On the Sales Price List page 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 on the Customer/Sales/Pricelist per Price Group tab or in the Customer Price Group page, 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.
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, since there exists no sort order when retrieving a customer agreement to the customer order line if there are multiple agreements with “Exclude from Auto Pricing” option disabled. If multiple valid agreements exist for the same customer, site and currency, rest of the agreements should have “Exclude from Auto Pricing” option enabled. Then only user can override price fetching logic in the customer order line by entering agreement ID in the customer order header.
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,
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/Sales/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/Sales/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/Higher Discount 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/Higher Discount Found option in the Campaign/General tab enables the user to control the above condition. If this option is enabled, 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 multiple active customer agreements simultaneously:
There exists no sort order when retrieving a customer agreement to the customer order line if there are multiple agreements with “Exclude from Auto Pricing” option disabled. If multiple valid agreements exist for the same customer, site and currency, rest of the agreements should have “Exclude from Auto Pricing” option enabled. Then only user can override price fetching logic in the customer order line by entering agreement ID in the customer order header, as described as priority 1 in both the Single and Multiple Discounts strategy above.
Ignore Campaign if Lower Price/Higher Discount Found
In some instances, when a campaign is ongoing, there could be customer agreements connected to a customer which provides a better discount for the customer, in comparison with the campaign. The Ignore If Lower Price/Higher Discount Found option in the Campaign/General tab enables the user to control the above condition.
With Multiple Discount strategy, if this option is enabled, when searching for one further discount source for assortments in the ‘stand-alone discount’ priority ladder, the system will search next discount source for a higher discount value in comparison with the campaign.
With Single Discount strategy, if this option is enabled, when searching for next discount source for assortments (if required) in the discount priority ladder, the system will search next discount source for a higher discount in comparison with the campaign.
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.
When the customer order is generated, the specific price is explicitly sent from Field Service Management (FSM) order to the customer order. Hence, price handling is not done from IFS/Customer Order during generation, and the price from FSM order will be displayed on the customer order.
Calculated Sales Promotion Deals per Order
Calculated Sales Promotion Deals per Quotation
Copy Sales Price List
Customer Agreement
Customer Hierarchy
Customer Order
Customer Order Lines
Customer Price Group
Price Break Template
Price Breaks per Sales Parts
Price Query
Pricing Contribution Margin Control
Sales Campaign
Sales Campaigns per Customer
Sales Campaigns per Customer Price Group
Sales Part
Sales Part Base Prices
Sales Part Rental Base Prices
Sales Price List
Sales Price List Lines
Sales Quotation
Update Assortment Node Based Prices
Update Assortment Pricing on Agreements
Update Base Prices
Update Customer Agreements from Base Prices
Update Sales Price Lists from Base Prices
Update Unit Based Price Lists
Enter Customer Agreements
Manage Campaigns
Manage Standard Prices
Create and Maintain Sales Part
Create and Maintain Sales Part, CTO
Enter Customer Order
Enter Customer Order, CTO
Enter Sales Quotation
Enter Sales Quotation, CTO
Enter Price Lists
Enter Price Lists, CTO
Maintain Price Lists