Banking Cash Flow

No preview image

1 collaborator

Default-person Daud Mahmud (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 6.3.0 • Viewed 138 times • Downloaded 11 times • Run 0 times
Download the 'Banking Cash Flow' modelDownload this modelEmbed this model

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:

  1. Customer counts and cash flow trend changes at the 120-month (10 year) and 240-month (20 year) anniversaries of banks operations.

  2. 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.

  1. Customer count user input at bank startup, at the start of the recession and at the start of growth period.

  2. Rate of the increase and decrease of customer counts e.g., step increase/decrease (current model), logistic increase or decrease etc.

  3. 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.

  4. 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

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

;;
;; 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.