Systems and methods for markdown optimization when inventory pooling level is above pricing level

Information

  • Patent Grant
  • 8271318
  • Patent Number
    8,271,318
  • Date Filed
    Thursday, March 26, 2009
    15 years ago
  • Date Issued
    Tuesday, September 18, 2012
    12 years ago
Abstract
Computer-implemented systems and methods generate a near-optimum product markdown plan for a plurality of uniform pricing levels having a required inventory sell-through target over all of the plurality of uniform pricing levels. A plurality of feasible markdown schedules are generated for the uniform pricing level, where each of the plurality of feasible markdown schedules meets all individual constraints for the uniform pricing level. All dominated feasible markdown schedules are removed for the uniform pricing level to generate one or more candidate markdown schedules for the uniform pricing level. A near-optimum product markdown plan is generated, where generating the near-optimum product markdown plans includes executing a limited exact algorithm solver for a plurality of iterations, and executing a dynamic programming solver if no product markdown plan generated by the limited exact algorithm solver is within the threshold percentage of the revenue upper bound.
Description
TECHNICAL FIELD

This document relates generally to optimization of complex-problems having non-linear constraints, and more particularly to retail pricing optimization.


BACKGROUND

A significant problem that product retailers face is determining the best plan for liquidating inventory while maximizing revenue during a given sales period. For example, a fashion retailer may seek to maximize profits for a given clothing line during a predetermined sales season while meeting an inventory sales target, where only a certain percentage of beginning inventory remains unsold at the end of the season. This problem is sometimes referred to as a markdown optimization problem in retail practice and can involve identifying which products to mark down, how much to mark the products down, when to mark down the products, and/or in which markets and stores the markdowns should be taken.


SUMMARY

In accordance with the teachings provided herein, computer-implemented systems and methods are disclosed for generating a near-optimum product markdown plan for a plurality of uniform pricing levels having a required inventory sell-through target over all of the plurality of uniform pricing levels. Uniform pricing level data may be received for a uniform pricing level from a computer-readable data store. A plurality of feasible markdown schedules may be generated for the uniform pricing level, where each of the plurality of feasible markdown schedules meets all individual constraints for the uniform pricing level. All dominated feasible markdown schedules for the uniform pricing level may be removed to generate one or more candidate markdown schedules for the uniform pricing level. The near-optimum product markdown plan of one candidate markdown schedule for each of the plurality of pricing levels may be generated, where generating the near-optimum product markdown plan may include executing a limited exact algorithm solver for a plurality of iterations to generate a product markdown plan on each iteration, where a product markdown plan is selected as the near-optimum product markdown plan if the product markdown plan generates an expected revenue within a threshold percentage of a revenue bound, and a dynamic programming solver may be executed to generate the near-optimum product markdown plan if no product markdown plan generated by the limited exact algorithm solver is within the threshold percentage of the revenue upper bound. The near-optimum product markdown plan may then be stored in a computer-readable medium.


As another example, a system and method are configured to generate a near-optimum product markdown plan for a plurality of uniform pricing levels having a required inventory sell-through target over all of the plurality of uniform pricing levels. The system may include a computer-readable data store containing uniform pricing level data for a uniform pricing level. The system may further include a feasible markdown schedule generator configured to generate a plurality of feasible markdown schedules for the uniform pricing level, where each of the plurality of feasible markdown schedules meets all individual constraints for the uniform pricing level. The system may further include a dominated markdown schedule remover configured to remove all dominated feasible markdown schedules for the uniform pricing level to generate one or more candidate markdown schedules for the uniform pricing level, and a markdown heuristic solver configured to generate the near-optimum product markdown plan of one candidate markdown schedule for each of the plurality of uniform pricing levels. The markdown heuristic solver may further include a limited exact algorithm solver configured to execute for a plurality of iterations to generate a product markdown plan on each iteration, where a product markdown plan is selected as the near-optimum product markdown plan if the product markdown plan generates an expected revenue within a threshold percentage of a revenue upper bound. A dynamic programming solver may be configured to generate the near-optimum product markdown plan if no product markdown plan generated by the limited exact algorithm solver is a within the threshold percentage of the revenue upper bound. The system may further include computer-readable instructions for storing the near-optimum product markdown plan in a computer-readable medium.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 depicts a block diagram of an example product hierarchy that may be utilized by a retailer.



FIG. 2 depicts a block diagram of an example location hierarchy that may be utilized by a retailer.



FIG. 3 depicts a computer-implemented environment where users can interact with an inventory markdown optimization system hosted on one or more servers through a network.



FIG. 4 is a block diagram depicting a three-stage decomposition approach for performing an inventory markdown optimization.



FIG. 5 is a block diagram depicting a markdown heuristic solver that uses a two-part solving algorithm for computing a product markdown plan from candidate markdown sets.



FIG. 6 is a block diagram depicting a limited exact algorithm solver.



FIG. 7 depicts a calculation of a product markdown plan by a dynamic programming solver.



FIG. 8 is a flow diagram depicting computation of a near-optimum product markdown plan utilizing a two step approach implementing a Pisinger limited exact algorithm and a dynamic programming algorithm.



FIG. 9 depicts data tables used for a first markdown optimization problem example.



FIGS. 10A-10E depict data for a second markdown optimization problem example.



FIG. 11 is a flow diagram depicting a method for generating a near-optimum product markdown plan for a plurality of uniform pricing levels having a required inventory sell-through target over all of the plurality of uniform pricing levels.



FIG. 12 is a block diagram depicting an environment wherein requesters can interact with an inventory markdown optimization system.





DETAILED DESCRIPTION

Retailers may utilize one or more hierarchies to represent their products, selling locations, and other business data. FIG. 1 depicts a block diagram of an example product hierarchy that may be utilized by a retailer. The highest level of the product hierarchy 10 is a company level 12 that contains all other nodes of the product hierarchy 10, which represent products sold within the company. The company level 12 holds one or more nodes at the department level 14. Nodes at the department level 14 may include a shoe department, a women's clothing department, a men's clothing department, a housewares department, etc. A class level 16 resides beneath the department level 14. The class level 16 in a women's clothing department may include winter clothing, spring clothing, summer clothing, and fall clothing. The class level 16 may be broken down into nodes of a subclass level 18, which may include summer slacks, summer skirts, bathing suits, etc. Finally, the subclass level 18 is divided into nodes representing individual stock-keeping units (SKUs) 20.



FIG. 2 depicts a block diagram of an example location hierarchy that may be utilized by a retailer. The location hierarchy 30 includes a company level 32 that stores all location sub-nodes for the company. A country level 34 resides below the company level 32, and a region level 36 is found below the country level 34 in the location hierarchy 30. A market level 38 is included after the region level 36, where the market level 38 includes nodes containing data aggregated at a market level, which may represent a single city or a portion of a larger city. Finally, a store level 40 appears beneath the market level 38 and contains nodes representing individual store locations.


Pricing may be done at any level of the product hierarchy and at any level of the location hierarchy. In one implementation, all product/location hierarchies in the same pricing level get the same pricing recommendation. This common level is referred to as a uniform pricing level.


Retailers often have sales targets which are specified as a percentage of their initial season starting inventory. For example, a retailer may want to sell at least 80% of its starting inventory. This goal may be referred to as an 80% sell through target. This target may be specified at a higher level than the uniform pricing level. The level at which the sell through target is set may be referred to as the inventory pooling level.


In other words, even though product/location groups may be priced separately, there is a common sell through target for a number of these product/location groups. For example, the uniform pricing level could be at the SKU-Market level, while the inventory pooling level could be set at the SKU-Company level with an 80% sell through target. This means that every SKU in each market may be priced separately, as long as the total sell through for that SKU is 80%.


Markdown optimization problems may become highly complex due to the introduction of a large number of product/location combinations and non-linear objectives and constraints. Having a sell through target at a higher level than the uniform pricing level further complicates the problem because product/location groups may not be priced independently of one another.


A method for handling a market optimization is to disaggregate (re-allocate) the higher level sell through target to the lower uniform pricing level, so that product/location groups can be solved independently. However this may sometimes result in sub-optimal solutions because some slow moving products may need to take an otherwise unnecessary deeper discount in order to meet their allocated individual inventory target and result in loss of revenues. For example, in a company having only two stores and a single SKU, each store forms a uniform pricing group. If the overall sell through target is 90%, and store A has a starting inventory of 100, and store B has a starting inventory of 200, then the retailer may apply the 90% target on each store, so the ending inventory target is 10 for store A and 20 for store B. After solving each pricing group with its own target, the retailer chooses a schedule that satisfies the 90% sell through target set for each of the individual stores. However, these markdown plans may not have been optimal. Store A could have chosen a less aggressive but more profitable markdown schedule, which has ending inventory of 12 units. Store B could then choose a more aggressive schedule having an ending inventory of 8. Although the first selection violates store A's individual inventory target, the total ending inventory of A and B is only 12+8=20, which meets the company-wide ending inventory target 30. Without an optimization system, a retailer may need to examine large numbers of combinations through trial and error to get a best result. For real-life applications that may involve tens of thousands pricing groups, it may be impossible to find the best solution within a reasonable time.


A goal of a markdown optimization operation may include finding periodic (e.g., hourly, daily, weekly, monthly, etc.) optimal prices, called a price schedule, for product/location combinations in order to maximize expected revenue. Expected revenue from a uniform pricing group, i, of product/locations in the clearance period may be represented as:










k
=
1


N
i







t
=
1

T




p

k
,
t




s

k
,
t





,





Where Ni is the number of product/locations to be priced in group i, T is the number of periods in the clearance period, pk,t is the price of product/location pair k in period t, and sk,t is the expected sales units of a product/location pair k in week t at price pk,t.


The expected sales for a product/location combination in a sales period may depend on the available inventory and forcasted demand for that week. Forecasted demand may depend on a base forecast (i.e., a forecast without any price reduction), a price, and how elastic the demand of the product at a particular location is. This relationship may be mathematically written as:








s

k
,
t


=


min


(


I

k
,

t
-
1



,


α

k
,
t






β






k


(



pk
,
t


pk
,
0


-
1

)






)





k



,
t
,





where Ik,t is the inventory of product/location pair k at the end of week t, pk,0 is the list price of product/location pair k, βk is the price response coefficient (i.e., price elasticity) of product/location pair k, and αk,t is the base forecast at list price for product/location pair k in sales period t. The above equation assumes a log-linear demand model. Other demand models may also be used.


Certain constraints may also be incorporated into the markdown optimization. For example, sales period prices of each product/location pair (pk,1, pk,2, . . . , pk,T) may be required to follow certain business rules. Example business rules may include: successive sales period prices must be non-increasing; sales period prices must be chosen from a given set of admissible price points; an upper and/or lower bound on the amount of change in sales period price from one sales period to the next; a lower bound of a price change for a first markdown; an upper bound for the overall price change for the entire clearance horizon; limitations on the frequency of price changes such as maximum number of price changes, minimum weeks between two successive markdowns; limitations on dates of price changes such as certain dates that markdowns may not occur, dates by which a markdown must be taken; as well as others.


A linking constraint, such as the inventory sell through target, may also be incorporated into the markdown optimization. The linking constraint ties together different uniform pricing groups and makes the optimization more complicated by preventing separability of the problem. A sell through target may be represented as a constraint of the ending inventory. Where i is the uniform pricing group i=1, . . . , n, where n is the number of pricing groups in the consideration, the sell through constraint may be described as:











i
=
1

n






k
=
1


N
i




I

i
,
k
,
T





B

,





where B is the ending inventory target. The ending inventory target may be represented as a percentage of the total starting inventory.



FIG. 3 depicts at 50 a computer-implemented environment where users 52 can interact with an inventory markdown optimization system 54 hosted on one or more servers 56 through a network 58. The system 54 contains software operations or routines for generating an optimum or a near-optimum product markdown plan utilizing geography data 60, product data 62, and constraints 63 housed in one or more data stores 64.


The inventory markdown optimization system 54 can be an integrated web-based analysis tool that provides users flexibility and functionality for performing inventory markdown optimization or can be a wholly automated system. The system 54 may also be implemented on a standalone computer or other platforms. One or more data stores 64 can store the data to be analyzed by the system 54 as well as any intermediate or final data generated by the system 54. For example, the data store(s) 64 can store geography data 60, product data 62, and constraints 63 that identify inventory levels, base sales volumes, price elasticity, local preferences, local demand, business constraints, linking constraints, etc. Examples of data store(s) 64 can include flat files, relational database management systems (RDBMS), a multi-dimensional database (MDDB), such as an Online Analytical Processing (OLAP) database, etc.



FIG. 4 is a block diagram depicting a three-stage decomposition approach for performing an inventory markdown optimization. Geography data 72, product data 74, and constraints 75 are received from one or more data stores 76 at a feasible markdown schedule generator 78. The feasible markdown schedule generator 78 solves each uniform pricing group individually to obtain a set of feasible markdown schedules 80 and their corresponding ending inventories and revenues, where each feasible markdown schedule 80 fulfills all pricing level constraints 79 without concern for linking constraints 81, such as an inventory pooling target. Each feasible markdown schedule 80 for uniform price group i may include the total revenue, Rij, and ending inventory, Iij, where j is the schedule's sequence identification number, which may be used to recover the corresponding price path information. The process of generating feasible markdown schedules is further described in U.S. patent application Ser. No. 11/937,103, filed on Nov. 8, 2007, and entitled “System and Method for Markdown Optimization,” the entirety of which is herein incorporated by reference.


The generated feasible markdown schedules 80 for each pricing group are received by a dominated markdown schedule remover 82. For any group i, a schedule j with revenue Rij and ending inventory Iij is dominated by schedule k, if and only if Rij<Rik and Iij≧Iik. Because an un-dominated schedule offers better revenue and ending inventory performance, selection of un-dominated markdown schedules is preferable, and thus, dominated markdown schedules may be removed from the pool of feasible markdown schedules 80 to generate a set of candidate markdown schedules 84 containing un-dominated, feasible markdown schedules for each product/location. Dominated markdown schedules may be identified by sorting feasible markdown schedules 80 according to ending inventories in increasing order and then sequentially removing schedules whose revenues are less than or equal to that of the previous feasible markdown schedule.


The candidate markdown schedules 84 are received by a markdown heuristic solver 86 along with a linking constraint 81, such as an inventory pooling target. The markdown heuristic solver selects one candidate markdown schedule 84 for each of product/location to generate a near optimum product markdown plan 88.


Using the set of candidate markdown schedules {(Rij, Iij) ∀i, j} 84, the markdown optimization may be executed with consideration of inventory pooling across multiple uniform pricing groups. The markdown optimization may be represented as:









V
n



(
B
)


:=

max





i
=
1

n






j
=
1


m
i





R
ij

·

x
ij






,





subject to:











i
=
1

n






j
=
1


m
i





I
ij

·

x
ij





B

,









j
=
1


m
i




x
ij


=
1

,


i

,
and








x
ij



{

0
,
1

}


,


i

,
j
,





where n is the number of groups sharing the common inventory pooling, mi is the number of candidate markdown schedules for pricing group i, B is the total inventory pooling target, and xi is the binary decision variable such that xij=1, if the j-th markdown schedule is selected for group i and xij=0 otherwise. The second constraint above indicates that for each uniform pricing group, one and only one price schedule may be selected. The goal is to maximize the total revenue, denoted by Vn(B), subject to the total ending inventories among all groups not exceeding the pooling target, B.


The markdown optimization problem defined above may be recognized as a Multiple-Choice Knapsack Problem (MCKP). An MCKP is an NP-hard type problem, as the classical 0-1 knapsack problem is a special case of MCKP. Existing algorithms may be used to solve an MCKP to optimality. Example exact optimal solutions include the branch and bound algorithm by Prabhakant Sinha and Andris Zoltners, described in “The Multiple-Choice Knapsack Problem”, Operations Research, Vol. 27, No. 3, 503-515 (1979), the entirety of which is herein incorporated by reference; and the minimal core algorithm by David Pisinger, described in “A Minimal Algorithm for the Multiple-Choice Knapsack Problem”, European Journal of Operational Research, Vol. 83, No. 2, 394-410 (1995), the entirety of which is herein incorporated by reference. These exact solvers may perform well for some problem instances. However, for other problems, solving to optimality may take a significantly long period of time.



FIG. 5 is a block diagram depicting a markdown heuristic solver that uses a two-part solving algorithm for computing a product markdown plan from candidate markdown sets. It may often be the case that near-optimal solutions are satisfactory solutions of a markdown optimization. As noted above, for some problems, an exact algorithm, such as the Sinha-Soltners or Pisinger methods, may provide an exactly optimal solution in a limited amount of processing time. However, for other problems, finding such a solution may be very time consuming. The markdown heuristic solver 102 of FIG. 5 is able to take advantage of the best case scenarios for an exact algorithm solver while avoiding unacceptably large processing times for less advantageous scenarios.


A limited exact algorithm solver 104 receives candidate markdown sets 106 and a linking constraint 108. A quality calculation 110 is made following one or more iterations of the limited exact algorithm solver 104. The quality calculation may, for example, calculate the ratio of a revenue generated by an iteration of the exact algorithm solver 104 to a computed upper bound. If the quality of a solution from the limited exact algorithm solver 104 is greater than a quality threshold, then the solution from the limited exact algorithm solver 104 is output as the product markdown plan 112. If a solution having a quality ratio, ρ, greater than the quality threshold is not found, then further processing is performed by a dynamic programming solver 114 to generate a product markdown plan 112.



FIG. 6 is a block diagram depicting a limited exact algorithm solver. A set of candidate markdown sets 122 and a linking constraint 124, such as an inventory pooling target, are received by the limited exact algorithm solver 126. The exact algorithm solver 126 computes an upper bound, or optimum solution, on total revenue based on the received candidate markdown sets 122 and linking constraint 124, as depicted at 128. This upper bound may be calculated by relaxing the 0,1 integer constraint for candidate markdown sets 122 in the solution.


The limited exact algorithm solver 126 then processes for a limited period of time or number of iterations to attempt to find a near optimum solution that is better than a quality threshold. For example, using the Pisinger method, a gradient calculation is performed at 130 to identify promising class sets of one markdown schedule for each product/location at the uniform pricing level per set that meet the linking constraint 124, ranking the class sets by their likelihood of giving a best solution. The limited exact algorithm solver 126 then evaluates the class sets in order at 132, computing a revenue value for each class set.


Following evaluation of one or more promising class sets at 132, a determination is made at 134 as to whether an integer optimal solution is found. If an integer optimal solution is found, then that optimum solution is outputted as the product markdown plan 136 and further processing is halted. If the solution calculated is not integer optimal, then a determination is made at 138 as to whether a maximum number of iterations has been reached. If a maximum number of iterations has not been reached, then the limited exact algorithm solver 126 continues evaluating promising class sets at 132. However, if a maximum number of iterations has been reached, then processing at the limited exact algorithm solver 126 is halted, and a quality determination is made at 139 using the promising class set evaluation that generates a highest revenue value.


For example, a quality ratio: ρ:={circumflex over (R)}/ R where R is the upper bound of the total revenue, computed at 128, and {circumflex over (R)} is the best solution found by the promising class set evaluations at 132, may be compared to a quality threshold to determine if further processing should be executed. For example, the quality ratio may be compared to a quality threshold of 0.98, which would determine that processing should cease if the best solution found generates 98% or more of the calculated upper bound of the total revenue. If a near-optimum solution is found at 139, then further processing is halted and the near-optimum solution is outputted as the product markdown plan 136. However, if a near-optimum solution is not found at 139, then the best class set price schedule evaluated by the limited exact algorithm solver 126 is provided to a dynamic programming solver 140 as a starting point for final computation of a product markdown plan 136.



FIG. 7 depicts a calculation of a product markdown plan by a dynamic programming solver. As described with reference to FIG. 6, a limited exact algorithm solver 152 attempts to compute a product markdown plan 154 having a quality measurement greater than a quality threshold. If the limited exact algorithm 152 is unable to find such a solution, then the price schedule having the highest revenue calculated by the limited exact algorithm solver 152 is provided to the dynamic programming solver 156 for improvement.


Using the best effort price schedule from the limited exact algorithm solver 152, the dynamic programming solver 156 simplifies the inventory markdown problem by eliminating a number of candidate markdown sets. Denote by si the index of the near-optimal price schedule chosen for group i by the exact algorithm solver after it is terminated. Thus, Risi and Iisare the corresponding near-optimal revenue and ending inventory, respectively, for group i, and thus







R
^

=





i
=
1

n





R

is
i


.




Let







B




=

B
-




i
=
1

n




I

is
i


.









For each group i, the dynamic programming solver 156 only considers a reduced set of schedule choices: Ωi={j|Iisi+B′≧Iij≧Iisi}. For each j εΩi, denote R′ij=Rij−Risi and I′ij=Iij−Iisi, and the dynamic programming solver solves the following problem:









v
n



(

B


)


:=

max





i
=
1

n






j


Ω
i






R
ij


·

x
ij






,





subject to:











i
=
1

n






j


Ω
i






I
ij


·

x
ij






B



,









j


Ω
i





x
ij


=
1

,


i

,






x
ij



{

0
,
1

}


,

j


Ω
i


,



i
.






This new problem may have a much smaller set of possible candidates, as well as a reduced capacity B′. Assuming that the inventory target, B′, and I′ij are integers, denote vi(z) as the maximum total revenue achieved by selecting one and only one schedule from each group from 1 to i with total ending inventories less than z. Then, the following iteration may be used to calculate the optimal value vn(B′):









v
0



(
z
)


=
0

,







π
i



(

z
,
j

)


:=

{









R

i
,
j



+


v

i
-
1




(

z
-

I

i
,
j




)



,





if






I

i
,
j





z






-





otherwise
.











v
i



(
z
)



=


max

j


Ω
i





{


π
i



(

z
,
j

)


}



,







μ
i



(
z
)


=

arg



max

j


Ω
i





{


π
i



(

z
,
j

)


}




,








where z=0, 1, . . . , B′, and i=1, . . . , n. The product markdown plan 154 may then be determined according to the following steps:

  • 1. z=B′,i=n.
  • 2. let j=μi(z), then the final schedule for group i is the j-th schedule. Update z=z−I′ij, i=i−1. If i=0, then stop. Otherwise repeat step 2.


The above iterative algorithm is depicted in FIG. 7, where upon receiving the index of the best effort price schedule, si from the limited exact algorithm solver 152, for each schedule group, z=1 to i, at 158, for each new ending inventory constraint, j=0 to B′, at 160, π(z, j) is calculated at 162. At 164, the π(z, j) offering maximum revenue for each z is calculated, and the schedule set resulting in the maximum revenue is returned at 166 as the product markdown plan 154.



FIG. 8 is a flow diagram depicting computation of a near-optimum product markdown plan utilizing a two step approach implementing a Pisinger limited exact algorithm and a dynamic programming algorithm. At step 172, the limited exact algorithm solver begins processing by solving the MCKP problem to find an optimal solution by relaxing the 0,1 integer constraint for candidate markdown sets. It is possible that the optimal solution calculated in step 172 could still fulfill the relaxed 0,1 integer constraint. If the calculated optimal solution does fulfill the 0,1 integer constraint for candidate markdown sets, then an optimum solution has been found, and the yes branch is taken at step 174 and processing is completed. If such an optimum solution is not found, then a gradient calculation is performed at step 176 according to the Pisinger method, where gradients {λi+} and {λi} are calculated and sorted to identify promising class sets. The class set evaluator core is initialized with the current class set as the class set having fractional variables in the linear MCKP solution.


The limited exact algorithm solver continues processing by expanding the core by adding the next promising class and evaluating at 178. The revenue computed via the class evaluation at 178 is used to determine if an optimal solution has been found at 180. If an optimal solution has been found, then that solution is output and processing ceases. If an optimal solution is not found, then a determination is made as to whether the limit on the number of iterations has been reached at 182. If the limit has not been reached, then the next unexpanded class is set as the current class at 184, and the core expansion and evaluation is repeated at 178. If the iteration limit has been reached at 182, then an evaluation of the best solution generated by the limited exact algorithm solver is performed at 186 to calculate a quality ratio. If the quality ratio is greater than a quality threshold, then the best solution generated by the limited exact algorithm solver is output as a near-optimum solution and processing ceases at 188. If a near-optimum solution is not computed by the limited exact algorithm solver, then the best effort solution is improved at 190 using a dynamic programming algorithm.



FIG. 9 depicts data for a first markdown optimization problem example. As depicted in FIG. 9, a retailer has two stores (A and B). In this example, the retailer wishes to clear a product off of his shelves within two weeks with a sell through target of 90%. To accomplish this, the retailer plans to take markdowns on the products. Markdowns for the two stores may be different. Thus, each store forms a uniform pricing group. The initial inventories are 100 at store A and 200 at store B, and the product is currently being sold at $30 at both stores. The allowed markdown price points are $20 and $10. Based on the product's attributes and store sales history, it is estimated that the product's demand follows a log-linear model with the price elasticity at −1.1 at store A and −2 at store B. Moreover, the baseline forecasts (i.e., demands if the current price is unchanged) are 25 units in each of the next two weeks for store A and 40 units in week 1 and 30 units in week 2 for store B. The markdown optimization seeks to determine the optimal markdown prices at each store in each week to maximize revenue while meeting the sell through target of at least 90% of the total inventories by the end of the second week.


The product markdown plan calculation begins by solving the pricing problem for each store individually by ignoring the sell through target. Table 2, depicted in FIG. 9, illustrates all of the price schedules for each store that fulfill all of the non-linking constraints with corresponding weekly prices, sales, total revenues, and ending inventories. In this example, there are six possible price schedules, indexed from 1 to 6, for each store. For example, price schedule 5 for store A has markdown prices of $20 in the first week and $10 in the second week, with corresponding weekly sales at 36 and 52 respectively. This results in a total revenue of $1,240 and ending inventory of 12.


Next, dominated schedules are removed for each pricing group. As described above, a dominated schedule is one that has a lower revenue and higher ending inventory than another schedule for a product/location. In this example, all six of the schedules for store A are un-dominated. For store B, schedules 1, 2, and 3 are dominated by schedule 5, as they all have higher ending inventories than schedule 5 with lower revenues. Thus, for store B, schedules 4, 5, and 6 are un-dominated.


Following removal of dominated schedules, the product markdown plan is generated using the two-step approach described above. The inventory pooling constraint is that the total ending inventories at store A and B cannot exceed (100+200)*(1−0.9)=30. Because only two pricing groups are involved, the Pisinger method is able to guarantee that the markdown problem is solved optimally after the core expands to two classes. The final solution is implementing schedule 5 for both stores, whereas the sum of ending inventories is 12+8=20, and total revenues are $1,240+$2,700=$3,940.



FIGS. 10A-10E depict data for a second markdown optimization problem example. In this example, the best effort solution of the limited exact algorithm solver is improved by the dynamic programming after the limited exact algorithm is terminated with only a few groups enumerated. In this example, there are eight pricing groups sharing a common inventory target. The feasible markdown schedule generator and the dominated markdown schedule remover are applied to generate feasible markdown schedules and un-dominated candidate markdown schedules, respectively. The un-dominated candidate markdown schedules are listed in Tables 3 and 4 on FIGS. 10A-10C. Tables 3 and 4 show these price schedules along with their corresponding revenues and ending inventories. The inventory pooling target for this example is B=288.


The limit on the number of groups (classes) to be expanded in the limited exact algorithm is two, and the threshold for the optimality ratio is 0.99. Following two iterations in the limited exact algorithm solver, the algorithm is terminated with a best effort solution depicted in Table 5 in FIG. 10C. The best effort solution has a total revenue of $6,136.51, with a total ending revenue of 277. The upper bound of the revenue is $6245.58, which is calculated by solving the markdown optimization problem with the 0,1 integer constraint for candidate markdown sets relaxed. Thus, the quality ratio is calculated as ρ=6136.51/6245.58≈0.98. This quality ratio is less than the threshold of 0.99, so the best effort solution is sought to be improved upon using the dynamic programming algorithm.


The dynamic programming algorithm assigns B′=288−277=11. For each group i, only the reduced set of schedule choices Ωi={j|Iisi+B′≧Iij≧Iisi} are considered. For each j εΩi, R′ij=Rij−Risi and I′ij=Iij−Iisi are calculated. After making these calculations, only groups 2 and 8 have more than one schedule in the reduced sets, and the rest of the groups have just one schedule choice, which significantly reduces the size of the dynamic program. Table 6, shown in FIG. 10D, lists the remaining schedule choices along with the original and new ending inventories and revenues. According to the dynamic programming equations, v1(z)=v0(z)=0 and μ1(z)=2, z=0, 1, . . . , 11 because there is only one choice, schedule 2, for group 1. For group 2, one schedule from four options is to be chosen. Applying the dynamic programming equations:








v
2



(
z
)


=

{




0
,





z
=
0

,
1
,

2
;







15.46
,





z
=
3

,
4
,
5
,

6
;







22.14
,





z
=
7

,
8
,

9
;







31
,




z

10.










Correspondingly,








μ
2



(
z
)


=

{




8
,





z
=
0

,
1
,

2
;







9
,





z
=
3

,
4
,
5
,

6
;







10
,





z
=
7

,
8
,

9
;







11
,




z

10.










For groups i=3, . . . , 7, there is only one choice. Thus, vi(•)=v2(•), and μi(•)=si (i.e., 2, 4, 1, 1, 2, respectively). For group 8, z=0, . . . , 10, v8(z)=v7(z), μ8(z)=2, and for z=11, v8(11)=31, μ8(11)=2. The final choices are obtained by applying the final two steps of the dynamic programming algorithm:

  • 1. z=B′,i=n.
  • 2. let j=μi(z), then the final schedule for group i is the j-th schedule. Update z=z−I′ij, i=i−1. If i=0, then stop. Otherwise repeat step 2.


    The resulting final product markdown plan is shown in Table 7 in FIG. 10E. The final product markdown plan has a total ending inventory of 287 and revenue of $6167.51. This final product markdown plan offers an increase of $31 in revenue over the best effort solution of the limited exact algorithm solver by substituting schedule 11 for schedule 8 for group 2.



FIG. 11 is a flow diagram depicting a method for generating a near-optimum product markdown plan for a plurality of uniform pricing levels having a required inventory sell-through target over all of the plurality of uniform pricing levels. Uniform pricing level data for a uniform pricing level is received from a computer-readable data store at 202. At 204, a plurality of feasible markdown schedules are generated for the uniform pricing level, where each of the plurality of feasible markdown schedules meets all individual constraints for the uniform pricing level. All dominated feasible markdown schedules are removed at 206 to generate one or more candidate markdown schedules for the uniform pricing level. At 208, the near-optimum product markdown plan of one candidate markdown schedule for each of the plurality of uniform pricing levels is generated, where the generating includes executing a limited exact algorithm solver for a plurality of iterations to generate a product markdown plan on each iteration at 210. If the product markdown plan generates an expected revenue within a threshold percentage of a revenue upper bound, then the product markdown plan is selected as the near-optimum product markdown plan, as shown at 212, and the near-optimum product markdown plan is stored in a computer-readable memory at 214. If a product markdown plan that meets the quality threshold is not found, then a dynamic programming solver is executed at 216 to generate the near-optimum product markdown plan, which is then stored in a computer-readable medium at 214.


While examples have been used to disclose the invention, including the best mode, and also to enable any person skilled in the art to make and use the invention, the patentable scope of the invention is defined by claims, and may include other examples that occur to those skilled in the art. Accordingly, the examples disclosed herein are to be considered non-limiting. As an illustration, the systems and methods may be implemented on various types of computer architectures, such as for example on a single general purpose computer or workstation (as shown at 800 on FIG. 12), or on a networked system, or in a client-server configuration, or in an application service provider configuration.


It is further noted that the systems and methods may include data signals conveyed via networks (e.g., local area network, wide area network, internet, combinations thereof, etc.), fiber optic medium, carrier waves, wireless networks, etc. for communication with one or more data processing devices. The data signals can carry any or all of the data disclosed herein that is provided to or from a device.


Additionally, the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform the methods and operations described herein. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.


The systems' and methods' data may be stored and implemented in one or more different types of computer-implemented ways, such as different types of storage devices and programming constructs (e.g., data stores, RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.). It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.


The systems and methods may be provided on many different types of computer-readable media including computer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory, computer's hard drive, etc.) that contain instructions (e.g., software) for use in execution by a processor to perform the methods' operations and implement the systems described herein.


The computer components, software modules, functions, data stores and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand.


It should be understood that as used in the description herein and throughout the claims that follow, the meaning of “a,” “an,” and “the” includes plural reference unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of “in” includes “in” and “on” unless the context clearly dictates otherwise. Finally, as used in the description herein and throughout the claims that follow, the meanings of “and” and “or” include both the conjunctive and disjunctive and may be used interchangeably unless the context expressly dictates otherwise; the phrase “exclusive or” may be used to indicate situation where only the disjunctive meaning may apply.

Claims
  • 1. A computer-implemented method for selecting a product markdown plan, comprising: receiving, by one or more data processors, candidate data corresponding to a plurality of candidate markdown sets that detail schedules for marking down prices of one or more products;receiving, by the one or more data processors, constraints data, wherein the constraints data includes individual constraints that apply to a single candidate markdown set, and wherein the constraints data includes a linking constraint that applies to the plurality of candidate markdown sets;generating, by the one or more data processors, candidate markdown schedules for each of the candidate markdown sets, wherein each candidate markdown schedule conforms to applicable individual constraints;generating, by the one or more data processors, one or more class sets, wherein each class set includes a candidate markdown schedule, and wherein each class set conforms to the linking constraint;evaluating, by the one or more data processors, the one or more class sets, wherein the evaluations are iterative, and wherein each evaluation iteration includes computing an expected revenue value for a class set;computing, by the one or more data processors, a revenue upper bound using the candidate markdown schedules and the linking constraint;terminating, by the one or more data processors, the evaluation when a threshold number of iterations is reached, wherein the terminating includes determining a class set with a highest expected revenue value within a threshold of the revenue upper bound; andselecting, by the one or more data processors, a product markdown plan, wherein the product markdown plan includes the class set with the highest expected revenue value.
  • 2. The method of claim 1, wherein terminating further includes: determining a class set with an expected revenue value that conforms to the revenue upper bound.
  • 3. The method of claim 1, wherein terminating further includes: selecting a product markdown plan using a dynamic programming solver when no product markdown plan is selected.
  • 4. The method of claim 1, further comprising: identifying, using the one or more data processors, dominated markdown schedules among the candidate markdown schedules, wherein the dominated markdown schedules are removed.
  • 5. The method of claim 1, further comprising: ranking, using the one or more data processors, the one or more class sets according to a revenue generation likelihood, wherein the one or more class sets are evaluated according to rank.
  • 6. The method of claim 1, wherein the threshold of the revenue upper bound is based upon a percentage of the revenue upper bound.
  • 7. The method of claim 6, wherein the percentage is a predetermined percentage.
  • 8. The method of claim 1, wherein inventory is liquidated based upon the selected product markdown plan.
  • 9. The method of claim 1, wherein computing further comprises: relaxing a 0,1 integer constraint for all candidate markdown schedules; andsolving for an exact optimum product markdown plan.
  • 10. The method of claim 1, wherein generating one or more class sets includes using a gradient calculation to identify promising sets of the candidate markdown schedules.
  • 11. The method of claim 3, wherein the dynamic programming solver operates on a reduced set of candidate markdown schedules.
  • 12. The method of claim 11, wherein the reduced set of candidate markdown schedules includes only candidate markdown schedules that offer better expected inventory and higher expected revenue than the selected product markdown plan.
  • 13. The method of claim 12, wherein the dynamic programming solver implements an iterative calculation to select the product markdown plan from the reduced set of candidate markdown schedules.
  • 14. The method of claim 13, wherein the iterative calculation uses each of a plurality of uniform pricing levels and each of a plurality of revised ending inventory constraint values.
  • 15. The method of claim 14, wherein for each of the z uniform pricing levels i and for each of the j revised ending inventory constraint values B′, a revenue value π is calculated such that: π(z,j)=R′i,j+vi-1(z−I′i,j)where R′i,j=Ri,j−Ri,si,where Ri,j is an expected revenue value for the jth candidate markdown schedule for the ith uniform pricing level, where Ri,si is an expected revenue value for the candidate markdown schedule for the ith uniform pricing level included in the class set with the highest expected revenue value,where I′i,j=Ii,j−Ii,si,where Ii,j is an unsold inventory value for the jth candidate markdown schedule for the ith uniform pricing level, where Ii,si is an unsold inventory value for the candidate markdown schedule for the ith uniform pricing level included in the class set with the highest expected revenue value,where vi(z)=max{π(z,j)}, andwhere v0(z)=0.
  • 16. The method of claim 1, wherein the candidate data is hierarchically arranged.
  • 17. A system for selecting a product markdown plan, comprising: one or more processors;one or more computer-readable storage mediums containing instructions configured to cause the one or more processors to perform operations including:receiving candidate data corresponding to a plurality of candidate markdown sets that detail schedules for marking down prices of one or more products;receiving constraints data, wherein the constraints data includes individual constraints that apply to a single candidate markdown set, and wherein the constraints data includes a linking constraint that applies to the plurality of candidate markdown sets;generating candidate markdown schedules for each of the candidate markdown sets, wherein each candidate markdown schedule conforms to applicable individual constraints;generating one or more class sets wherein each class set includes a candidate markdown schedule, and wherein each class set conforms to the linking constraint;evaluating the one or more class sets, wherein the evaluations are iterative, and wherein each evaluation iteration includes computing an expected revenue value for a class set;computing a revenue upper bound using the candidate markdown schedules and the linking constraint;terminating the evaluation when a threshold number of iterations is reached, wherein the terminating includes determining a class set with a highest expected revenue value within a threshold of the revenue upper bound; andselecting a product markdown plan, wherein the product markdown plan includes the class set with the highest expected revenue value.
  • 18. A computer-program product for selecting a product markdown plan, tangibly embodied in a machine-readable storage medium, including instructions configured to cause a data processing apparatus to: receive candidate data corresponding to a plurality of candidate markdown sets that detail schedules for marking down prices of one or more products;receive constraints data, wherein the constraints data includes individual constraints that apply to a single candidate markdown set, and wherein the constraints data includes a linking constraint that applies to the plurality of candidate markdown sets;generate candidate markdown schedules for each of the candidate markdown sets, wherein each candidate markdown schedule conforms to applicable individual constraints;generate one or more class sets wherein each class set includes a candidate markdown schedule, and wherein each class set conforms to the linking constraint;evaluate the one or more class sets, wherein the evaluations are iterative, and wherein each evaluation iteration includes computing an expected revenue value for a class set;compute a revenue upper bound using the candidate markdown schedules and the linking constraint;terminate the evaluation when a threshold number of iterations is reached, wherein the terminating includes determining a class set with a highest expected revenue value within a threshold of the revenue upper bound; andselect a product markdown plan, wherein the product markdown plan includes the class set with the highest expected revenue value.
US Referenced Citations (148)
Number Name Date Kind
5195172 Elad et al. Mar 1993 A
5319781 Syswerda Jun 1994 A
5627973 Armstrong et al. May 1997 A
5652842 Siegrist, Jr. et al. Jul 1997 A
5712989 Johnson et al. Jan 1998 A
5767854 Anwar Jun 1998 A
5799286 Morgan et al. Aug 1998 A
5867494 Krishnaswamy et al. Feb 1999 A
5926820 Agrawal et al. Jul 1999 A
5946662 Ettl et al. Aug 1999 A
5953707 Huang et al. Sep 1999 A
5963910 Ulwick Oct 1999 A
5999908 Abelow Dec 1999 A
6009407 Garg Dec 1999 A
6014640 Bent Jan 2000 A
6023684 Pearson Feb 2000 A
6029139 Cunningham et al. Feb 2000 A
6041267 Dangat et al. Mar 2000 A
6076071 Freeny, Jr. Jun 2000 A
6078892 Anderson et al. Jun 2000 A
6115691 Ulwick Sep 2000 A
6151582 Huang et al. Nov 2000 A
6175876 Branson et al. Jan 2001 B1
6182060 Hedgcock et al. Jan 2001 B1
6226623 Schein et al. May 2001 B1
6236977 Verba et al. May 2001 B1
6237138 Hameluck et al. May 2001 B1
6263315 Talluri Jul 2001 B1
6275812 Haq et al. Aug 2001 B1
6286005 Cannon Sep 2001 B1
6321133 Smirnov et al. Nov 2001 B1
6321206 Honarvar Nov 2001 B1
6397224 Zubeldia et al. May 2002 B1
6456999 Netz Sep 2002 B1
6470344 Kothuri et al. Oct 2002 B1
6484179 Roccaforte Nov 2002 B1
6526526 Dong et al. Feb 2003 B1
6546135 Lin et al. Apr 2003 B1
6553352 Delurgio et al. Apr 2003 B2
6560501 Walser et al. May 2003 B1
6581068 Bensoussan et al. Jun 2003 B1
6584447 Fox et al. Jun 2003 B1
6611829 Tate et al. Aug 2003 B1
6640215 Galperin et al. Oct 2003 B1
6643659 MacIssac et al. Nov 2003 B1
6728724 Megiddo et al. Apr 2004 B1
6735570 Lacy et al. May 2004 B1
6750864 Anwar Jun 2004 B1
6898603 Petculescu et al. May 2005 B1
6901406 Nabe et al. May 2005 B2
6907382 Urokohara Jun 2005 B2
6970830 Samra et al. Nov 2005 B1
7039594 Gersting May 2006 B1
7062447 Valentine et al. Jun 2006 B1
7068267 Meanor et al. Jun 2006 B2
7085734 Grant et al. Aug 2006 B2
7089266 Stolte et al. Aug 2006 B2
7092896 Delurgio et al. Aug 2006 B2
7092918 Delurgio et al. Aug 2006 B1
7092929 Delurgio et al. Aug 2006 B1
7130811 Delurgio et al. Oct 2006 B1
7133876 Roussopoulos et al. Nov 2006 B2
7133882 Pringle et al. Nov 2006 B1
7171376 Ramakrishnan Jan 2007 B2
7236949 Natan et al. Jun 2007 B2
7240019 Delurgio et al. Jul 2007 B2
7249031 Close et al. Jul 2007 B2
7251615 Woo Jul 2007 B2
7302400 Greenstein Nov 2007 B2
7302410 Venkatraman et al. Nov 2007 B1
7310646 Rangadass et al. Dec 2007 B2
7346538 Reardon Mar 2008 B2
7370366 Lacan et al. May 2008 B2
7379890 Myr et al. May 2008 B2
7395255 Li Jul 2008 B2
7440903 Riley et al. Oct 2008 B2
7505482 Adamczyk et al. Mar 2009 B2
7519908 Quang et al. Apr 2009 B2
7536361 Alberti et al. May 2009 B2
7617119 Neal et al. Nov 2009 B1
7689456 Schroeder et al. Mar 2010 B2
7752067 Fotteler et al. Jul 2010 B2
7756945 Andreessen et al. Jul 2010 B1
7798399 Veit Sep 2010 B2
7877286 Neal et al. Jan 2011 B1
7895067 Ramakrishnan Feb 2011 B2
20020013757 Bykowsky et al. Jan 2002 A1
20020046096 Srinivasan et al. Apr 2002 A1
20020072953 Michlowitz et al. Jun 2002 A1
20020099678 Albright et al. Jul 2002 A1
20020107723 Benjamin et al. Aug 2002 A1
20020116237 Cohen et al. Aug 2002 A1
20020123930 Boyd et al. Sep 2002 A1
20020169654 Santos et al. Nov 2002 A1
20020169655 Beyer et al. Nov 2002 A1
20020178049 Bye Nov 2002 A1
20030023598 Janakiraman et al. Jan 2003 A1
20030028437 Grant et al. Feb 2003 A1
20030050845 Hoffman et al. Mar 2003 A1
20030078830 Wagner et al. Apr 2003 A1
20030083924 Lee et al. May 2003 A1
20030083925 Weaver et al. May 2003 A1
20030088458 Afeyan et al. May 2003 A1
20030097292 Chen et al. May 2003 A1
20030110072 Delurgio et al. Jun 2003 A1
20030110080 Tsutani et al. Jun 2003 A1
20030120584 Zarefoss et al. Jun 2003 A1
20030126010 Barns-Slavin Jul 2003 A1
20030126136 Omoigui Jul 2003 A1
20030167098 Walser et al. Sep 2003 A1
20030172145 Nguyen Sep 2003 A1
20030208402 Bibelnieks et al. Nov 2003 A1
20030208420 Kansal Nov 2003 A1
20030220830 Myr Nov 2003 A1
20030229502 Woo Dec 2003 A1
20030236721 Plumer et al. Dec 2003 A1
20040093296 Phelan et al. May 2004 A1
20040103051 Reed et al. May 2004 A1
20040111388 Boiscuvier et al. Jun 2004 A1
20040111698 Soong et al. Jun 2004 A1
20040199781 Erickson et al. Oct 2004 A1
20050033761 Guttman et al. Feb 2005 A1
20050066277 Leah et al. Mar 2005 A1
20050096963 Myr et al. May 2005 A1
20050194431 Fees et al. Sep 2005 A1
20050197896 Veit et al. Sep 2005 A1
20050198121 Daniels et al. Sep 2005 A1
20050256726 Benson et al. Nov 2005 A1
20050256753 Veit et al. Nov 2005 A1
20050262108 Gupta Nov 2005 A1
20050267901 Irlen Dec 2005 A1
20050289000 Chiang et al. Dec 2005 A1
20060047608 Davis et al. Mar 2006 A1
20060069598 Schweitzer et al. Mar 2006 A1
20060074728 Schweitzer et al. Apr 2006 A1
20060143030 Wertheimer Jun 2006 A1
20060248010 Krishnamoorthy et al. Nov 2006 A1
20070055482 Goodermote et al. Mar 2007 A1
20070100981 Adamczyk et al. May 2007 A1
20070174119 Ramsey et al. Jul 2007 A1
20070223462 Hite et al. Sep 2007 A1
20070288296 Lewis Dec 2007 A1
20080077459 Desai et al. Mar 2008 A1
20080140581 Mayer Jun 2008 A1
20080140688 Clayton et al. Jun 2008 A1
20080208678 Walser et al. Aug 2008 A1
20080208719 Sharma et al. Aug 2008 A1
20090271241 Pratt Oct 2009 A1
Foreign Referenced Citations (3)
Number Date Country
1413955 Apr 2004 EP
0111522 Feb 2001 WO
2007002841 Jan 2007 WO
Related Publications (1)
Number Date Country
20100250329 A1 Sep 2010 US