Simona Carbone, Manuel Cravero, Marco Tuninetti

Computer Science and Simulation for Economics

Project work on

"IPO simulation."


The applet requires Java 1.4.1 or higher. It will not run on Windows 95 or Mac OS 8 or 9. Mac users must have OS X 10.2.6 or higher and use a browser that supports Java 1.4. (Safari works, IE does not. Mac OS X comes with Safari. Open Safari and set it as your default web browser under Safari/Preferences/General.) On other operating systems, you may obtain the latest Java plugin from Sun's Java site.

created with NetLogo

view/download model file: ipo_simulation.nlogo


The model reproduces a cycle of IPOs promoted by a seller. We try to show if the interations between the potential subscribers and the seller can lead to underpricing.
The theory, and in particular the Rock's model, tells us that in the market we have to expect to find that IPO's prices are under fair value.
Our simulation has the objective to test a lots of scenarios, by changing the main caracteristics of the world, such as for instance the percentage of "informated", "non informated" and "random" (non rational) potential subscribers.
The key to understand our model is the fact that we normalize every IPO: the fair value is always 100 and in that way we can easily control when and why we join an underpricing situation. Each patch (potential subscriber) and the seller are considered as the representative of a group. We can consider that each IPO is an outcome of a random distribution.
Our model tries to show the price movements, driven by the evolution mechanism of the seller and the potential subscribers. Will we find an equilibrium? Of course this is strictly linked on how we calibrate the model and on how the user will set the sliders (explained in the following sections).


The patches are the potential subscribers and they can take two kind of decision: if it is convenient they subscribe, otherwise not. The turtle is the seller.
At the beginning the price of the first IPO is random; the seller collects the subscriptions moving patch by patch and the IPO turns out well if the number of subscriptions collected overcomes a minimum threshold (choosed by the user). We program two kind of movements: linear and random. While in the first case we are sure that the seller will meet every potential subscriber, in the second he moves by a fixed number of steps, which are linked to the seller rationality. The more he is rational, the more patches he will visit, because the more likely he will achieve the threshold.
At the end of each IPO the number of subscriptions depends on many elements: for instance the size of the world, the informative heritage of each potential subscriber, the threshold, the structure of costs and so on.
In the first IPO the "non-informated" patches (green) always subscribe, the "informated" (blue) subscribe if and only if the proposed price is less than the fair one and the "random" (yellow) acts without any logic.
From the second IPO the seller proposes a new price on the basis of the trade off between two elements: the achievement of the threshold (that makes the IPO profitable for the originator) and the profit/loss profile of the seller.
While "random" and "informated" patches mantain their behaviour after the first round the non-informated ones change it on the basis of the previous IPOs. If they got a loss and the new price is higher than the previous one, they don't subscribe in the following IPO. It may seem a simple way to evolve but we'd like to underline that this involve all the path of the previous IPOs and the previous adjustments.
By the interaction between this evolution mechanism and the seller behaviour we can find the price dynamic and study if the system will converge to an equilibrium.


Start the simulation by clicking "setup".
Then, after clicking "go", the seller begins the first IPO, moving subscriber by subscriber. When he arrives at the end of the first IPO he returns to the starting point and he begins a new IPO, with a new price.


i) "setup": it resets the world. A new simulation can be started and new parameters can be chosen by the user. [quick choice: "S"]

ii) "go": it starts the first IPO and runs the following ones, as soon as the user decide to stop the simulation, by pressing a second time this button. Notice that this is a perpetuous command. [quick choice: "G"]

iii) follow issuer: it modifies the perspective of the world. The observer's vantage point is behind and above the issuer. [quick choice: "F"]

iv) watch issuer: it puts a spotlight on the issuer. [quick choice: "W"]

v) reset perspective: it reset the perspective to the default one. [quick choice: "R"]

Note: we suggest you to modify the sliders before launching the simulation in order to avoid computational problems.


i) "informated": it sets the percentage of "informated" subscribers in the world (from 0 to 100%);

ii) "uninformated": it sets the percentage of "informated" subscribers in the world. Notice that you have to consider a constraint, in this choosing problem: the sum of (i) and (ii) has to be equal or lower than 100, and of course the residuals are the random subscribers.

iii) "subscription-threshold": it's the threshold necessary to make the IPO profitable. If the number of subscriptions is below that boundary the IPO doesn't come to a good end. Notice that the range of this slider is from 50% to 90%, and that a lower or upper level doesn't make any sense.

iv) "box-size": it allows you to change the world size and it ranges from 0 to 9.

v) "seller-maximum-loss": it's the percentage (calculated on the fair price) that represents the maximum loss the seller is willing to bear. There is a difference between "seller-maximum-loss" and "subscriptions-threshold": the first one is driven by the necessity to avoid the underselling of shares; the second one is due to the fixed costs of the IPO and its profitability.

vi) "seller-learning-speed": you can choose the level of learning ability of the seller to take informations from the behaviour of the subscrivers. The higher that level the quicker the price is adjusted.


i) "Random subscribers": it shows how many random patches have been generated. Notice that it is a number, not a percentage. So it is the number of yellow patches in the world.

ii) "Informated subscribers": it is usefull to check if the percentages choosen by the user are respected in the generation of the patches. Number of blue patches.

iii) "Uninformated subscribers": it is usefull to check if the percentages choosen by the user are respected in the generation of the patches. Number of green patches.

vi) "IPO price": it shows the current IPO price, of course below 100 in the case of underpricing and over 100 in the case of overpricing.

v) "# subscriptions": it shows the amount of subscriptions that have been collected by the seller during the current IPO round.

vi) "information ratio": it is the result of the following operation
ratio = informated / uninformated
The higher this ratio the higher is the number of potential subscribers that know the fair price of the stock.


i) linear? : when it is setted on "on" the seller follow a linear path to visit every potential subscriber. Otherwise the seller follow a random path, and we're not sure he will visit every potential subscriber: it depends on its rationality.


i) "IPO's price": it shows a linear graph in which we can find the evolution of IPO's price (red line) and the horizontal black line represents the fair price of each IPO (100)

ii) "IPO's subscriptions": it's a bar graph of subscriptions. Each bar represents the sum of the subscriptions for one IPO. The bar becomes higher subscription by subscription.


The first price is random so we can classify three different cases:
i) starting point deeply overpriced;
ii) starting point near the fair price;
iii) starting point deeply underpriced.
On the basis on how the user set the model the result of the simulation will be different. Let's notice that the (i) path is expected to be different from (ii) path. In particular we expect that in the first case the price will decrease and perhaps stabilize at a particular level in the underpricing area. In the second case, it is not necessary! The price might increase a bit or stay at the initial level, on the basis of the evolution mechanism of the seller.

Notice that our simulation program is quite heavy from the computational point of view. This is due to the fact that the bar plotting is quite hard to represent, because at each step of the seller we have to verify if the potential subscriber accepted and in the positive case we have to increment the bar. After each IPO we have to built another bar. Another thing that can hype up the computational weight is the fact that we used a vector and that this list is incremented by one element at each IPO. Moreover in the code there are a lot of "if" and "ifelse" elements, because we have to arrange different situations, like for example a smaller world, the evolution mechanism and so on.

Notice that, also if we didn't program exactly for this specific task, our simulation program can be seen also in 3D, if we click on the three D button on the top right of the world. It opens another window and by clicking on the world we can change the orientation and we see the seller in 3D.


i) Does the size of the world affect underpricing? In economic words: does the number of potential subscribers affect the underpricing? Ceteris paribus try different size of the world and discover if this lead to an equilibrium (or not) and if there is an underpricing (or not).

ii) Do "random subscribers" affect underpricing? In economic words: "noisy" investors, that don't seem to follow a particular logic in their choice, lead to an equilibrium or not? Try to put in the simultation 100% "random subscribers" and verify what it happens. Try out other percentages and control the result of the simulation.

iii) Does the "information ratio" affect underpricing? In economic words: a higher number of informated subscribers, which participate to the IPO only in case of underpricing, affects the level of prices? Let's try to set different levels of "information ratio" (for instance below 1, over 1 or exactly 1), by modifying the percentage of "informated subscribers" and "uninformated subscribers".

iv) Does the level of the threshold affect the underpricing? In economic words: the level under which the IPO's is not effective is an important feature to describe the convergence to underpricing (or the not convergence)? Ceteris paribus try to run the simulations by changing the level of the threshold.

v) Does the path followed by the seller affect the underpricing? In economic words: the fact that the seller doesn't visit every potential subscriber can affect the level of IPO's prices? Ceteris paribus try to run the simulations by changing only the path followed by the issuer (linear - random).

vi) What kind of effect do we have if we vary the "seller-learning-speed"? And how about the "seller-maximum-loss"?

Notice: different combinations of the changes we suggested can be done and of course can be tested. The higher the number of tested couples of changes (or more than couple) the higher will be the knowledge of the phenomenon.


The model could be extended by making it more complex and near to reality. For instance:
- we could introduce an interaction between turtles making them exchange money so they borrow for a specific reason with an individual budget constraint;
- we could introduce other categories of potential subscribers, with another evolution mechanism;
- we could allow subscribers to buy more than one asset;
- we could introduce one more (or more than one) turtle(s) with another evolution mechanism: the comparison between the two or more issuer evolution mechanism can lead to a major comprehension of the problem.

From a graphical point of view the model can be programmed to be run exactly in 3D (our program is a spurius 3D). We'd like to notice that perhaps if we program in Starlogo or using other methods we can avoid computational problems.


In our knowledge there aren't Netlogo simulations related to this particular topic.


We started from the Rock's model, that have been developped to explain the empirical evidence of IPO's underpricing, under strict assumptions. We tried to create our own assumptions and two evolution mechanism, in order to find out if the underpricing is obtained by a simulation in Netlogo.

Rock K., 1986. Why new issues are underpriced. Journal of Financial Economics 15, pp. 187212)