Zero v/s Initial Value in APO
Introduction
Differentiation of Initial Values and Zero Values
In interactive Demand Planning (DP), the system can differentiate key figures that contain the value ‘0’ and key figures that have not yet been planned and are therefore having blank value.
By default both Zero and Blank is behaving same during the planning run i.e. if Planner is entering ‘0’ as key figure value, system converted it to blank and hence some times its difficult to track if the Planning data is entered as ‘0’ or it was missed out by planner.
Secondly business may require to treat Blank or Initial value and ‘0’ value differently.
This document will help us to understand the need of the difference between ‘0’ and Initial Value and how to answer this requirement.
Description:
XYZ Ltd is an automobile company, using APODP for its forecasting, for some reasons some of the Regional Planners are using Statistical forecast where as others Planners are over ruling the Statistics and calculating forecast based on manual Inputs. Hence for XYZ following are the business scenarios to calculate the forecast.
 Forecast with Statistics based on History
 Forecast with No Statistics
 Forecast with no Statistics, though statistics are available
As per above cases we will have a two Reference Key figures(Statisticcalculated based on History and Manual Input Key figure and One Target Key Figure.
 E.g.
 Key Figure 1 – Planner Input
 Key Figure2 – Statistical Fcst
 Key Figure2 – Sales Fcst.
Business Requirement:
Sales Fcst will be calculated based on, either Statistical forecast or manually entered data and hence
 Sales Forecast = Planner Input
OR
 Sales Forecast = Statistical Forecast.
This becomes more complex if planner are running statistics but not using statistical number for the forecasting and entering own data. They may also enter ‘0’. This ‘0’ value should be captured in system and also system should differentiate the ‘0’ and Initial /Blank Values in Planning Area/Planning Books
Cond 1 
Cond 2 
Cond 3 

Planner Input 
100 
0 

Statistical Fsct 
125 
125 
125 
Sales Fcst 
100 
0 
125 
Functional Solution:
The above Business requirement can be fulfilled by creating a simple macro
Condition 1:
If
Condition (Planner Input > 0)
Sales forecast = Planner Input
Condition 2:
If
Condition (Planner Input = 0)
Sales forecast = 0
Condition 3:
If
Condition (Planner Input is Blank)
Sales forecast = Statistical Forecast.
In addition to the above as a standard configuration system behaves similar for both ‘0’ and Blank Value, though for business both are two different business entries.
Technical Solution:
Technically system needs to be configured in such a way, it will differentiate both ‘0’ entered value and initial or Blank Value, this can be achieved by following 2 steps as explained below:
A. Changing Key Figure setting in Planning Area:
Within created planning area we need to change the settings of Key Figures by selecting ‘0’ allowed against the key figure.
On execution of above the Key Figure for Planning Area is updated with Zero Allowed, and hence in Planning Book we can enter and make ‘zero’ visible as well.
B. Macro Building to satisfy the Business Requirement:
After making ‘zero allowed’ arrangement for the planning area and can see the 0 values in the planning book, we need to build a macro, which will be differentiate ‘0’ value and Blank/Null Value,
This is been done, by using following syntax,
Execute the IS_INITIAL () into an auxiliary row, If the KF was blank we will get a blank and If KF is entered Zero we will get a 0.
IS_INITIAL (Key Figure)
Key Figure: Row, column, or cell element (data source = row attributes)
Description
The IS_INITIAL function returns the value 1 if the cell is initial. (The column results from the current step iteration; the row is determined by the Key Figure parameter.)
Apply this function for key figures that can distinguish between zero values and initial or null values.
Actual Macro:
Result:
When executing the above designed macro the Result Key Figure i.e. Sales forecast is calculated as per the business Requirement, and hence system is differentiating both ‘0’ and Null/Blank/Initial Value. as shown in below screen.
Many Thanks Devesh for sharing these details. Frankly just a month back, I had finished an APO DP implementation having exact same scenario, was handled using zero allowed setting and Is_initial function.
Thank you
Satish Waghmare
Good article Devesh
it is very helpful to understand the concept
Good one.