Ultimate guide to SAP S4 HANA MM Pricing Procedure

Ultimate guide to SAP S4 HANA MM Pricing Procedure

Home » Ultimate guide to SAP S4 HANA MM Pricing Procedure


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

Table of Contents

1. Pre-Requisite Configurations

Below diagram is showing the configuration (& related posts) required to complete before starting configuration of S4 HANA pricing procedure.

Picture : Pre-requisite Configurations Before MM Pricing Configuration

Link to each post is given below

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.

Picture : Condition Type Configuration ..First Part
Picture : Condition Type Configuration ..Second Part
Picture : Condition Type Configuration ..Third Part
Picture : Condition Type Configuration ..Fourth Part

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

Picture : Fields 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

4.1.1.1 Condition Class “B”

If a condition type is being configured for gross pricing then condition class “B” will be used.

4.1.1.2 Condition Class “A”

If a condition type is being configured for Quantity or weight discount then condition class “A” will be used.

4.1.1.3 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,

“A”-For percentage

“C”-For quantity

“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.

4.1.3.1 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.

Hint

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

Picture : Fields in “Group Condition” 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

Picture : Fields in “Changes which can be made” Section of Condition Type Configuration

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.

4.3.3 Delete

This specifies if deletion of this condition type is allowed from the documents

4.3.4 Value

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

4.3.6 Amount/Percentage

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.

Picture : Fields in “Master Data” Section of Condition Type Configuration

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.

Picture : Fields in “Scales” Section of Condition Type Configuration

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

4.5.3.1 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

4.5.3.2 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

4.5.3.3 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.

4.5.3.4 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.

4.5.3.5 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

Picture : Fields in “Control Data 2” Section of Condition Type Configuration

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.

4.6.3 Accruals

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.

Picture : Fields in “Sales Pricing” Section of Condition Type Configuration

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.

Picture : Access Sequence

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

Picture : 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.

Standard settings

In the standard system RM0000 and RM1000 calculation schemas are predefined

We have copied RM0000 and created below schema for our car company.

Picture : Our IC Car Plant Pricing Schema , First Part
Picture : Our IC Car Plant Pricing Schema , Second Part
Picture : Our IC Car Plant Pricing Schema , Third Part
Picture : Our IC Car Plant Pricing Schema , Fourth Part
Picture : Our IC Car Plant Pricing Schema , Fifth Part


Similar schema is configured for Elect car company too.

Let,s review all the components of calculation schema

7.1 Manual

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.

7.2 Required

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.

7.3 Statistics

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.

7.4 Subtotals

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.

Example

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.

7.5 Requirements

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.

8.1 PIR

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

  1. Step 1 – Define Schema Group for Purchasing Organizations

    (PA10-IC Car Puchase.org. Schema Group, PP10-Elect Car Purchase.org. Schema Group)

  2. Step 2-Assignment of Schema Group to Purchasing Organization

    (PA10->PA10, PP10->PP10)

  3. 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)

  4. Step 4-Define Calculation Schema

    ICCAR001-Schema for IC Car, ELCAR001-Schema for Elec Car

  5. 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

Picture : Path to Define Schema Group for Purchasing Organizations

|for our car business, we have created two Schema groups for both the Purchasing Organization

Picture : Define Schema Group for Purchasing Organizations

Step 2 :Assignment of Schema Group to Purchasing Organization

Picture : Path to Assignment of Schema Group to Purchasing Organization
Picture : 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.

Picture : Path to Define Schema Group for Suppliers

Picture : Define Schema Group for 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.

Picture : Path to Define Calculation Schema
Picture : Define Calculation Schema for IC Car

Picture : Define Calculation Schema for Electric Car

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

Picture : Path to Define Schema Determination

Picture : Define Schema Determination

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

Join the discussion