SAP MM Pricing Process

SAP MM Pricing Process

A comprehensive guide to understanding and implementing pricing procedures in SAP MM

Pricing in SAP MM determines how the system calculates the final price of materials or services in purchasing documents like purchase orders, contracts, and scheduling agreements. It's a structured process that combines base prices with various adjustments like discounts, surcharges, taxes, and delivery costs.

This guide will help you understand the complete pricing process, from configuration to transaction-level implementation.

Overview
Process Flow
Condition Types
Pricing Procedure
Examples

Pricing Process Overview

The pricing procedure in SAP MM is a calculation schema that determines how the system calculates the price of materials or services in purchasing documents.

Key Components of Pricing

Base Price

The starting price of a material or service. Standard condition types:

PB00: Time-dependent condition used in contracts, RFQs, etc.

PBXX: Time-independent condition used in purchase orders.

Discounts

Reductions to the base price.

Percentage discounts: Calculated as a percentage of the base price.

Absolute discounts: Fixed amounts deducted from the base price.

Surcharges

Additions to the base price.

Instead of changing the base value, surcharges are added to get the final value.

Taxes

Taxes calculated based on the net value.

JXS: Standard condition type for taxes.

Tax calculation is typically configured by FI consultants.

Delivery Costs

Additional costs related to the delivery of materials:

Freight: Transportation costs.

Packaging: Costs for packing materials.

Insurance: Costs to insure the shipment.

Pricing Calculation Flow

Base Price 100.00
Discount (5%) -5.00
Net Value After Discount 95.00
Tax (18%) 17.10
Value After Tax 112.10
Freight (2%) 1.90
Packaging (1%) 0.95
Effective Value 114.95

SAP MM Pricing Configuration Process Flow

Setting up pricing in SAP MM involves several configuration steps. Follow this process to implement a complete pricing solution:

1

Create Tables (T-code: M/03)

Tables define the combinations of fields (Plant, Vendor, Material, etc.) used for automatic condition determination.

You can use standard tables or create your own. SAP will notify you if a standard table already exists for your field combination.

2

Create Access Sequences (T-code: M/07)

Access sequences group tables in a sequence for condition determination.

Tables are arranged from most specific to most general. The "Exclusive" flag determines whether the system continues searching if it finds a match.

3

Create Condition Types (T-code: M/06)

Condition types represent pricing components like base price, discounts, surcharges, taxes, and delivery costs.

For automatic conditions, assign the relevant access sequence. Manual conditions don't need an access sequence.

  • Condition class: Prices, discounts, taxes, etc.
  • Calculation type: Percentage (A), fixed amount (B), quantity (C)
  • +/-: Positive for prices/surcharges, negative for discounts
4

Create Pricing Procedure (T-code: M/08)

The pricing procedure (calculation schema) defines which condition types are used and how they interact.

Configure steps, counters, from/to values, and other settings to control the calculation flow.

5

Create Schema Groups

Create schema groups for vendors and purchasing organizations to determine which pricing procedure to use.

6

Assign Purchasing Orgs to Schema Groups

Assign purchasing organizations to the schema groups created in the previous step.

7

Assign Pricing Procedure to Schema Groups

Link the pricing procedure to the schema groups for vendors and purchasing organizations.

This determines which pricing procedure the system will use for a specific combination of vendor and purchasing organization.

8

Create Condition Records (T-code: MEK1)

Create condition records for automatic conditions based on the access sequences and tables configured earlier.

These records contain the actual values (prices, discount percentages, etc.) used in calculations.

9

Assign Vendor Schema Group to Vendor Master

In the vendor master (BP transaction), assign the appropriate vendor schema group to each vendor.

This completes the link between vendors and pricing procedures.

Condition Types

Condition types are the building blocks of pricing in SAP MM. Each represents a specific component of pricing such as base price, discount, surcharge, tax, or delivery cost.

Condition Type Description Condition Class Calculation Type +/-
PB00 Base Price (Time-dependent) Prices Quantity (C) +
PBXX Base Price (Time-independent) Prices Quantity (C) +
RA01 Discount on gross price Discount/Surcharge Percentage (A) -
RB00 Absolute discount Discount/Surcharge Fixed Amount (B) -
JXS Taxes Taxes Fixed Amount (B) +
FA1 Freight (percentage) Discount/Surcharge Percentage (A) +
FB1 Freight (fixed amount) Discount/Surcharge Fixed Amount (B) +

When configuring condition types, you need to set several parameters:

Condition Class

Defines the nature of the condition:

  • Prices (A): For base prices
  • Discount/Surcharge (B): For discounts, surcharges, and delivery costs
  • Taxes (C): For tax conditions

Calculation Type

Determines how the condition value is calculated:

  • Percentage (A): Calculated as a percentage of another value
  • Fixed Amount (B): A fixed monetary amount
  • Quantity (C): Based on quantity (used for prices)

Condition Category

Categorizes the condition for processing:

  • Basic Price (H): For base price conditions
  • Delivery Cost (B): For freight, packaging, insurance
  • No category for discounts and surcharges

Plus/Minus

Determines whether the condition increases or decreases the price:

  • Positive (+): For prices, surcharges, taxes, and delivery costs
  • Negative (-): For discounts

Manual Entry

Controls how the condition can be entered:

  • No Limitation: Can be entered manually or determined automatically
  • Not Possible to Process Manually (D): Only determined automatically
  • Manual Entry Has Priority (C): Manual entry overrides automatic determination
  • Automatic Determination Has Priority (B): Automatic determination overrides manual entry

Group Condition

For header-level conditions, determines how the condition value is distributed to items:

  • Checked: The condition amount is proportionally distributed across items
  • Unchecked: The full condition amount is applied to each item

Automatic Conditions

Determined by the system based on predefined rules:

  • Require access sequences and tables
  • Values are stored in condition records
  • Example: PB00 (time-dependent base price)

Manual Conditions

Entered manually during document creation:

  • Do not require access sequences
  • No condition records needed
  • Example: PBXX (manually entered base price)

The choice between automatic and manual conditions depends on business requirements. Automatic conditions are useful for standardized pricing that applies consistently, while manual conditions offer flexibility for case-by-case pricing decisions.

Header Conditions

Applied at the document header level:

  • Affect all items in the document
  • With Group Condition: Value is proportionally distributed to items based on their value
  • Without Group Condition: Full value is applied to each item
  • Example: Document-level discounts

Item Conditions

Applied at the line item level:

  • Affect only the specific item
  • Example: Item-specific prices, discounts

Some condition types can be configured to work at both header and item levels, giving maximum flexibility.

Pricing Procedure (Calculation Schema)

The pricing procedure defines which condition types are used and how they interact to calculate the final price.

Structure of a Pricing Procedure

A pricing procedure consists of several components arranged in steps and counters:

Step Counter Condition Type From To Manual Required Statistical
1 1 PB00
1 2 PBXX
10 1 1
20 1 ZD01 10 10
20 2 ZD02 X
30 10 20
40 1 JXS X
50 30 40
60 1 ZPC1 30 30 X
60 2 ZPC2 30 30 X
60 3 ZPC3 X
70 50 60

Key Elements of a Pricing Procedure

Step: Groups related condition types together. All condition types with the same step number are considered part of the same pricing component.

Counter: Differentiates between condition types within the same step. For example, PB00 and PBXX might be in the same step but have different counters.

Calculation steps (with no condition type) use step numbers only to define how values from earlier steps are combined.

The From and To values define the basis for calculations and how values flow through the pricing procedure:

  • For condition types that need a base value (like percentage discounts), the From/To values define which step's value to use as the base.
  • For calculation steps (with no condition type), the From/To values define which steps' values to sum.

Example: A discount percentage condition type might have From/To values of 10/10, meaning it calculates the discount based on the value from step 10 (base price).

The Manual flag controls whether a condition type appears by default in the conditions screen:

  • If checked: The condition type won't appear by default. Users must explicitly select it.
  • If unchecked: The condition type always appears in the conditions screen.

This is useful for condition types that are used occasionally, as it keeps the conditions screen uncluttered.

The Required flag makes a condition type mandatory:

  • If checked: The system won't allow the document to be saved without this condition type having a value.
  • If unchecked: The condition type is optional.

In MM, this is rarely used for pricing because base prices are already required by the system logic.

The Statistical flag determines whether a condition type affects the net value:

  • If checked: The condition type is for information only and doesn't affect the net value.
  • If unchecked: The condition type affects the net value calculation.

For taxes (JXS), this is typically checked because taxes are handled separately in accounting.

For delivery costs like freight and packaging, this might be checked if they are accrued expenses (set in the condition type configuration).

Account keys define how condition types are posted in financial accounting:

  • Base prices are typically posted to inventory accounts.
  • Discounts and surcharges directly affect the net value, so they don't need separate account keys.
  • Taxes have their own GL accounts defined by FI.
  • Delivery costs (freight, packaging, insurance) need account keys for posting to expense accounts.

Accruals are used for delivery costs when the expense is recognized before actual payment.

Determining a Pricing Procedure

The system determines which pricing procedure to use based on:

  1. The vendor schema group assigned to the vendor master
  2. The purchasing organization schema group assigned to the purchasing organization
  3. The schema determination configuration that links these schema groups to a pricing procedure

When a purchase order is created, the system automatically determines the appropriate pricing procedure based on this configuration.

Practical Examples

Here are some real-world examples of pricing procedures and how they work in practice.

Example 1: Domestic Pricing with Multiple Discounts

This example shows a pricing procedure with base price, multiple percentage discounts, taxes, and delivery costs.

Base Price (Material: 10 pcs @ 100.00) 1,000.00
Discount 1 (10%) -100.00
Value After Discount 1 900.00
Discount 2 (5%) -45.00
Net Value After Discounts 855.00
Tax (18%) 153.90
Value After Tax 1,008.90
Freight (2%) 17.10
Packaging (1%) 8.55
Effective Value 1,034.55

In this example:

  • Discount 1 is calculated on the base price
  • Discount 2 is calculated on the value after Discount 1
  • Tax is calculated on the net value after all discounts
  • Freight and packaging are calculated as percentages of the net value after discounts

Example 2: Group Condition vs. Non-Group Condition

This example demonstrates the difference between group conditions and non-group conditions for header-level absolute discounts.

Purchase Order with Two Items:

  • Item 1: 100.00 (1 pc)
  • Item 2: 200.00 (1 pc)
  • Total: 300.00

Scenario 1: Non-Group Condition (ZD02)

Header discount of 50.00 entered using ZD02 (no group condition):

Item 1: Base Price 100.00
Item 1: Discount (ZD02) -50.00
Item 1: Net Value 50.00
Item 2: Base Price 200.00
Item 2: Discount (ZD02) -50.00
Item 2: Net Value 150.00
Total Net Value 200.00
Total Discount -100.00

Without the group condition, the full 50.00 discount is applied to each item, resulting in a total discount of 100.00.

Scenario 2: Group Condition (ZD03)

Header discount of 50.00 entered using ZD03 (with group condition):

Item 1: Base Price 100.00
Item 1: Discount (ZD03) -16.67
Item 1: Net Value 83.33
Item 2: Base Price 200.00
Item 2: Discount (ZD03) -33.33
Item 2: Net Value 166.67
Total Net Value 250.00
Total Discount -50.00

With the group condition, the 50.00 discount is proportionally distributed across items based on their value (1:2 ratio), resulting in a total discount of exactly 50.00.

Example 3: Automatic Condition Determination

This example demonstrates how automatic conditions are determined based on access sequences and condition records.

Configuration:

  • Condition type ZD01 with access sequence JDIS
  • Access sequence JDIS with table 363 (Plant/Vendor/Material)
  • Condition record for Plant: SG05, Vendor: V01, Material: M1, Discount: 5%

Transaction:

When a purchase order is created with:

  • Plant: SG05
  • Vendor: V01
  • Material: M1
  • Base Price: 200.00
Base Price (PB XX) 200.00
Automatic Discount (ZD01: 5%) -10.00
Net Value 190.00

The system automatically applies the 5% discount because it matches the condition record for the Plant/Vendor/Material combination defined in the access sequence.

SAP MM Pricing Process Visualization | Created for educational purposes

Our site uses cookies. By using this site, you agree to the Privacy Policy and Terms of Use.

error: Content is protected !!