RELATED APPLICATION

This patent is a continuation of U.S. application Ser. No. 12/493,643, filed on Jun. 29, 2009, which claims the benefit of U.S. provisional application Ser. No. 61/094,691, filed on Sep. 5, 2008, which are hereby incorporated herein by reference in their entireties.
FIELD OF THE DISCLOSURE

The present disclosure relates generally to monitoring sales and, more particularly, to methods and apparatus to determine the effects of trade promotions on subsequent sales.
BACKGROUND

Retail establishments and product manufacturers are often interested in the shopping activities, behaviors, and/or habits of consumers. Consumer activity related to shopping can be used to correlate product sales with particular shopping behaviors and/or to improve timings or placements of product offerings, product promotions, and/or advertisements. Known techniques for monitoring consumer shopping activities include conducting surveys, counting patrons, and/or conducting visual inspections of shoppers or patrons in the retail establishments.

Trade promotions for consumer goods often result in additional or incremental unit sales of a product in the week the trade promotion is run. This effect can be referred to as the pantry loading effect, which is associated with the tendency of consumers to stock up their households with those products to which trade promotions apply. Although the pantry loading effect may result from a sudden increase in product sales at a particular time when a promotion on that product was run, this effect often causes consumers to delay subsequent purchases of that same product. Thus, although offering trade promotions provides retailers and manufacturers a means by which to move large volumes of stock in a short amount of time, such promotions often result in a reduction of later purchases leading to lowering sales trends in subsequent weeks. Reduced sales volumes are often attributed to numerous factors. That is, the pantry loading effect may not be the only factor leading to reduced sales.
BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an example system configured to implement a syndicated sales analysis service for a plurality of retail establishments to analyze sales volumes information and causal factors related thereto using the example methods and apparatus described herein.

FIG. 2 is a block diagram of an example apparatus that can be used to analyze sales volumes information in connection with the example system of FIG. 1.

FIG. 3 is a block diagram of an example apparatus that can be used to generate weighting values in connection with the example system of FIGS. 1 and 2.

FIG. 4 is a flow diagram representative of machine readable instructions that may be executed to analyze sales volumes information and causal factors related thereto for retail establishments under analyses in connection with the example system of FIG. 1.

FIG. 5 illustrates a flow diagram representative of machine readable instructions that may be executed to acquire and prepare data for modeling in connection with the flow diagram of FIG. 4.

FIG. 6 illustrates a flow diagram representative of machine readable instructions that may be executed to create product pairings in connection with the flow diagram of FIG. 5.

FIGS. 7A and 7B illustrate a flow diagram representative of machine readable instructions that may be executed to prepare data for modeling in connection with the flow diagram of FIG. 5.

FIG. 8 illustrates a flow diagram representative of machine readable instructions that may be executed to determine causal facts in connection with the flow diagram of FIGS. 7A and 7B.

FIG. 9 illustrates a flow diagram representative of machine readable instructions that may be executed to calculate lift data in connection with the flow diagram of FIGS. 7A and 7B.

FIG. 10 illustrates a flow diagram representative of machine readable instructions that may be executed to calculate competitive trade data in connection with the flow diagram of FIGS. 7A and 7B.

FIG. 11 illustrates a flow diagram representative of machine readable instructions that may be executed to calculate competitive regular price data in connection with the flow diagram of FIGS. 7A and 7B.

FIG. 12 illustrates a flow diagram representative of machine readable instructions that may be executed to calculate competitive distribution data in connection with the flow diagram of FIGS. 7A and 7B.

FIG. 13 illustrates a flow diagram representative of machine readable instructions that may be executed to calculate trading area data in connection with the flow diagram of FIG. 5.

FIGS. 14A and 14B illustrate a flow diagram representative of machine readable instructions that may be executed to determine base driver volume data in connection with the flow diagram of FIG. 4.

FIGS. 15A and 15B illustrate a flow diagram representative of machine readable instructions that may be executed to determine incremental driver volume data in connection with the flow diagram of FIG. 4.

FIG. 16 is a block diagram of an example processor system that may be used to implement some or all of the example methods and apparatus described herein.

FIGS. 17A17E illustrate example pseudo code to prepare data for modeling in connection with the example system of FIG. 1.

FIGS. 18A and 18B illustrate example pseudo code to prepare data for store switching calculations in connection with the example system of FIG. 1.

FIGS. 19A and 19B illustrate example pseudo code to specify model parameters in connection with the example system of FIG. 1.

FIGS. 20A and 20B illustrate example pseudo code to perform base driver scoring calculations in connection with the example system of FIG. 1.

FIGS. 21A21C illustrate example pseudo code to perform incremental trade driver scoring calculations in connection with the example system of FIG. 1.
DETAILED DESCRIPTION

Although the following discloses example methods and apparatus including, among other components, software executed on hardware, it should be noted that such methods and apparatus are merely illustrative and should not be considered as limiting. For example, it is contemplated that any or all of these hardware and software components could be embodied exclusively in hardware, exclusively in software, or in any combination of hardware and software. Accordingly, while the following describes example methods and apparatus, persons having ordinary skill in the art will readily appreciate that the examples provided are not the only way to implement such methods and apparatus.

Example methods and apparatus to determine the effects of trade promotions on subsequent sales are disclosed. A disclosed example method includes determining a plurality of decremental effect factors, each corresponding to a respective one of a plurality of weeks, wherein at least some of the decremental effect factors are indicative of a downward trend in sales of a product that was under a promotion condition during a first one of the plurality of weeks. The example method also includes determining a plurality of decremental effect terms, each decremental effect term equal to the product of a corresponding coefficient multiplied by a corresponding one of the decremental effect factors, and determining a pantry loading effect term based on the plurality of decremental effect terms. Further, the example method includes determining a pantry loading incremental subvolume based on the pantry loading effect term, and generating a report including the pantry loading incremental subvolume.

A disclosed example apparatus includes a base driver data generator to calculate a plurality of decremental effect factors, each factor corresponding to a respective one of a plurality of weeks during a promotion condition, and a scoring processor to calculate a plurality of decremental effect terms by multiplying a factor coefficient by a corresponding one of the plurality of decremental effect factors, and to calculate a pantry loading effect term based on the plurality of decremental effect terms. The example apparatus also includes an incremental driver data generator to calculate a pantry loading incremental subvolume based on the pantry loading effect term.

The example methods and apparatus described herein may be implemented by a consumer metering entity, by retail businesses, or by any other entity interested in collecting and/or analyzing the effects of different causal factors on the performance of product sales for retail entities. The example methods and apparatus may be used to help marketing professionals better understand consumers and how to reach and influence consumers that buy goods. Retailers and manufacturers are often interested in assessing the contributory effect of each factor on sales. One such assessment involves determining whether a future trade promotion and its terms will have an overly negative affect on future sales. Another assessment involves determining whether previously offered trade promotions were a significant cause of subsequently observed lower sales. For example, by analyzing different causal factors that could potentially influence product sales performance, the example methods and apparatus described herein can be used to determine whether those factors were or will be influential and the extent to which they affected or will likely affect product sales performance. Such information can help retail management to better understand the impact of different effects or factors on growth of sales volumes. In some cases, retail managers may be able to control the presence of such effects or factors to influence sales performance. In other instances, although the existence or presence of contributing effects or factors cannot be controlled, the extent to which such effects or factors are allowed to influence consumer purchases may be controlled. For example, knowing that a competing store's product promotion will take sales (e.g., share of the relevant market), a store may counteract by offering its own promotion.

Causal relationships between factors and effects could include the effect that running a trade promotion on a particular product during a particular point in time has on sales of that same product subsequent to the termination of the trade promotion. Such an analysis could be performed for the effects on sales within the same store that ran the promotion. Additionally, analyses could be performed for the effects that a promotion in one store had or will have on sales in other stores. While the example methods and apparatus can be used to analyze the effects on the same product for which a promotion was run, the methods and apparatus can more generally be used to determine the affect of a trade promotion on other products. For example, while a trade promotion on brandA beverage may affect current and subsequent sales of that brand of beverage, the example methods and apparatus described herein can also be used to determine how such a promotion affects sales of beverages associated with other brands. That is, the methods and apparatus described herein can be used to analyze relationships between different products and analyze crossbrand or crossproduct sales effects.

In a particular example, running a trade promotion on a product will result in consumers stocking up on that particular product during the promotion period. This pantry loading effect will influence sales of that product during subsequent weeks after the trade promotion has ended. However, the actual affect of pantry loading on subsequent sales is not readily apparent as there are numerous other factors that could also influence those subsequent sales. Such other factors could include competitor trade promotions, temporary or permanent price reductions for similar products, consumer affinity or loyalty to certain brands, consumers' perceived similarities between different brands, etc.

FIG. 1 depicts an example system 100 configured to implement a syndicated sales analysis service for a plurality of retail establishments to analyze sales volumes information and causal factors related thereto using the example methods and apparatus described herein. In the illustrated example, a central data processing server 102 receives and processes information associated with a plurality of retail establishments and an example promotion analysis engine 103 is configured to implement a syndicated service that can centralize the processing of information from different retail establishments of retail chains across a geographic region in a substantially similar manner. In this manner, the system 100 enables owners and/or operators of the retail chains to retrieve analysis results related to each of their retail establishments from one location (i.e., the central data processing server 102). Specifically, the central data processing server 102, via the example promotion analysis engine 103, receives information (e.g., household purchase data, store pointofsale volume data, retail establishment demographic data, product universal product code data (UPC data), etc.) from a plurality of data sources and analyzes the information to generate sales volume data related to different retail establishments and/or wholesalers (hereinafter individually and collectively referred to as merchants), such as merchants 104 a and 104 b, to use in determining the extent to which different effects or factors contributed to past sales for those merchants. The sales volume data generated by the central data processing server 102 can also be used to help determine the extent to which different effects or factors may affect future sales.

To collect demographics data of at least some of the shoppers that shop with the merchants 104 a and 104 b or other monitored merchants, the central data processing server 102 is communicatively coupled to a demographics panelist server 106. An example demographics panelist server service includes, but is not limited to the Scantron® service and/or the Homescan® service, each provided by A. C. Nielsen. The example Homescan®server 106 is coupled to a plurality of Homescan® home units (not shown) provided at panel member homes. Each of the Homescan® home units is provided with a scanner interface to scan universal product codes (UPCs) of products purchased by household members during different shopping trips. In this manner, the Homescan® server 106 can collect specific purchase data describing the quantities and brands of products and/or services purchased in each household. In addition, the Homescan® server 106 sends surveys to household panel members via the panel members' Homescan® home units. The surveys are designed to collect demographic type information and other information describing shopping trips of the panel members. An example survey question may ask a panel member to identify, from a prepopulated list, all of the merchants that the panel member has visited within the past seven days and the days and times of day during which the shopping trips were made. The surveys may also request the panel members to provide the purpose of their shopping trips and how many people participated in the trip. In addition, the surveys may request the panel members to provide their gender and age. The Homescan® server 106 is configured to collect the survey responses from the different Homescan® home units and to collate and organize the survey data. In the illustrated example, the Homescan® server 106 is configured to communicate the survey response information to the central data processing server 102.

To receive demographics data related to respective monitored merchants, the central data processing server 102 is communicatively coupled to a merchant demographics server 108. The merchant demographics server 108 is provided with merchant demographics information describing respective monitored merchants and is configured to communicate the demographics information to the central data processing server 102. In the illustrated example, merchant demographic information includes demographic information about typical shoppers of corresponding merchants, sizes of merchant stores, merchant categories (e.g., supercenter store, supermarket store, discount store, drug store, etc.), percentages of consumers drawn from geographic zones surrounding each merchant store, etc.

To collect product reference data indicative of all products and/or services offered for sale by respective merchants, the central data processing server 102 is communicatively coupled to a product reference server 110. For each of the merchant stores 104 a and 104 b or other monitored merchant stores, the product reference server 110 is configured to store a UPC corresponding to each product and/or service offered for sale by that merchant. Each UPC is stored in association with the name of the product it represents including brand, unit size, and price. A UPC may be associated with several prices, each corresponding to a different offering time (e.g., a different week) at which the product's price was lower or higher than usual. For example, a weeklong product promotion involving a reduced price will be reflected in a weekprice data set stored in association with the UPC of that product.

To collect pointofsale (POS) sales data indicative of all products and/or services sold in respective merchant stores, the central data processing server 102 is communicatively coupled to a sales data repository 112. In the illustrated example, the sales data repository 112 is communicatively coupled to the merchant stores 104 ab. The sales data repository 112 may further be communicatively coupled to any other monitored merchant stores to collect sales data therefrom. Each of the merchant stores 104 ab may store sales data in local servers (not shown) that are communicatively coupled to POS terminals at checkout counters used to perform sales transactions. In this manner, product/service sales data from all transaction logs can be communicated to the sales data repository 112 in an automated manner with minimal or no human interaction.

FIG. 2 is a block diagram of the example promotion analysis engine 103 that can be used to analyze sales volumes information in connection with the example system 100 of FIG. 1. In the illustrated example, the example promotion analysis engine 103 includes a weighting value generator 202, a baseline volume manager 204, a trading area competitive activity assessor 206, a premodel data generator 208, a model coefficient estimator 210, a scoring processor 212, a panelist purchase data store 214, a product reference database 216, a trading area sales data store 218, a sales data repository 220, a transformed data repository 222, a model coefficients repository 224, and a volume driver repository 226.

The example promotion analysis engine 103 may be implemented using any desired combination of hardware, firmware, and/or software. For example, one or more integrated circuits, discrete semiconductor components, and/or passive electronic components may be used. Thus, for example, any of the weighting value generator 202, the baseline volume manager 204, the trading area competitive activity assessor 206, the premodel data generator 208, the model coefficient estimator 210, the scoring processor 212, the panelist purchase data store 214, the product reference database 216, the trading area sales data store 218, the sales data repository 220, the transformed data repository 222, the model coefficients repository 224, and/or the volume driver repository 226, or parts thereof, could be implemented using one or more circuit(s), programmable processor(s), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)), field programmable logic device(s) (FPLD(s)), etc.

Some or all of the weighting value generator 202, the baseline volume manager 204, the trading area competitive activity assessor 206, the premodel data generator 208, the model coefficient estimator 210, the scoring processor 212, the panelist purchase data store 214, the product reference database 216, the trading area sales data store 218, the sales data repository 220, the transformed data repository 222, the model coefficients repository 224, and/or the volume driver repository 226, or parts thereof, may be implemented using instructions, code, and/or other software and/or firmware, etc. stored on a machine accessible or readable medium and executable by, for example, a processor system (e.g., the example processor system 1610 of FIG. 16). When any of the appended claims are read to cover a purely software and/or firmware implementation, at least one of the weighting value generator 202, the baseline volume manager 204, the trading area competitive activity assessor 206, the premodel data generator 208, the model coefficient estimator 210, the scoring processor 212, the panelist purchase data store 214, the product reference database 216, the trading area sales data store 218, the sales data repository 220, the transformed data repository 222, the model coefficients repository 224, and/or the volume driver repository 226 is hereby expressly defined to include a tangible medium such as a memory, DVD, CD, etc. storing the software and/or firmware.

Turning in detail to FIG. 2, the weighting value generator 202 is configured to generate weighting values and/or a weighting similarity index value (hereinafter referred to as a weighting similarity index) for product pairs to indicate the similarities or diversities between different products based on particular criteria. For example, a weighting index value between brand A soda and brand B soda (i.e., an A:B weighting index) based on price will indicate the consumerperceived similarity between the brands and the propensity of consumers to purchase either product based on price differences. In this instance, a weighting similarity index closer to one may indicate that consumers consider the two soda brands as closely comparable to one another such that price (as opposed to taste or brand loyalty) may be the most significant factor contributing to purchasing brand A over brand B. In the example implementations described herein, the weighting value generator 202 is implemented using Jaccard index values or Jaccard similarity coefficients, which are values based on the size of an intersection of product characteristics divided by the size of the union of sample sets. However, other weighting techniques may additionally or alternatively be used to generate weighting similarity index values to represent similarities or differences between different products.

Generally speaking, the example promotion analysis engine 103 of FIG. 2 collects transaction data related to panelist purchase data and identifies pairings of target product(s) of interest and one or more competitive product(s) that are deemed to be competitively related to the target product(s). One or more criteria and/or thresholds may be employed to calculate which competitive products should be paired with the target product(s) of interest based on, for example, similarity in price, similarity in features, similarity in one or more categorical product types, and/or the frequency at which a panelist purchases the competitive product instead of the target product(s). To minimize and/or eliminate bias effects that typically occur when an analyst attempts to select one or more competitive products to compare against the target products) of interest, the example promotion analysis engine 103 of FIG. 2 saves the list of calculated competitive products for subsequent analysis. As discussed in further detail below, employing such a calculated list operates as a model to effectively restrict the user's scope of competitive products used during analysis of target products) of interest being promoted.

Additionally, the example promotion analysis engine 103 of FIG. 2 calculates, retrieves, and/or receives a baseline volume of sales, which refers to the volume of sales that would occur absent promotions of the target product of interest. One or more working variables are calculated and input into a regression model, and additional data related to the merchants by which the target and competitive products are sold is acquired by the example promotion analysis engine 103. One or more model coefficients are calculated before the example promotion analysis engine 103 of FIG. 2 facilitates a calculation of the volume sales for a target product in view of a promotion. Further, the example promotion analysis engine 103 facilitates a calculation of the volume sales in competitive stores that result from the promotion in a target store. Without limitation, the example promotion analysis engine 103 of FIG. 2 facilitates a calculation of expected sales volumes in response to consumer pantry loading after a promotion on the target product has run.

In the example implementations described herein, the weighting similarity index values are used to determine interbrand weighting values and intrabrand weighting values. Interbrand weighting values are used to quantify the similarities or differences between products of different brands as in the example above involving brand A soda and brand B soda. Intrabrand weighting values are used to quantify the similarities and differences between products within the same brand such as brand A cola and brand A root beer. In this manner, interbrand weighting values can be used to quantify the effects of market erosion on competitor products in which sales of a target product under analysis are lost to competitor products due to one or more factors including, for example, consumer taste preference, price, promotion, brand loyalty, etc. Intrabrand weighting values can be used to quantify the effects of cannibalization within the same brand. Cannibalization occurs when a company offers a new product or service that takes sales or market share from one or more of its already existing products or services. Cannibalization may be due to one or more factors including, for example, consumer taste preference, price, promotion, novelty, etc.

Turning briefly to FIG. 3, the example weighting value generator 202 is shown in greater detail. In the illustrated example of FIG. 3, the weighting value generator 202 includes a panelist interface 302 to communicatively connect with the panelist purchase data store 214, and a product reference interface 304 to communicatively connect with the product reference database 216. Based on an identified target product of interest, an example target product comparator 306 identifies one or more competitive product candidates via the product reference interface 304 that are within a similar product category (e.g., carbonated beverages, snack foods, cold breakfast cereals, etc.). Additionally or alternatively, the example target product comparator 306 may further narrow any resulting list of competitive product candidates down by applying one or more subcategory constraints on the candidate list. For example, a general category of carbonated beverages may further contain soda subcategories of cola, citrus, and fruit. Similarly, a general category of cold breakfast cereals may further contain cereal subcategories of healthcereals, sugaredcereals, and children's cereals.

The example target product comparator 306 also refers to the panelist interface 302 to determine which identified competitive product candidates were purchased by panelists at or near a selected timeperiod as the target product of interest. One or more thresholds may be employed by the example target product comparator 306 to determine which competitive product candidates should be added to a working list of competitive products that correspond to the target product of interest. For example, if the target product of interest is Coke®, which is included in the general category of soda and the subcategory of cola, then the example target product comparator 306 searches the panelist data store to determine how many instances occurred in which a consumer purchased Coke® on one occasion, but also purchased a competing cola brand instead of Coke® on one or more alternate occasions. In this example, if the consumer is found to have purchased Pepsi® on a substantially greater number of occasions, but only purchased RC Cola® on relatively infrequent occasions, then Pepsi® may be deemed to be an appropriate competitive product to Coke® for purposes of competitive analysis.

The example target product comparator 306 is also coupled to a weighting assignor 308 to apply a similarity calculation (weighting similarity index value) to each pair of identified target product and competitive product. As described above, the Jaccard index may be employed by the weighting assignor 308 for each pair to yield a unitless numerical identifier (weighting similarity index value) indicative of the similarity between products (e.g., interbrand weighting values or intrabrand weighting values). The assigned weight associated with the Jaccard index represents the interbrand weighting value β_{Inter(i,k)}, where the variable i represents the target product of interest and variable k represents a competitive product. Similarly, a Jaccard index may be calculated for different UPCs by the same manufacturer to represent potential effects of cannibalization. The assigned weight associated with the Jaccard index in view of two products of the same brand represents the intrabrand weighting value β_{Intra(i,k)}, where variable i represents the target product of interest and variable k represents another product by that same manufacturer.

Returning to FIG. 2, the baseline volume manager 204 is also configured to generate, calculate, retrieve, and/or otherwise receive baseline volumes for different target products under analysis. A baseline volume is indicative of the normal expected sales volume for a product absent any trade promotion for that product. Trade promotions can include feature advertisements (e.g., coupons or advertisements in newspapers, magazines, etc.), instore displays (e.g., instore posters, shelf talkers, coupon dispensers), or price reductions. In the presence of trade promotions, promoted products typically undergo an increase in sales. To determine the effects of a promotion on the increased sales for a particular product, a baseline volume can be used to determine what the normal sales volume for that product would have been absent the promotion and determining the difference in volume (known as the incremental volume) observed between the baseline volume and the actual sales volume during the promotion period. This difference in volume or incremental volume is the volume attributable to the effects of the trade promotion. Different techniques are available for determining baseline volumes. On such known technique is the BoxJenkins time series calculation. In the example implementations described herein, baseline volumes are based on a storeweekUPC level, meaning that a baseline volume represents the sales in a particular store, during a particular week, of a particular product identified by its unique UPC.

The illustrated example trading area competitive activity assessor 206 of FIG. 2 is configured to receive census blocks for each merchant (e.g., retailer, wholesaler, and/or other business entity, and hereinafter generally referred to as “retailers”). A census block is a delineated portion of purchasers that spend money with the retailer and may be defined based on geographic proximity to the retailer. For example, a single retailer may include four census blocks that each contain an equal number of shoppers located to the North, South, East, and West of the retailer. Additionally, each census block is typically associated with a percentage value to represent how much each block purchases (e.g., the North census block accounts for 35% of the retailer's weekly sales, while the South and East account for 25%, and the West accounts for only 15% of the retailer's weekly sales).

Each census block typically includes shoppers that shop with more than one merchant. Thus each census block includes some amount of overlap with one or more other merchants. Overlap of the census blocks may also produce an effect of greater or lesser sales at a first merchant based on promotions run by a second merchant. For instance, if the second merchant runs a promotion for sales of Coke® 12ounce cans, then a corresponding effect of lesser sales of Coke® of the first merchant (that has a common census block) may occur. As described in further detail below, the example trading area competitive activity assessor 206 acquires merchant data from the trading area sales data store 218 to facilitate one or more volume calculations at competitive stores of a product in response to a promotion of that sold product of interest.

The illustrated example of FIG. 2 also includes a premodel data generator 208 to generate variables to be used in a model prior to being used in one or more scoring algorithms that ultimately yield volume estimates as a result of target product promotional activity. As discussed in further detail below, the example premodel data generator 208 of FIG. 2 uses pointofsale (POS) input data, calculated competitive product pairing data, panelist data, and trading area data to calculate an estimated volume of products sold in response to one or more causal factors. Causal factors may include, but are not limited to, a temporary price reduction (TPR), a feature (e.g., flyers describing the target product), a display (e.g., an instore display of the target product, such as at the end of an aisle), and/or a combination of a feature and a display.

The example premodel data generator 208 also minimizes and/or eliminates data anomalies due to seasonality effects. For example, in the event that the sale of chocolates is particularly high during the months of December and February (e.g., Christmas holiday and Valentines Day), corresponding sales peaks of such products may occur absent a promotion. As such, the example premodel data generator 208 calculates a dimensionless index to minimize such expected peaks of chocolate sales so that corresponding volume data calculations are not artificially high.

The example premodel data generator 208 also calculates equivalent volumes and base equivalent volumes for products to eliminate, for example, product packaging disparities. Such disparities occur when a product manufacturer sells products with varying prepackaged quantities, which may prevent direct comparisons between the same brands on a perunit sale basis. For example, Coke® sells 12ounce cans of cola as well as 2liter bottles of cola. On a perunit sale of a 6pack UPC and a 2liter UPC sale, direct comparison is not representative of a true measure of the ultimate amount of cola sold (i.e., a 2liter bottle is approximately 68 ounces). As such, the premodel data generator 208 converts one or more target products of interest into a corresponding equivalent volume unit to, in effect, implement a common basecomparison unit for all brand package configurations. In the illustrated example above, a common basecomparison unit for Coke® cola products (whether such products are sold in cans or bottles) is units of ounces.

One or more competitive effects variables are also calculated by the example premodel data generator 208. Generally speaking, there are three actions that a competitor can take to affect sales of the target product. In particular, the competitor can increase or decrease the amount of trade promotion activity, the competitor can change their regular price, and/or the competitor can put new UPCs (i.e., new or additional products) on store shelves. Increasing or decreasing the amount of trade promotion activity may include running features, displays, temporary price reductions, and/or any combination thereof. The premodel data generator 208 calculates a competitive trade index, such as an example Jaccard weighted category index, as a measure of the weighted aggregate level of trade promotion activity present in the competitive brands relative to the target brand of interest. The competitive trade index allows a determination/estimation of the degree to which another trade promotion may be affecting the sales of the target product (interbrand trading index), as well as the degree to which the trade promotion of the target product may be affecting the sales of competitive products. In the event that the target product trade promotion affects sales of its own products, the example premodel data generator 208 also calculates a brandtrade index (intrabrand trading index) to identify cannibalization effects.

The second action that a competitor may take that affects sales of the target product of interest is to change the product regular price. Generally, if a competitor lowers a shelf price of the competitive product, a corresponding decrease in sales is expected of the target product of interest. As such, the example premodel data generator 208 examines the aggregated price changes in items/products that are considered to be competitive, weights such changes based on trade weights (e.g., a Jaccard weight) and creates an interbrand price weight and/or an intrabrand price weight to represent a measure and/or a magnitude of the degree to which competitors take price action from the target product of interest.

The third action that a competitor may take that affects sales of the target product of interest is to place new UPCs on retail shelves. Generally, as the competitor increases the number of items in distribution, a corresponding negative affect on sales volumes of the target product is expected. As such, the example premodel data generator 208 calculates interbrand and intrabrand weighted distribution factors to represent the effects on sales in response to new product UPCs (i.e., both competitive UPCs and UPCs introduced by the same manufacturer as the target product of interest).

In view of the fact that statistical analysis techniques may include the phenomenon in which there are multiple sources of randomness in the data, the example premodel data generator 208 minimizes and/or eliminates such effects. Sources of variation include crosssectional variants and randomness that occur over time. Removal of crossstore effect from a model may be further accomplished by, for example, a meancentering process executed by the premodel data generator 208. Mean centering prevents potential bias and/or nuisance variants in the data.

While calculation of one or more corresponding effects on product sales volumes may be conducted in view of a current week for a particular store, the methods and apparatus described herein also examine crossstore promotional effects. In particular, to further examine crossstore promotional effects and/or to numerically describe a store pattern of sales, the example premodel data generator 208 prepares one or more interaction variables related to store categories (e.g., store interaction variables). Store categories typically exhibit characteristic patterns due to, in part, varying degrees of homogeneity with similar stores. For example, store characteristics related to a percent of Hispanic shoppers, AfricanAmerican shoppers, and/or stores within certain latitudes/longitudes (e.g., particularly poor neighborhoods, particularly affluent neighborhoods, etc.) may have corresponding sales expectations that are statistically relevant and assist the process of projecting sales volume estimations. As discussed in further detail below, the example premodel data generator 208 incorporates such store characteristics when calculating effects due to promotional activity.

Estimations derived from a modelbased approach typically differ from estimations derived from an algorithmbased approach. As such, the example premodel data generator 208 also calibrates regressionbased incremental volume estimates for trade effects in a manner that aligns with estimates derived from an algorithmic baseline approach. As described above, the baseline is an estimate of sales in the absence of a feature, a display, or a price cut. Any difference between the baseline and the total unit sales is referred to as an incremental volume, which is attributed to the presence of causal factors of a corresponding feature, display, or price cut. However, similar estimates via the modelbased approach introduce differences that are calibrated by the example premodel data generator 208 by calculating a correction factor, as discussed in further detail below.

The model coefficient estimator 210 is configured to generate coefficient values that may be used in one or more scoring algorithms to estimate one or more of volumetric sales effects of products in view of causal factors (e.g., promotional activity) in a target store, volumetric sales effects of products at competitor stores in view of such causal factors, and volumetric sales effects of products in view of consumer pantry loading behavior. Some modeling techniques view the target products and competitive products as nested within one store and/or multiple competitive stores. Additionally, the one or more competitive stores are further nested within geographic localities, which reside within delineated marketing target areas. In the illustrated example of FIG. 2, the model coefficient estimator 210 employs a hierarchical linear modeling (HLM) technique. However, any other modeling technique may be used including, but not limited to, linear regression and/or multiple linear regression techniques.

The coefficient values generated by the example model coefficient estimator 210 of FIG. 2 include fixed effects and random effects to allow an example base driver data generator 228 to calculate net storeUPC coefficients, as described in further detail below. Generally speaking, the example model coefficient estimator 210 of FIG. 2 initially sets all coefficients to zero unless and until the received data includes enough weighted evidence to justify an alternate value. Such evidence may be revealed via the aforementioned HLM and/or regression technique(s).

The example scoring processor 212 of FIG. 2 is configured to employ one or more scoring algorithms that utilize one or more variables prepared by the example premodel data generator 208 and one or more model coefficients from the example model coefficient estimator 210. As discussed in further detail below, the example base driver data generator 228 of the scoring processor 212 calculates, in part, a volume due to intrabrand and interbrand pricing, intrabrand and interbrand distribution, volumes due to pantry loading, and volumes due to intrabrand and interbrand trading. Additionally, an example incremental driver data generator 230 of the scoring processor 212 calculates, in part, raw driver volumes that are specific to one or more causal types. Causal types include, but are not limited to, corresponding volumes based on a pricecut, a feature, a display, and/or one or more combinations thereof.

FIGS. 4 to 15B are flow diagrams representative of machine readable and executable instructions or processes that can be executed to implement the example promotion analysis engine 103 of FIG. 2. The example processes of FIGS. 4 to 15B may be performed using a processor, a controller and/or any other suitable processing device. For example, the example processes of FIGS. 4 to 15B may be implemented in coded instructions stored on a tangible medium such as a flash memory, a readonly memory (ROM) and/or randomaccess memory (RAM) associated with a processor (e.g., the processor 1612 of FIG. 16). Alternatively, some or all of the example processes of FIGS. 4 to 15B may be implemented using any combination(s) of application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)), field programmable logic device(s) (FPLD(s)), discrete logic, hardware, firmware, etc. Also, one or more operations of the example processes of FIGS. 4 to 15B may be implemented manually or as any combination(s) of any of the foregoing techniques, for example, any combination of firmware, software, discrete logic and/or hardware. Further, although the example processes of FIGS. 4 to 15B are described with reference to the flow diagrams of FIGS. 4 to 15B, other methods of implementing the processes of FIGS. 4 to 15B may be employed. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, subdivided, or combined. Additionally, any or all of the example processes of FIGS. 4 to 15B may be performed sequentially and/or in parallel by, for example, separate processing threads, processors, devices, discrete logic, circuits, etc.

Turning to FIG. 4, initially, the example promotion analysis engine 103 of FIG. 2 acquires sales data of products from multiple sources (block 402). In the illustrated example of FIG. 4, pointofsale (POS) data is retrieved, which is indicative of sales for product UPCs, merchant location(s) in which the product(s) were sold, sale dates, and/or volumes for each UPC sold in a given week. Retailers and/or merchants may include traditional channels, such as grocery stores, community hardware stores, and/or convenience stores, but specialty channels may further include discount stores, specialty food stores, largescale hardware stores, and/or office supply stores. Additionally, the retrieved POS data includes information related to an amount of money paid for the item(s) and whether the item(s) were associated with, or the subject of a promotion. Promotion information may include, but is not limited to, a feature (e.g., a flyer, coupon, advertisement), a display (e.g., an instore display), and a location and/or size of the display (e.g., end of aisle, large placard, etc.).

The POS data may be collected, sold, and/or otherwise distributed by any thirdparty responsible for data acquisition, such as ACNielsen®. For example, ACNielsen® has long compiled data via its Scantrack® system. With the Scantrack® system, merchants install equipment at the POS that records the UPC of every sold product(s), the quantity sold, the sale price(s), and the date(s) on which the sale(s) occurred. The POS data collected at the one or more stores is periodically exported to ACNielsen® where it is compiled into one or more databases, such as the example sales data repository 220 of FIG. 2. Additionally, ACNielsen® employs a Homescan® system, which is a panelistbased system to measure consumer behavior and identify sales trends. With the Homescan® system, households are selected to be statistically representative of one or more demographic components of the population to be measured. The panelists of these selected households are provided with home and/or mobile scanning equipment and agree to use that equipment to identify, and/or otherwise scan the UPC of every product that they purchase and to note the identity of the retailer or wholesaler (collectively or individually referred to as “merchant”) from which the corresponding purchase was made. The data collected via this scanning process is periodically exported to ACNielsen®, where it is compiled into one or more databases, such as the example panelist purchase data store 214 of FIG. 2.

In the illustrated example of FIG. 4, acquired sales data (block 402) also includes trading area merchant data. Each merchant store includes characteristic data related to its size, number of employees, all commodity volume (ACV) sales, location, and/or one or more census blocks that surround the merchant. ACNielsen® also categorizes such merchants (e.g., retailers and/or wholesalers) and/or compiles data related to the store characteristics via its TDLinx® system. In the TDLinx® system, data is tracked and stored that is related to, in part, a merchant store parent company, the parent company marketing group(s), the number of stores in operation, the number of employee(s) per store, the geographic address and/or phone number of the store(s), and/or the channel(s) serviced by the store(s). Data indicative of the merchant store(s) may be stored in the example trading area sales data store 218 of FIG. 2.

Returning to FIG. 4, model coefficients are created (block 404) in a manner consistent with the modeling technique(s) selected by one or more analysts. As described above, the selected modeling technique(s) may include, but are not limited to linear regression, multiple linear regression, and/or hierarchical linear modeling to set one or more coefficient values. After setting the one or more coefficient values, such as the fixedeffect coefficients and/or the randomeffect coefficients to a nondefault zero value (block 404), the example promotion analysis engine 103 applies such coefficients, acquired data, and prepared variables to one or more scoring algorithms (block 406), as described in further detail below.

FIG. 5 is a flowchart representative of example machine readable instructions that may be executed to acquire and prepare data for modeling at block 402 of FIG. 4. At block 502, the example weighting value generator 202 creates one or more pairings of competitive products for each target product of interest. From each product pairing created, the example weighting value generator 202 calculates a weighting similarity index value, which may be represented as a unitless numerical value to indicate a degree of similarity between the target product of interest and the competitive product. In the illustrated examples described herein, the calculated weighting similarity index value is implemented via the Jaccard similarity methodology, but other weighting techniques may additionally or alternatively be used to generate the weighting similarity index values.

To allow an understanding of how causal factors, such as promotional prices (e.g., price reductions), displays, and/or features affect sales volumes, the example baseline volume manager 204 calculates a baseline volume sales estimate (block 504) that results in the absence of any promotional activity. The difference between the calculated baseline volume (block 504) and product(s) sold in excess of that baseline are referred to as incremental sales. Acquired data and product pairs are further used by the example premodel data generator 208 to, in part, generate working variables (block 506) to facilitate basedriver and incrementaldriver scoring calculations. Additionally, the example trading area competitive activity assessor 206 includes tradingarea data to identify one or more census blocks for each merchant (block 508). In the illustrated example of FIG. 5, trading area data is retrieved from Spectra® and/or TDLinx® services, but any other trading area data services may also be used.

FIG. 6 is a flowchart representative of example machine readable instructions that may be executed to create product pairings between a target product of interest and one or more competitive products at block 502 of FIG. 5. At block 602, the example weighting value generator 202 receives a target product of interest. The target product of interest includes a corresponding universal product code (UPC) that, when referenced against the product reference database 216, reveals one or more specific characteristics related to the target product of interest. The example product reference database 216 of FIG. 2 may be implemented as a thirdparty global database in which manufacturers purchase the rights to exclusively print and use a unique UPC indicia. Additionally or alternatively, product reference information is also maintained by ACNielsen® as a Product Reference Library (PRL) that codes more than 700,000 items, in which each item includes an average of forty (40) descriptive product characteristics. The characteristics for each item may include, but are not limited to, manufacturer name, product size, brand, flavor, lot number, serial number, package type, and/or nutritional information.

As described above in connection with of FIG. 3, the example product reference interface 304 of the weighting value generator 202 searches the product reference data store 216, such as the ACNielsen® PRL, for candidate competitive product(s) that may have one or more characteristic degrees of similarity to the target product of interest (block 604). For example, if the target product of interest is a brand of soda, the product reference interface 304 queries the product reference data store 216 for all UPCs having a general category identifier of soda and adds such category matches to a candidate list. The product reference interface 304 may further constrain competitive UPC/product candidates in the list to one or more subcategories of the target product, such as a subcategory of cola, a subcategory of 6packs, and/or a subcategory of 12ounce bottle 6packs (e.g., as opposed to 12ounce can 6packs).

The example panelist interface 302 of the weighting value generator 202 further queries the panelist purchase data store 214 for instances of the target product purchase and one or more purchases of a competitive product from the candidate list (block 606). While the resulting candidate list may be very large depending on the product type(s), the example target product comparator 306 of the weighting value generator 202 further constrains the candidate list by comparing matching purchase instances against one or more threshold(s) (block 608). For example, if the target product of interest is a Coke® 2liter bottle, the product reference interface 304 may have generated a candidate competitive product list that includes any number of competitive 2liter soda manufacturers. However, the example panelist interface 302 facilitates a method by which that candidate list may be reduced to a manageable size by identifying instances when such competitive products were actually purchased by consumers. In effect, only competitive products that actually sell will be retrieved by the panelist interface 302 for a given period of time, while other less popular soda brands that are deemed relatively obscure will not be considered.

Thresholds employed by the example target product comparator 306 may include, but are not limited to, a maximum percent occurrence within a twoweek time span. For example, the target product comparator 306 may reduce the competitive product candidate list and retain only competitive products that were most frequently purchased by the consumer within a twoweek timespan of purchasing the target product of interest. Employing such threshold test(s) may reveal, for example, that a consumer that purchases a 2liter bottle of Coke® in week 1 is also observed to frequently purchase a 2liter bottle of Pepsi®, but is rarely observed to also purchase a 2liter bottle of orange Crush® instead of the Coke® purchase. As such, a more relevant list of competitive products may be realized and used for trend analysis.

For each of the pairs (i.e., the target product of interest paired with one of the competitive products), the example weighting assignor 308 calculates a corresponding weighting similarity value/index (block 610). For example, a Jaccard weighting index calculated by the weighting assignor 308 may determine that Coke® and Pepsi® have a weighted index of 0.90, which indicates a relatively significant similarity between the two. On the other hand, the weighting assignor 308 may determine via the Jaccard weighting methodology that Coke® and orange Crush® have a weighted index of 0.45, which indicates a much lower relative similarity between those two products. In operation, the example target product comparator 306 may further employ one or more thresholds to retain only those weighting similarity index values meeting such threshold parameter(s) and/or matching a target index value. The one or more thresholds allow a competitive product subset to be created, in which the products within the subset exhibit similar weighting similarity index values and/or weighting similarity index values that meet one or more target values and/or threshold values.

Each target product of interest may have any number of candidate competitive products from the candidate list. Thus, if there are additional competitive products to analyze (block 612), then control passes to block 606. Additionally, if there are more target products of interest for which corresponding weights are to be calculated (block 614), the example weighting value generator 202 may repeat the example flowchart of FIG. 5 beginning at block 602.

FIGS. 7A and 7B are representative of example machine readable instructions that may be executed to prepare premodel data at block 506 of FIG. 5. At block 702, the example premodel data generator 208 identifies at least one store, week, and/or product to be analyzed (storeweekUPC). One or more unique stores of interest may be identified by a store record key, and each week of interest may be identified by a record key indicative of any seven day span of store data. As such, the example premodel data generator 208 may identify one or more storeweekUPC data sets for which to calculate working variables that facilitate further volume calculations. While the illustrated examples described herein include a lowest level of time detail from each store as a week in duration, any other duration of interest may also be applied to the methods and apparatus described herein. Additionally or alternatively, the premodel data generator 208 may identify a productcentric weekUPC to analyze volume effects of product trade promotions on other products.

The premodel data generator 208 retrieves one of the storeweekUPC POS sales volume data sets (block 704) from one or more of the panelist purchase data store 214, the product reference data store 216, and the sales data repository 220. In some example implementations, the sales volume may correspond to the sales of a product sold in one packaging size (e.g., twoliter soda), in which case the sales volume data is retrieved based on only one unique UPC. In other instances, the sales volume may correspond to the sales of a product sold in two or more packaging sizes (e.g., twoliter bottle, 12ounce cans, 6ounce cans, 24ounce bottles), in which case the sales volume data is retrieved based on two or more unique UPCs. In either case, the sales volume analyses described herein can be performed using base equivalent units by representing the sales volumes using common, standard volumetric units (or piececount units). For example, if a soda product is sold in different packaging sizes, the sales volume analyses can convert the POS sales volume data for each packaging type into ounces such that a sale of a twoliter bottle represents a sale of sixtyeight ounces of soda based on a baseequivalent measure, while a sale of a sixpack of twelveounce cans represents a sale of seventytwo ounces of soda based on the same baseequivalent measure.

A dependent variable of the sales volume for each product is calculated as the log of the number of units sold, and independent variables of the log of the regular price and number of UPCs selling are calculated for future use (block 706). Causal factors associated with the storeweekUPC data are identified (block 708), which may include temporary price reductions (TPRs), features (e.g., flyers), displays (e.g., instore displays in an aisle), and/or any combination of features and displays. However, despite the presence of causal facts, the example premodel data generator 208 calculates seasonality and trend index values to prevent data influences that are generally expected based on known seasonal effects (block 710). In other words, the seasonality index values and/or the trend index values normalize sales volume data. For example, seasonal effects may be apparent in view of barbeque sauce sales in summer months versus winter months. Additionally, the example premodel data generator 208 may employ trading area sales data to further adjust seasonality index values based on geographic factors, such as a tendency for higher barbeque sauce sales in southern states versus northern states during the summer months.

The example premodel data generator 208 also calculates one or more lift variables that span one or more time periods to facilitate volume calculations in accordance with cannibalization (block 712). As described above, cannibalization may occur when a manufacturer offers a new product or service, or promotes an existing product or service that takes sales or market share away from one or more of its own other products or services. As described in further detail below, the premodel data generator 208 retrieves interbrand and intrabrand weights (block 714), which are generated by the example weighting value generator 202, and calculates equivalent volumes and base equivalent volumes for competitive products (block 716). Based on competitor activity related to running a promotion, changing a product regular price, and/or introducing new UPCs on a store shelf, all of which tend to cause other competitive product sales to decrease, the example premodel data generator 208 calculates corresponding competitive trade index values (block 718), calculates competitive regular price variables (block 720), and calculates competitive distribution variables (block 722), all of which are described in further detail below.

FIG. 8 is a flowchart representative of example machine readable instructions that may be executed to identify one or more causal facts associated with storeweekUPC data at block 708 of FIG. 7A. At block 802, the actual sale price (e.g., the current sale price) and the regular sale price of a product is retrieved. The example premodel data generator 208 calculates the ratio/index of the actual sale price to the regular sale price and compares the result to a promoted price threshold (block 804). For example, a threshold of 0.96 may be selected by a user to identify instances where a promotion has actually occurred, such that any calculated ratio less than 0.96 is deemed to indicate that a promotion has occurred (e.g., actual price ($5.00)/regular price ($5.50)=0.90). A ratio/index value below the promoted price threshold is, thus, indicative of a valid trade promotion having a potential to affect sales of the target product of interest and/or one or more competitive products. If the ratio is not less than the promoted price threshold, then the promoted price index is deemed to be zero and the log of the promoted price index (LPPI) is set to zero (block 806). However, if the ratio is less than the threshold, then the LPPI is calculated (block 808) as set forth in Equation 1 below:

$\begin{array}{cc}\mathrm{LPPI}=\mathrm{log}\ue89e\frac{\left(\mathrm{Actual}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Price}\right)}{\left(\mathrm{Regular}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Price}\right)}& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e1\end{array}$

To further distinguish one or more causal intercepts, the example premodel data generator 208 queries the retrieved POS data for one or more causal parameters indicative of a feature, a display, a price reduction, or any combination thereof (block 810). In the event that there are no causal parameters associated with the product purchase, then no temporary price reduction has occurred. However, if the causal parameters have one or more nonzero mapping codes, then the premodel data generator 208 identifies a valid trade promotion occurrence, such as a corresponding feature, display, or combination thereof (block 812).

FIG. 9 is a flowchart representative of example machine readable instructions that may be executed to calculate forward buy cannibalization lift terms at block 712 of FIG. 7A. In other words, the calculation of lift terms represents a lagged effect over time, which facilitates volume calculations indicative of cannibalization effects. At block 902, a lagweek duration is selected. Any value for lagweek may be selected, the size of which determines how large a window of time is used to ascertain one or more lagged effects that may occur in response to one or more promotions. A working variable y is initially set to zero (block 904) to assist weektoweek looping of the retrieved storeweekUPC sales data. If the received data for any particular week of the loop is associated with a temporary price reduction or a causal parameter indicative of a promotion (block 906), as determined earlier by block 708, then lift is calculated for that week (block 908) as set forth in Equation 2 below.

$\begin{array}{cc}\mathrm{Lift}=\mathrm{log}\ue89e\frac{\mathrm{UnitsSold}}{\mathrm{BaseUnits}}& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e2\end{array}$

In Equation 2 above, UnitsSold represents all sales while BaseUnits represents sales that would have occurred without any promotional activity. Additionally, the BaseUnits value includes any effects due to seasonality and trending. However, if the data associated with week y in the loop is not associated with a TPR or a causal parameter indicative of a promotion (block 906), then the lift is set to zero for week y (block 910). To accommodate all weeks for which the lift calculation is desired, the example premodel data generator 208 determines if the loop variable y is equal to the selected lagweek duration in block 902 (block 912). If not, then the loop variable y is incremented by one (block 914) and control returns to block 906 to determine the lift variable value for the next week.

FIG. 10 is representative of example machine readable instructions that may be executed to calculate competitive trade index values at block 718. At block 1002, a target item of interest is denoted by variable i and a competitive item is denoted by variable k. The example flowchart 718 illustrates a loopoperation to calculate corresponding trade index values for each item/product of interest and all corresponding competitive items of interest. Accordingly, for any given storeweek of data, an equivalent volume and a baseequivalent volume are employed to accommodate for UPCs having disparate quantities (e.g., one UPC for Coke® sold in liters and another UPC for Coke® sold in ounces).

For each competitive product k, the example premodel data generator 208 determines whether a temporary price reduction (TPR) has occurred or whether a causal condition is present that indicates promotional activity of the competitive product (block 1004). In the event that neither a TPR nor a causal condition is present (block 1004), then the variable k is incremented by one to evaluate another competitive product (block 1006). On the other hand, if a TPR or a causal condition is present (block 1004), then the example premodel data generator 208 determines whether the equivalent volume is greater than the base equivalent volume (block 1008). In other words, if the equivalent volume is greater than the volume that would have occurred absent any promotion (i.e., the base equivalent volume), then the data associated with the competitive product related to variable k is likely to have experienced an effect associated with promotional activity. Additionally, the premodel data generator calculates a magnitude of the volume difference between the equivalent volume and the base equivalent volume.

The raw interbrand volume is calculated based on the interbrand weighting values determined above (block 1010) as set forth in Equation 3 below.

Raw InterBrand Volume(i,k)=β_{Inter(i,k)}*(EqVol(k)−BeqVol(k)) Equation 3

In Equation 3 above, β_{Inter(i,k) }represents the InterBrand weight for the product of interest i as compared to the competitive product k. Additionally, EqVol(k) represents the equivalent volume of competitive product k, and BeqVol(k) represents the corresponding equivalent volume of product k absent any promotional activity.

The raw intrabrand volume is calculated based on the intrabrand weighting values determined above (block 1012) as set forth in Equation 4 below.

Raw IntraBrand Volume(i,k)=β_{Intra(i,k)}*(EqVol(k)−BeqVol(k)) Equation 4

In Equation 4 above, β_{Intra(i,k) }represents the IntraBrand weight for the product of interest i as compared to another product k by that same manufacturer. In this case, EqVol(k) represents the equivalent volume of the manufacturer's product k, and BeqVol(k) represents the corresponding equivalent volume of the manufacturer's product k absent any promotional activity.

The value of variable k is compared against a maximum value as a condition to allow the loop to continue evaluating competitive products, if any (block 1014). However, once all competitive products and/or additional/alternate products by the same manufacturer have been evaluated for purposes of calculating the Raw InterBrand/IntraBrand Volumes, the total Raw InterBrand Volume is calculated as the sum over all values of k (block 1016), and the total Raw IntraBrand Volume is calculated as the sum over all values of k (block 1018).

As described above, one of the three things that a competitor can do to affect sales of the target product of interest is to increase or decrease the amount of trade promotion activity. To quantify that effect, the example premodel data generator 208 calculates the InterBrand Weighted Trade Index for each target product of interest (block 1020) as set forth in Equation 5 below.

$\begin{array}{cc}\mathrm{Inter}\ue89e\text{}\ue89e\mathrm{Brand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Weighted}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Trade}=\mathrm{tanh}\left(\frac{\mathrm{TotalRawInterBrandVol}}{\mathrm{max}\ue8a0\left(\mathrm{BeqVol}\ue8a0\left(i\right)\right)}\right)& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e5\end{array}$

In Equation 5 above, BeqVol(i) represents the base equivalent volume for the target product associated with variable i.

Additionally, to determine potential cannibalization effects, the example premodel data generator 208 calculates the IntraBrand Weighted Trade Index for each target product of interest (block 1022) as set forth in Equation 6 below.

$\begin{array}{cc}\mathrm{Inter}\ue89e\text{}\ue89e\mathrm{Brand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Weighted}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Trade}=\mathrm{tanh}\left(\frac{\mathrm{TotalRawIntraBrandVol}}{\mathrm{max}\ue8a0\left(\mathrm{BeqVol}\ue8a0\left(i\right)\right)}\right)& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e6\end{array}$

In the event that there are additional target products of interest as determined by monitoring the variable i (block 1024), control advances to block 1026 to increment to the next target product of interest.

FIG. 11 is a flowchart representative of example machine readable instructions that may be executed to calculate competitive regular price variables at block 720 of FIG. 7B. At block 1102, the example premodel data generator 208 calculates, for all storeweekUPCs, meancenter values for the value of the log of the regular price (LREGPR(k)). As discussed above, at least a second course of action that a competitor may take to affect volume sales is to change the regular price of a UPC item. To quantify this effect, the example premodel data generator 208 calculates an interbrand price for each competitive product (block 1104) as set forth in Equation 7 below.

$\begin{array}{cc}\mathrm{Inter}\ue89e\text{}\ue89e\mathrm{Brand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Price}=\sum _{k=1}^{k=\mathrm{max}}\ue89e\phantom{\rule{0.3em}{0.3ex}}\ue89e{\beta}_{\mathrm{Inter}\ue8a0\left(i,k\right)}\times \mathrm{LREGPR}\ue8a0\left(k\right)& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e7\end{array}$

In Equation 7 above, β_{Inter(i,k) }represents the InterBrand weight for the product of interest i as compared to the competitive product k.

To quantify the price variable effects within the same brand as the target product of interest, the example premodel data generator 208 calculates an intrabrand price for each alternate product that is also manufactured/produced by the manufacturer (block 1106) as set forth in Equation 8 below. For example, similar to a competitor changing a sale price that causes a corresponding drop in sales of the target product, so too can a drop in a sale price of one or more of the manufacturer's other products cause their volume sales of the target product of interest to drop.

$\begin{array}{cc}\mathrm{Intra}\ue89e\text{}\ue89e\mathrm{Brand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Price}=\sum _{k=1}^{k=\mathrm{max}}\ue89e\phantom{\rule{0.3em}{0.3ex}}\ue89e{\beta}_{\mathrm{Intra}\ue8a0\left(i,k\right)}\times \mathrm{LREGPR}\ue8a0\left(k\right)& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e8\end{array}$

In Equation 8 above, β_{Intra(i,k) }represents the IntraBrand weight for the product of interest i as compared to another of the manufacturer's products k.

FIG. 12 is a flowchart representative of example machine readable instructions that may be executed to calculate competitive distribution variables at block 722 of FIG. 7B. As described above, at least a third activity that a competitor can take that may adversely affect sales of a target product of interest is to introduce additional UPCs on a store shelf. To quantify this effect, the flowchart 722 of FIG. 12 begins at block 1202, in which the interbrand distribution is calculated (block 1202) as set forth in Equation 9 below.

$\begin{array}{cc}\mathrm{Inter}\ue89e\text{}\ue89e\mathrm{Brand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Distribution}=\sum _{k=1}^{k=\mathrm{max}}\ue89e\phantom{\rule{0.3em}{0.3ex}}\ue89e{\beta}_{\mathrm{Inter}\ue8a0\left(i,k\right)}\times \mathrm{SELL}\ue8a0\left(k\right)& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e9\end{array}$

In Equation 9 above, SELL(k) represents an indication that the particular product sold within a predetermined number of weeks on a store shelf (e.g., a shelf duration). Specifically, some items may sit on a retail shelf for a relatively long period of time. As the shelf duration increases, the likelihood that the product will ultimately be sold drops. To smooth out potential problems related to slow moving sales, the SELL(k) variable is set to a value of one if the average number of UPCs for that product is greater than zero for the predetermined number of weeks.

To accommodate to future modeling application, the log of the InterBrand Distribution is calculated (block 1204), as shown in Equation 10 below.

Log(InterBrand Distribution)=log(1+(InterBrand Distribution)) Equation 10

Similarly, to quantify the effects of volume sales of the target product when the same manufacturer introduces new and/or alternate UPCs on the store shelf, the example premodel data generator 208 calculates the IntraBrand Distribution (block 1206) as set forth in Equation 11 below.

$\begin{array}{cc}\mathrm{Intra}\ue89e\text{}\ue89e\mathrm{Brand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Distribution}=\sum _{k=1}^{k=\mathrm{max}}\ue89e\phantom{\rule{0.3em}{0.3ex}}\ue89e{\beta}_{\mathrm{Intra}\ue8a0\left(i,k\right)}\times \mathrm{MEAN\_NUMUPC}\ue89e\left(k\right)& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e11\end{array}$

In Equation 11 above, β_{Intra(i,k) }represents the IntraBrand weight for the product of interest i as compared to another of the manufacturer's products k. MEAN_NUMUPC(k) represents the mean number of sold UPCs by each storetime period, such as, for example, a quadweek.

To allow for use in one or more future modeling applications, the log of the IntraBrand Distribution is calculated (block 1208), as shown in Equation 12 below.

Log(IntraBrand Distribution)=log(1+(IntraBrand Distribution)) Equation 12

To accommodate one or more interaction effects of independent variables with other variables, the example premodel data generator 208 includes the addition of interaction variables based on user preferences related to model customization (block 1210). For example, interaction variables may include, but are not limited to store categories that exhibit one or more predictive tendencies, such as some stores having a relatively high sales volume with diapers, and other stores having a relatively high sales volume with beer. Additionally, interaction variables related to known percentages of shoppers that are Hispanic, African American, Polish American, and/or geographicbased scores may be added.

To accommodate one or more random coefficients typically employed in some regression models, random coefficient models, and/or variance components models, the example premodel data generator 208 adds one or more random coefficient subject variables (block 1212). Depending on the type of modeling approach selected by the user, certain assumptions and/or heuristics are applied to the coefficients that change based on the causal effects. For example, some of the random coefficient subject variables are unique based on whether the causal type is for a feature, a display, a combination of a feature and a display, or whether there is no promotional activity involved. Without limitation, other random coefficient subject variables are unique based on a feature advertisement size and/or location, such as the display being located at the end of an aisle, front of an aisle, and/or in a store lobby.

Briefly returning to FIG. 5, the example flowchart also includes machine readable instructions that may be executed to perform trading area calculations (block 508). Turning to FIG. 13, an example flowchart of block 508 is shown in greater detail and begins at block 1302, at which the example trading area competitive activity assessor 206 retrieves all commodities volume (ACV) data from each merchant (e.g., retailer, wholesaler, etc.). At least one source of ACV data includes the Spectra® services provided by ACNielsen® that, in part, build, manage, and maintain data sources related to store trading areas, demographics, social characteristics, and/or economic characteristics. The example trading area competitive activity assessor 206 connects to the Spectra® services and/or any other trading area data source, which stores such trading area data in the example trading area sales data store 218. Without limitation, the trading area competitive activity assessor 206 may retrieve subsets of trading area data from the trading area sales data store 218 that are relevant to the geographic region(s) of interest. Contents of the trading area ACV data include, but are not limited to, store name, store identification value(s), store characteristics (e.g., TDLinx® characteristics), geographic information, and/or geodemographic information.

A competitive trading area table is generated by the example trading area competitive activity assessor 206 for each target store of interest (block 1304). The table includes a compiled list of competitive stores that surround the target store and which reside in the same relevant geographic area, such as the same state, the same county, and/or the same census block(s). However, the table discards other stores having the same organizational name as the target store (e.g., discard duplicate Jewel® stores that may have some census block overlap). Each census block may have varying degrees of overlap between the target store and a competitive store, thus the example trading area competitive activity assessor 206 calculates a percentage overlap of the ACV data to identify storepairs that exceed a threshold value (block 1306) as set forth in Equation 13 below.

% ACV Overlap=(Trading Area Overlap)/(Target Store ACV) Equation 13

A user may select a threshold value of 0% in the event that analysis of all overlapping conditions is desired, while other users may select a higher threshold value when analysis of more significant census block overlapping conditions is desired.

Independent trading area variables are calculated by the example activity assessor 206 to be used in one or more models, as described above. A targetstoreweekUPC record is selected from the example transformed data repository 222 (block 1308), which was previously generated by the example premodel data generator 208 described above. Based on the selected record, a corresponding set of competitive stores related to the target store are selected (extracted) from the table (block 1310) that was generated in block 1304. For each identified competitive store related to the target store, the example activity assessor 206 calculates a percent overlap weighted mean of the interbrand and intrabrand volumes (block 1312). In effect, a resulting table includes summed values for the interbrand and intrabrand incremental volumes for all competitive stores related to each targetstoreUPC.

To further facilitate calculation of factorcontributive subvolumes (dueto driver scoring calculations), the example trading area competitive activity assessor 206 calculates interbrand store switching and intrabrand store switching values via, for example, Equations 14 and 15 below (block 1314).

$\begin{array}{cc}\mathrm{Inter}\ue89e\text{}\ue89e\mathrm{Brand}\ue89e\text{}\ue89e\mathrm{Store}\ue89e\text{}\ue89e\mathrm{Sw}=\mathrm{log}\left(1+\frac{\mathrm{TotalInterBrandIncrementalVol}}{\mathrm{BaseEquivalentVol}}\right)& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e14\end{array}$

In Equations 14 and 15 above, the BaseEquivalentVol is the target item base equivalent volume.

The independent variables of Equations 14 and 15 are multiplied by model coefficients to generate intermediate storespecific variables for use in calculating factorcontributivesubvolumes (e.g., dueto net storeswitching, base storeswitching, and incremental storeswitching for both interbrand and intrabrand circumstances). The example trading area competitive activity assessor 206 retrieves an interbrand storeswitching coefficient (β_{InterSS}), and an intrabrand storeswitching coefficient (β_{IntraSS}) from the model to calculate the intermediate variables BetaInterBrandStore and BetaIntraBrandStore as shown below in Equations 16 and 17.

BetaInterBrandStore=β_{InterSS})×InterBrandStoreSw Equation 16

BetaIntraBrandStore=(β_{IntraSS})×IntraBrandStoreSw Equation 17

The example trading area competitive activity assessor 206 next calculates the factorcontributivesubvolumes (block 1316), which represent subvolume quantities that are attributed to (due to) one or more factors. In particular, the activity assessor 206 facilitates determining subvolumes related to factors of competitive stores and/or samestores (e.g., cannibalistic effects) in the trading area. In the illustrated example of FIG. 13, the activity assessor is configured to employ Equation 18 below to calculate the net subvolume due to intrabrand store switching. Additionally, example Equation 19 builds upon results from Equation 18 to calculate the base subvolume dueto intrabrand store switching, and example Equation 20 further builds upon Equation 19 to calculate the incremental subvolume due to intrabrand store switching.

$\begin{array}{cc}\mathrm{Net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{SubVol}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{IntraBrand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Store}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Switching}=\hspace{1em}\left[\mathrm{exp}\ue8a0\left(\mathrm{BetaIntraBrandStore}\right)1\right]\times \mathrm{MAXIMUM}\ue89e\lfloor \mathrm{UNITS},\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}\rfloor & \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e18\\ \mathrm{Base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{SubVol}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{IntraBrand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Store}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Switching}=\mathrm{Net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{SubVol}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{IntraBrand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Store}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Switching}\times \frac{\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}}{\mathrm{MAXIMUM}\ue8a0\left[\mathrm{UNITS},\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}\right]}& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e19\\ \mathrm{Incremental}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{SubVol}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{IntraBrand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Store}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Switching}=\left(\mathrm{Net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{SubVol}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{IntraBrand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Store}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Switching}\right)\left(\mathrm{Base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{SubVol}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{IntraBrand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Store}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Switching}\right)& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e20\end{array}$

In Equation 18 above, the factorcontributive subvolume related to intrabrand net subvolume is determined by subtracting one from the exponential value of the intermediate variable from Equation 17. The result is then multiplied by the maximum value of the corresponding UNITS volume and the corresponding base units volume for the storeweekUPC.

While example Equations 1820 above may be used to calculate net, base, and incremental factorcontributive subvolumes related to intrabrand effects, the example trading area competitive activity assessor 206 facilitates determining subvolumes related to factors of interbrand store switching (i.e., competitive stores). In the illustrated example of FIG. 13, the activity assessor 206 is configured to employ Equation 21 below to calculate the net subvolume due to interbrand store switching. Much like the progress of example Equations 1820 above, Equations 22 and 23 below buildupon the calculations of example Equation 21 to calculate the base subvolume dueto interbrand store switching and to calculate the incremental subvolume due to interbrand store switching, respectively.

$\begin{array}{cc}\mathrm{Net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{SubVol}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{InterBrand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Store}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Switching}=\hspace{1em}\left[\mathrm{exp}\ue8a0\left(\mathrm{BetaInterBrandStore}\right)1\right]\times \mathrm{MAXIMUM}\ue89e\lfloor \mathrm{UNITS},\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}\rfloor & \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e21\\ \mathrm{Base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{SubVol}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{InterBrand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Store}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Switching}=\mathrm{Net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{SubVol}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{InterBrand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Store}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Switching}\times \frac{\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}}{\mathrm{MAXIMUM}\ue8a0\left[\mathrm{UNITS},\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}\right]}& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e22\\ \mathrm{Incremental}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{SubVol}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{InterBrand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Store}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Switching}=\left(\mathrm{Net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{SubVol}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{InterBrand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Store}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Switching}\right)\left(\mathrm{Base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{SubVol}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{InterBrand}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Store}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{Switching}\right)& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e23\end{array}$

Similar to example Equation 18, Equation 21 above determines the factorcontributive subvolume related to interbrand net subvolume by subtracting one from the exponential value of the intermediate variable from Equation 16. The result is then multiplied by the maximum value of the corresponding UNITS volume and the corresponding base units volume for the storeweekUPC.

Briefly returning to FIG. 4, the illustrated example application of prepared data and model coefficients to scoring algorithms (block 406) is shown in greater detail in FIGS. 14A, 14B, 15A, and 15B. In particular, FIGS. 14A and 14B illustrate additional detail related to base driver scoring calculations, while the example of FIGS. 15A and 15B illustrates additional detail related to incremental trade driver scoring calculations.

Turning to FIGS. 14A and 14B, initially, the base driver data generator 228 identifies the store, week, and product to be analyzed (block 1402). For example, the store, week, and/or product may be selected by a user to specify that the user elects to analyze the sales volume of a particular product (represented by one or more unique UPCs) during a particular week and/or at a particular store (i.e., storeweekUPC sales volume), and the base driver data generator 228 can retrieve the user's selection. In some example implementations, two or more products may be analyzed simultaneously.

The base driver data generator 228 retrieves the storeweekUPC POS sales volume data (block 1404) from the sales data repository 220 for each product selected at block 1402. Alternatively, the base driver data generator 228 may retrieve weekUPC sales volume data for a focus on products independent of one or more storebased effects. As also described above, in some example implementations the sales volume may correspond to the sales of a product sold in one packaging size (e.g., twoliter soda), in which case the sales volume data is retrieved based on only one unique UPC. In other instances, the sales volume may correspond to the sales of a product sold in two or more packaging sizes (e.g., twoliter bottles, 12ounce cans, 6ounce cans, 24ounce bottles), in which case the sales volume data is retrieved based on two or more unique UPCs. In either case, the sales volume analyses described herein can be performed using base equivalent units by representing the sales volumes using common (e.g., normalized), standard volumetric units (or piececount units). For example, if a soda product is sold in different packaging sizes, the sales volume analyses can convert the POS sales volume data for each packaging type into ounces such that a sale of a twoliter bottle would represent a sale of sixtyeight ounces of soda based on a base equivalent measure, while a sale of a sixpack of twelveounce cans would represent a sale of seventytwo ounces of soda based on the same base equivalent measure.

The base driver data generator 228 then retrieves model coefficients (fixedeffect coefficients and randomeffect coefficients) and net interaction terms from the model coefficients repository 224 (block 1406) and sets any nonsignificant fixed effect coefficients and nonsignificant random effect coefficients to zero (block 1408). The base driver data generator 228 then calculates net storeUPC coefficients (block 1410) based on the remaining, significant fixed and random effect coefficients and net interaction terms. In the illustrated example, net storeUPC coefficients are analysisspecific coefficients that represent different sales volumes effects for products in a particular store. While the model coefficients can be used to represent higher granularities of different effects on sales volumes, each net storeUPC coefficient can represent two or more aggregated model coefficients having similar sales volumes effects. In the illustrative example, the net storeUPC coefficients include a logarithmic regular price coefficient (β_{RP}), a lift coefficient (β_{L}), an interbrand trade coefficient (β_{interT}), an intrabrand trade coefficient (β_{intraT}), an interbrand price coefficient (β_{interP}), an intra brand price coefficient (β_{intraP}), an interbrand distribution coefficient (β_{interD}), and an intrabrand distribution coefficient (β_{intraD}).

The base driver data generator 228 can determine the net storeUPC coefficients at block 1410 by aggregating the corresponding fixed and random coefficients and also applying net interaction terms to quantify the effects that the interactions between different coefficients have on the resulting net storeUPC coefficients. In example implementations in which two or more products are selected at block 1402, the operation of block 1406 can retrieve model coefficients for each product, and the operation of block 1410 can be performed for each product to determine respective net storeUPC coefficients for each product based on its respective coefficients.

The base driver data generator 228 then discards any net storeUPC coefficient value that does not comply with a constraints table (block 1412). The constraints table can be used to store rules to be satisfied or met by calculated net storeUPC coefficients to determine whether the net storeUPC coefficients are statistically correct. In the illustrated example, a constraints table is used to store positive indicators and negative indicators to indicate whether it is plausible for a coefficient to represent an increase in sales. For example, if a constraint is indicative of positive growth (which is typically the case when a promotion is run) and a net storeUPC coefficient calculated at block 1410 represents a decrease in sales, then the calculated net storeUPC coefficient is discarded at block 1412 as a statistical outlier. Inconsistent or statistical outlier net storeUPC coefficients may be attributed to missing sales data, incorrectly recorded or collected data or any other error or misstep in the data handling process. Discarding inconsistent net storeUPC coefficients at block 1412 reduces the chances of incorrectly influencing volume sales analyses.

The base driver data generator 228 retrieves the independent logarithmic value for the nonpromotion, regular price (LREGPR) of each UPC selected at block 1402 (block 1414). In the illustrated example, the base driver data generator 228 retrieves the independent variable LREGPR for each UPC from the transformed data repository 222. The base driver data generator 228 also retrieves independent variable decremental effect factors from the transformed data repository 222 (block 1416). Independent variable decremental volume factors (sometimes referred to herein as decremental effect factors) are factors having a decremental effect on the sales volume(s) calculated at block 1410 for the product(s) selected at block 1402. In the illustrated example, the independent variable decremental effect factors include, but are not limited to pantry loading (cannibalization) terms LIFT1=>LIFTn, interbrand weighted category trade factors (INTER_TRADE), intrabrand weighted category factors (INTRA_TRADE), interbrand weighted regular price factors (INTER_PRICE), intrabrand weighted regular price factors (INTRA_PRICE), interbrand weighted distribution factors (LINTER_DIST), and intrabrand weighted distribution factors (LINTRA_DIST).

The base driver data generator 228 determines meancenter values for independent preselected independent variables (1418). In the illustrated example, the preselected independent variables include LREGPR, INTER_PRICE, INTRA_PRICE, LINTER_DIST, and LINTRA_DIST. The base driver data generator 228 also retrieves the reference base unit volume (MEAN_BASE) for each storeweekUPC identified at block 1402 (block 1420 of FIG. 14B). The reference base unit volume for each product is the mean sales volume for that product over a predetermined duration (e.g., a plurality of weeks) and is representative of typical sales of that product over that duration.

The base driver data generator 228 and/or the scoring processor determines the products of net storeUPC coefficients and respective independent variables to generate decremental effect terms (block 1422). The net storeUPC coefficients are selected from those determined above at block 1410 and the independent variables are those retrieved at block 1416 (some of which were meancentered at block 1418). Thus, the product values (e.g., storeUPC coefficient terms, decremental effect terms), which may be represented as decremental effect terms are determined by the base driver data generator 228 are, for example, (β_{RP}×LREGPR), (β_{interT}×INTER_TRADE) (β_{intraT}×INTRA_TRADE), (β_{interP}×INTER_PRICE), (β_{intraP}×INTRA_PRICE) (β_{interD}×LINTER_DIST), (β_{intraD}×LINTRA_DIST), and (β_{LIFT1}×LIFT1) through (β_{LIFTn}×LIFTn). In addition, a pantry loading storeUPC coefficient term (β_{pantry}×PANTRY), which may be represented as a pantry loading effect term, can be determined by summing the LIFT storeUPC coefficient terms ((β_{LIFT1}×LIFT1 . . . β_{LIFTn}×LIFTn).

The base driver data generator 228 determines factorcontributive subvolumes (block 1424). Factorcontributive subvolumes represent subvolume quantities attributed to (or due to) respective factors that, when aggregated, account for an entire dip (decrease) or spike (increase) in sales volumes. For example, factors A, B, and C correspond to respective ones of factorA subvolume, factorB subvolume, and factorC subvolume that, when summed, quantify an entire observed volume (i.e., total observed volume=sum(factorA subvolume, factorB subvolume, factorC subvolume). In the illustrated example, the base driver data generator 228 can be configured to use Equation 24 below to determine a regular price factorcontributive subvolume, an interbrand weighted regular price factorcontributive subvolume, an intrabrand weighted regular price factorcontributive subvolume, an interbrand distribution factorcontributive subvolume, and an intrabrand distribution factorcontributive subvolume.

$\begin{array}{cc}\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}=\hspace{1em}\left[1\frac{1}{\mathrm{exp}\ue8a0\left(\mathrm{store}\ue89e\text{}\ue89e\mathrm{UPC}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{coeff}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{term}\right)}\right]\times \mathrm{MEAN\_BASE}& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e24\end{array}$

In Equation 24 above, a factorcontributive subvolume is determined by subtracting one from the inverse value of the exponential value of a corresponding storeUPC coefficient term determined above at block 1422. The result is then multiplied by the reference base unit volume (MEAN_BASE) for a corresponding storeweekUPC.

The base driver data generator 228 determines pantry loading effect subvolumes (block 1426) as set forth in Equation 25 below. For example, the base driver data generator 228 can be configured to use Equation 25 below to determine a pantry loading net factorcontributive subvolume.

$\begin{array}{cc}\mathrm{pantry}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{loading}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}=\hspace{1em}\left[1\frac{1}{\mathrm{exp}\ue8a0\left({\beta}_{\mathrm{pantry}}\times \mathrm{PANTRY}\right)}\right]\times \mathrm{MAXIMUM}\ue8a0\left[\mathrm{UNITS},\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}\right]& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e25\end{array}$

In Equation 25 above, the pantry loading net factorcontributive subvolume is determined by subtracting one from the inverse of the exponential value of the pantry loading storeUPC coefficient term β_{pantry}×PANTRY). The resulting value is then multiplied by the maximum value of the corresponding UNITS volume and the corresponding base units volume for the storeweekUPC.

In addition, the base driver data generator 228 can be configured to determine a pantry loading base factorcontributive subvolume using Equation 26 below and a pantry loading incremental factorcontributive subvolume using Equation 27 below.

$\begin{array}{cc}\mathrm{pantry}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{loading}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}=\mathrm{pantry}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{loading}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\hspace{1em}\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}\times \left[\frac{\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}}{\mathrm{MAXIMUM}\ue8a0\left[\mathrm{UNITS},\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}\right]}\right]& \mathrm{Equations}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e26\\ \mathrm{pantry}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{loading}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{incremental}\ue89e\phantom{\rule{1.1em}{1.1ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}=\left(\mathrm{pantry}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{loading}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}\right)\left(\mathrm{pantry}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{loading}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}\right)& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e27\end{array}$

In Equation 26 above, the pantry loading base factorcontributive subvolume is determined by multiplying the pantry loading net factorcontributive subvolume by the quotient of corresponding base units volume divided by the maximum value of the corresponding UNITS volume and the corresponding base units volume for the storeweekUPC. In Equation 27 above, the pantry loading incremental factorcontributive subvolume is determined by subtracting the pantry loading net factorcontributive subvolume from the pantry loading base factorcontributive subvolume.

The base driver data generator 228 then determines competitive trade effects subvolumes (block 1428). For example, the base driver data generator 228 can use Equations 28, 29, and 30 below, which are similar to Equations 2527 above.

$\begin{array}{cc}\mathrm{inter}\ue89e\text{}\ue89e\mathrm{trade}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}=\hspace{1em}\left[1\frac{1}{\mathrm{exp}\ue8a0\left({\beta}_{\mathrm{interT}}\times \mathrm{INTER\_TRADE}\right)}\right]\times \mathrm{MAXIMUM}\ue8a0\left[\mathrm{UNITS},\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}\right]\ue89e\text{}& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e28\\ \mathrm{inter}\ue89e\text{}\ue89e\mathrm{trade}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}=\mathrm{inter}\ue89e\text{}\ue89e\mathrm{trade}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\hspace{1em}\mathrm{sub}\ue89e\text{}\ue89e\phantom{\rule{0.em}{0.ex}}\ue89e\mathrm{volume}\times \left[\frac{\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}}{\mathrm{MAXIMUM}\ue8a0\left[\mathrm{UNITS},\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}\right]}\right]& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e29\\ \mathrm{inter}\ue89e\text{}\ue89e\mathrm{trade}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{incremental}\ue89e\phantom{\rule{1.1em}{1.1ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}=\left(\mathrm{inter}\ue89e\text{}\ue89e\mathrm{trade}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}\right)\left(\mathrm{inter}\ue89e\text{}\ue89e\mathrm{trade}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}\right)& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e30\end{array}$

The base driver data generator 228 then determines same brand trade cannibalization effects subvolumes (block 1430). Cannibalization occurs when a company offers a new product or service that takes sales or market share from one or more of its already existing products or services. The base driver data generator 228 can be configured to determine the same brand trade cannibalization effects subvolumes using Equations 31, 32, and 33 below, which are similar to Equations 2527 above.

$\begin{array}{cc}\mathrm{intra}\ue89e\text{}\ue89e\mathrm{trade}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}=\hspace{1em}\left[1\frac{1}{\mathrm{exp}\ue8a0\left({\beta}_{\mathrm{intraT}}\times \mathrm{INTRA\_TRADE}\right)}\right]\times \mathrm{MAXIMUM}\ue8a0\left[\mathrm{UNITS},\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}\right]& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e31\\ \mathrm{intra}\ue89e\text{}\ue89e\mathrm{trade}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}=\mathrm{intra}\ue89e\text{}\ue89e\mathrm{trade}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}\times \left[\frac{\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}}{\mathrm{MAXIMUM}\ue8a0\left[\mathrm{UNITS},\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{units}\right]}\right]& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e32\\ \mathrm{intra}\ue89e\text{}\ue89e\mathrm{trade}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{incremental}\ue89e\phantom{\rule{1.1em}{1.1ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}=\left(\mathrm{intra}\ue89e\text{}\ue89e\mathrm{trade}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{net}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}\right)\left(\mathrm{intra}\ue89e\text{}\ue89e\mathrm{trade}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{base}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{factor}\ue89e\text{}\ue89e\mathrm{contributive}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e\mathrm{sub}\ue89e\text{}\ue89e\mathrm{volume}\right)& \mathrm{Equation}\ue89e\phantom{\rule{0.8em}{0.8ex}}\ue89e33\end{array}$

If the store identified at block 1402 is a causal sample store, the base driver data generator 228 determines the aggregate raw trade driver volume for the identified product(s) being analyzed (block 1432). A causal sample store is a store for which causal effect data and sales volumes are collected, while a volumetric (census) store is one for which only sales volumes are collected. The causal effect data collected at causal sample stores can be used to infer reasons for sales volumes at volumetric stores. The base driver data generator 228 can be configured to determine the aggregate raw trade driver volume using Equation 34 below.

raw trade driver volume=sum(pantry loading incremental factorcontributive subvolume, intertrade incremental factorcontributive subvolume, intratrade incremental factorcontributive subvolume) Equation 34

As shown in Equation 34 above, the raw trade driver volume is the sum of the pantry loading incremental factorcontributive subvolume determined in Equation 27 above, the intertrade incremental factorcontributive subvolume determined in Equation 30 above, and the intratrade incremental factorcontributive subvolume determined in Equation 31 above.

The base driver data generator 228 determines the total category base equivalent units volume by storeweek (block 1434) for a particular product. Base equivalent volumes are calculated to determine total product sold regardless of the products' packaging. In this manner, for example, regardless of whether brand A soda was sold in a twoliter bottle package or twelveounce cans, the base equivalent volume will reflect the total ounces of the product sold regardless of packaging. The base driver data generator 228 then determines the average category base equivalent units volume for all weeks combined by store (block 1436) for the particular product. For example, the base driver data generator 228 can use the total category base equivalent units volume determined at block 1434 to determine the mean of total category base equivalent units volume to calculate the average category base equivalents units volume at block 1436.

The base driver data generator 228 then determines a category index of a particular product (block 1438) by, for example, dividing the total category base equivalent units volume determined at block 1434 by the average category base equivalent units volume determined at block 1436. The base driver data generator 228 then determines a market driver volume (block 1440) using, for example, seasonality factors, trend factors, etc.

The base driver data generator 228 then determines the base residual volume of the product (block 1442) using, for example, Equation 35 below.

base residual volume=base units−sum (regular price factorcontributive subvolume, interbrand weighted regular price factorcontributive subvolume, intrabrand weighted regular price factorcontributive subvolume, interbrand distribution factorcontributive subvolume, intrabrand distribution factorcontributive subvolume, pantry loading base factorcontributive subvolume, interbrand trade factorcontributive subvolume, intrabrand trade factorcontributive subvolume, other driver volume(s)) Equation 35

As shown in Equation 35 above, the base residual volume of a product is determined by subtracting the base units from the sum of the regular price factorcontributive subvolume, the interbrand weighted regular price factorcontributive subvolume, the intrabrand weighted regular price factorcontributive subvolume, the interbrand distribution factorcontributive subvolume, the intrabrand distribution factorcontributive subvolume, the pantry loading base factorcontributive subvolume, the interbrand trade factorcontributive subvolume, the intrabrand trade factorcontributive subvolume, and any other driver volume(s).

The base driver data generator 228 then determines a distribution volume of the product (block 1444). For example, the base driver data generator can determine the distribution volume of the product by determining the mean of the base residual volume of the product determined at block 1442. The example process of FIGS. 14A and 14B is then ended.

Turning now to FIGS. 15A and 15B, initially, the incremental driver data generator 230 identifies the store, week, and product to be analyzed (block 1502). For example, the store, week, and product may be selected by a user to specify that the user elects to analyze the sales volume of a particular product (represented by one or more unique UPCs) during a particular week at a particular store (i.e., storeweekUPC sales volume), and the incremental driver data generator 230 can retrieve the user's selection. In some example implementations, two or more products may be analyzed simultaneously.

The incremental driver data generator 230 retrieves the storeweekUPC POS sales volume data (block 1504) from the sales data repository 220 for each product selected at block 1502. As discussed above in connection with block 1404 of FIG. 14A, the sales volume analyses described herein can be performed using base equivalent units by representing the sales volumes using common, standard volumetric units (or piececount units) regardless of whether the retrieved sales volume corresponds to the sales of a product sold in one packaging size to the sales of a product sold in two or more different packaging sizes.

The incremental driver data generator 230 then retrieves model coefficients (fixedeffect coefficients and randomeffect coefficients) and net interaction terms from the model coefficients repository 224 (block 1506) and sets any nonsignificant fixed effect coefficient and nonsignificant random effect coefficient to zero (block 1508). The incremental driver data generator 230 then calculates net storeUPC coefficients (block 1510) based on the remaining, significant fixed and random effect coefficients and net interaction terms. In the illustrative example, the net storeUPC coefficients include a logarithmic promoted price index coefficient (β_{LPPI}), a temporary price reduction (TPR) coefficient (β_{TPR}), a feature coefficient (β_{feat}), a display coefficient (β_{disp}), and a featuredisplay coefficient (β_{featdisp}).

The incremental driver data generator 230 can determine the net storeUPC coefficients at block 1510 by aggregating corresponding fixed and random coefficients and also applying net interaction terms to quantify the effects that the interactions between different coefficients have on the resulting net storeUPC coefficients. In example implementations in which two or more products are selected at block 1502, the operation of block 1506 can retrieve model coefficients for each product, and the operation of block 1510 can be performed for each product to determine respective net storeUPC coefficients for each product based on it respective coefficients.

The incremental driver data generator 230 then discards any net storeUPC coefficient value that does not comply with a constraints table (block 1512). The constraints table used at block 1512 is configured similarly to the constraints table described above in connection with block 1412 of FIG. 14A. Discarding inconsistent net storeUPC coefficients at block 1512 reduces the chances of incorrectly influencing volume sales analyses.

The incremental driver data generator 230 determines N reference fact values (block 1514). Each reference fact value corresponds to a different storeweekUPC identified at block 1502. Thus, N is equal to the number of storeweekUPC's used for the sales volume analysis. The reference fact values can be calculated once per year or at any other desired time. In the illustrated example, the reference fact values include a reference base equivalent (REFBE) units and a plurality of reference promoted price indices (PPI's). REFBE units represent the average base equivalent units sales volume for a particular UPC (or group of UPC's representing the same product sold in different packaging sizes) in a particular store. Base equivalent units are discussed above in connection with block 1404 of FIG. 14A.

The plurality of PPI's are neither storespecific nor UPCspecific, but instead represent ratios of actual pricestoregular prices. The reference PPI's can be used to determine when promotions are present for different products. For example, during an analysis if the ratio of an actual pricetoregular price of a product is less than or equal to the reference PPI, it confirms that there is a promotion for that product. Otherwise, a promotion is not present when the actual pricetoregular price ratio is not less than or equal to the reference PPI. Each reference PPI corresponds to a corresponding type of promotion including a feature only promotion, a display only promotion, a hybrid featuredisplay promotion, or a price cut only promotion. A feature promotion is a circulated flyer (e.g., coupons or advertisements in newspapers, magazines, etc.) associated with the product. A display promotion is an instore display (e.g., instore posters, shelf talkers, coupon dispensers, etc.) promoting the product. A price cut promotion occurs when a product's price is reduced but is not advertised.

The incremental driver data generator 230 determines an incremental equivalent volume (block 1516) and raw driver volumes for causal promotion types (block 1518). In the illustrated example, the incremental driver data generator 230 determines the incremental equivalent volume and the raw driver volumes for causal promotion types based on the net storeUPC coefficients (i.e., logarithmic promoted price index coefficient (β_{LPPI}), temporary price reduction (TPR) coefficient (β_{TPR}), feature coefficient (β_{feat}), display coefficient (β_{disp}), and featuredisplay coefficient (β_{featdisp})) determined above at block 1510 and certain facts data for the product UPC(s) under analysis retrieved from the transformed data repository 222 (FIG. 2). The facts data include equivalent volume, base equivalent volume (BEV), actual price, regular price, causal promotion indicators (e.g., variable CAUSAL having example values 07), and temporary price reduction (TPR) flags (e.g., 1 if price cut, 0 otherwise). The facts data also include the reference facts determined above at block 1514. While the illustrated examples described herein use variable CAUSAL to indicate causal promotional activity, any other variable nomenclature and/or associated value(s) may be implemented to represent the same.

To determine the incremental equivalent volume at block 1516, the incremental driver data generator 230 subtracts the base equivalent volume from the equivalent volume (i.e., incremental equivalent volume=equivalent volume−base equivalent volume).

The raw driver volumes by causal promotion types determined at block 1518 include a price cut only raw driver volume, a feature only raw driver volume, a display only raw driver volume, and a featuredisplay raw driver volume. At block 1518, the incremental driver data generator 230 determines that a price cut only promotion exists for a product when its causal promotion indicator (e.g., CAUSAL) is equal to zero (i.e., CAUSAL=0) and a temporary price reduction flag is equal to one (i.e., TPR=1 to identify the occurrence of a temporary price reduction). If the price cut only promotion exists, then the incremental driver data generator 230 determines a price cut only raw quantity and price driver volume using Equations 36 and 37 below.

price cut only raw quantity driver volume={exp(β_{TPR})×[(reference PPI for price cut only)̂β_{LPPI}]−1}×REFBE Equation 36

price cut only raw price driver volume={exp(β_{TPR})×[(actual price/regular price)̂β_{LPPI}]−1}×REFBE−price cut only raw quantity driver volume Equation 37

Also at block 1518, the incremental driver data generator 230 determines that a feature only promotion exists for a product when its causal promotion indicator (e.g., CAUSAL) is equal to a value of one, two, or three (i.e., CAUSAL=1, 2, or 3). If a feature only promotion exists, then the incremental driver data generator 230 determines a feature only raw quantity and price driver volume using Equations 38 and 39 below.

feature only raw quantity driver volume={exp(β_{feat})×[(reference PPI for feature only)̂β_{LPPI}]−1}×REFBE Equation 38

feature only raw price driver volume={exp(β_{feat})×[(actual price/regular price)̂β_{LPPI}]−1}×REFBE−feature only raw quantity driver volume Equation 39

Also at block 1518, the incremental driver data generator 230 determines that a display only promotion exists for a product when its causal promotion indicator (e.g., CAUSAL) is equal to a value of four (i.e., CAUSAL=4). If a display only promotion exists, then the incremental driver data generator 230 determines a display only raw quantity and price driver volume using Equations 40 and 41 below.

display only raw quantity driver volume={exp(β_{disp})×[(reference PPI for display only)̂β_{LPPI}]−1}×REFBE Equation 40

display only raw price driver volume={exp(β_{disp})×[(actual price/regular price)̂β_{LPPI}]−1}×REFBE−display only raw quantity driver volume Equation 41

Also at block 1518, the incremental driver data generator 230 determines that a hybrid featuredisplay promotion exists for a product when its causal promotion indicator (e.g., CAUSAL) is equal to a value of five, six, or seven (i.e., CAUSAL=5, 6, or 7). If a hybrid featuredisplay promotion exists, then the incremental driver data generator 230 determines a hybrid featuredisplay raw quantity and price driver volume using Equations 42 and 43 below.

featuredisplay raw quantity driver volume={exp(β_{featdisp})×[(reference PPI for featuredisplay)̂β_{LPPI}]−1}×REFBE Equation 42

featuredisplay raw price driver volume={exp(β_{featdisp})×[(actual price/regular price)̂β_{LPPI}]−1}×REFBE−featuredisplay raw quantity driver volume Equation 43

The incremental driver data generator 230 then determines the raw net price and quantity volume (block 1520) based on the raw driver volumes for each causal promotion type determined above at block 1518. In the illustrative example, the incremental driver data generator 230 determines the raw net price and quantity volume using Equation 44 below.

raw net price and quantity volume=sum(price cut only raw quantity driver volume, price cut only raw price driver volume, feature only raw quantity driver volume, feature only raw price driver volume, display only raw quantity driver volume, display only raw price driver volume, featuredisplay raw quantity driver volume, featuredisplay raw price driver volume) Equation 44

The incremental driver data generator 230 then determines the raw base effectiveness volume (block 1522) based on the raw net price and quantity volume determined at block 1520 using, for example, Equation 46 below.

raw base effectiveness volume=(BE/REFBE−1)×raw net price and quantity volume Equation 45

The incremental driver data generator 230 then determines the adjusted incremental volume (block 1524) using, for example, Equation 46 below.

adjusted incremental volume=(incremental units)−(pantry loading incremental factorcontributive subvolume)−(interbrand incremental factorcontributive subvolume)−(intrabrand incremental factorcontributive subvolume) Equation 46

The pantry loading incremental factorcontributive subvolume, the interbrand incremental factorcontributive subvolume, and the intrabrand incremental factorcontributive subvolume used in Equation 46 above are determined as described above in connection with block 1426, 1428, and 1430 of FIG. 14B.

The incremental driver data generator 230 then determines a raw trade driver volume (block 1526) using, for example, Equation 47 below based on the raw net price and quantity volume determined at block 1520 and the raw base effectiveness volume determined at block 1522.

raw trade driver volume=raw net price and quantity volume+raw base effectiveness volume Equation 47

Also for each store with a promotion condition, the incremental driver data generator 230 determines a lift factor adjustment (block 1528) for each UPC using, for example, dividing the adjusted incremental volume for that UPC (determined above at block 1524) by the total raw trade driver volume of that UPC (i.e., lift factor adjustment=adjusted incremental volume/total raw trade driver volume).

The incremental driver data generator 230 determines final trade driver volumes for each causal promotion type (block 1530). In the illustrative example, the incremental driver data generator 230 can be configured to use Equations 48 and 49 below to determine the final trade driver volumes for each causal promotion type.

{promotion type} quantity driver volume=(lift factor adjustment)×({promotion type} quantity raw driver volume) Equation 48

{promotion type} price driver volume=(lift factor adjustment)×({promotion type} price raw driver volume) Equation 49

In Equations 48 and 49 above, promotion type is one of price cut only, feature only, display only, or featuredisplay. The lift factor adjustment is determined above at block 1528, the {promotion type} quantity raw driver volumes for the different promotion types are determined above at block 1518, and the {promotion type} price raw driver volumes for the different promotion types are also determined above at block 1518.

The incremental driver data generator 230 determines a base effectiveness volume (block 1532) by, for example, multiplying the lift factor adjustment (determined at block 1528) by the raw base effectiveness volume (determined at block 1522) (i.e., (base effectiveness volume)=(lift factor adjustment)×(raw base effectiveness volume)). The incremental driver data generator 230 then determines the effectiveness volume for each causal promotion type (block 1534) using, for example, Equation 50 below.

{promotion type} effectiveness volume=(incremental equivalent volume)−(base effectiveness volume+{promotion type} quantity driver volume+{promotion type} price driver volume) Equation 50

In Equation 50 above, the incremental equivalent volume is determined above at block 1516, the base effectiveness volume is determined above at block 1532, and the {promotion type} quantity driver volume and {promotion type} price driver volume are determined above at block 1530. The example process of FIGS. 15A and 15B is then ended.

FIG. 16 is a block diagram of an example processor system that may be used to implement some or all of the example methods and apparatus described herein. As shown in FIG. 16, the processor system 1610 includes a processor 1612 that is coupled to an interconnection bus 1614. The processor 1612 includes a register set or register space 1616, which is depicted in FIG. 16 as being entirely onchip, but which could alternatively be located entirely or partially offchip and directly coupled to the processor 1612 via dedicated electrical connections and/or via the interconnection bus 1614. The processor 1612 may be any suitable processor, processing unit or microprocessor. Although not shown in FIG. 16, the system 1610 may be a multiprocessor system and, thus, may include one or more additional processors that are identical or similar to the processor 1612 and that are communicatively coupled to the interconnection bus 1614.

The processor 1612 of FIG. 16 is coupled to a chipset 1618, which includes a memory controller 1620 and an input/output (I/O) controller 1622. As is well known, a chipset typically provides I/O and memory management functions as well as a plurality of general purpose and/or special purpose registers, timers, etc. that are accessible or used by one or more processors coupled to the chipset 1618. The memory controller 1620 performs functions that enable the processor 1612 (or processors if there are multiple processors) to access a system memory 1624 and a mass storage memory 1625.

The system memory 1624 may include any desired type of volatile and/or nonvolatile memory such as, for example, static random access memory (SRAM), dynamic random access memory (DRAM), flash memory, readonly memory (ROM), etc. The mass storage memory 1625 may include any desired type of mass storage device including hard disk drives, optical drives, tape storage devices, etc.

The I/O controller 1622 performs functions that enable the processor 1612 to communicate with peripheral input/output (I/O) devices 1626 and 1628 and a network interface 1630 via an I/O bus 1632. The I/O devices 1626 and 1628 may be any desired type of I/O device such as, for example, a keyboard, a video display or monitor, a mouse, etc. The network interface 1630 may be, for example, an Ethernet device, an asynchronous transfer mode (ATM) device, an 802.11 device, a DSL modem, a cable modem, a cellular modem, etc. that enables the processor system 1610 to communicate with another processor system.

While the memory controller 1620 and the I/O controller 1622 are depicted in FIG. 16 as separate functional blocks within the chipset 1618, the functions performed by these blocks may be integrated within a single semiconductor circuit or may be implemented using two or more separate integrated circuits.

Although the above description refers to the flowcharts as being representative of methods, those methods may be implemented entirely or in part by executing machine readable instructions. Therefore, the flowcharts are representative of methods and machine readable instructions. Additionally, one or more methods may be implemented entirely or in part by executing example pseudo code instructions, such as the example pseudo code instructions of FIGS. 17A17E, 18A, 18B, 19A, 19B, 20A, 20B, and 21A through 21C. For example, FIGS. 17A17E generally illustrate example pseudo code to prepare data for modeling in connection with the example system of FIG. 1. Additionally, example block 708 of FIG. 7A and FIG. 8 may be represented by example pseudo code section 1702 of FIG. 17A, example block 710 of FIG. 7A may be represented by the example pseudo code section 1704 of FIG. 17A, and example block 712 of FIG. 7A and FIG. 9 may be represented by the example pseudo code section 1706 of FIG. 17A. Further, example block 718 of FIG. 7A and FIG. 10 may be represented by example pseudo code section 1708 of FIG. 17B, and example block 720 of FIG. 7B and FIG. 11 may be represented by example pseudo code section 1710 of FIG. 17B. Moreover, example block 722 of FIG. 7B and FIG. 12 may be represented by example pseudo code section 1712 of FIG. 17C.

FIGS. 18A and 18B generally illustrate example pseudo code to prepare data for store switching calculations in connection with the example system of FIG. 1. For example, example blocks 1314 and 1316 of FIG. 13 may be represented by example pseudo code section 1802 of FIG. 18B. FIGS. 19A and 19B generally illustrate example pseudo code to specify model parameters in connection with the example system of FIG. 1. FIGS. 20A and 20B generally illustrate example pseudo code to perform base driver scoring calculations in connection with the example system of FIG. 1. For instance, example blocks 1416 and 1418 of FIG. 14A may be represented by example pseudo code section 2002 of FIG. 20A, example blocks 1420 and 1422 of FIG. 14B may be represented by example pseudo code section 2004 of FIG. 20A, and example blocks 1424 and 1426 of FIG. 14B may be represented by example pseudo code section 2006 of FIG. 20A. Additionally, example blocks 1428, 1430, 1432, 1434, and 1436 may be represented by example pseudo code section 2008 of FIG. 20B. FIGS. 21A21C generally illustrate example pseudo code to perform incremental trade driver scoring calculations in connection with the example system of FIG. 1.

Although certain methods, apparatus, and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. To the contrary, this patent covers all methods, apparatus, and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents.