This document relates generally to product demand forecasting and more particularly to forecasting demand using hierarchical data.
Demand forecasting is the activity of estimating the quantity of a product or service that consumers will purchase. This activity may involve techniques including both informal methods (such as educated guesses) as well as quantitative methods, such as analysis of historical sales data or current data from test markets. Despite advancements in this field, greater accuracy is needed for improving the analysis associated with demand forecasting.
In accordance with the teachings provided herein, computer-implemented systems and methods are provided for forecasting product sales utilizing historic product data that is organized with respect to a geography hierarchy and a product hierarchy. As an illustration, a computer-implemented system and method are provided herein for forecasting product sales. Market shares associated with a product are estimated. Sales for a share group are forecast based upon a seasonality component and a trend prediction. A product sales forecast is calculated based upon the forecasted sales for a share group and the estimated product market share.
As another illustration, historic product data may be received from a computer-readable data store. A seasonality component may be estimated based upon aggregate data from a first level of the geography hierarchy and a first level of the product hierarchy. A trend prediction may be forecast based upon aggregate data from a second level of the geography hierarchy and a second level of the product hierarchy. The second level of the geography hierarchy may be at an equal or more detailed level in the geography hierarchy than the first level of the geography hierarchy, or the second level of the product hierarchy may be at an equal or more detailed level in the product hierarchy than the first level of the product hierarchy. For a product within a share group, a market share may be estimated that is associated with the product with respect to other items in the share group. Sales for a share group may be forecasted based upon the seasonality component and the trend prediction, where a share group is a collection of related products. For the product within a share group, a product sales forecast may be calculated based upon the forecasted sales for a share group and the estimated product market share. The calculated product sales forecast may be stored in a computer-readable data store. The receiving, forecasting a seasonality prediction, forecasting a trend prediction, forecasting sales, estimating a market share, calculating a product sales forecast, and storing may all be performed on one more data processors.
As a further example, computer-implemented systems and methods for forecasting product sales utilizing historic product data that is stored with respect to a geography hierarchy and a product hierarchy may include a computer-readable data store for housing the historic product data. A seasonality estimator may be configured to estimate a seasonality component based upon aggregate data from a first level of the geography hierarchy and a first level of the product hierarchy. A trend forecaster may be configured to make a trend prediction based upon aggregate data from a second level of the geography hierarchy and a second level of the product hierarchy. The second level of the geography hierarchy may be at an equal or more detailed level in the geography hierarchy than the first level of the geography hierarchy, or the second level of the product hierarchy may be at an equal or more detailed level in the product hierarchy than the first level of the product hierarchy. A market share estimator may be configured to estimate, for a product within a share group, a market share associated with the product with respect to other items in the share group. A sales forecaster may be configured to forecast sales for a share group based upon the seasonality component and the trend prediction, where a share group is a collection of related products. A product sales forecast calculator may be configured to calculate, for the product within a share group, a product sales forecast based upon the forecasted sales for a share group and the estimated product share, and the calculated product sales forecast may be stored in a computer-readable data store
The historic sales data may be hierarchically stored within the one or more data stores 40 in the geography hierarchy 42 and product hierarchy 44 formats, or the geography hierarchy 42 and product hierarchy 44 formats may be model hierarchies that are based upon one or more physical hierarchies 46 and attribute hierarchies 48 stored in the one or more data stores 40. Generation of a model hierarchy based upon one or more physical and attribute hierarchies is described in co-owned application Ser. No. 12/241,784, entitled “Attribute-based Hierarchy Management for Estimation and Forecasting,” filed Sep. 30, 2008, which is herein incorporated in its entirety by reference.
A share model may be used in commercial applications to capture how the sales of a group of products interact with each other. The share model sales forecasting system 34 models the effect of primary demand drivers, such as seasonality and trends, using a share model within a hierarchical setting. This system 34 enables users 32 to estimate the primary demand drivers at different levels in the product and geography hierarchies, enabling users 32 to capture the effects of the primary demand drivers at points in the hierarchy where data provides the richest information. In addition, the system 34 enables users 32 to model secondary demand effects which occur across share groups, such as cannibalization and/or halo effects across interacting share groups.
A share group is a collection of products that compete against one another. The members of a share group compete in that a consumer tends to choose from among the products in the group when making a purchase. A share group may also be termed a choice set, which is a set of products from which the customer chooses. In a hierarchy perspective, the share group may be thought of as a parent node and its child nodes, where the child nodes are all products that compete with one another. For example, consumers looking for a cola are typically choosing from among all the products with sugar (regular cola) or among all of the products without sugar (diet cola). Because consumers tend to choose products from within one of these groups that meets their sugar/no sugar needs, the product level that splits regular cola from diet cola forms a good level for defining a share group. Thus, a share group can consist of the Regular Cola parent node, and the Coke™, Pepsi™, RC Cola™, and Store Brand Cola child nodes.
It should be noted that the level definitions of share groups and share group members may be altered based upon prior gathered data and analysis needs. For example, if it is determined that customers tend to select beers based on the subtype rather than the type level, then share groups may be selected at the subtype level. In the example of
The share group is defined by the product hierarchy. The geography hierarchy serves as the aggregation dimension, such that the share group prediction model and the market share model may be calibrated at a higher aggregation level to improve the quality and robustness of the model parameter estimates.
The share model, described above, captures how the sales of a group of products interact with each other. The share model may be used to generate predicted demand for a particular share group. While this predicted demand is useful in some respects, it does not include a prediction for individual members within a share group.
The product share is a prediction of the relative amount, which may be expressed as a percentage, of each product in a share group that will be sold. The product shares for all products in a share group whose shares are expressed as a percentage are equal to 100% or an equivalent (e.g., total shares are equal to 1 if individual shares are expressed as a ratio of individual share to total shares such that individual shares fall between 0 and 1). The product share is a relative value. This is in contrast to the share group total demand, which is an absolute value. Thus, the product share does not indicate scale. Product A with a 30% product share could account for 3 units per week or 3000 units per week, depending on the share group total demand.
The second branch of the share model sales forecasting system 140 includes a market share model 152. The size of the share of each product is a measure of the product's attraction, which can be modeled as a function of product attributes, such as brand loyalty, the product's price and promotions, and other products' prices and promotions. The market share model may be implemented as a mixed regression model that incorporates product attributes and marketing mix with historic data from the geography hierarchy 144 and product hierarchy 146 to generate individual market shares 154 for the members of the share group. For example, the market share model 152 may generate market shares 154 such as those depicted in and discussed with reference to
The generated share group prediction 150 and market shares 154 are received by a product forecaster 156. The product forecaster 156 calculates individual absolute demand or sales predictions by multiplying the predicted demand or sales for the entire share group by one or more of the individual market shares. The calculated absolute values are output, for example, as a per store SKU forecast 158. As noted above, the use of the hierarchical structures of the geography and product hierarchies enables definition of share groups and share group members at various levels of the hierarchies enabling forecasts to be made at different levels depending on the application and data sufficiency.
As was described with respect to
The benefits of predicting seasonality at a higher level can be visualized with reference to the example beer hierarchy, illustrated in
The seasonality component 204 and the trend prediction 206 are received by the share group predictor 208. The share group predictor utilizes the received seasonality component 204 and trend prediction 206 to calculate a prediction 210 for the entire share group, such as predicted demand or predicted sales. The market share model 212 receives historical, attribute, and other data from the one or more data stores 200 and uses the received data in generating individual market shares 214 for each of the members of the share group at issue. An SKU forecaster 216 receives the share group prediction 210 and the individual market shares 214 and determines a Per Store SKU forecast 218 by multiplying the individual market shares 214 by the prediction for the entire share group 210.
The share model may also incorporate secondary effects caused by interacting share groups. Interacting share groups are share groups that interact with each other so that sales in one share group increase or decrease based on another share group's prices and promotions.
The market share model 254 also receives geography hierarchy 236 and product hierarchy 238 data from the one or more data stores 240 to calculate one or more individual market shares 256. The share group prediction 252 and the individual market shares 256 are input into an SKU forecaster 258 that multiplies the individual market shares 256 by the prediction for the entire share group 252 to calculate a per store SKU forecast 260.
The utilization of hierarchical data structures such as the geography and product hierarchies offers increased processing speed potential based on pre-aggregations of data in the hierarchical data structures; increased targetability of results through selectability of output prediction levels; and increased flexibility over flat data constructs.
As an example of implementation of the share model sales forecasting system, reference is made to the beer hierarchy example of
Total demand may be estimated at the Metro/Type level, which is below the level where seasonality is estimated. Within each climate zone, different metros can exhibit different trends (e.g., some metros may grow at a faster rate than others). Thus, total consumer demand can grow at a different speed in different metros. Similar differences in trend may exist on the product side, where demand for different types of beverages can grow at different rates. Thus, trends may be estimated at the subcategory level. Trend prediction may use a UCM model with trend, price ration, and PS variables to get estimates for price and promotion elasticities, as well as an estimate for the trend. The trend predictor may use the results of the seasonality estimate to deseasonalize the data prior to making a trend prediction.
One or more of the trend prediction, seasonality estimate, elasticities, and sales related variables are combined to obtain sales forecasts at the Metro/Type level. For a multiplicative model, forecast of total sales at this level may be calculated by multiplying the trend times the seasonality times the sales lift computed from the elasticities and historical and future values for price ration and PS variables. The sales forecasts may then be disaggregated to the Store/Subtype level such that the forecasts are of share group scope. This may be accomplished using historical sales as weights.
Using a market-share model, item based shares and share elasticities may be calculated at the Store/SKU level using an attraction model such as the Multiplicative Competitive Interaction (MCI) or multinomial logit (MNL) model. The item based shares and share elasticities may then be used to obtain a forecast market share for each item within a share group. The share-group total sales forecast and the forecast of an item's share of the share group sales are then multiplied to obtain a forecast of sales for an individual item.
While examples have been used to disclose the invention, including the best mode, and also to enable any person skilled in the art to make and use the invention, the patentable scope of the invention is defined by claims, and may include other examples that occur to those skilled in the art. Accordingly, the examples disclosed herein are to be considered non-limiting. As an illustration, many different computer configurations can be used to store hierarchical data for use in demand forecasting analysis. For example, the data may be stored in a hierarchical fashion such that low-level data (e.g., data at an SKU level) may be aggregated to a higher level (e.g., a product type level or metro region level). Summary data can appear at the higher level nodes to describe data of all of the child nodes encapsulated by the higher level node. This aggregation through hierarchical storage may be accomplished using a dedicated multidimensional database such as a MOLAP database implementation, which is specifically tailored for capturing aggregation data and making it readily available for calculations.
As an another illustration, the systems and methods may be implemented on various types of computer architectures, such as for example on a single general purpose computer or workstation (as shown at 800 on
It is further noted that the systems and methods may include data signals conveyed via networks (e.g., local area network, wide area network, internet, combinations thereof, etc.), fiber optic medium, carrier waves, wireless networks, etc. for communication with one or more data processing devices. The data signals can carry any or all of the data disclosed herein that is provided to or from a device.
Additionally, the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform the methods and operations described herein. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.
The systems' and methods' data may be stored and implemented in one or more different types of computer-implemented ways, such as different types of storage devices and programming constructs (e.g., data stores, RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.). It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.
The systems and methods may be provided on many different types of computer-readable media including computer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory, computer's hard drive, etc.) that contain instructions (e.g., software) for use in execution by a processor to perform the methods' operations and implement the systems described herein.
The computer components, software modules, functions, data stores and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand.
It should be understood that as used in the description herein and throughout the claims that follow, the meaning of “a,” “an,” and “the” includes plural reference unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of “in” includes “in” and “on” unless the context clearly dictates otherwise. Finally, as used in the description herein and throughout the claims that follow, the meanings of “and” and “or” include both the conjunctive and disjunctive and may be used interchangeably unless the context expressly dictates otherwise; the phrase “exclusive or” may be used to indicate situation where only the disjunctive meaning may apply.