Banking Cash Flow
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
(a general understanding of what the model is trying to show or explain)
This simple model explains the customer cash flow of a small community bank for 30 years since its inception. The Bank provides banking services (checking, savings accounts etc.), consumer loans (cars, home improvement etc.) and home mortgage loans. The bank sees a steady growth in cash flow through the first 10 years. At the 10-year mark the economy goes through a 10-year recession and the bank loses customers. The bank survives through the continued support of the investors and productivity increases. The economy goes through a boom at the 20-year mark fueling the banks recovery of lost customers and further growth.
HOW IT WORKS
(what rules the agents use to create the overall behavior of the model)
There are 5 types of agents: the bank, banking customers, mortgage customers, loan customers and investors. Each investor and customer interact with the bank. The bank cash flow from banking services, consumer loans and home mortgages accumulate cash at a consistent level through the 30-year operations shown in the model.
HOW TO USE IT
(how to use the model, including a description of each of the items in the Interface tab)
The interface tab at its center shows a physical view of the model as a square. The square shows 1001 of its initial stakeholders in a 16 X 16 square view. The number of stakeholders in the view changes as their number changes. The dimensions of the square can be seen by pressing the settings button on the interface tab. The bank is a white building in an assigned location. The other 4 bank stakeholders are shown in a human shape at a random location with a color assigned to each stakeholder type. Green is assigned to an investor, blue to a mortgage customer, orange to a loan customer and magenta to a banking customer.
The model has a setup mode button and a go mode button to the left of the square. The model user needs to click on the setup button first. After the setup has completed, the user needs to click on the go button to run the model.
The investment at the inception of the bank is shown in the first top three buttons. The investors have a choice to invest in all 3 investment pools, 2 of them or just one not exceeding the investments needed. The bank reserves are shown in 3 buttons below the investment funds. The reserves are also provided by the investors as an investment into the bank.
The model runs for 360 months showing the accumulated cash every month. There are 3 buttons showing the incoming cash flow from mortgages, loans, and banking services fees respectively. The cash flow buttons are to the right of the square followed by a row of 3 buttons that show the number of mortgage, loan, and banking customers.
The buttons on the right of the square are followed by an accumulated cash flow graph by month for each one of the three revenue streams i.e., mortgage, loan and banking. As the model run completes, all 360 months are shown as a trend line in blue, orange, and magenta colors respectively.
To the left of the cash flow graph and below the quadrant is a timeline of number of customers over the 360 months from inception through the recession and growth periods.
THINGS TO NOTICE
(suggested things for the user to notice while running the model)
Some of things to notice as the model runs are the visuals in the interface tab. They are:
Customer counts and cash flow trend changes at the 120-month (10 year) and 240-month (20 year) anniversaries of banks operations.
The cash flow graph shows a linear increase since the inception of the bank, then a linear decline followed by a stronger linear increase in the last 10 years.
THINGS TO TRY
(suggested things for the user to try to do (move sliders, switches, etc.) with the model)
This is a simple Netlogo model. It runs as described without any opportunity for the user to provide an input. The next few upgradees of the model will allow users the option to simulate different cash flow scenarios through different what if scenarios.
EXTENDING THE MODEL
(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)
The following are proposed upgrades that can considered to allow users to do what if scenario testing.
Customer count user input at bank startup, at the start of the recession and at the start of growth period.
Rate of the increase and decrease of customer counts e.g., step increase/decrease (current model), logistic increase or decrease etc.
Customer satisfaction measurement and its impact on the bank business allowing users to input customer satisfaction and magnitude of positive and negative revenue impact from it.
P & L statement of the bank and distribution of income to the investors allowing users to input annual return and bank services fees.
CREDITS AND REFERENCES
(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)
This model and its documentation are published at the Netlogo Modelling Commons at http://modellingcommons.org/. Access can be requested by providing a name, email and purpose of request to ststsi@outlook.com.
In addition to the Netlogo documentation which is very well done, the book "Agent-Based Modelling in Economics" by Lynne Hamill and Nigel Gilbert was a source of help to the author of this model.
Comments and Questions
;; ;; Global Variables ;; globals [ mortgage-loan-amount mloan-capital mloan-reserve mloans-count consumer-loan-amount cloan-capital cloan-reserve cloans-count mortgage-loan-interest consumer-loan-interest mortgage-loan-duration consumer-loan-duration mloan-payment mloan-payments-received cloan-payment cloan-payments-received depserv-capital depserv-reserve banking-count depserv-payment depserv-payments-received ] ; to setup clear-all setup-turtles setup-loans reset-ticks end ;; ;; ;; to setup-turtles clear-all create-turtles 1 [ set shape "house" set color white set size 4 ] create-turtles 868 [ set shape "person" set color magenta ; magenta color turtle is a bank checking account holder or depositor setxy random-xcor random-ycor ] create-turtles 100 [ set shape "person" set color lime ; lime (light green) turtle is a bank investor setxy random-xcor random-ycor ] create-turtles 100 [ set shape "person" set color orange ; orange turtle is a bank consumer loan (car, home improvement etc.) customer setxy random-xcor random-ycor ] create-turtles 32 [ set shape "person" set color blue ; blue turtle is a bank home mortgage customer setxy random-xcor random-ycor ] end ;; ;; Mortgage Loans are for $500,000 for 30 years with 7% interest/year ;; Consumer Loans are for $30,000 for 6 years with 5% interest/year ;; to setup-loans set mortgage-loan-amount 500000 set mortgage-loan-interest .07 set mortgage-loan-duration 30 ;; 30 years set consumer-loan-amount 25000 set consumer-loan-interest .05 set consumer-loan-duration 6 ;; 6 years, when 1 loan is paid another one is initiated set depserv-payments-received 40 ;; recurring payments 30 years for 5000 customers end ;; ;; 10% of the households have enough ongoing income & savings to invest $260000X100=26,000,000 in setting up a local community bank that provides depositer& loan services to the community ;; to run-services-deptt ;; ;; 20 million investment made in mortgage loans, 20% or $4 million kept in reserve, 16 million invested in 32 home loans 0f $500,000 each ;; set mloan-capital 16000000 set mloan-reserve 4000000 ;; ;; Collect monthly payments on 32 mortgages of $3,326.51 that includes principal & interest for 360 months or 30 years at 7% ;; set mloan-payments-received (mloan-payments-received + mloan-payment) ;; ;; 4 million investment made in consumer loans, 20% or $1 million kept in reserve, 3 million invested in 100 consumer (car, home improvement etc.) loans of 30,000 each ;; set cloan-capital 1000000 set cloan-reserve 1000000 set cloan-payments-received (cloan-payments-received + cloan-payment) ;; ;; Collect monthly payments on 100 consumer loans that includes principal & interest for 72 months or 6 years, as each loan is paid and new loan is made and it continues for 30 ;; years. Making the loan total 500 ;; set cloan-payments-received (cloan-payments-received + cloan-payment) ;; as soon as a loan is paid another new loan is authorized, thus consumers loans exist for 30 years the life of the model ;; ;; 1 million investment made in depositer services, 1 million kept in reserve ;; set depserv-capital 1000000 set depserv-reserve 1000000 ;; Collect monthly depositer services (monthly checking account servicess, overdraft, over draft protection fees & loan late payment fees) from 768 customers at $40 average each per month ;; for 30 years ;; set depserv-payments-received (depserv-payments-received + depserv-payment) ;; monthly for 30 years end to go loop [ if ticks = 0 [collect-lpayments0] if ticks = 120 [collect-lpayments1] if ticks = 240 [collect-lpayments2] if ticks >= 360 [STOP] run-services-deptt update-plot1 update-plot2 tick-advance 1 ] end ; to update-plot1 set-current-plot "Customer Payment Receipts" set-current-plot-pen "mortgage payments" plot (mloan-payments-received) set-current-plot-pen "loan payments" plot (cloan-payments-received) set-current-plot-pen "depositor payments" plot (depserv-payments-received) end ; to update-plot2 set-current-plot "Number of Customers" set-current-plot-pen "mortgage customers" plot (mloans-count) set-current-plot-pen "loan customers" plot (cloans-count) set-current-plot-pen "banking customers" plot (banking-count) end ; ;37.5 % of customers are lost because of the great recession i.e 12 mortgages, 38 consumer loans 5% and X depositors lost because of the great recession ;24 mortgages, 76 consumer loans, 77 depositors gained in the great recovery ; to collect-lpayments0 set mloan-payment 106448.40 ; 32 mloans monthly payments collected set mloans-count 32 set cloan-payment 48314.80 ; 100 cloans monthly payments collected set cloans-count 100 set depserv-payment 41664.00 ; 868 depositer services fees collected set banking-count 868 end ; to collect-lpayments1 set mloan-payment 79836.30 ;24 mloans monthly payments collected (great recession) set mloans-count 24 set cloan-payment 29955.17 ; 62 cloans monthly payments collected (great recession); set cloans-count 62 set depserv-payment 27776.00 ;614 depositor services fees collected ( great recession); set banking-count 694 ; if ticks = 120 [ clear-turtles create-turtles 1 [ set shape "house" set color white set size 4 ] create-turtles 868 [ set shape "person" set color magenta ; magenta color turtle is a bank checking account holder or depositor setxy random-xcor random-ycor ] create-turtles 100 [ set shape "person" set color lime ; lime (light green) turtle is a bank investor setxy random-xcor random-ycor ] create-turtles 62 [ set shape "person" set color orange ; orange turtle is a bank consumer loan (car, home improvement etc.) customer setxy random-xcor random-ycor ] create-turtles 24 [ set shape "person" set color blue ; blue turtle is a bank home mortgage customer setxy random-xcor random-ycor ] ] end ; to collect-lpayments2 set mloan-payment 133060.50 ; 40 mloans monthly payments collected (great recovery) set mloans-count 40 set cloan-payment 66674.42 ; 138 cloans monthly payments collected (great recovery); set cloans-count 138 set depserv-payment 41664.00 ; 922 depositor services fees collected (great recovery); set banking-count 1042 clear-turtles create-turtles 1 [ set shape "house" set color white set size 4 ] create-turtles 922 [ set shape "person" set color magenta ; magenta color turtle is a bank checking account holder or depositor setxy random-xcor random-ycor ] create-turtles 100 [ set shape "person" set color lime ; lime (light green) turtle is a bank investor setxy random-xcor random-ycor ] create-turtles 138 [ set shape "person" set color orange ; orange turtle is a bank consumer loan (car, home improvement etc.) customer setxy random-xcor random-ycor ] create-turtles 40 [ set shape "person" set color blue ; blue turtle is a bank home mortgage customer setxy random-xcor random-ycor ] end
There is only one version of this model, created almost 2 years ago by Daud Mahmud.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.