Entering content frame

Function documentation Disaggregation and Rounding in CBF Locate the document in its SAP Library structure


CBF uses a different rounding algorithm to “normal” Demand Planning. This is necessary because of the nature of CBF planning hierarchies. A rounding function for CBF must take dependent and independent characteristics into account consistently.


In order to avoid rounding problems in the display SAP recommends that you choose a unit of measure for your products that have the following settings:

     Display – Decimal places = 0

     Conversion Decimal pl. Rounding =3

You can change these settings in Customizing. To do so, select General Settings ® Check Units of Measurement. Choose the Unit of measurement button and either select the required unit and go to the detail screen by choosing the Details icon (This graphic is explained in the accompanying text).


The following refers to initial disaggregation where no data has been entered in a time bucket. The examples assume calculation type S – Pro Rata.

Disaggregation on non-CBF characteristics

In characteristics-based planning the product plays a central role. When you enter data at an aggregate level (in the graphic below Sales Organization level), the system automatically distributes equal proportions to each product. The quantity assigned to each product is then distributed to the characteristic combinations which include this product.

This graphic is explained in the accompanying text


In “normal” Demand Planning the product is not as important. If there is no drill-down the quantity entered at aggregate level is distributed equally between all characteristic combinations.

Disaggregation to CBF-Characteristics

Since the characteristic values or the combinations of thereof in a table are independent of the characteristics contained in another table, the total quantity in each table must be equal. For example one table represents the engine of a car  while the other represents the type gearbox. It is not logically possible to plan more engines than gearboxes.

The quantity is then distributed amongst the combinations in the table (see graphic below). Rounding is carried out using the usual DP algorithm (see Rounding in Demand Planning)

This graphic is explained in the accompanying text

Special Rounding Feature

The normal rounding algorithm considers each time bucket separately. This can mean that over a length of time one or more combinations receives more or less than its share. The graphic below illustrates an extreme example. 2 pieces are distributed to 3 combinations.

This graphic is explained in the accompanying text


This situation can occur if you use storage bucket profiles that contain periodicities of largely different lengths, for instance days and months. Although the planning book may display months, the system actually works on a daily basis. This means that instead of one period the system is actually working with 30 or 31 periods. Such effects as above are consequently amplified 30 or 31 times.

The special rounding report program propagates the rounding differences to only within a time bucket to the next value but also from one time bucket to the next.

If a is the unrounded value, b the rounded value, d1 the difference factor from one time bucket to the next, d2 the difference factor from one value to the next, then

This graphic is explained in the accompanying text

Whereby the factor d1 + d2 in the last equation  is restricted to values between -0.5 and +0.5. f is the normal arithmetic rounding function. 

This graphic is explained in the accompanying text

Further functions

The rounding report program ensures that the total in each time bucket is not changed. Similarly the total over all time buckets remains constant.

The program works best for independent characteristics.


You can start the special rounding function at any time by starting report program /SAPAPO/DM_CBF_REROUNDING_DATA. It is possible to use a second key figure to store the corrected data. We recommend that you always use this option.



Leaving content frame