Dynamic Pricing


Price points are extremely important in business as their selection can make a huge difference in gross revenue.

To illustrate the importance of price point, consider a product which might be priced between $5 and $20. The number of customers that purchase at these different prices will change for different reasons:

$/month % that buy score comment
$5 5% 25  
$10 7% 70 higher price sometimes yields higher perceived value by customer
$15 6% 90 higher price eventually drives customers away
$20 3% 60 higher price eventually causes many customers to balk

So $15 is head and shoulders above the rest: more that 29% higher grossing than the second most profitable price point.

Selecting a price point is done by almost all major businesses that have goods and services to sell. Often a combination of surveys, consultants, spreadsheets and software are employed by businesses large enough to afford all that. Price testing is also conducted.

It's notable that Amazon's initial random price testing caused an uproar among customers. Some reports state that Amazon refined their approach by giving customers the lowest price available at the end of the test and others state that Amazon ceased testing indefinitely. See: http://www.google.com/search?hl=en&q=amazon+dynamic+pricing

Proposed Approach

A dynamic web site offers a unique environment to determing price points dynamically, e.g., to adjust prices automatically as they need adjusting.

One approach could be to set a base price and after a certain number of potential sales, adjust it. If the last batch scored less than its predecessor, the price drops. Otherwise, the price increases.

A period is defined in terms of the number of visitors that actually get to the pricing information for the opportunity to purchase. We'll call those visitors the potential customers. The purchase rate is the # of customers divided by the # of potential customers. The purchase rate times the price gives the score for that period.

Here are some fragmented thoughts expressed in Python:

bp = 4.95   # base price
inc = 1.00  # increment amount
dec = 1.00  # decrement amount
period = 100        # number of visitors before analyzing

periods = []        # list of periods

class Period:
        date  - the date the period started
        score - the important number. how well this period did
        rate  - rate of customers who saw pricing information and purchased
        parameters - dictionary of parameters at the time such as bp, inc, dec, etc.

if len(periods)>1:
    prev = period[-1]
    beforePrev = period[-2]
    if prev.score>beforePrev.score:
        newPrice = price + inc
    elif prev.score<beforePrev.score:
        newPrice = price - dec

By giving all potential customers the same price for a given period of time, customers are treated fairly (contrasted with the original Amazon approach). The period price adjustments are no different than manual adjustments made by other companies for their products. What's special is that the adjustments are automatic and precise.

What's also special is that the price adjustments are made whenever needed. The underlying factors could be all kinds of things:

But the computation doesn't need to know the factors and will therefore, never miss any, because the score is the bottom line.

Additional ideas to refine this approach are:


The advantages of Dynamic Pricing are:

There's a huge number of approaches that could be taken and lots of different topics to be discussed. Feel free to add to this Wiki page.

-- ChuckEsterbrook - 17 Mar 2002


This is brilliant -- thanks Chuck! JamesBecker?