Intelligent agent system and method
11562386 · 2023-01-24
Assignee
Inventors
Cpc classification
G06Q30/0252
PHYSICS
International classification
Abstract
A computer system and computer-implemented method for retail merchandise planning, including promotional product selection, price optimization and planning. According to an embodiment, the computer system for generating an electronic retail plan for a retailer comprises, a data staging module configured to input retail sensory data from one or more computer systems associated with the retailer; a data processing module configured to pre-process the inputted retail sensory data; a data warehouse module configured to store the inputted retail sensory data and the pre-processed retail sensory data; a state model module configured to generate a retailer state model for modeling operation of the retailer based on the retail sensory data; a calibration module configured to calibrate the state model module according to one or more control parameters; and an output module for generating an electronic retail plan for the retailer based on the retailer state model.
Claims
1. A computer-implemented method, comprising: storing, at a data warehouse server, a plurality of product records; providing an intelligent agent module at a control server in network communication with the data warehouse server, the intelligent agent module comprising: a retail promotional model comprising a control policy and one or more coefficients; a simulation component, a sensor input component, a memory component comprising a long-term memory representative of a long-term frequency response, the long-term memory storing a plurality of long-term sensor data and a plurality of long-term prior actions, and a short-term memory representative of a short-term frequency response, the short-term memory storing a plurality of short-term sensor data and a plurality of short-term prior actions, and determining, at the intelligent agent module, one or more candidate itemsets in the plurality of product records, each of the one or more candidate itemsets identifying two or more products in the plurality of product records; executing a reinforcement learning algorithm to simulate, at the simulation component, based on the short-term memory of the memory component, the long-term memory of the memory component, a simulated state of an environment, and the retail promotional model, an expected reward for each of the one or more candidate itemsets for the one or more time periods, each expected reward simulating a sales metric of the plurality of product records based on the respective candidate itemset; selecting, at the intelligent agent module, using the control policy and the expected reward for the one or more candidate itemsets, one or more selected itemsets from the one or more candidate itemsets, each of the one or more selected itemsets identifying two or more products in the plurality of product records; generating a current action corresponding to the one or more selected itemsets from the one or more candidate itemsets and each corresponding expected reward; applying the current action to the simulated state of the environment; receiving, at the sensor input component, sensor data comprising a measured reward, wherein the sensor data is representative of a measured state of the environment; storing the sensor data in the plurality of short-term sensor data of the short-term memory; storing the sensor data in the plurality of long-term sensor data of the long-term memory; and correcting the simulated state of the environment based on the sensor data comprising the measured reward.
2. The method of claim 1, wherein: the plurality of product records further comprises a product category hierarchy; the simulating the expected reward is for a first level of the product category hierarchy; and wherein a first product belongs to the first level of the product category hierarchy and a first candidate itemset in the one or more candidate itemsets comprises the first product.
3. The method of claim 2, wherein: the simulating the expected reward further comprises simulating a second level of the product category hierarchy, the second level at a lower level than the first level in the product category hierarchy; and wherein a second product belongs to the second level of the product category hierarchy and the first candidate itemset in the one or more candidate itemsets comprises the second product.
4. The method of claim 3, wherein the simulating the expected reward further comprises: simulating a first product set in the one or more selected itemsets, the first product set having a first product in the first level of the product category hierarchy and a second product in the second level of the product category hierarchy.
5. The method of claim 4, wherein the simulating the expected reward further comprises: determining one or more solution increments for the one or more time periods; and simulating an addition or removal of product records to the one or more selected itemsets.
6. The method of claim 5, further comprising: receiving, from a retailer system, retail data for a current time period; and updating the retail promotional model based on the retail data for the current time period and the one or more selected itemsets.
7. The method of claim 6 wherein the reinforcement learning algorithm comprises a genetic algorithm.
8. A computer-implemented system, comprising: a data warehouse server, the data warehouse server comprising: a first memory, the first memory comprising: a plurality of product records; a control server in network communication with the data warehouse server, the control server comprising: a second memory, the second memory comprising: an intelligent agent module, the intelligent agent module comprising: a retail promotional model, the retail promotional model comprising: a control policy, one or more coefficients; a simulation component, a sensor input component, a memory component comprising a long-term memory representative of a long-term frequency response, the long-term memory storing a plurality of long-term sensor data and a plurality of long-term prior actions, and a short-term memory representative of a short-term frequency response, the short-term memory storing a plurality of short-term sensor data and a plurality of short-term prior actions; a network device; a processor, the processor executing the intelligent agent module configured to: determine one or more candidate itemsets in the plurality of product records, each of the one or more candidate itemsets identifying two or more products in the plurality of product records; executing a reinforcement learning algorithm to simulate, at the simulation component, based on the short-term memory of the memory component, the long-term memory of the memory component, a simulated state of an environment, and the retail promotional model, an expected reward for each of the one or more candidate itemsets for the one or more time periods, each expected reward simulating a sales metric of the plurality of product records based on the respective candidate itemset; select, using the control policy and the expected reward for the one or more candidate itemsets, one or more selected itemsets from the one or more candidate itemsets, each of the one or more selected itemsets identifying two or more products in the plurality of product records; generate a current action corresponding to the one or more selected itemsets from the one or more candidate itemsets and each corresponding expected reward; apply the current action to the simulated state of the environment; receive, at the sensor component, sensor data comprising a measured reward, wherein the sensor data is representative of a measured state of the environment; storing the sensor data in the plurality of short-term sensor data of the short-term memory; storing the sensor data in the plurality of long-term sensor data of the long-term memory; and correct the simulated state of the environment based on the sensor data comprising the measured reward.
9. The system of claim 8, wherein: the plurality of product records further comprises a product category hierarchy; the simulating the expected reward is for a first level of the product category hierarchy; and wherein a first product belongs to the first level of the product category hierarchy and a first candidate itemset in the one or more candidate itemsets comprises the first product.
10. The system of claim 9, wherein: the simulating the expected reward further comprises simulating a second level of the product category hierarchy, the second level at a lower level than the first level in the product category hierarchy; and wherein a second product belongs to the second level of the product category hierarchy and the first candidate itemset in the one or more candidate itemsets comprises the second product.
11. The system of claim 10, wherein the processor is further configured to simulate the expected reward by: simulate a first product set in the one or more selected itemsets, the first product set having a first product in the first level of the product category hierarchy and a second product in the second level of the product category hierarchy.
12. The system of claim 11, wherein the processor is further configured to simulate the expected reward by: determine one or more solution increments for the time period; and simulate an addition or removal of product records to the one or more selected itemsets.
13. The system of claim 12, wherein the processor is further configured to: receive, from a retailer system using the network device, retail data for the time period; and update the retail promotional model based on the retail data and the one or more selected itemsets.
14. The system of claim 13 wherein the using reinforcement learning algorithm comprises a genetic algorithm.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Reference will now be made to the accompanying drawings which show, by way of example, embodiments of the present invention, and in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
(32)
(33)
(34)
(35)
(36)
(37) Like reference numerals indicate like or corresponding elements or components in the drawings.
DETAILED DESCRIPTION OF THE EMBODIMENTS OF THE INVENTION
(38) Reference is made to
(39) Reference is next made to
(40) Referring still to
(41) The data warehouse server 212 is configured to store raw and processed sensor data and forms, i.e. comprising retail data 120 obtain from the retailers 130. According to another aspect, the data warehouse server 212 provides a long-term memory module or component for the intelligent agent module 400 (
(42) The Web server 214 is configured to deliver a retail merchandising plan, generated according to one aspect of the present invention, to the retailer computer system 204, and for example, to one or more of the user devices or appliances 250. The retail merchandising plan is delivered by the Web server 214 through the firewall 230 and the Internet 206.
(43) The ETL server 216 comprises a computer server or a plurality of servers, i.e. cluster of servers, and is configured to execute data processing jobs or operations associated with sensor data obtained from the retailer environment 130 (
(44) The reporting server 218 is configured to execute a process or operations to display a new state and/or reward that occurs in the retail environment 130 (
(45) The computational server 220 is configured to execute processes or operations utilized to fit a retail environment theoretical model 418 (
(46) The metadata server 222 is configured to execute processes or operations for storing configuration data that is used by the control server 210 to execute processes and functions associated with the operation of the intelligent agent module 400, as described in more detail below.
(47) Reference is next made to
(48) According to an exemplary embodiment, the intelligence agent module 400 is configured to operate in two environments or modes: an actual or operational control loop and a simulated control loop. The actual control loop operates in an actual real-world environment and inputs/processes periodic measurement data. The simulated control loop, on the other hand, is configured to operate in a simulated environment where the estimated state and estimated rewards or benefits are used as a proxy for actual measurements. According to another aspect, the system is further configured to utilize actual measurements to correct the estimated state every N simulations.
(49) As shown in
(50) The sensor input component 410 is configured to collect the raw data received from the retail environment, i.e. the retailer or ecommerce site. The sensor data is collected or inputted as depicted in
(51) According to another aspect, the intelligent agent module 400 is configured to input the data from the retail environment on a periodic basis, for example, in near real-time, intra-daily, daily, intra-weekly or weekly. According to an exemplary implementation, the data inputted from the retailer environment comprises:
(52) (1) POS receipts data for several years—TLOG (transactions, receipts, data)
(53) (a) Transaction identifier
(54) (b) Sequence Number
(55) (c) Customer Identifier
(56) (d) Date
(57) (e) Time
(58) (f) Store identifier
(59) (g) Product Identifier
(60) (h) Promo Identifier
(61) (i) Unit Price (or price per weight)
(62) (j) Unit Cost (or cost per weight)
(63) (k) Quantity (integer for countable items, fractional for weighted items)
(64) (l) Extended Sale Amount
(65) (2) Promotion Master for same data range as TLOG
(66) (a) Promotion identifier
(67) (b) Promotion start and end data
(68) (c) Promotion Type
(69) (d) Promotion Marketing Channel
(70) (3) Promotion Product Master for same date range as TLOG
(71) (a) Promotion Identifier
(72) (b) Product Identifier
(73) (c) Store Identifier
(74) (d) Product placement identifier (i) Circular page identifier (ii) Page location identifier (iii) Planogram location identifier (iv) Website location identifier (v) Etc.
(4) Promotion Product Customer for same date range as TLOG
(75) (a) Promotion identifier
(76) (b) Product Identifier
(77) (c) Customer Identifier
(78) (5) Product Master
(79) (a) Product Identifier (UPC or PLU)
(80) (b) Product Description
(81) (c) Product Attributes (i) Brand (ii) Packaging (iii) Size (iv) Ingredients (v) Warnings (vi) Images
(6) Product Hierarchy 1
(82) (a) Line of Business
(83) (b) Department
(84) (c) Sub-Department
(85) (d) Category
(86) (e) Subcategory
(87) (f) Product Identifier
(88) (7) Product Hierarchy 2
(89) (a) Ad Group Identifier
(90) (b) Item Identifier
(91) (c) Product Identifier
(92) (8) Store Master
(93) (a) Store Identifier
(94) (b) Store Full Address
(95) (c) Store Longitude/Latitude
(96) (d) Store Square Footage
(97) (e) Planogram Identifier
(98) (f) Store Type
(99) (9) Planogram
(100) (a) Planogram identifier
(101) (b) Planogram location
(102) (c) Planogram sub-location
(103) (d) Product identifier
(104) (e) Planogram Image
(105) (f) Start Date
(106) (g) End Date
(107) (10) Store Groupings
(108) (a) Store Cluster Identifier
(109) (b) Store Cluster Description
(110) (c) Start Date
(111) (d) End Date
(112) (e) Store Identifier
(113) (11) Time
(114) (a) Date
(115) (b) Calendar Week (ISO)
(116) (c) Calendar Month (ISO)
(117) (d) Calendar Year
(118) (e) Fiscal Week
(119) (f) Fiscal Month
(120) (g) Fiscal Year
(121) (h) Promo Week
(122) (i) Promo Year
(123) According to an exemplary configuration, the sensory input component 410 is configured to execute data warehousing operations in the collection, correction and/or management of data inputs. The sensor input data is stored in the long-term memory component 412, i.e. for a data warehouse, and in the short-term memory component 414, i.e. for data mart(s), or recent control actions and/or control action candidates, as described in more detail below
(124) As shown in
(125) The sensor correction component 412 is configured to correct or adjust the sensor inputs for “measurement noise”. In simulated control loop operation, the sensor correction component 412 is configured to correct the simulated state of the environment with an actual state measurement.
(126) The theoretical system model component 418 is configured to execute a retail system planning process that governs the behavior and operation of the retail merchandise planning system dynamically and in equilibrium, as will be described in more detail below.
(127) The long-term memory component 414 is configured to provide functionality and store data for use by the retail system planning process having a longer term frequency response and/or historical control actions.
(128) The short-term memory component 416 is configured to provide functionality and store data for the retail system planning process having a shorter term frequency response and/or recent control actions.
(129) The optimal control policy search component 420 is configured to utilize the current and historical states of the retailer or retail environment and the retail system planning process to generate an optimal control policy or plan that sufficiently maximizes long-term reward or merchandising goals for the retailer and maintains stable control in the intelligent agent module 400.
(130) The decision making policy component 422 is configured to utilize the output of the optimal control policy component 420 to search and select a stable next action which can be executed given the current state of the long-term memory component 414 and/or the short-term memory component 416.
(131) Reference is next made to
(132) The first step in the retail planning process 500 comprises collecting and/or correcting data inputted at the sensory input component 410 in the intelligent agent module 400, as indicated by reference 510 in
(133) Reference is made to
(134)
(135)
(136) According to another aspect, the retail merchandise planning process includes a holiday adjustment function or process.
(137) Referring back to
(138) According to this aspect, retail total sales are sub-divided into transactions that contain at least one promoted item and into transactions that contain only non-promoted items. With one item providing the context, other items in the same transaction are associated or halo items. According to a further aspect, the associated items are split into non-promoted associated and other promoted items. The objective is to grow overall sales by weekly promotion sales promoted in flyers or other promotional vehicles. This functionality is further illustrated with reference to
(139) According to this aspect, to maximize total retail sales, promoted sales are maximized while maintaining non-promoted sales. This can be achieved by promoting items which drive a large number of associated items. To identify which items drive the purchase of associated items, the retail system planning process includes a function for association rule mining. According to an exemplary implementation, the association rule mining function is based on the aprioriTID algorithm, which is depicted in
(140) The output of association rule mining comprises a N×N matrix, for example, as depicted in
(141) According to an embodiment, a product hierarchy structure is provided as depicted and indicated by reference 2000 in
(142)
(143) Cannibalization occurs when a product on promotion affects the sales of other first or second degree related products during the same promotion period. The retail system planning process includes functions to deal with cannibalization. To achieve maximum promoted item sales, the cannibalization of non-promoted item sales needs to be minimized.
(144) According to one aspect, cannibalization is determined for a given period of time at a level in the product hierarchy (i.e. category) by determining a baseline for each element at one hierarchy level below (i.e. sub-category), as follows and described in more detail below: for each category, aggregating the delta between the actual sales for that given week of each element and the associated baseline repeating this process for each specific category repeating the process at the next highest level, and subtracting the cannibalization accounted for at the lower level
(145) According to another aspect, cannibalization is determined across a time period for a given level in the hierarchy (i.e. sub-category) by determining a baseline for each sub-category, and then measuring the delta between the actual sales and the baseline sales for the sub-category and the other sub-categories for each future week up to a cadence duration for each sub-category pair, as described in more detail below.
(146) With reference to
(147) According to an embodiment, the cannibalization relationship between itemsets is determined by performing aggregation at all sub-trees in the product hierarchy and correlation between the promoted and non-promoted items in each sub-tree. The cannibalization is expressed as a matrix as shown in
(148) Reference is next made to
(149) Cannibalization over time can also occur between products in product hierarchy sub-trees as shown in
(150) According to another aspect, cannibalization that occurs across time is defined by two measures: (1) duration or cadence; and magnitude. The duration or cadence is defined as the length of the time that cannibalization occurs. It is typically measured in days or weeks, for example, as depicted in
(151) Reference is next made to
(152) Reference is next made to
(153) The cadence of the cannibalization is determined by correlating the subsequent columns 2924 against the promoted column 2922 to calculate a Pearson correlation coefficient and its p-value for each time period. If the subsequent period is affected (cannibalized) by the product promotion there will be a correlation. Once the correlation vanishes, the cannibalization is no longer occurring. The difference in time expressed as a number of periods is the difference between the period where the correlation vanishes and the promotion period. One method for determining when the correlation vanishes is by looking when the p-value shows an insignificant correlation at some confidence level. A second method comprises fitting an exponential decay curve (e.sup.−λt) to the correlation values and using the decay constant λ which best fits correlation values where t represents the number of time periods since the promotion. It will be appreciated that for some products. it is not possible to calculate cannibalization because (a) the product has not been promoted enough to get a statistically significant measurement; (b) the product is promoted too frequently; or (c) the product does not have any cannibalization effect. For these products, a rule is typically implemented by the retailer with default cannibalization period and a default magnitude, i.e. the matrix 2800 in
(154) Reference is made back to
(155) According to an embodiment, the feature detection comprises a process for reducing features to those features that are relevant for the current period being processed. According to an embodiment, the feature detection process comprises linear correlation on the features versus the metric being optimized (e.g. sales, gross margin, transactions) and choosing the most linearly correlated features followed by removal of all redundant features that are correlated to each other. According to another embodiment, principal components analysis is performed to form a linear basis of the dimensionality of the number of features followed by correlation of the components versus the metric being optimized. According to another embodiment, LASSO Regularized regression is used to select relevant features that are most predictive of the metric being optimized. According to another embodiment, training a Deep Neural Network Auto Encoder so that the input feature layer matches an identical output layer, the innermost layer of the network representing a non-linear reduced feature set to be correlated to the metric being optimized.
(156) The next step in the retail system planning process 500 comprises generating a system model for the retailer, as indicated by reference 530 in
(157) According to an embodiment, the process comprises the execution of Equation (1) by a computer or computers operating under stored program control in order to generate a retailer state model. As will be described in more detail below, Equation (1) comprises a mathematical-based formulation or function which is executed under stored program control to model a retail environment and simulate retail metrics, for instance, year-over-year sales, margins and/or transactions as a function of year-over-year promotional difference, i.e. associated sales impact minus cannibalization impact. According to another aspect, several years of detailed historical data can be leveraged to eliminate specific external effects on a balance of averages over the years.
(158) According to an embodiment, Equation (1) takes the following form:
(159)
where
(160) ŝ=total sales, gross margin or transactions for the period in question (i.e. time t) All feature values and theory components are for time t.sub.ps the relevant power spectrum peaks.
(161) N=number of weeks for the historical data used for the calibration
(162) n.sub.ps=number of power spectrum peaks used
(163) n.sub.m=number of sub-segments (i.e. geographic region, price zone, store cluster, store type, customer segment)
(164) n=number of terms in the predictive model (i.e. number of coefficients)
(165) m=the number of elements of the product hierarchy level used in the equation
(166) x.sub.j=the number of products being promoted in the week in question where the product can be represented by any level in the product hierarchy whose elements are identified by index j. This is an integer.
(167) x.sub.j′=the number of products promoted in a prior period of interest for hierarchy level value j. This is an integer.
(168) f.sub.p (a,b(x.sub.p))=linear or non-linear model with features calculated at prior periods of interest, with a=non-actionable features (these variables don't depend on the solution vector x) b(x)=actionable features (depend on the solution vector x)
(169) In linear form,
f.sub.p(a,b(x))=C.sub.0+C.sub.1a.sub.1+C.sub.2a.sub.2+ . . . +C.sub.ra.sub.r+C.sub.r+1b.sub.1+C.sub.r+2b.sub.2+ . . . +C.sub.nb.sub.n−1−r; where p=(1,n) C.sub.p=coefficients (that will be calibrated) r=number of non-actionable features in the model n-r=number of actionable features in the model P=Average sales, margin or transactions per week y.sub.j is a fraction of the total average sales, margin or transactions per week representing the fact the increasing the number of products promoted within a hierarchy sub-tree does not scale linearly and it cannot scale beyond the maximum number of products available. Based on actual data unique to each product hierarchy sub-tree, it is possible to fit a polynomial curve or other diminishing curve to the actual data, for example, as shown in
(170)
(171) The next step in the retail system planning process 500 comprises executing a process to define/use optimal control policy (e.g. merchandise promotion planning) to simulate optimal decision options for the retailer. The process comprises defining or using optimal policy derived from the retailer state model in order to simulate future occurrences and generate a sequence (e.g. long term) of category level promotion which can maximize long term reward or return for the retailer.
(172) To search for the optimal policy, the retail system planning process 500 is configured to assemble and execute Equation (1) for all historical periods available where all features and the metric of interest are known. According to an exemplary implementation, Equation (1) is set up using weekly values of the affinity and cannibalization at the category level of the hierarchy although any period size and hierarchy level is feasible. The solution vector x.sub.j will be at a lower level of the product hierarchy (typically sub-category if category or sub-department is used for the affinity and cannibalization matrices). It will be appreciated that for determining the optimal policy, the solution vector x.sub.j or control inputs is based on known historical data. An exemplary data set is depicted in
(173) According to an embodiment, the known historical data is used to identify the floating point coefficients C.sub.p in the equation f.sub.p (a,b(x.sub.p)) and also the coefficients β.sub.c(j) by minimizing |s−ŝ| where s is the known value of the metric of interest from historical data and ŝ is the value of the metric calculated from the above mathematical theory. It will be appreciated that the above equation is linear in the coefficients C.sub.p and β.sub.c(j) and can be determined using gradient descent. The equation and coefficient values which minimize |s−ŝ| forms the optimal control policy which can be used to choose the control input vector x.sub.j the number of products to promote in a given period for each element of the product hierarchy level in question.
(174) Referring back to
(175) The next step in the retail planning process 500 comprises using detailed control policy to simulate optimal decision options for the retailer, indicated by reference 560 in
(176) According to an embodiment of the invention, the retail system planning process 500 is configured to execute Equation (1) utilizing optimal policy determinations as follows in order to simulate optimal planning options for the retailer.
(177) According to this aspect, Equation (1) is used with optimal coefficients C.sub.p and β.sub.c(j) that minimize |s−ŝ| over all history to forecast the future performance of the desired metric. The optimal sequence of actions x.sub.j(t) is the one that maximizes the reward ŝ(t) over a sequence of times t. For example, if Equation (1) is set up for the category level in the hierarchy (i.e. the affinity and cannibalization matrices are calculated at the category level) and if the control input x.sub.j is set up to be the number of products promoted at the sub-category level, then maximizing ŝ(t) for various sequential times t by varying the control input x.sub.j(t) is equivalent to finding the optimal action x.sub.j(t) at each time t. The solution vector x.sub.j(t) is typically subject to sum constraints on the total number of products to be promoted, or the total products to be promoted at some higher level in the hierarchy. The solution vector x.sub.j(t) will be also constrained by the maximum number of products available within a hierarchy level and that fact that it should be greater than equal to zero. The constraints may be expressed in Equation (2) as a series of constraints of the form:
Σ.sub.l=1.sup.Lx.sub.l(t)<C Equation (2)
(178) where L is less than n (from Equation (1)) and C is an integer constant. Utilizing the sequence of solution vectors for a period of time x.sub.j(t.sub.1) to x.sub.j(t.sub.N) a promotion plan is generated for periods t.sub.1 to t.sub.N, at whatever level the Equation (1) was set up. For instance, when set up for category level with the solution vector being number of sub-categories to be promoted this creates an optimized long term plan at the category level that forms weekly promotion constraints at the sub-category level. Retailers typically plan out a quarter to a year at the category level of detail.
(179) A data set suitable for utilizing the optimal control policy (as determined above) to define optimal control inputs is shown in
(180) According to an embodiment, to solve Equation (1) with constraints of Equation (2) and the data set 3200, the retail system planning process 500 is configured to execute a genetic algorithm or particle swarm optimization in order to simulate the future and choose an optimal control strategy. It will be appreciated that genetic algorithms are a form of reinforcement learning that introduces a combined element of exploitation (using long term and short term known history) and search (using a random searching capability to learn new actions not taken in the past).
(181) To translate the category level plan into a specific list of sub-categories or brands or brand/items or items for a particular period or periods of interest, the solution vector for Equation (1) comprises the weekly constraints for more detailed planning. The detailed planning equation takes into account promotion placement, cannibalization between products at a lower hierarchy level and optimal reward search over a period of time. The detailed setup can be done between any two levels of the product hierarchy as long as the second hierarchy level is below the first. In addition to using the solution vector as constraints, the optimal solution partial derivatives are calculated to assess the impact of each incremental change to the solution vector.
(182) According to an embodiment, the process is configured to execute Equation (3) as follows:
π=Σ.sub.r=1.sup.L[Σ.sub.j=1.sup.NΣ.sub.i=1.sup.m.sup.
where, x.sub.ij∈∥ in interval [0,1]; is the solution vector to be solved for indicating whether or not a product i is to be promoted on period j. y.sub.ij∈∥ in interval [0,1] and indicates preferential promotional placement with 0 indicating no preference and 1 being the most advantageous. π=is the metric of interest being optimized (sales, gross margin or transactions) σ∈>0 k ∈
which takes into account the duration of cannibalization between products being considered. r is the category identifier m(r)=number of finelines in category r P and N is the number of promo weeks considered L is the number of categories
(183) Δ.sub.ij, σ.sub.i and C.sub.ll.sup.ik, are all given and are the fineline increment, promotional elasticity, and cannibalization penalty respectively. All these terms are functions of time. The elements of C.sub.ll.sup.ik, are fractions between [0,1] indicating the fraction of future sales cannibalized between product i and k.
(184) Equation 3 is subject to the following constraints according to Equation (4)
Σ.sub.i=m.sup.nx.sub.ij≤αf or j∈{1, . . . ,N}; Σ.sub.i=d.sup.ly.sub.ij≤β for j∈{1, . . . N}
where, m,n and d,l are subranges of the vectors from 1 to N. The constraints are the solution to the Equation 1.
(185) It will be appreciated that Equation (3) is subject to constraints of Equation (4) (which are solutions from Equation (1)) for control inputs x.sub.j (t.sub.1) to x.sub.j (t.sub.N) at a lower level of product hierarchy is simulated using a particle swarm optimizer or genetic algorithm over the N periods to find the optimal sequence of detailed control inputs. The detailed solutions are actions that are directly actionable by a retailer.
(186) The next step in the process comprises generating and delivering an output retail plan to the computer systems of the retailer or retailer environment, as indicated by reference 570 in
(187) As described above, the output retail plan is based on the execution of Equation (1) subject to the constraints of Equation (2), or based on the execution of Equation (3) subject to the constraint of Equation (4). According to an embodiment, the output retail plan is directly integrated into the retailer's computer systems, for instance, the operational computer systems configured for executing purchasing, pricing and forecasting.
(188) It will be appreciated that the computational functions described above comprise a two-step or two-stage approach, and involves first solving for the higher level in product hierarchy (i.e. at the category level), and then utilizing the category level solution as constraints or parameters for determining the sub-category or item level solution, and taking into account promotional elasticity due to placement and cannibalization over time at the sub-category/item level. The resulting solutions taken on a periodic basis, e.g. weekly, are strongly coupled and the solutions can provide trajectories over time. The two-step approach takes into account the following considerations: affinities will not be meaningful at a low level in the product hierarchy promotional elasticity is not meaningful at a high level in the product hierarchy forward buying is not meaningful at a high level in the product hierarchy cannibalization occurs at the level of grouped products, not at the SKU or lowest level
(189) It will be further appreciated that in a practical system, the product selection solutions (or control inputs) will rarely be 100 percent executed without alteration due product availability, competitive pricing concerns, and in some cases human intuition. Unconstrained or relaxed constraint solutions for the scenarios a) and b) above are generated which permit ranking of alternative product decisions. Based on the incremental value of each product in the solution vector including a larger set of products for alternative consideration when the optimal control input solution is modified each product decision is ranked and provide an index correlated directly to the increment value of that product to the decision set. The relative index can be used to compare the difference in expected performance of two ranked items. This ranking and relative index permit gamification of the otherwise complex output of the intelligent agent process.
(190) The output or action plan is transmitted or outputted to the data or computer centre 310 for the retailer 130 as depicted in
(191) According to an exemplary implementation as depicted in
(192) The results of the execution of the output plan by the retailer computer system is captured in the client planning and transactional systems 240 (
(193) Reference is next made to
(194) Referring to
(195) As shown in
(196) According to another aspect, the data flow architecture 600 includes a web service indicated by reference 630. The web service 630 is configured to provide a web-based interface for users and/or administrators. According to an exemplary implementation, the web service 630 is configured to provide a web-based interface, i.e. utilizing a browser such Google Chrome or Safari, comprising a reporting system interface 632, an administrator workflow software interface 634 and a client workflow software interface 636. The reporting system interface 632 is configured to provide management reporting functions, business intelligence reporting functions and/or financial planning reporting functions.
(197) Reference is made to
(198) The file management module 810 according to an embodiment is configured to operate under stored program control on a computer and execute the following functions: build an expected source files list compare files received to the expected source files list verify that files have been received (when required) alert operators if files are missing or received in error log (operational metadata) when files arrive and the associated processing status implement file acceptance logic
According to an exemplary implementation, the file management module 810 (and the file validation module 812, the data quality testing module 814) is configured to expect and accept one file per day per source file type. Multiple files of the same type received from a source within a defined time frame are rejected if a file has already been accepted and received. Files received with a future date or a date more than X days in the past will be rejected. Where x is stored in the metadata (e.g. 16 days from current).
(199) The file validation module 812 according to an embodiment is configured to operate under stored program control on a computer and execute the following validation functions: the existence of mandatory fields and segments (e.g. headers and trailers) internal structural file integrity checks (e.g. file record counts matching header record count value) absence of extraneous data comparison of file row counts to the value stored in the trailer record data type checking by column (can be moved to DQ when implementing) validate the specified record count against the actual received record count validate source system code validate the source system table checksum if the source file has an external to firewall origination. compare file name date and time with the extract date and time in the header record to ensure data content matches file name compare the header and trailer records for extract date, time and system
(200) The data quality testing module 814 according to an embodiment is configured to operate under stored program control on a computer and execute the following testing functions: perform file quality checks that identify files that are accepted for downstream ETL processing; identify files that are rejected based on thresholds stored in the Entity table of the metadata. perform Row/Column quality checks which will identify data rows within files that are: accepted for downstream ETL processing rejected and will not be forwarded for downstream processing. Once a row has been identified as a rejected row, it will be: written out to a rejected row file logged in metadata at a summary level identified with a warning indicator in the operational metadata logs; the warning identified data rows will remain in the data file so that downstream data cleansing will provide a pre-described response to the warning condition the tests include, domain Checking—for the data content of a column against a list of known values for the column. (e.g. The valid values for a product status are A—Active, I—Inactive, or T—Temporary) if any value in the isn't in the domain then an exception condition is created range Checking that the data content of a column falls within a given range of values specified by a maximum, minimum or both
(201) The data cleansing module 812 according to an embodiment is configured to operate under stored program control on a computer and utilizing the test results from the data quality testing module 814 to execute the following functions: perform Row Warning processing replace row attributes identified in the data quality testing with business supplied replacement values perform Data Standardization attribute updates (e.g. customer comes from more than 1 source system and both systems have a customer status code; for enterprise consistency only a single standard code will exist in the EDW data formatting (e.g. Date in consistent form) produce data cleansing operational metadata number and type of substitutions number and type of data standardizations
According to another aspect, this is where rejected files are re-introduced into the processing stream if they have been approved for processing by the Data Stewards.
(202) As shown in
(203) The transformation module 822 according to an embodiment is configured to operate under stored program control on a computer to execute the following data transformation functions: application of all defined business transformation rules for the given input files transformation of the validated source files into load-ready files for each defined filter criteria, apply the condition to the validated source file, preserve the rows filtered out and log the count
(204) The surrogate key generation module 826 according to an embodiment is configured to operate under stored program control on a computer and execute the following functions: permanently assign a surrogate key value to an entity for each distinct natural key provided for that entity to enable multiple ETL processes to use the same processing logic for surrogate key generation, by using the file locking common component just as a file would be locked for each distinct logical entity, this process will maintain a separate cross-reference table in the EDW database that will record the relationships between natural and surrogate key values
(205) The change capture and load module 828 according to an embodiment is configured to operate under stored program control on a computer and execute the following functions: compare transformed input data to existing data in Slowly Changing Dimension (SCD) Type 2 target tables rows that are unchanged between the target table and source extract will not be modified insert new rows preserve history, the old row will be updated to set the expiry date to the extract date −1 rows that have been deleted from source system will not be physically deleted from the EDW table. To preserve history, these rows will be updated to set the expiry date to the extract date −1
The output from the ETL mapping module 820 is then processed by the post-load data quality testing module 830 and the retention control module 832 as shown in
(206) The retention control module 832 according to an embodiment is configured to operate under stored program control on a computer to execute the following functions: export fact type data only from the EDW database to files that are stored in the archiving directory when data in the table has expired dates greater than the retention period specified for the table copy files from the archive directories to tape, confirming the copy and removing the files from the archiving directories
(207) As shown in
(208) The error handling or exception processing module 840 according to an embodiment is configured to operate under stored program control on a computer and execute the following functions: facilitate exception logging for all EDW processing minimize the hard coding effort by using operational metadata to drive the exception process; this minimizes code maintenance efforts provide a standardized recovery process for all file transformations provide simple notification functionality provide a consistent interface for exception handling
According to another aspect, the exception processing module 840 includes three standardized component interfaces configured to perform the following tasks: exception logging file recovery exception notification
(209) The file locking module 850 according to an embodiment is configured to operate under stored program control on a computer and execute the following functions: facilitate the exclusive use of a given file resource for serial file updating facilitate shared and consistent file read usage establish consistent queuing of file lock requests integrate with common component for exception and error handling the two process flows within this component are the file locking request process and the file locking release process
(210) The user maintained database interface 860 according to an embodiment is configured to provide the following functionality: a user interface to permit users controlled access to maintain select metadata a user interface to permit users to review rejection processing logs source data for EDW and ETL processing from the User Maintained Data database data flow between the EDW and the User Maintained Database by separate ETL processes
(211) Reference is next made to
(212) The data warehouse architecture 900 comprises a client staging layer 910, a data warehouse indicated generally by reference 920 and a client access layer 930, as shown in
(213) The client staging layer 910 comprises real-time or batch data associated with the retailer operational systems. As shown, the retailer data comprises a transaction database or log (TLOG) 940, a product database 941, a product hierarchy database 942, a promotions database 943, a promotion products database 944, a stores database 945, an inventory database 946, a customer database 947, a customer promotion products database 948, a store fixturing database 949, a planogram database 950, a census database 951, a census to longitude/latitude database 952, a street network database 953, a residential addresses database 954, a commercial addresses database 955 and a consumer spending database 956. As shown, an ETL module 959 is utilized to extract or transfer data from the retailer database(s) to the staging layer 922. According to an exemplary implementation, the staging layer 922 is configured for a single extract 923 per data source, indicated individually by references 923A, 923B . . . 9231 in
(214) As shown in
(215) The client access layer 930 is configured to provide access to the data mart layer 960. According to an exemplary implementation, the client access layer 930 comprises a web portal 932, a tableau reporting module 933, a computing infrastructure access module 934, an Ad Hoc query access module 935 and an extract to client system access module 936. The client access layer 930 may also include a code table maintenance access module indicated by reference 938. The particular implementation details of the modules and functionality for the client access layer 930 will readily be within the understanding of one skilled in the art.
(216) Reference is next made to
(217) Referring still to
(218) Reference is next made to
(219) Reference is next made to
(220) According to an exemplary embodiment, the Relative Index column 1024 is configured to illustrate or show the relative strength of one product recommendation over another product recommendation. The Rank column 1026 can be generated as described above, and provides the retailer with a ranked list of products for promotion and/or driving sales. According to this aspect, the rankings provide a visual reference to assist the retailer in making promotional choices on a product and/or departmental basis. According to another aspect, the Product column 1025 for the retail plan web page 1020 is configured with active links, e.g. HTML links, that allow a user, e.g. a retailer, to ‘click’ a product link and access further information, i.e. “drill down”, associated with the product. According to an exemplary implementation, the product entry links are configured to display additional product information and/or SKU's for the product. According to another aspect, the output retail plan web page 1020 includes an “ADD A PRODUCT LINK” 1025, which is configured to allow a user, e.g. the retailer, to add another product to the retail plan 1020, and populate the associated columns, i.e. Relative Index 1024, Rank 1026 and Last Promoted 1028. According to another aspect, the output retail plan web page 1020 is configured with a business constraints window indicated generally by reference 1041. According to an exemplary embodiment, the business constraints window 1041 provides a quick reference view of business constraints considered in the generation of the output retail plan, for example, as described in more detail above.
(221) Reference is next made to
(222) According to an exemplary implementation, the Pricing History column 1056 is configured to provide the retailer or merchant with a ‘pop-up’ window 1057 comprising a history of prices which can be compared to the optimized or recommended price that is generated (for example, as described above) and presented for each product in the Optimized Price column 1058. The optimized price according to an exemplary embodiment comprises the optimized prize as calculated above, subject to parameters such as target margin, price ladder constraints, as described above. According to another aspect, the optimized price for each product is configured with a ‘pop-up’ window 1059 that includes a “Confidence Level” indicator, e.g. 76%-100%, which is calculated based on amount of historical price variation that exists for each SKU.
(223) According to another aspect, the retail plan web page 1050 is configured with historical data to provide the retailer or merchant with a benchmark for comparing expected outcomes based on last year's prices or sales. According to an exemplary implementation, the web page 1050 comprises a “Sales” column 1061, a “Transactions” column 1062, a “Quantity” column 1064, an “Associated Sales” column 1066 and a “Total Sales” column 1068, as shown in
(224) The functionality and features associated with the retail merchandise planning system 100, i.e. the retail merchandise planning computer system 202, comprising the control server 210 and other servers depicted in
(225) The present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Certain adaptations and modifications of the invention will be obvious to those skilled in the art. Therefore, the presently discussed embodiments are considered to be illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.