Our Implementations
Static Implementation
​
The Eisenberg-Noe model inherently considers a static model. This means that all payments are made at one fixed instant. Our initial MATLAB implementations considered this static model.
Dynamic Implementation
To implement a dynamic model, we considered a discrete time element. In this case, banks break up their obligations into pieces, so that they are paying off debts over discrete time periods. A realistic interpretation of this scenario is the breakdown of liabilities and cash flows at fiscal quarters in a year or even before cutoff at the end of every business day.
Adding a discrete time component requires running the Eisenberg-Noe model sequentially. At each time t, banks have operating cash flow e(t) and liabilities L(t). In this sense, banks accrue liabilities and cash flows over time. The first period (t=1) is equivalent to running the Eisenberg-Noe static model using the first period’s liability matrix, L(1), and the first period’s cash flow, e(1). Then, at the next period (t=2), positive end wealths from the previous period roll over to the next period, giving those banks more cash on hand to satisfy any new liabilities they incur in that next period. Unpaid liabilities from the previous period roll over to liabilities in the next period.
This scenario manifests itself in the following equations:
​
​
where p_i(t+1) is bank i’s payments in the (t+1)th period. Furthermore, the relative liabilities matrix is updated for the (t+1)th period as follows:
​
​
​
Considering the model in terms of banks’ wealths, rather than payments, lends itself to the following equation representing bank i’s wealth at time period (t+1):
​
The static representation of the dynamic model is:
​
​
where L(t) and e(t) represent the liabilities matrix and cash flow vector for time period t, and L_s and e_s represent the liabilities matrix and cash flow vector in the static implementation.