Introduction ------------ 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: """ attributes: 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. """ pass if len(periods)>1: prev = period[-1] beforePrev = period[-2] if prev.score>beforePrev.score: newPrice = price + inc elif prev.score