cancel
Showing results for 
Search instead for 
Did you mean: 

Pricing Conditions Rounding Issue

Former Member

Currently, our system has two pricing condition types. ZP,ZD. The ZP conditions represent a base price and the ZD represent a differential(- discount or + surcharge). Both are based on the same hierarchy. ZP00,ZP01,ZP02.ZP03,ZP04. A ZP01 overrides a ZP00 and ZP03 overrides ZP00, ZP01,ZP02 and so on and so forth. All transactions are settled in USD. However, most of the time the ZP, ZDs are based on prices that extend out more than two decimal places. I am experiencing and issue because SAP calculates the ZP and ZD separately and is rounding each. For example the ZP or base price in this case is $2.245. This times quantity of 3,999Gal = $8,977.755. SAP rounds this to $8,977.76. SAP then calcs. the differential ZD $.0235X3,999Gal = $93.9765. SAP rounds to $93.98. This is a total price of $8,977.76+$93.98 =$9,071.74. However the unit price is ZP $2.245 + ZD $0.0235 = $2.2685. If you take this price multiplied by the quantity $2.2685 X 3,999Gal = $9,071.7315. So the actual total price is off by 1ct because SAP treats the ZP and ZD as two separate calculations. I have seen various ideas on how to fix, from creating another pricing condition, to user exits. I was wondering if there was a preferred method? Or if there is a simpler solution?

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Thanks yes it apears there is no out of box fix but this def pted me in the right direction thx

Former Member
0 Kudos

Good Evening,

1. Please review OSS NOTE 80183 regarding Rounding.

Values calculated in pricing are always rounded to the amount of

decimal places which the used document currency owns. As subsequent

processing steps setup on this rounded value rounding differences can

occur in the calculation of the price per unit or in subtotal line.

To bypass such effects note 80183 describes possible solutions to

reduce / bypass this effect.

A few problems in rounding after applying note 80183, variant 2 have

been recorded where it was recommended to use the formulas 919 and

920 on all discounts and surcharges that appear before NETP and the

problem was solved.

2. In transaction V/06 there is a field under header 'Control data1'

which can effect how the system rounds off condition values during

pricing:

->> Rounding rule

The rule that determines how the system rounds off condition

values during pricing. The last digit will be rounded.

Example

o In the standard rounding rule '_', values are rounded off according

to business standards:

10.454 -> 10.45 DEM

10.455 -> 10.46 DEM

o In rounding rule 'A', values are always rounded up:

10.459 -> 10.46 DEM

10.451 -> 10.46 DEM

o In rounding rule 'B', values are always rounded down:

1045.9 -> 1045 LIT

1045.1 -> 1045 LIT

In this example, the currency of the condition rate is Italian Lira.

The Italian Lira does not have any places after the point.

3. Also check if the condition type is set as item condition as well

as group condition in transaction V/06. What this means is that

the system will calculate the value of the condition on header level

and compares it with the sum of item values in the document.

Any rounding difference (KONV-KDIFF) detected, will be populated

in the line item with greatest value or in first line item if all are

of equal value.

In other cases where there is no adjustment because there is no

rounding difference when comparing the header value and the sum of

item values.

->> Solution to this scenario -

If you remove the 'group condition' setting, the system will then

calculate amount for the items directly and you will not get the

rounding. You must decide which setting is more suited for your

business. This is not a bug, but works as per designed.

EXAMPLE: MWST - tax condition (a group condition)

Item 10 16% of 100.90 = 16.14

Item 20 16% of 100.90 = 16.14

Total = 32.28

I hope this helps you!

Kind Regards,

Martina McElwain

SD Forum Moderator

rmazzali
Active Contributor
0 Kudos

this is standard SAP way of calculate pricing: it multiplies the price and quantity, then round, then apply discount/surcharge on the rounded value and round again, and so on. So the unit price is not costant with quantities changes.

This is hard to fix, there are some OSS notes that explains how-to.

the main note to follow is 80183 and contains some related notes about it.

remember that this note is not a 'magic' note, you have to make some formulas and revise your pricing procedure, so deep analysis and hard testing are required.

Roberto