Calculation Schema in SAP MM & SD

โšก Smart Summary

Calculation Schema in SAP defines the order in which condition types are applied to reach a net price. Customizing controls usage A Pricing and application M Purchasing, with each step carrying its own calculation and account settings.

  • ๐Ÿงฎ Core Definition: An ordered list of condition types that together calculate gross price, discounts, surcharges, and net value.
  • โš™๏ธ Customizing Path: Define Calculation Schema in IMG, where usage A Pricing and application M Purchasing identify the procedure set.
  • ๐Ÿชœ Step and Counter: Step fixes the sequence and counter allows several conditions to share one step.
  • โž— From and To: These reference steps supply the base value that percentage conditions are calculated against.
  • ๐Ÿ”’ Control Flags: Manual, Required, and Statistics decide whether a condition can be typed, must exist, or only reports.
  • ๐Ÿฆ Account Keys: AccKey and AccrualAccKey route the calculated value to the correct G/L account or provision.

Calculation schema in SAP MM and SD

What is a Calculation Schema in SAP?

A calculation schema, also called a pricing procedure, is the recipe SAP follows to turn a list of individual conditions into one net price on a purchasing document. Without it, a discount and a freight charge would exist as unrelated numbers with no rule for how they combine.

The schema answers three questions for every purchase order item:

  • In what order? A discount calculated before freight produces a different total than one calculated after. The step numbers fix that sequence.
  • Based on what? A percentage condition needs a base value. The From and To reference steps tell it which earlier lines to sum.
  • Posting where? Each calculated amount has to reach a general ledger account, which the account key on the line supplies.

The schema sits at the top of the pricing configuration chain. A condition table and access sequence decide where a price is found, a condition type describes what kind of value it is, and the calculation schema decides how all of them are combined.

Process to Define Calculation Schema

As you saw in the previous topic, a condition type is assigned a calculation schema. It is defined in customizing.

Step 1) In IMG, Choose Define Calculation Schema option.

Define Calculation Schema in SAP

Step 2)

  1. You can see that the initial screen contains a dialog structure with Schemas as the top level. Additionally, you can drop down to Control data.
  2. Right portion of the screen shows Usage and Application data. We can see that usage is to A โ€“ Pricing, and application is set to M โ€“ Purchasing.
  3. Contains a list of schemas and its short description

Define Calculation Schema in SAP

Step 3)

  1. Click on the schema you want to change
  2. Double click the Control data node.

Define Calculation Schema in SAP

Step 4) The following table of condition types (reference steps) is used in this calculation schema. There are a number of options for condition types that can be set for this calculation schema (different settings could be set for the same condition type in the other calculation schema). List of possible options with a short description:

  1. Step (indicates the sequence of the procedure)
  2. Counter (counts the number of conditions in a step)
  3. Condition type (one of the already defined condition types – previous topic)
  4. From (reference step to be used as a base for calculating percentage conditions)
  5. To (up to which step the conditions should be used as a base for calculating percentage conditions)
  6. Manual (allowed to be entered manually)
  7. Required (required condition)
  8. Statistics (only statistical condition)
  9. Print (printing control for condition)
  10. Subtotal (how to calculate the subtotal)
  11. Requirement (custom routine for the requirement)
  12. CalType (calculating routine – if custom routine is needed)
  13. BasType (custom routine for base condition value)
  14. AccKey (G/L account key)
  15. AccrualAccKey (G/L account key for accruals or provisions)

Define Calculation Schema in SAP

After the right settings are applied to all of the conditions in a procedure you can save the transaction data.

โš ๏ธ Warning: Never edit a standard SAP schema such as RM0000 directly. Copy it to a name in the customer range and change the copy. Standard schemas can be overwritten by a support pack, taking your configuration with them.

Statistical Conditions, Subtotals and Account Keys

Three of the fifteen columns above cause most of the confusion in practice, because they change what the number does rather than what it is.

Statistics. A statistical condition is calculated and displayed but never added to the net value and never posted to accounting. It exists for information. Typical uses are a cash discount shown for reference, an estimated freight figure, or a market price used to benchmark what was actually paid. Ticking Statistics on a real cost is a common configuration error, because the amount then quietly disappears from the order value.

Subtotal. This field stores the running total at that step into a specific field so later steps or reports can read it. Value 9, for example, writes to the field used as the effective price basis. Without a subtotal, an intermediate figure is calculated and then lost, so any later percentage condition has nothing to reference.

Account key. The key maps the calculated amount to a general ledger account through automatic account determination. Freight posts to a freight clearing account rather than to stock, and a discount reduces the stock value directly. Where a charge is expected but not yet invoiced, the accrual account key creates the provision instead.

A condition without an account key still affects the net order value but has nowhere to post, which is exactly what is wanted for a discount that simply reduces the price and exactly what is not wanted for a delivery cost.

How SAP Determines the Calculation Schema

A schema is not chosen by the buyer. SAP derives it automatically when the purchase order is created, using a combination of three master data values.

  1. Schema group of the vendor. Held on the purchasing data of the vendor master, this groups suppliers that share pricing behaviour, such as domestic versus import.
  2. Schema group of the purchasing organisation. Assigned in customizing to each purchasing organisation, this separates procurement units that price differently.
  3. Schema determination table. The two groups together point at exactly one calculation schema. Change either group and a different schema applies.

The practical consequence is that a pricing problem is often not a pricing problem. When a condition type refuses to appear on an order, the first check is whether the vendor carries the schema group that leads to the schema containing it. That configuration is covered in defining schema groups.

Standard SAP delivers RM0000 as the reference purchasing schema, containing gross price PB00 and PBXX, discounts, surcharges, freight, and the subtotals that produce the effective price. Copying RM0000 and adjusting the copy is the normal starting point for any project. The wider configuration sequence is covered across the SAP MM tutorial series.

FAQs

Step fixes the sequence of calculation. Counter distinguishes several condition types that occupy the same step, for example alternative discounts where only one will apply.

The Statistics flag is ticked on that line. Statistical conditions display for information only, never change the net value, and never post to accounting.

AI traces why a document priced the way it did, comparing the applied schema against expected conditions and naming the step that produced the deviation, which shortens configuration debugging.

Yes. Analysing posted documents shows which conditions never carry a value. Removing unused steps shortens the procedure and reduces the surface for future configuration errors.

Yes, and its control settings can differ in each. The same freight condition can be required in one schema and statistical in another, because the flags live on the schema line, not the condition type.

Summarize this post with: