Because of competition and erosion of profit margins, manufacturers and vendors are under pressure to increase profits and market share. A manufacturer/vendor may provide any number of products within the capabilities of the manufacturer/provider. Product variety, however, increases operating cost as well as the complexity of management in manufacturing, logistics and marketing. Product variety may also slow down customer purchase decisions or decrease their purchase likelihood because there may be too many alternatives to compare. Too many alternatives may have a negative effect on demand. Further, some products may have a very low profit margin.
For a detailed description of various examples, reference will now be made to the accompanying drawings in which:
The present disclosure is generally directed the determination of a set of products to offer in a portfolio of products in order to maximize an attribute of the products. The term “product” refers to a good or service. The term “portfolio” broadly refers to a collection of products. The “attribute” to be maximized may refer to profit, sales revenue, or any other measured value of the offered products in the portfolio. While the illustrative implementation provided herein refers to maximizing a portfolio's profit, other implementations may maximize a different attribute of the portfolio. References to “profit” may refer to profit margin.
The potential products 110 include the various products that potentially can be offered in a portfolio of products. Products determined to be included in the portfolio may be offered for sale or use by users without being sold. Of the various potential products 110, the product portfolio determination system 100 determines which subset of the potential products should be included in a product portfolio in order to maximize an attribute (profit in this example). One or more or all of the potential products 110 may be determined to be included in the product portfolio by the product portfolio determination system 100. The potential products 110 may be stored in a data structure such as a file that is accessible to the product portfolio determination system 100.
The prices 120 include one or more discrete prices for each potential product 110. For example, one of the potential products 110 may include a laptop computer that may be provided at discrete prices of $500, $600, and $750. In this example, prices 120 include three different prices for the laptop computer. The price(s) 120 for one potential product 110 may include any number of prices and may be the same or different than the prices of other products.
The cost 130 to provide each potential product may include the costs to manufacture, distribute, market and otherwise provide the product to the end user. Cost 130 is known based on calculations, estimates, and/or from prior experience providing each such product.
The utility 140 for a given potential product represents the profit contribution of this product at a particular price point and is a function, at least in part, of the price 120 for the product. Thus, a product's utility 140 takes into account the product at a particular price point. The utility 140 for a given potential product 110 at a given price 120 may be different than the utility for the same product at a different price point. In some implementations, utility may be represented as a mathematical model that may be linear or non-linear with respect to price.
The product portfolio determination system 100 processes the various inputs 110-140 and determines the product portfolio and price points 150 that optimize profit (or other attribute of interest). The output product portfolio and price points 150 may be provided as a list of product names or other types of descriptions along with the price point at which each such product should be provided in order to result in a maximum total profit for the portfolio. That is, the particular portfolio of products determined by the product portfolio determination system 100 is likely to result in a higher profit level than any other combination of potential products selected for the portfolio.
In some examples of the system 100, each engine 202-208 may be implemented as a processor executing software.
The non-transitory, computer-readable storage device 230 is shown in
The distinction among the various engines 202-208 and among the software modules 232-240 is made herein for ease of explanation. In some implementations, however, the functionality of two or more of the engines/modules may be combined together into a single engine/module. Further, the functionality described herein as being attributed to each engine 202-208 is applicable to the software module corresponding to each such engine, and the functionality described herein as being performed by a given module is applicable as well as to the corresponding engine.
The principles disclosed herein are based, in part, on the use of one or more attraction models. Attraction models estimate demand where consumers may substitute and buy from different providers or different products from the same provider. Any of a variety of attraction models, such as the MultiNomial Logit (MNL) model, may be used to capture demand interdependencies. Such models fit actual data well in scenarios where customers choose among a set of alternative products. Although the following discussion includes the use of the MNL model, any of various other attraction models may be used instead.
The MNL model can be derived from the underlying random utility maximization model. Suppose that N:={1, 2, . . . n} is the product set in consideration. The utility Ui of product i at price pi can be decomposed into two parts: a deterministic component ui(pi) and a random component εi, that is:
U
i
=u
i(pi)+εi
Without loss of generality, the utility of the non-purchase option is assumed to be U0=ε0, where ε0 is also a random variable. According to the random utility maximization model, the probability that an individual selects alternative i given price vector p:=(pi)i∈N is:
d
i(S;ps)=Pr(Ui≧max{Us:s∈S+}),∀i∈S+; (1)
where S+=S∪{0}.
It is also assumed that {εi; i=0, 1, . . . , n} are independent identical distributed (i.i.d.) random variables with a Gumbel or type I generalized extreme value (GEV) distribution:
Pr(εi≦x)=e−e−(x+γ),
where γ is Euler's constant (γ≈0.5772). Then, equation (1) results in the MNL model:
A suitable utility function is the linear model: ui(pi)=αi−βipi, where αi takes into account all feature values excluding price, and βi(βi>0) is the price-sensitivity parameter indicating how sensitive customers are to the price change of product i. Then, the MNL model (2) becomes
As explained above, the system described herein determines the assortment of products to include in the portfolio and determines their prices to maximize the total expected profit. The unit cost is given by ci for product i∈N. The capacitated assortment and price optimization under the MNL model can be formulated as follows
maxR(S,ps)=MΣi∈s(pi−ci)di(S,ps), (4)
s:t.,x≦|S|≦
p
i≦pi≦
where M is the market size, x and
The cardinality constraint and price bounds in problem (4) may result from business applications. For example, the shelf space to display products may be limited; a web page may be able to list only a limited number of items. Moreover, an increase number of products unfortunately may result in a higher operating cost and increased difficulties in demand forecasting for each product. And inventories should be maintained at a higher level to maintain target service rates. Financial budget is another reason to limit the number of offered products. The model parameters may be obtained from regression study based on available data.
The disclosed techniques may involve discretizing prices. Let (pi;1, pi;2, . . . , pi;mi) be the possible prices of product i, where pi,1 may be the lower bound pi and pi;mi may be the upper bound
So, the problem can be formulated as follows:
maxxΣi=1nΣr=1m
s.t.,Σr=1m
x≦Σi=1nΣr=1m
xi,r=0,1,∀i,r (9)
Equation (7) defines a constraint that the product cannot be sold at multiple prices. Equation (8) is the constraint on the number of products to be sold in the market, and equation (9) specifies that a product can be sold at only one price.
Let S be the offered product set, i.e., S⊂{1, 2, . . . , n}. Let Pi={1, 2, . . . , mi} be the index set of possible price points for product i, i.e., pi,r is a possible price point for each r∈Pi. The problem specified by equations (6)-(9) above can be transferred to an assortment optimization problem, where prices or margins for all the products in consideration are fixed. mi copies for product i are created corresponding to different price levels. Let Qi be the offered product set among the mi copies, i.e., Qi⊂Pi and introduce a constraint |Qi|≦1, which represents that a product cannot be sold at multiple prices and |Qi| represents the cardinality of set Qi. A modified formulation for problem of equations (6)-(9) can be formally expressed as follows:
Based on some algebra, the above problem (10) can be rewritten in the following way:
where {circumflex over (ν)}i,r=vi,r/a0 and {circumflex over (k)}i,r=ki,r/a0 for any i∈S and r∈Qi.
A new function then can be Introduced as follows:
Defining a function Z(γ) for each γ generally may be computationally costly. Accordingly, a more efficient method to find a function Z(γ) for each γ is provided below.
Let the linear functions hi,rR→R for all i∈N+:={0, 1, 2, . . . n} be defined by:
h
0(γ)=0,
h
i,r(γ)={circumflex over (ν)}i,r−{circumflex over (k)}i,rγ,∀i∈M,r∈Pi (13)
For each pair of hi,r(γ) and hj,s(γ) with {circumflex over (ν)}i,r≧{circumflex over (ν)}j,s and {circumflex over (k)}i,r>kj,si≠j let Ai,r,j,s denote the x-coordinate of the intersection point between lines hi,r(γ) and hj,s(γ). The x-coordinate of the intersection point between two such h functions can be expressed as follows:
The number of intersection points among all the lines {hi,r(γ):i∈N+, r∈Pi} is at most M(M+1)/2, where M is the total number of lines in the set {hi,r(γ):i∈N+, r∈Pi}. Let τ=((i1, r1, j1, s1), . . . , (iK, rK, jK, sK)) denote the ranking of the intersection points based on the x-coordinates with positive values in increasing order, i.e.:
0=Ai0,r0,j0,s0<Ai1,r1,j1,s1≦ . . . ≦AiK,rK,jK,sK<AiK+1,rK+1,jK+,sK+1=∞
Two end points Ai0,r0,j0,s0 and AiK+1,rK+1,jK+1,sK+1 have been added to facilitate the process. The added endpoints facilitate the algorithm. In the algorithm, the x-axis is divided into multiple intervals by the intersection points and the algorithm generally focuses on the intervals between consecutive intersection points. The added endpoints permits the algorithm to also consider the interval to the left of the left-most intersection point and to the right of the right-most intersection point. Because there is no intersection between any consecutive pair of endpoints (Ail,rl,jl,sl and Ail+1,rlL+1,sl+1), the lines {hi,r(γ):i∈N30; r∈Pi} can be ranked from the highest to the lowest values σl=(σl1, . . . , σlm) and the ranking does not change within each interval, i.e.,
hσ
l
1(γ)≦hσl2(γ)≦ . . . ≦hσlm(γ), ∀∈(Ail,rl,jl,sl,Ail+1,rl+1,jl+1,sl+1)
Denote set Sl as the top
Z(γ)=Σi∈s
From the above analysis, a theorem for the optimal solution holds true. Function Z(γ) is decreasing in γ and γ* is computed as the solution to the equation γ=Z(γ). The value γ* represents the total optimal profit. Once the value γ* is computed, S* is computed and represents the set of products to be included in the product portfolio to achieve the optimal profit γ*. Further, Q* is computed which represents the prices to be associated with such product to achieve the optimal profit level.
The functions performed by the various engines 202-208 of
At 250, the method comprises, for each product of the multiple potential products 110, determining a first function (hi,r(γ)) based on the product's utility and profit at a given price point. In some implementations, this operation may be performed by the first function determination module 240 (
At 254, the method includes determining the intersection points between the various first functions.
At 256, the method includes ranking the intersection points. This operation may be performed by the first ranking engine 204. In some implementations, the first ranking engine 204 ranks the intersection points in order from smallest to largest. The first ranking engine 204 may also add in the two end points noted above (Ai0,r0,j0,s0 and AiK+1,rK+1,jK+1,sK+1) and then rank all of the intersection points with the end points.
At 258, the method further includes ranking the first functions based on the ranked intersection points (Ai,r,j,s) to generate multiple sets of ranked first functions. This operation may be performed by the second ranking engine 206. In some implementations, second ranking engine 206 ranks the first functions by their y-coordinates at a given x-coordinate (γ). For example,
At 258, the method includes, based on a subset of ranked first functions, solving a second function to determine a subset of products to include in the product portfolio and a price for each such product to maximize profit for the products. This operation may be performed by the solving engine 208. In some implementations, the solving engine 208 may perform this operation as follows. For each set of ranked first functions, the solving engine 208 may select a subset of the ranked first functions. In the example of
The solving engine 208 may compute equation (15) above. That is, the solving engine 208 may, for example, add together the selected subsets of the first functions to generate the function Z(γ). Once the function Z(γ) is generated, the solving engine 208 solves the equation γ=Z(γ) to compute the value γ*. Once γ* is computed, the products for inclusion in the product portfolio can be determined from the first functions. For example, if γ* has a value as shown in
Once the specific subset of products from the entire set of potential products 110 are determined, the solving engine 208 also determines the price for each such product by identifying the corresponding created h function. Multiple copies may be created for each product at all possible price points. By solving γ=Z(γ), γ* can be found and the corresponding S*, which is a set of h functions. Each h function is created for each product at each possible price point. The optimal price for product i is the corresponding price point for the h function in set S*.
As a result of this process, the specific subset of products from the entire set of potential products are determined as well as corresponding prices that maximize the profit that is likely to be obtainable given an historical assessment of utility for the various products at certain price points.
The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.