Abstract:
Provided is a system for estimating price sensitivities and determining aggregate price adjustments for a population of items, the population comprising a plurality of sub-populations. More specifically, provided is a system comprising a computer executing a price sensitivity engine and a price aggregation engine, the price sensitivity engine receiving time-series information, determining covariate coefficients to estimate a population price sensitivity average, modeling a first set of vectors based on the covariate coefficients, modeling a second set of vectors based on the covariate coefficients and an indicator variable, and estimating sub-population price sensitivities based on the first and second sets of vectors; and the price aggregation engine comparing each of the sub-population price sensitivities to the population price sensitivity average and/or to other sub-population price sensitivities, ranking, ordering, and/or clustering the sub-populations, and determining aggregate price adjustments to items in the sub-populations.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application No. 61/779,717, filed Mar. 13, 2013, the entire disclosure of which is expressly incorporated herein by reference. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The present invention relates generally to a system and method for estimating price sensitivity, and more particularly, estimating price sensitivity for a collection of items in sub-populations of a population, wherein the estimated price sensitivity of the sub-populations can be used for price aggregation. 
         [0004]    2. Related Art 
         [0005]    Price aggregation is typically used to apply the same percentage price changes to a large collection of items/products (e.g. all the SKUs in a retail store or in a department of a store). Price aggregation is a common pricing technique due to the operational ease of execution. For example, for an operational perspective it is generally more efficient to apply the same discount to a collection of items than to each individual item. 
         [0006]    A common practice among retailers trying to improve margins is to create virtual pricing zones for their stores. For example, stores located in profitable tourist locations typically exhibit less price sensitivity (i.e. the influence of the price of the product on consumer behavior) and can thus be placed in higher pricing tier zones. To minimize operational costs, some retailers often apply the same percentage price increase across all items in a store or in an entire store department, sometimes consisting of thousands of different items. This seemingly crude price change execution can lead to surprisingly good results if done properly. In this situation, the problem is typically not finding the price elasticity of an individual item, but rather is typically finding the price sensitivity of, for example, an entire store of many items and how it compares to other stores. 
         [0007]    Conventional approaches to price aggregation have typically employed a traditional bottom-up approach for which standard econometric theory is applied at an individual item level to derive price elasticity for each individual item. In this conventional approach, an overall population price sensitivity is typically derived based on a weighted aggregation of the price elasticity for each item. The conventional approach to price aggregation can be inadequate for modeling individual items when the point-of-sale data is sparse and/or cyclical and/or when the individual items have a short life cycle and/or low price variation. In most retail environments, and particularly for non-commodities, utilizing such a bottom-up approach typically manages to correctly model about ten percent (10%) of spend, on average, for a retail store. As a result, any subsequent price analysis/recommendations on an aggregate level can be difficult, inefficient, and/or inappropriate. 
       SUMMARY OF THE INVENTION 
       [0008]    The present invention relates to a system and method for estimating price sensitivity for one or more sub-populations of a populations, where each sub-populations includes a collection of items, e.g. an entire store or department of a store. The price sensitivity of the sub-population can be compared and/or clustered together with other sub-populations of similar price sensitivity. 
         [0009]    In exemplary embodiments, price aggregation can be performed based on the estimated price sensitivity of the sub-populations. 
         [0010]    Exemplary embodiments of the present disclosure can utilize a variation of Generalized Linear Models (GLMs) called Generalized Estimating Equations (GEEs) that can be applied in a top-down fashion and can model an overall store-to-store or department-to-department sensitivity comparison. In exemplary embodiments GEEs can allow for non-normal distribution assumptions and can take into account the internal correlation structure of time series sales data for each item, even when there is sparse data for one or more items. 
         [0011]    As described herein, exemplary embodiments of the present disclosure can advantageously produce price sensitivity estimates on any aggregation level of a product hierarchy, which can be determined, for example, by the level at which price change execution is performed (e.g., regional level, store level, department level, etc.). 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]    The foregoing features of the invention will be apparent from the following Detailed Description of the Invention, taken in connection with the accompanying drawings, in which: 
           [0013]      FIG. 1  is a block diagram of an exemplary price modifier that includes a price sensitivity engine and a price aggregation engine in accordance with exemplary embodiments of the present disclosure; 
           [0014]      FIG. 2  is a flowchart showing overall processing steps carried out by an exemplary embodiment of the price sensitivity process; 
           [0015]      FIG. 3  is a flowchart showing overall processing steps carried out by an exemplary embodiment of the price adjustment process; 
           [0016]      FIG. 4  is a diagram showing hardware and software components of an exemplary system of the present disclosure; 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0017]    The present invention relates to a system and method for estimating price sensitivity for one or more sub-populations of a population, where each sub-population includes a collection of items, e.g. an entire store or department of a store, as discussed in detail below in connection with  FIGS. 1-4 . In exemplary embodiments of the present disclosure, the price sensitivity of the sub-populations can be compared and/or clustered together with other sub-populations of similar price sensitivity and/or price aggregation can be performed based on the estimated price sensitivity of the sub-populations. 
         [0018]    Exemplary embodiments of the present disclosure can utilize a variation of Generalized Linear Models (GLMs) called Generalized Estimating Equations (GEEs) that can be applied in a top-down fashion and can model an overall store-to-store or department-to-department price sensitivity comparison. In exemplary embodiments GEEs can allow for non-normal distribution assumptions and can take into account the internal correlation structure of time series data for each item, even when there is sparse data for one or more items. Thus, the present disclosure deals seamlessly with missing values in time-series data. 
         [0019]      FIG. 1  is a block diagram of an exemplary embodiment of price modifier  100  that includes a price sensitivity engine  110  and a price aggregation engine  120  in accordance with the present system. The engine  110  can be programmed and/or configured to implement a price sensitivity process  112  and/or the engine  120  can be programmed and/or configured to implement a price aggregation process  122 . The price sensitivity process  112  executed by the engine  110  can estimate the price sensitivity for a collection of items in a sub-population and/or the price aggregation process  122  executed by the engine  120  can collectively adjust the prices of items in the sub-population based on the estimated price sensitivity of the sub-population. While engines  110  and  120  have been shown as separate software-based engines, those skilled in the art will recognize that the engines  110  and  120  can be implemented as a single engine. 
         [0020]    In exemplary embodiments, the engine  110  can be programmed and/or coded to implement a price sensitivity model  114 . The model  114  can use a variation of Generalized Linear Models (GLMs) referred to Generalized Estimating Equations (GEEs) to collectively estimate the price sensitivity for items in an overall population (e.g., a large aggregation of items). The GEEs utilized in the model  114  utilized by the engine  110  can allow for non-normal distribution assumptions and can take into account an internal correlation structure of time series data  116  for each item, while addressing data sparsity. 
         [0021]    The engine  110  can receive the time-series data  116  from one or more data sources (e.g., databases). The time series data  116  can include information about items in a sub-population. For example, the time series data for each item can include a quantity sold (Q), average price (P), competitor prices, promotions-related variables, seasonal indicators, trend data with time for Q and/or P, and/or any other suitable information that can be used to determine the collective price sensitivity of a sub-population. 
         [0022]    The GEEs implemented in the model  114  utilized by the engine  110  can be configured for price sensitivity modeling by defining a repeated measure to be an item for which, at each discrete time period in a time-series, the quantity sold (Q) and the average price (P) are measured. In some embodiments, competitor prices, promotions-related variables, seasonal indicators, trend data with time for Q and/or P, and/or any other suitable information can be used to improve the fit of the price sensitivity model. The price sensitivity model can be constructed such that Q is the response variable, and P and other information can be covariates. An appropriate correlated structure can be defined and imposed on the time series sales data for an item. 
         [0023]    Exemplary embodiments of the engine  110  allow for specifying the repeated measure—Q in every time period and allows for specifying a list of covariates describing the sales quantity in the given time period including, but not limited to, Price (P), competitor prices, promotions-related variables, seasonal indicators, trend data with time for Q and/or P, and/or any other suitable information that can be used to determine the collective price sensitivity of a sub-population. Further, the engine  110  allows for specifying a non-normal Poisson-type distribution of the response variable Q, which is appropriate given that Q is a positive count variable and not a continuous normally distributed one. 
         [0024]    The engine  110  can implement a link function on the response variable Q. For example, a log-link function can be implemented that provides the relationship between the linear predictor and a mean of a distribution function, which following econometric theory, models price elasticity in a given logQ/logP relationship. In some embodiments, the engine  110  allows for specifying an internal correlation structure of the time series data  114  of each item and thus allows for modeling entire vectors of observations as opposed to individual scalar data points. 
         [0025]    The entire input longitudinal data can be a grand population and aggregate entities (sub-populations) can be identified for which the engine  110  estimates price sensitivity for subsequent comparison to other sub-populations. Sub-population price sensitivity estimates can be used for rank ordering, clustering, and/or aggregate price adjustments. For example, embodiments the engine  110  can output price sensitivity estimates to the engine  120  to perform aggregate price adjustments on items in selected sub-populations. 
         [0026]    The engine  120  can be programmed and/or configured to receive the price sensitivity estimates generated by the engine  110  and can use the price sensitivity estimates to perform aggregate price adjustments to a collection of items in a sub-population. In one exemplary embodiment, the engine  120  can be programmed and/or configured to compare the price sensitivity of a sub-population to the entire population and to other sub-populations to determine its relative price sensitivity. For example, in some embodiments, the engine  120  can be programmed to rank, order, or cluster populations with like price sensitivity estimates and can be programmed to apply aggregate price adjustments to items based on the rank, order, or cluster association of a population. The price sensitivity estimates can be ranked, ordered, and/or clustered by the engine  120  by setting the entire population average to zero (0). A positive price sensitivity estimate of a sub-population can indicate that the sub-population is less price-sensitive than the entire population. A negative estimate of a sub-population can indicate that the sub-population is more price-sensitive than the entire population. The sub-population price sensitivity estimates can be directly comparable among each other. The engine  120  could provide directional guidance as to how prices for a cluster of sub-populations should increase or decrease relative to other clusters of sub-populations, without specifying an exact amount (e.g., a percentage amount) of such increase or decrease. Thus, if it is established that the price for one cluster of subpopulations can increase by 5%, then the engine  120  can determine, based on comparing the rank-ordering price sensitivity coefficients, that the price for another, less price-sensitive cluster of subpopulations can increase by 7%, and that the price for yet another, even less price-sensitive cluster of subpopulations can increase by 9%. 
         [0027]    Using the relative price sensitivity of the sub-populations, the engine  120  can be programmed to assign a price adjustment to the items in the sub-population. For example, is the engine  120  determines that the price sensitivity of a sub-population is negative compared to the entire population, but is not as negative as other sub-populations, a price reduction can be applied to the items in the sub-population and the price reduction can be less than the price reduction applied to other sub-populations having a price sensitivity that is more negative than the sub-population. 
         [0028]      FIG. 2  is a flowchart showing overall processing steps  200  of an exemplary embodiment of the price sensitivity process  112  carried out by the engine  110  of the present disclosure. Beginning in step  202 , point-of-sale time series data and/or other time series data is obtained for the items in a specified population for a specified period of time. In step  204 , a population average is computed, which can be expressed by a set of coefficients for each covariate defined in the model  114 , and in step  206 , the population coefficients (e.g., covariate coefficients) can be stored. In step  208 , vectors of the sales data points of the items are modeled. The modeling can take into account inter-correlation between the covariates and can take into account a non-normality assumption for the response variables. 
         [0029]    In step  210 , an indicator variable (or dummy variable) for sub-populations of the specified population can be added to the model and in step  212 , the model can be re-run with fixed population covariate coefficients computed in step  206 . In step  214 , price sensitivity estimates can be computed for each sub-population. 
         [0030]      FIG. 3  is a flowchart showing overall processing steps  300  of an exemplary embodiment of the price adjustment process  122  carried out by the engine  120  of the present disclosure. Beginning in step  302 , price sensitivity estimates for one or more sub-populations are received by the engine  120 . In step  304 , the engine  120  programmatically compares the price sensitivities of the sub-populations. In step  306 , the sub-populations can be ranked, ordered, and/or clustered based on the comparison performed in step  304 . Using the rank, order, and/or cluster association of the sub-populations, in step  308 , the engine  120  can apply aggregate price adjustments to the items in one or more sub-populations. The aggregate price adjustments can be a percent and/or monetary increase or decrease in the price applied collectively to the items in the one or more sub-populations. The aggregate price adjustments for the sub-populations can be different based on the price sensitivity estimate associated with each sub-population. 
         [0031]    As described herein, exemplary embodiments of the present disclosure can be used to produce price sensitivity estimates on any aggregation level of a product hierarchy. For example, using an exemplary of the present disclosure, price sensitivity estimates can be estimated for an entire chain of stores in a geographical location, a single store, a department within a store, class/subclass within a store, and/or at any other suitable level of a product hierarchy. The appropriate level can be determined, for example, by the level at which price change execution is performed. For example, if price changes are executed on a department level (all items in a given department receive the same percent change in price) within a virtual pricing zone of stores, then the entire population would comprise all stores and the sub-population would be the items within a department in each store and price sensitivity estimates can be computed for each department for each store. A vector of department price sensitivity estimates can be defined based on the price sensitivity estimates to represent each store and stores can be clustered together into pricing zones based on similarity of price sensitivity of individual departments. Price changes can be executed on a department level within a pricing zone—all items within a given department get the same price change across all stores in a virtual pricing zone. 
         [0032]      FIG. 4  is a diagram showing hardware and software components of an exemplary system  400  capable of performing the processes discussed above. The system  400  includes a processing server  402 , e.g., a computer, and the like, which can include a storage device  404 , a network interface  408 , a communications bus  416 , a central processing unit (CPU)  410 , e.g., a microprocessor, and the like, a random access memory (RAM)  412 , and one or more input devices  414 , e.g., a keyboard, a mouse, and the like. The processing server  402  can also include a display, e.g., a liquid crystal display (LCD), a cathode ray tube (CRT), and the like. The storage device  404  can include any suitable, computer-readable storage medium, e.g., a disk, non-volatile memory, read-only memory (ROM), erasable programmable ROM (EPROM), electrically-erasable programmable ROM (EEPROM), flash memory, field-programmable gate array (FPGA), and the like. The processing server  402  can be, e.g., a networked computer system, a personal computer, a smart phone, a tablet, and the like. 
         [0033]    In exemplary embodiments, the price modifier  100 , or portions thereof, can be embodied as computer-readable program code stored on one or more non-transitory computer-readable storage device  404  and can be executed by the CPU  410  using any suitable, high or low level computing language, such as, e.g., Java, C, C++, C#, .NET, and the like. Execution of the computer-readable code by the CPU  410  can cause the price modifier  100  to implement embodiment of the price sensitivity process  112  and/or price adjustment process  122 . The network interface  408  can include, e.g., an Ethernet network interface device, a wireless network interface device, any other suitable device which permits the processing server  402  to communicate via the network, and the like. The CPU  410  can include any suitable single- or multiple-core microprocessor of any suitable architecture that is capable of implementing and/or running the price modifier  100 , e.g., an Intel processor, and the like. The random access memory  412  can include any suitable, high-speed, random access memory typical of most modern computers, such as, e.g., dynamic RAM (DRAM), and the like. 
         [0034]    Having thus described the invention in detail, it is to be understood that the foregoing description is not intended to limit the spirit or scope thereof. It will be understood that the embodiments of the present invention described herein are merely exemplary and that a person skilled in the art may make any variations and modification without departing from the spirit and scope of the invention. All such variations and modifications, including those discussed above, are intended to be included within the scope of the invention. What is desired to be protected by Letters Patent is set forth in the following claims.