Alice Bobba Elisa Carra

Computer Science and Simulation for Economics

Project work on

"Bank runs."


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.

powered by NetLogo

view/download model file: bank_runs.nlogo


The model represents a simple financial market where investors interact with the banking system and they can both deposit and draw money. In the model there is also a company that receives funds from the bank and it can default with a low probability.
The term "bank run" (also known as a run on the bank) refers to a situation in which a large number of bank customers draw their deposits because they believe the bank is, or might become, insolvent.


The bank in the model is represented by a group of yellow patches located in the centre of the world while investors and company are represented by turtles. The bank is an intermediate between the investors (subjects in financial surplus) and the company (subject in financial deficit). Investors are identical subjects and risk adverse with an initial unitary capital that they deposit in the bank.
Even if identical, investors are divided in two categories:
- passives (green turtles), that deposit/draw money in the bank with low frequency;
- actives (red turtles), that have frequently need of liquidity and execute operations of deposit and draw in continuous way.

Investors move randomly inside the model and when they touch the yellow patches (bank), they can operate in two ways:
- if their liquidity is equal to one, they deposit one;
- if their liquidity is zero, they can choose if draw an unitary amount or not execute operations. The choice between these two behaviours depends on a different
probability assigned to the two categories of investors.

The company, every fixed slot, applies for a loan to the bank; the latter gives it the funding in proportion to the deposit raised. The company can fail randomly with a probability of 0,01%. Furthermore, if the level of bank the deposit goes down a fixed value (0,3 * number_of_investors), the bank requires the restitution of 30% of the total deposit increasing the probability of default of 0,001.
When the company fails, the bank can't recover the financing granted and investors are further divided into informed (orange turtles) and not informed (blue turtles).
The informed ones will go to the bank for drawing the unitary amount deposited reducing the bank liquidity. With the decrease of bank deposits, the news of the default spread among other turtles, that will go to the bank to require the restitution of the unitary amount deposited, causing the default of the bank.


Start the simulation by clicking "Setup". Then, after clicking "Go", the turtles start moving and interacting in the way explained above; they keep on doing so until the "Go" button remains pressed.

Button: Setup
The Setup button resets everything to the beginning values and creates turtles
(investors and company) and patches (banking system).

Button: Go
If clicked, the model starts running.

Slider: number_of_investors
This slider allows you to choose the number of investors you would like to begin the simulation with in a range from 100 to 300.

Slider: portion_passives
This slider allows you to choose the portion of passive investors inside the model. The slider goes from 0.1 to 0.9.

Slider: financing-percentage
With it you can change the portion of funding granted to the company, calculated in percentage of the total bank deposit. This slider goes from 0.1 to 0.5.

Switch: show-liquidity?
This switch activates the possibility of viewing the liquidity amount of each investor.

Monitor: Bank deposit
This monitor shows the amount of deposit collected by the bank. Its initial value is 5 that represents the bank reserve.

Monitor: Loan
With it you can view the total amount of financing granted to the company.

Monitor: default-probability
This monitor shows the probability of the company default. Its initial value is equal to 0.01% and it raises of 0.001 whenever the bank deposit goes below 0.3 * number_of_investors.

Monitor: number-of-informed
With it you can view the number of informed investors about the company default.

Plot: Bank activity
This plot shows the trend of two variables at every tick: bank deposit and loan.

Plot: information diffusion
This plot describes the diffusion of information about the company default.


In this model it's important to notice that the company default is a rare event; when the default happens, the bank run occurs only if the bank has granted the financing at the company. If default happens after 1000 ticks, the system realizes an equilibrium between the amount of deposit collected and funding granted. After the company default, the news of the default rapidly spread but when the bank liquidity goes to 0 some investors remain not informed.


It's interesting to change the number of investors, the portion of passives and financing percentage to simulate different scenarios.


To improve the model we could introduce the company activity that depends on the amount of funding granted by the bank. The final product is bought by the investors of the model. In this way, when the bank requires the restitution of part of the financing granted, the company has further wealth derived from the sales.


F.C. Bagliano, G. Marotta, "Economia monetaria", ed. Il Mulino, 1999