Each time period, each player posts a price, this is given as input into the unknown demand mechanism. Each player in the competition receives then their own sales realization and competitors’ prices. The demand mechanism that generates the sales based on the prices is unknown to all competitors.
Players are randomly selected to play against each other in small competition matches. Each match consists of multiple simulations, and the player with the overall highest generated revenue overall simulations is winning the match.
You sell a finite inventory of 80 units, e.g. seats on a plane, over a selling season of 100 time periods, think of it as days. You are playing against one other competitor in the market, who also has an initial inventory of 80 units. Each time period, you post a price and then observe your own sales and your competitor’s price. The demand mechanism that generates the sales based on the prices is unknown to both competitors.
The following example illustrates a single time period. The competitors post prices of $8 and $7, which generates sales of 5 and 6 units, respectively:
This process repeats itself over the selling season of 100 time periods in total:
After these 100 time periods, the selling season is finished. A new selling season starts and the competitors receive again a new inventory of 80 units. The two competitors play many selling seasons, usually 100. The demand mechanism is the same within a single selling season, but can change across selling seasons.
The player, who generated the most revenue over all selling seasons, wins.
Note: in practice we execute 101 time periods per selling season in order to provide your algorithm the information (competitor price & own demand) from time period 100. Your algorithms’ returned price in time period 101 will not be used for evaluation.
A detailed explanation of this challenge can be found here.