A dynamic pricing algorithm is used to price a large set of items so that their aggregate margin is above a pre-specified level even under uncertain demand. The algorithm automatically hedges the profit loss associated to low-margin items with profit gains associated to higher-margin items, and does so even when the realized demand is different than the expected one. The algorithm leverages the separability of a re-formulation of the robust counterpart of the nominal revenue maximization problem. This separability results into a nested bisection algorithm where each iteration in the procedure requires only computation of a number of independent, one-dimensional optimization problems, one for each product to price. The algorithm is easily implemented in a parallel architecture such a multi-core computer or a cluster of computers, where each core handles an independent one-dimensional problem corresponding to an item and its data is stored locally.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method performed by a computer system, using one or more processing devices, comprising: receiving demand data comprising nominal pricing data, price sensitivity weighting data, and worst case window data, over a particular time period for the demand data, for a plurality of products i; receiving sales data associated with each product i of the plurality of products i, the demand data and the sales data stored in a pricing database, wherein a price elasticity is calculated for the each product i of the plurality of products i based on the sales data and the nominal pricing data for the each product i within a pre-determined period of time; receiving price data sets via the pricing database communicatively coupled to one or more point of sale (POS) devices located at one or more retail establishments, the price data sets comprising: price increase weights indicating a price penalty for price increases on the each product i of the plurality of products i; baseline prices indicating price offers for the each product i; and window data indicating uncertainty in demand for the plurality of products i; defining a revenue function ƒ(p), where p is a set of prices, wherein p(i) is a possible price of product i, the revenue function ƒ(p) comprising a function of predicted demand determined from the sales data, as received, and the uncertainty, as received, in the demand; receiving one or more price constraints for the plurality of products i, stored in the pricing database, wherein the one or more price constraints define a constraint q(p)>0 based on at least one of: a margin constraint; a capacity constraint; or a price increase sensitivity for the plurality of products i; defining a dual function G(η) corresponding to the revenue function ƒ(p) and the constraint q(p), the dual function G(η) being defined as G(η)=max p∈W ƒ(p)+ηq(p), where η is an arbitrary variable and W is a set of all possible prices of the set of prices p for the each product i; identifying a set of prices p η of the set of prices p using data in the pricing database and a pricing algorithm according to a bisection algorithm using the revenue function ƒ(p), the constraint q(p), and the dual function G(η), stored in the pricing database, wherein the set of prices p η are for the plurality of products i, wherein the bisection algorithm is performed by running multiple concurrent instances of a MaximizeSeparable subroutine across multi-core processors in a parallel architecture, each of the multiple concurrent instances of the MaximizeSeparable subroutine comprising determining a solution of an independent convex problem using a subgradient-based inner bisection, each iteration of the bisection algorithm comprises computation of a plurality of independent one-dimensional computations using the MaximizeSeparable subroutine to price the each product i of the plurality of products i, and each core of the multi-core processors computes one of the plurality of independent one-dimensional computations; transmitting the set of prices p η to (a) a point of sale (POS) device of the one or more POS devices or (b) a product database for online e-commerce; when the set of prices p η are transmitted to the product database, facilitating a display, via a network, of the set of prices p η for the plurality of products i to electronic computing devices of users navigating the product database; and receiving transaction records for purchases of the plurality of products i as priced by the pricing algorithm.
2. The method of claim 1 , wherein the bisection algorithm comprises Algorithm 2 of Table 2.
3. The method of claim 1 , further comprising: transmitting the set of prices p η to the one or more point of sale (POS) devices; and conducting on the one or more POS devices transactions for purchase of units of one or more products at corresponding prices from the set of prices p η .
4. The method of claim 1 , further comprising: transmitting offers for sale for the plurality of products i at the set of prices p η to electronic computing devices of users; and conducting electronic transactions to purchase units of one or more products of the plurality of products i at corresponding prices from the set of prices p η .
5. The method of claim 1 , wherein: the bisection algorithm comprises determining the set of prices p η such that an aggregate margin is above a pre-specified level under the uncertainty in the demand, as received.
6. The method of claim 5 , wherein the bisection algorithm is further performed in an interval-uncertain separable linear demand model.
7. The method of claim 1 , wherein: the bisection algorithm further comprises facilitating pricing of the plurality of products i for an online retailer.
8. A method performed by a computer system, using one or more processing devices, comprising: receiving, via a network, demand data comprising nominal pricing data, price sensitivity weighting data, and worst case window data, over a particular time period for the demand data, for a plurality of products i; receiving sales data associated with each product i of the plurality of products i, the demand data and the sales data stored in a pricing database, wherein a price elasticity is calculated for the each product i of the plurality of products i based on the sales data and the nominal pricing data for the each product i within a pre-determined period of time; receiving price data sets via the pricing database communicatively coupled to one or more point of sale (POS) devices located at one or more retail establishments, the price data sets comprising: price increase weights indicating a price penalty for price increases on the each product i of the plurality of products i; baseline prices indicating price offers for the each product i; and window data indicating uncertainty in demand for the plurality of products i; defining a revenue function ƒ(p), where p is a set of prices, wherein p(i) is a possible price of product i, the revenue function ƒ(p) comprising a function of predicted demand determined from the sales data, as received, and the uncertainty, as received, in the demand; receiving one or more price constraints for the plurality of products i, stored in the pricing database, wherein the one or more price constraints define a constraint q(p)>0 based on at least one of: a margin constraint; capacity constraint; or a price increase sensitivity for the plurality of products i; defining a dual function G(η) corresponding to the revenue function ƒ(p) and the constraint q(p), the dual function G(η) being defined as G(η)=max p∈W ƒ(p)+ηq(p), where η is an arbitrary variable and W is a set of all possible prices of the set of prices p for the each product i; receiving a tolerance ϵ; receiving a maximum value η max of η; and identifying an optimized set of prices p η of the set of prices p according to a pricing algorithm stored in the pricing database and using data in the pricing database, wherein the optimized set of prices p η are for the plurality of products i, wherein the pricing algorithm is performed by running multiple concurrent instances of a MaximizeSeparable subroutine across multi-core processors in a parallel architecture, each of the multiple concurrent instances of the MaximizeSeparable subroutine comprising determining a solution of an independent convex problem using a subgradient-based inner pricing algorithm, each iteration of the pricing algorithm comprises computation of a plurality of independent one-dimensional computations using the MaximizeSeparable subroutine to price the each product i of the plurality of products i, and each core in the multi-core processors computes one of the plurality of independent one-dimensional computations: (A) let p η be the optimized set of prices p for which an expression max p∈W f(p)+η max q(p) is satisfied; (B) let η min =0; and (C) while |f(p η )−G(η)|≤ϵ perform: (i) let η = η max + η min 2 ; (ii) let p η be the optimized set of prices p for which the expression max p∈W ƒ(p)+ηq(p) is satisfied; and (iii) if q(p η )≤0, then let η min =η, else let η max =η; transmitting the optimized set of prices p η to (a) a point of sale (POS) device of the one or more POS devices or (b) a product database for online e-commerce; when the set of prices p η are transmitted to a product database, facilitating a display, via a network, of the set of prices p η for the plurality of products i to electronic computing devices of users navigating the product database; and receiving transaction records for purchases of the plurality of products i as priced by the pricing algorithm.
9. The method of claim 8 , wherein: ƒ(p) is defined as p T (b n −σ b )−G(p); σ b is a baseline sales uncertainty, as received; G(p) is defined as 1 T max(g min ∘p∘(p−p 0 ), g max ∘p∘(p−p 0 )); p 0 is a baseline pricing data from the sales data; b n is a baseline sales data based on the sales data, as received; g min is defined as g n −σ g ; g max is defined as g n +σ g ; g n is a baseline price elasticity based on the sales data; and σ 9 is a baseline price elasticity uncertainty, as received.
10. The method of claim 9 , wherein: the constraint q(p) is defined as min(g(p), h(p)); g(p) of min(g(p), h(p)) is defined as τ−θ T max(0, p−p 0 ), where τ(i) is a predetermined price increase limit value for each product i; h(p) of min(g(p), h(p)) is defined as (κp−c) T b n −H(p)−σ b T |κp−c|, where κ is defined as 1−β, where β(i) is a desired margin constraint, as received, for each product i; H(p) is defined as H(p)=1 T max(g min ∘(κp−c)∘(p−p 0 ),g max ∘(κp−c)∘(p−p 0 ); and c(i) is defined as a cost per unit of each product i.
11. The method of claim 8 , further comprising: transmitting the optimized set of prices p η to the one or more point of sale (POS) devices; and conducting on the one or more POS devices transactions for purchase of units of one or more of the plurality of products i at corresponding prices from the optimized set of prices p η .
12. The method of claim 8 , further comprising: transmitting offers for sale for the plurality of products i at the optimized set of prices p η to electronic computing devices of users; and conducting electronic transactions to purchase units of the plurality of products i at corresponding prices from the optimized set of prices p η .
13. A method performed by a computer system, using one or more processing devices, comprising: receiving demand data comprising nominal pricing data, price sensitivity weighting data, and worst case window data, over a particular time period for the demand data, for a plurality of products i; receiving sales data associated with each product i of the plurality of products i, the demand data and the sales data stored in a pricing database, wherein a price elasticity is calculated for the each product i of the plurality of products i based on the sales data and the nominal pricing data for the each product i within a pre-determined period of time; receiving price data sets, via the pricing database communicatively coupled to one or more point of sale (POS) devices located at one or more retail establishments, the price data sets comprising: price increase weights indicating a price penalty for price increases on the each product i of the plurality of products i; baseline prices indicating price offers for the each product i of the plurality of products i; and window data indicating uncertainty in demand for the plurality of products i; defining a revenue function ƒ(p), where p is a set of prices wherein p(i) is a possible price of product i, the revenue function ƒ(p) comprising a function of predicted demand determined from the sales data, as received, and the uncertainty, as received, in the demand; receiving one or more price constraints for the plurality of products i, stored in the pricing database, wherein the one or more price constraints define a constraint q(p)>0 based on at least one of: a minimum price; a capacity constraint g(p); or a price increase sensitivity constraint h(p) for the plurality of products i; defining a first dual function G(η) corresponding to the revenue function ƒ(p) and the constraint q(p), the first dual function G(η) being defined as G(η)=max p∈W ƒ(p)+ηq(p), where η is an arbitrary variable and W is a set of all possible prices of the set of prices p for the each product i; defining a second dual function D(λ) corresponding to the revenue function ƒ(p) and the constraint q(p), D(λ) being defined as D(λ)=max p∈W αf(p)+λg(p)+(β−λ)h(p), where α, β, and λ are arbitrary variables; identifying a set of prices p η of the set of prices p using data in the pricing database and a pricing algorithm satisfying |ƒ(p η )−G(η)|≤ϵ, where ϵ is an arbitrary constraint according to an inner and outer bisection algorithm according to the revenue function ƒ(p), the first dual function G(η), and the second dual function D(λ), stored in the pricing database, wherein the set of prices p η are for the plurality of products i, wherein the inner and outer bisection algorithm is performed by running multiple concurrent instances of a MaximizeSeparable subroutine across multi-core processors in a parallel architecture, each of the multiple concurrent instances of the MaximizeSeparable subroutine comprising determining a solution of an independent convex problem using a subgradient-based inner bisection, each iteration of the inner and outer bisection algorithm comprises computation of a plurality of independent one-dimensional computations using the MaximizeSeparable subroutine to price the each product i of the plurality of products i, and each core in the multi-core processors computes one of the plurality of independent one-dimensional computations; transmitting the set of prices p η to (a) a point of sale (POS) device of the one or more POS devices or (b) a product database for online e-commerce; wherein when the set of prices p η are transmitted to a product database, facilitating a display, via a network, of the set of prices p η for the plurality of products i to electronic computing devices of users navigating the product database; and receiving transaction records for purchases of the plurality of products i as priced by the pricing algorithm.
14. The method of claim 13 , further comprising defining a function MaximizeSeparable(α, β, λ, ƒ, g, h) that produces as an output a solution to {circumflex over (p)} λ =arg max p∈W αƒ(p)+λ*g(p)+(β−λ*)h(p), where λ* is a value of λ that is a solution to min 0≤λ<β {D(λ)=max p∈W αƒ(p)+λg(p)+(β−λ)h(p)}.
15. The method of claim 14 , wherein the inner and outer bisection algorithm comprises Algorithm 2 of Table 2.
16. The method of claim 13 , further comprising: transmitting the set of prices p η to the one or more point of sale (POS) devices; and conducting on the one or more POS devices transactions for purchase of units of the plurality of products i at corresponding prices from the set of prices p η .
17. The method of claim 13 , further comprising: transmitting offers for sale for the plurality of products i at the set of prices p η to electronic computing devices of users; and conducting electronic transactions to purchase units of the plurality of products i at corresponding prices from the set of prices p η .
18. The method of claim 13 , wherein the inner and outer bisection algorithm further comprises facilitating pricing of the plurality of products i for an online retailer.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 30, 2014
September 3, 2019
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.