SD Pricing Part 3: Condition Types and the Pricing Procedure
Configure condition types (class, calculation type, scales, manual changes, header/item) and the pricing procedure (step, counter, from/to, manual, required, statistical, subtotal, requirement, account key), and determine the procedure via OVKK.
Explanation
📌 KEY POINTS
✅ Condition type (V/06) defines behavior: class (price, discount/surcharge, tax), calculation type (percentage, fixed amount, quantity-based), plus/minus, manual changes, header/item, scales.
✅ Pricing procedure (V/08) orders condition types with step/counter and adds rules: from/to base, manual, required, statistical, subtotal, requirement, alternative calculation, account key.
✅ Account keys (ERL revenue, ERS sales deductions, ERF freight, MWS tax) link pricing to revenue account determination (VKOA).
✅ OVKK assigns the procedure per sales area, document pricing procedure and customer pricing procedure.
⚠️ A condition type in the procedure without "required" can be missing silently — mark the price as required.
━━━━━━━━━━━━━━━━━━━━
▶ WHERE WE ARE
Part 2 explained price finding. Now the condition types and the procedure that combines them.
━━━━━━━━━━━━━━━━━━━━
▶ 1. CONDITION TYPE CONTROL
- Access sequence, condition class (A discount/surcharge, B price, D tax).
- Calculation type: A percentage, B fixed amount, C quantity.
- Plus/minus (only negative for discounts), rounding rule.
- Manual entries priority, changeable amount/percent, delete allowed.
- Header condition / item condition, group condition, scales.
━━━━━━━━━━━━━━━━━━━━
▶ 2. PROCEDURE COLUMNS
- Step/counter: sequence.
- From/to: base for percentages (e.g. discount on gross).
- Manual: only entered manually; required: must exist; statistical: not in net value.
- Print, subtotal (to fields like KZWI1–6), requirement, alt. calc type, alt. base value.
- Account key and accrual key.
━━━━━━━━━━━━━━━━━━━━
▶ 3. TYPICAL STRUCTURE
- Price → gross value subtotal.
- Discounts → net value subtotal.
- Freight → surcharges.
- Tax on net + freight.
- Statistical: cost (VPRS), cash discount.
━━━━━━━━━━━━━━━━━━━━
▶ 4. PROCEDURE DETERMINATION
- OVKK: sales area + document pricing procedure + customer pricing procedure → procedure + condition type for display (e.g. price).
━━━━━━━━━━━━━━━━━━━━
▶ 5. CHANGES AND IMPACT
- Changing a procedure affects new pricing; existing documents keep their conditions until repriced.
- Account key changes affect revenue postings → coordinate with finance.
━━━━━━━━━━━━━━━━━━━━
▶ STEP BY STEP
- Copy standard condition types to Z where behavior must differ.
- Copy the standard procedure to Z and adjust steps.
- Mark price required, set subtotals and account keys.
- Maintain OVKK.
- Test pricing and posting (billing → accounting).
✅ CHECKPOINT: an order shows gross, discounts, net, freight, tax and cost in the expected steps, and billing posts to the right accounts.
Code example
===== STEP 1: condition type (V/06) ZPR0 =====Access sequence ZPR0 | Cond. class B (price) | Calc. type C (quantity) | Plus/minus –Manual entries: C (manual has priority) | Amount changeable: X | Item condition: X ===== STEP 2: pricing procedure (V/08) ZVAA01 excerpt =====Step | CTyp | From | To | Man | Req | Stat | SubTo | Reqt | AltCTy | ActKy10 | ZPR0 | | | | X | | | 2 | | ERL100 | | | | | | | 1 | | | Gross value110 | K007 | 100 | | | | | | 2 | | ERS300 | | | | | | | 2 | | | Net value400 | KF00 | | | | | | | 2 | | ERF800 | MWST | 300 | 400| | | | | 10 | 16 | MWS900 | VPRS | | | | | X | B | 4 | | Cost (statistical) ===== STEP 3: determination (OVKK) =====1000 / 10 / 00 | DocPP A | CuPP 1 → ZVAA01 ===== STEP 4: revenue account determination =====VKOA: account key ERL/ERS/ERF → G/L accountsReal project scenario
After a pricing procedure redesign, finance noticed customer discounts posting to the revenue account instead of the sales deductions account. The new discount condition type had been added without account key ERS. Revenue and deductions were misstated for a month. The team added ERS, corrected the postings with finance, and added a procedure review checklist including account keys and a billing-to-accounting test for every new condition type.
Common mistakes
- Forgetting account keys for new condition types.
- Not marking the main price as required.
- Wrong from/to ranges for percentage discounts.
- Changing standard condition types instead of copying.
- Adding statistical conditions to net value.
Best practices
- Keep pricing procedures few and well documented.
- Always set required on the price and account keys on revenue-relevant conditions.
- Test pricing through billing and accounting.
- Copy standard objects to Z.
- Review procedure changes with finance.
Interview angle
Questions: "Which settings do you maintain in a condition type?", "Explain the pricing procedure columns", "How is pricing linked to FI?"
Strong answer: condition class, calculation type, plus/minus, manual, header/item, scales in V/06; step, counter, from/to, manual, required, statistical, subtotal, requirement, alt calc, account key in V/08; OVKK determination; account keys to VKOA revenue account determination.
Practice this lesson
Quick check
1. What does marking a condition line as "statistical" in the pricing procedure mean?
2. A new discount condition type was added to the pricing procedure, and discounts now post to the revenue account. What was most likely missed?
3. Which condition class and calculation type fit a customer discount of 5%?
Interview questions
1. A global company shares a single condition table for revenue account determination (VKOA access sequence) across multiple sales organizations, but one division now needs a different GL account for the same material/customer combination due to a new reporting requirement. How would you diagnose and redesign the condition table setup without disrupting other divisions?
Answer it in your own words first, then compare.
2. In a pricing procedure, how do the 'From' and 'To' step columns work with subtotal and requirement fields to control condition calculation?
Answer it in your own words first, then compare.
Reference-verified: the steps are checked against official SAP documentation and tutorials, and object and field names in the sample code are checked for consistency. The code has not been compiled or run on an SAP system by ERPClimb. Syntax marked release-dependent varies by SAP release, so check it in your own system.
More lessons in this topic
- SD Pricing Part 1: The Condition Technique — How SAP Prices a Sales Document
- SD Pricing Part 10: Enterprise Pricing Architecture — Governance, Extensibility and S/4HANA Migration
- SD Pricing Part 2: Condition Tables and Access Sequences — How SAP Finds a Price
- SD Pricing Part 4: Condition Records, Scales and Validity Management
- SD Pricing Part 5: Header Conditions, Statistical Conditions and Subtotals
- SD Pricing Part 6: Condition Exclusion, Group Conditions and Scales in Depth
- SD Pricing Part 7: Pricing Routines — Requirements, Alternative Calculation Types and Base Values
- SD Pricing Part 8: Manual Pricing, Price Updates and Change Governance