Analyzing Sales Data for Choosing Forecast Strategies Applies to The article applies to the Demand Planner in SAP APO. Works for version 4.7 and upwards. Summary Choosing the right forecasting strategy is essential for improving the statistical forecast accuracy. The article describes how the sales data can be analyzed in Demand Planner for characterizing the patterns. The article also suggests how forecast strategies in APO should be selected based on the above analysis. Author: Girikanth Avadhanula Company: SAP Created on: 20 September 2007 Author Bio Girikanth is a Senior Consultant at SAP India. He has provided process consulting and application implementation services to Fortune 500 companies in India. He has wide experience in the areas of demand forecasting, supply chain planning and production planning. 2007 SAP AG 1
Table of Contents Introduction... 3 Data Decomposition... 4 Isolating the Trend Component in the Data... 4 Analyzing Trend... 4 Isolating the Seasonality Component in the Data... 4 Analyzing Seasonality... 4 Copyright... 6 2007 SAP AG 2
Introduction Choosing the right forecast strategy is essential in improving the forecast accuracy of the statistical forecasts. This article describes how to analyze the sales data for choosing the right forecast strategy in Univariant Forecasting in the Demand Planner of SAP APO. 2007 SAP AG 3
Data Decomposition Exponential smoothing models assume that the data is made up of level, trend, seasonality and some randomness. The models calculate the level, trend and seasonality and combine them to arrive at the forecasts. It is not possible to understand the nature of trend and seasonality simply by viewing the data in the graphical screen. Decomposing the sales data into trend and seasonality provides insights into the patterns of these components. This in turn helps in choosing the right forecast strategy or in setting the parameters for a particular strategy. Isolating the Trend Component in the Data Isolating the trend component requires neutralizing the seasonal effect in the data. If the data has a 12 period seasonality, computing a 12 period moving average neutralizes the effect of seasonality. With a history of 24-36 months, one will be able to calculate the trend for 13-25 months. The macro shown at the end of the article computes a 12 month moving average on Historical Data key figure from Apr, 01 to Mar, 02 and stores it in the Apr,01 time bucket of Extra Key Figure 1. The 12 month average for May,01 to Apr,02 is stored in the May,01 time bucket. Trend will drop off towards the last 11 months as the sales data for computing the moving average would not be available. Analyzing Trend Viewing the trend graphically provides insights into the way trend is changing over the analysis period. One can assess from this graph if the short term trend is in line with the long term trend. The short term trend is relevant for operational decisions like distribution planning and production planning whereas the long term trend would be relevant for annual budgeting and other capital expenditure decisions. If there is a wide difference between the long term trend and the short term trend, it might make sense to use higher beta values for the short term forecasting used in the operations planning and lower beta values for long term forecasts. If the trend line shows any level shifts increasing the alpha value will help the forecast model update the base fast. Level shift is a sudden increase or decrease in the base level of the sales. This happens when a large customer base is added or lost. One can also consider cutting off the historical data prior to level shift but the impact of this on computing the seasonal values needs to be considered. Isolating the Seasonality Component in the Data Since the time series is a combination of trend, seasonality and randomness, subtracting the trend from the time series (historical sales data) will give seasonality and randomness. The macro shown at the end of the article shows how to compute this and save it to a different key figure. Analyzing Seasonality The seasonal patterns can be viewed graphically at different aggregate levels. If the time series has seasonality, one will be viewing recurring patterns at periodic intervals. If there is no seasonality, there will not be any recurring patterns but only random patterns. If there is no seasonality in the data one can eliminate the forecast strategies with seasonality (Forecast strategies 30,31,35,40 and 41) in the candidate list. If the seasonal component is present strategies 30, 31 and 35 need to be considered. If both trend and seasonality are present then strategies 40 and 41 need to be considered. While analyzing the patterns one should also see if some seasonality keeps shifting. For example, some of the seasonal peaks or dips in the sales could be caused by monsoons. A delay in the onset of the monsoons can cause shifts in the seasonality. Similar shifts happen in the case of moving holidays. The festival of Ramzan occurs in different months every year. Any seasonality associated with this festival would also correspondingly shift. In such cases it would be a better approach to compute the seasonal impact of the festival and model this as an event. The trend and seasonality decomposed using the above methods can be viewed graphically at different aggregate levels. This helps us in understanding the differences in the sales patterns of different products/product families. Sometimes the same product may have seasonality in some locations/customers and no seasonality for some other. This will call for applying different forecast strategies for these aggregates. 2007 SAP AG 4
The macro below shows computing trend and seasonality for a time series. 2007 SAP AG 5
Copyright Copyright 2007 SAP AG. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. Microsoft, Windows, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation. IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iseries, pseries, xseries, zseries, System i, System i5, System p, System p5, System x, System z, System z9, z/os, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, Informix, i5/os, POWER, POWER5, POWER5+, OpenPower and PowerPC are trademarks or registered trademarks of IBM Corporation. Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the United States and/or other countries. Oracle is a registered trademark of Oracle Corporation. UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc. HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute of Technology. Java is a registered trademark of Sun Microsystems, Inc. JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape. MaxDB is a trademark of MySQL AB, Sweden. SAP, R/3, mysap, mysap.com, xapps, xapp, SAP NetWeaver, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary. These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty. These materials are provided as is without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. SAP shall not be liable for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. SAP does not warrant the accuracy or completeness of the information, text, graphics, links or other items contained within these materials. SAP has no control over the information that you may access through the use of hot links contained in these materials and does not endorse your use of third party web pages nor provide any warranty whatsoever relating to third party web pages. Any software coding and/or code lines/strings ( Code ) included in this documentation are only examples and are not intended to be used in a productive system environment. The Code is only intended better explain and visualize the syntax and phrasing rules of certain coding. SAP does not warrant the correctness and completeness of the Code given herein, and SAP shall not be liable for errors or damages caused by the usage of the Code, except if such damages were caused by SAP intentionally or grossly negligent. 2007 SAP AG 6