In this post we will configure all aspects of SAP S4 HANA MM Pricing Procedure. Before starting S4 HANA MM pricing procedure , we will have a look at the pre-requisite configuration, which is required before configuring Pricing Procedure in SAP S4 HANA
1. Pre-Requisite Configurations
Below diagram is showing the configuration (& related posts) required to complete before starting configuration of S4 HANA pricing procedure.
Link to each post is given below
- 1. Configure SAP Finance Organization Structure in 5 Minutes
- 2. Configure SAP S4 HANA Material Management Organization Structure in 5 Minutes
Once we have completed all the above configurations, we are ready to configure MM Pricing Procedure.
2. Understanding of SAP S4 HANA MM Pricing Procedure
SAP S4 HANA MM Pricing Procedure can be Bifurcated in Two Parts
2.1 Technique behind S4 HANA MM Pricing Procedure (Condition Technique)
To understand SAP S4 HANA MM Pricing Procedure, We need to first have an overview of the working of the pricing conditions in the MM. To understand this we need to understand condition technique. Pricing is broadly used to describe the calculation of price & costs. During Purchase Order processing, the system uses the condition technique to determine automatically the various cost components like discounts, surcharges, freight etc.
2.2 Determination of Pricing Procedure
Let’s start with technique behind working of pricing procedure
3. Condition Technique in S4 HANA MM Pricing Procedure
Condition technique involves the following below elements in sequence.
- Condition Types
- Access Sequences
- Condition Tables
- Calculation Schemas
Let,s review all the four elements of condition technique one by one
4. Condition Type
In SAP S4 HANA MM Pricing Procedure, the first step in defining pricing is configuration of condition types.
We create different type of condition types representing discounts, surcharges, freight, cost, taxes etc. to complete our pricing schema.
Let’s review the configuration of condition type and all the fields associated with it.
4.1 Fields in “Control Data 1” Section of Condition Type Configuration
Below fields are available in control data 1 section of condition type configuration
4.1.1 Condition Class
This field determines the category of condition type like : Price, Tax. Discount or surcharge etc.
The most common classes are as follows
18.104.22.168 Condition Class “B”
If a condition type is being configured for gross pricing then condition class “B” will be used.
22.214.171.124 Condition Class “A”
If a condition type is being configured for Quantity or weight discount then condition class “A” will be used.
126.96.36.199 Condition Class “D”
If a condition type is being configured for taxes then condition class “D” will be used.
4.1.2 Calculation Type
This field determines how the condition type will be calculated.
The most common used calculation types are
“B”-For Fixed Amount,
“G” for our own formula
if we use calculation type “G” in a pricing procedures, a condition basis formula and a condition value formula must be assigned to this calculation type.
Note : The formula define here (in MM pricing procedure) works the same way in SD. We use VOFM for the same.
4.1.3 Condition Category
Condition Category is the classification of condition types such as FREIGHT, TAX, PRICE, DISCOUNT.
The condition categories are always hardcoded.
188.8.131.52 Condition Category “F -Freight” vs “B -Delivery costs”
If the vendor is same for Main Purchase Order & Freight then we can select the F category
But if the transportation vendor is different then the Purchase order vendor then we need to select the “B” delivery cost condition category
With condition category “B – Delivery Cost”, we will have the option of entering delivery vendor (other than main vendor) for that condition type in PO and also option of posting this cost to different G/L account based on account key setting in Accrual column in MM pricing procedure and G/L account assignment in OBYC for that account key.
Condition types are differentiated broadly using the condition class and more definitively using the condition category.
4.1.4 Rounding Rule
Rounding rule determines the rounding up value of the condition type. If the value is set up as “Commercial” then value is rounded off, for example $9.364 round off to $9.36
4.1.5 Plus/Minus Value
This configuration determines if condition type value is treated as positive value or negative value.
Negative values are discounts and positive values are surcharges.
Note : A blank value represents a positive.
4.2 Fields in “Group Condition” Section of Condition Type Configuration
Below three fields are present in this section of condition type configuration
4.2.1 Group Condition
if this field is checked , then such condition type is determined based on the cumulative value of the line item. for a group condition, all the values of the relevant items (price, order quantities etc) are added and then total is used as condition bases.
For example : a PO has several line items . There is a discount group condition in our PO which gives 10% discount if PO value is exceeds by 1000$ for a particular material group items. in this case if total value of this material distributed in several line item is calculated and compared against 100$ in order to arrive on discount decision, though individually such PO line item may not qualify for discount being less than $1000 order value.
4.2.2 Rounding Difference Comparison
if this field is checked then system compares the total of line items condition values to the condition value at the header level and difference is added to the largest item.
4.2.3 Group Condition Routine
This is used to calculate any alternative value as base to determine the scale value. For example – Group condition base can be a total of all line items weight which belongs to a particular material groups.
4.3 Fields in “Changes which can be made” Section of Condition Type Configuration
Below fields are given in this section of condition type configuration. Let’s review all the fields one by one
4.3.1 Manual Entries
This fields controls the priority of a condition type between manual entries and determined automatically .
Options available are “No Limitations”, or “Automatic entry has priority” which means cannot be entered manually, or “Manual Entry has priority” which means if entered manually, system does not check if a condition record exists and final option “Can not be processed manually”.
4.3.2 Header Condition/Item Condition
The selection of these checkbox determines if the condition type is a header condition type or item condition type.
This specifies if deletion of this condition type is allowed from the documents
This field controls whether the value can be overwritten on the sales/purchase documents
4.3.5 Calculation Type
This field controls whether we can change the calculation type while processing the document
Controls whether amount or percentage can be changed during document processing.
4.3.7 Quantity Relation
This field controls if conversion factor for the unit of measure of this condition type can be changed during document processing.
4.4 Fields in “Master Data” Section of Condition Type Configuration
This section has below fields.
4.4.1 Ref. Condition Type, Ref. Application & Pricing Procedure
A pricing condition type sometimes can have a reference to another pricing condition type. We will understand the use of all the above fields through a real scenario
Our requirement is that a pricing condition should flow from PO to Billing for a STO.
In Billing Type, the Pricing Procedure will be SD Pricing Procedure with normal Price Determination settings. But we will not maintain condition Records (through VK11) but we will set Reference Condition , Reference application & reference pricing procedure while configuring this Condition Type (V/06) under “Master Data” Section of Condition Type Configuration as shown in above screenshot.
Now System will access the Condition Record of the Referred Condition Type & reference Application (M – Purchasing).
The other example is a requirement that the Freight paid to Shipment Vendor should be exactly same as one charged to Customer in Sales Order / Invoice. Thus we will use Reference Condition to fulfil this requirement.
4.4.2 Condition Index
This field controls if condition index will be updated or not. we can select this for faster searches.
4.5 Fields in “Scales” Section of Condition Type Configuration
This section of the condition type configuration has several scales related fields. We will review all the fields here.
4.5.1 Scale Basis
if no scale type is entered (if this field is blank then it means Scale “Can be maintained in condition record”), then we can specify scale related to money value (scale basis B) or qty (scale basis C) or a weight (Scale basis D or E).
4.5.2 Check Value
This field controls if the scale can be maintained in ascending or descending order.
4.5.3 Scale Type (with Real time examples)
The possible values for scale type are
Blank-Can be maintained in condition records
184.108.40.206 A : Base Scale
Example of Scale type A
From 1 Unit Price is $10
From 11 units price is $9
From 21 price is $8
So if we create a PO for 30 unit then per unit price would be at a discount of $8
220.127.116.11 B : To Scale
Example of Scale type B
Up to 10 Unit Price is $10
Up to 20 units price is $9
Up to 30 unit price is $8
So if we create a PO for 30 unit then per unit price would be at a discount of $8
C : Not Used
18.104.22.168 D : Graduated Scale
in normal scales , system determines one price. while in graduated scale, multiple prices are possible in the pricing screen of an individual item.
Example of a graduated scale
From 1 unit to 10 Unit Price is $10
From 11 to 20 units price is $9
From 21 to 30 unit price is $8
So if we create a PO for 30 unit then first 10 units will be$100, next 10 units will be $90 and the last 10 units will be $80 so PO value will be $270.
22.214.171.124 Scale Routine
if standard scale bases are not sufficient then we can write our own formula to determine alternate scale basis value. Scale formulas are created through VOFM.
126.96.36.199 Scale Unit (Unit of Measure)
This unit of measure is used for group conditions that are weight or volume dependent.
4.6 Fields in “Control Data 2” Section of Condition Type Configuration
There are several important fields in “Control Data 2” Section of Condition Type Configuration. Let’s review them
4.6.1 Currency Conversion
If we select this indicator then currency conversion happens after the multiplications of the quantity.
Example – Our company is purchasing some components from abroad, main PO is in INR but freight is in USD so to avoid rounding errors, freight condition type will have this indicator checked so that freight is calculated after the quantity is multiplied.
4.6.2 Promotion Condition
Specifies that the condition type is valid only for promotions. Conditions for which this indicator has been set can only be maintained via the ‘Promotion’ menu – not via the Purchasing menu.
This field controls if Condition is Relevant for Accrual (e.g. Freight)
Indicates that the system posts the amounts resulting from this condition to financial accounting as accruals. This appears as statistical on documents i.e. not taken into account in the calculation of net price.
4.6.4 Used for Variant Configuration
This indicators indicates that condition is relevant for variant configuration.
4.6.5 Inter-company Billing
Indicator that defines a condition as relevant for the inter-company process.
Inter-company conditions are usually statistical in the sales order and the customer invoice and not statistical in the inter-company invoice.
4.6.6 Condition Exclusion Indicator
This field controls whether the system automatically excludes the discounts that are proposed during pricing. For example- if a customer is already receiving a favourable price then the discount should be excluded.
We can use exclusion for a particular condition record or for all records of a particular condition type (the field appears on the screen where you define the condition type).
4.6.7 Relevant for Acct. Assignment
If field is blank then condition type is relevant for account assignment.
If “B” is chosen , then the accounting indicator is taken into account for the account assignment.
4.6.8 Condition for Invoice List
Indicates that the condition type is relevant for internal costing
4.6.9 Quantity Conversion
This field controls the quantity conversion during determination of the condition basis.
The field is only relevant for calculation rule ‘C’ (quantity- dependent).
It is relevant if the sales quantity unit and the condition quantity unit are identical (and is different to the basis quantity unit).
–> Deactivated: The condition basis quantity is converted via the quantity to the stock keeping unit. This means that the condition quantity is determined for planned factors. This means that a change to the conversion factors in the delivery or the order are not taken into account.
Rounding errors can occur during quantity conversion.
–> Activated: If the sales quantity unit and the condition quantity unit are identical, the quantity of the document item is used, i.e. the actual quantity.
4.7 Fields in “Sales Pricing” Section of Condition Type Configuration
This section has two fields as given below.
4.7.1 Relevant to Pricing
Indicates that a condition is taken into account during purchase price determination in the sales price calculation function.
The indicator can be maintained during definition of condition types and is taken as a default value when condition records are generated. This default can be changed when the “Pricing relevance can be changed” indicator is set.
In scales, the indicator is used to select the scale line used for price determination in Sales Price Calculation.
4.7.2 Pricing On/Off
If this indicator is set, whether each individual condition record is to be taken into account in the sales price calculation function.
Click HERE to read more on condition technique on SAP help
5. Access Sequence
An access sequence may be assigned to a condition type. The access sequence is a search strategy that enables you to specify the order in which condition tables are to be searched for relevant entries for a condition type.
5.1 Silent features of Access Sequence
- The order of the accesses is determined by the order of the condition tables in the access sequence.
- The Exclusive indicator determines that the search for further valid entries in (other) condition tables is interrupted if an access was successful and a relevant entry was found.
- A condition type must have an access sequence assigned to it if you want to maintain conditions with their own validity periods(for example, condition type PB00).
- No access sequence assigned to header conditions, discounts, or surcharges
5.2 Requirements in Access Sequence
An access sequence is a search strategy to find the valid data for a condition type. Access sequence outlines the sequence in which system searches for the data.
Every access has a requirement associated with it and every requirement has a routine associated with it. Routines are ABAP codes that perform validation when the particular condition type is associated.
5.3 Exclusion Indicator
If we check this indicator then as soon as valid condition record is found , system stop the further searches for condition records.
6. Condition Table
In a condition table, we specify the combination of fields for which we create condition records.
6.1 Screenshot of a condition table
Note : Field catalog consists of all the available fields , from which condition table is created.
7. Calculation Schema
Calculation schema is used to calculate costs, prices, period-end rebates, and taxes. This concept is referred to in the Sales and Distribution (SD) area as a pricing procedure.
Calculation schema (pricing procedure) specifies which condition types are to be taken into account in which sequence.
In the standard system RM0000 and RM1000 calculation schemas are predefined
We have copied RM0000 and created below schema for our car company.
Similar schema is configured for Elect car company too.
Let,s review all the components of calculation schema
We check this checkbox if we need to input the value of a pricing condition manually. For example – unplanned freight or a special discount based on the quality complaint of the customer.
This field is selected if a condition is mandatory i.e. document (sales order/purchase order)should not be completed if this pricing condition is not entered.
This is used when this pricing condition is not required to be included in total value of PO, but only displayed in PO. For example – Rebate condition types. The rebate value is calculated but does not add to the value of PO. When rebate agreement is settled at that time these conditions are used.
This configuration Controls whether and in which fields condition amounts or subtotals are stored. For example-a customer discount or the cost of a material.
These condition amounts or subtotals are used as a starting point for further calculations. For example – a subtotal of all the discounts included in the pricing of a sales order.
Most of the time pricing needs can not be met by just defining condition type, access sequence, condition table & condition records.
For this SAP has given VOFM routines. These routines are customizable if standard routine is not capable of meeting the requirements. For example – distribution of discount among line item according to the volume instead of value.
Requirements in pricing procedures are used to validate certain conditions before a condition type is activated. For example – a condition need to be activated only if material belongs to a specific material group. We can define our own requirements starting from 900.
7.6 Alternative Calculation of Condition (Formula Condition Value)
Sometimes pricing conditions needs to be calculated by special formula. We can do this through small ABAP code and inputting this routine into the pricing procedure here.
7.7 Alternative Calculation of Condition Base Value
Routine for determining the condition basis as an alternative to the standard.
For Example : An absolute header discount is, for example, distributed in the standard system according to the cumulative value of the items.
7.8 Account Key
Through this key , pricing condition type is linked to GL account. We use this key in OBYC transaction to link this to the respective GL where the value of this condition type need to be posted. This represents MM-FI integration.
7.9 Account Key – Accruals / Provisions
With this account key, the system can post amounts to certain types of accruals accounts. For example, rebate accruals
8. Pricing Procedure Determination
In this section we will see how pricing procedure is determined in our purchasing documents. Pricing is determined by a combination of schema groups defined by vendors & purchasing organizations.
We need to understand Purchasing info record (PIR) to understand the pricing determination.
PIR maintains the relationship between material and vendor. Prices in PIR are defined at material level or purchase organization level. Prices from the last created PO stored in PIR is automatically proposed in the PO.
8.2 Configure MM Pricing determination in 5 easy steps
Below are the steps in brief to determine pricing procedure in 5 easy steps
Time needed: 10 minutes.
How to Configure MM Pricing in 5 easy steps
- Step 1 – Define Schema Group for Purchasing Organizations
(PA10-IC Car Puchase.org. Schema Group, PP10-Elect Car Purchase.org. Schema Group)
- Step 2-Assignment of Schema Group to Purchasing Organization
- Step 3-Define Schema Group for Suppliers
(I1-PA10 IC Car Vendor Schema Grp, E1-Elect Car Vendor Schema Grp, I2-PA20 C Car Vendor Schema Grp)
- Step 4-Define Calculation Schema
ICCAR001-Schema for IC Car, ELCAR001-Schema for Elec Car
- Step 5-Define Schema Determination
Check the respective section for details on schema determination
Step 1 : Define Schema Group for Purchasing Organizations
These allows us to group together purchasing organizations that use the same calculation schema.
|Here SAP has given flexibility if we want to have separate scheme for different purchase org like service purchase organization & Material purchasing organization or export purchasing organization
|for our car business, we have created two Schema groups for both the Purchasing Organization
Step 2 :Assignment of Schema Group to Purchasing Organization
Step 3 :Define Schema Group for Suppliers
Here through this we can assign different pricing determination procedure to different suppliers.
Step 4 :Define Calculation Schema
We will copy Big schema RM0000 and rename to use for our car business. This schema already has all the necessary condition types required for our car business.
Step 5 : Define Schema Determination
We will define Standard Purchase Order Schema determination. For STOs we will do it later in special post.
At present we are assigning same schema for the vendors of PA10 & PA20 Plants. Please note that, if require, we have made provisions to have separate schema for the vendors of PA10 or PA20 through different vendor schema group as per above step
This completes the configuration of SAP S4 HANA MM Pricing Procedure
In the previous post we have configured S4 HANA input Tax procedure which is used in SAP S4 HANA MM Pricing Procedure in this post. Please click on the above button to see the details.
In the next post we will configure FI-MM Integration. Please click on the above link to see the details.
Image courtesy : Sale vector created by jcomp – www.freepik.com