SAP Pricing Procedure Not Determined in a Sales Document
Pricing determination in SD is a single table lookup with four inputs: sales area, document pricing procedure, customer pricing procedure, and the resulting procedure. When a sales order shows no conditions, a zero net value, or an explicit message that no pricing procedure could be found, exactly one of those four inputs is wrong or missing. The error feels large because pricing touches everything downstream, but the diagnosis is narrow and almost always finishes in under ten minutes if you check the inputs in the right order.
At a glance
| Symptom | Likely cause | Where to check |
|---|---|---|
| No conditions at all in the item | No procedure determined for the key combination | OVKK, pricing analysis in the item condition tab |
| Procedure found, base price missing | Condition record absent or outside validity | VK13, condition tab analysis, A-tables |
| Works for one customer, not another | Customer pricing procedure blank on the sales area view | XD02 / BP sales area data, KNVV-KALKS |
| Works for one document type only | Document pricing procedure differs per type | VOV8 for the order type, OVKI values |
| Fails only in one company or plant | Sales area combination not maintained in the determination table | OVKK entries for that sales area |
| Was fine yesterday, fails today | Transport moved or deleted a determination entry | Table change logs, transport history in STMS |
Root cause 1: no entry for the sales area key combination
The determination table maps sales organisation, distribution channel, division, document pricing procedure and customer pricing procedure to a procedure. If the specific combination in your order has no row, nothing is determined and the item stays empty. Check OVKK and look for the exact combination — not a similar one. New sales areas created for a rollout are the classic case: everything else was copied and this table was not.
Root cause 2: customer pricing procedure indicator is blank
The indicator lives on the sales area view of the customer master and is stored in KNVV-KALKS. A customer created by a data load or replicated through an interface frequently arrives with the field empty, because it is not mandatory at the technical level. The result is a lookup with a blank key that finds nothing. Confirm the value in XD03 or the business partner sales area data, compare it with a customer that works, and correct the master record rather than adding a blank-key row to the determination table.
Root cause 3: document pricing procedure on the order type
Each sales document type carries its own document pricing procedure indicator, maintained in VOV8. Copied order types keep the indicator of the source, which is fine until someone changes one deliberately — free-of-charge, returns and credit memo types often use a different indicator on purpose. If pricing works for a standard order and fails for a return, this is almost certainly the cause, and the fix is a determination entry for that indicator rather than a change to the order type.
Root cause 4: procedure determined, conditions still missing
A determined procedure with no values is a different problem, and confusing the two costs the most time. Here the procedure is found, but the access sequence returns nothing: condition records do not exist, they lie outside their validity period, they were created for a different key combination, or a requirement routine on the condition type is suppressing the access. The pricing analysis on the item condition tab states this explicitly per condition type and per access — read it before touching configuration.
Step-by-step diagnostic path
- Open the sales document, go to the item conditions tab and open the analysis. Confirm first whether a procedure name is shown at all. This single fact splits the problem into determination versus condition records.
- If no procedure is shown, note the sales area from the header, the order type, and the customer pricing procedure from the payer or sold-to sales area data.
- Check OVKK for that exact five-part combination. A missing row is your answer.
- If the row exists, verify the indicators actually in use: VOV8 for the document indicator and the customer master for the customer indicator. A mismatch between the row you found and the values in the document is common after a rollout.
- If a procedure is shown but values are missing, read the analysis per condition type. It names each access and why it failed, including inactive requirements.
- Validate the record in VK13 using the same key and the pricing date from the document, not today's date. Backdated and future-dated orders fail on validity constantly.
- Re-run pricing on the item with the update option after any correction, or recreate the document. Existing items do not re-determine the procedure by themselves.
Resolution
Fix at the level where the data is wrong. A missing determination row is a configuration change and belongs in a transport through the normal path. A blank customer indicator is a master data correction and should also be fixed at the source system or load template so it does not recur across the next thousand customers. A missing condition record is a business action for whoever owns pricing, not something to invent in production.
After the fix, re-price an affected document and confirm the analysis now shows both the procedure and the expected condition values. If the order was already delivered or billed, check whether downstream documents need re-pricing or a credit or debit memo — correcting the order alone leaves the invoice wrong.
When to escalate
Escalate to the SD configuration owner when the required determination entry does not exist in any environment and someone must decide which procedure the new sales area should use. Escalate to development when the pricing analysis points at a requirement or formula routine, since changing routine logic affects every document that uses the condition type. Escalate to the business when the correct condition record simply has not been maintained — that is a commercial decision about price, and support should not fill it in.
Keep going
Paste your pricing analysis output into the ERPClimb AI Debugger for an ordered root-cause path against your own sales area and document type.
- IDoc status 51 application errors — where a pricing gap surfaces as a failed inbound order.
- GR/IR mismatch: how to find and clear it — the equivalent diagnostic on the procurement side.
- SAP MM vs SD: which module to choose — if pricing work is the kind of problem you want to own.
Transaction codes, tables and determination behaviour reflect standard SAP SD in ECC and S/4HANA and may differ in your system depending on release and customising. Verify against your own system before changing configuration. ERPClimb is an independent educational platform and is not affiliated with SAP SE.