An attempt to evaluate the minimum wage

No preview image

This model is seeking new collaborators — would you please help?

1 collaborator

Tags

economics 

Tagged by Ali Gökhan Karabilgin almost 4 years ago

Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.2.0 • Viewed 307 times • Downloaded 28 times • Run 0 times
Download the 'An attempt to evaluate the minimum wage' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


Comments and Questions

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

Click to Run Model

globals                    [
                           seed-used
                           ]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;     DEFINE AGENTS IN THE MODEL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

breed                      [firms firm]
breed                      [workers worker]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;     AGENT'S ASSETS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



;;;;;;;;;;;;;;;;;;;;;;     FIRM'S ASSETS

firms-own                  [
                           f-production
                           technology
                           f-employees
                           f-capital
                           f-vacancy
                           f-wage-offer
                           f-init-tech
                           alpha
                           intensity
                           f-labor-cost
                           f-capital-cost
                           f-total-cost
                           f-unit-cost
                           f-unit-price
                           markup
                           f-inventory
                           f-revenue
                           f-profit
                           x-position
                           y-position
                           min-wage-inc
                           ]

workers-own                [
                           employed
                           w-pot-firms
                           w-firm
                           w-wage
                           income
                           mpc
                           w-savings
                           w-stores
                           w-stores-l
                           gini
                           wealth
                           ]


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;     SETUP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to                         setup
                           clear-all
                           start-firms           number-of-firms
                           start-workers         number-of-workers
                           initialize-variables
                           firms-produce
                           labor-market-opens

                           reset-ticks
end 

to                         initialize-variables

                           ask firms
                           [
                           set f-production      1
                           set technology        1
                           set f-employees       no-turtles
                           set alpha             random-float 1
                           set intensity         2 * ((alpha / (1 - alpha)) ^ 2)
                           set f-init-tech       1 + random-float 1
                           set markup            1 + random-float 1
                           set f-capital         100
                           set f-vacancy         0
                           set f-wage-offer      min-wage
                           set f-labor-cost      0
                           set f-capital-cost    0
                           set f-inventory       0
                           set f-revenue         0
                           set f-profit          0
                           set min-wage-inc      0
                           ]

                           ask workers
                           [
                           set employed          false
                           set w-pot-firms       no-turtles
                           set w-firm            nobody
                           set mpc               0
                           set income            0
                           set w-savings         0
                           set gini              0
                           set w-stores          no-turtles
                           set w-stores-l        no-turtles
                           set wealth            0
                           ]
end 

to                         go
                           if (ticks >= 500
                           )
                           [stop]

                           goods-market
                           labor-market

                           ask firms
                           [
                           set technology        (f-init-tech) * ( (1 + tech-progress) ^ (ln (1 + ticks) ) )
                           if (ticks >= 100) [set min-wage-inc min-wage-increase]
                           ]
                           tick
end 


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;     MARKET'S ACTIONS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to                         labor-market
                           labor-market-opens
end 

to                         goods-market
                           firms-produce
                           workers-income
                           firms-revenue
                           firing-steps
end 


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;     AGENT'S ACTIONS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;;;;;;;;;;;;;;;;;;;;;;     LABOR MARKET

to                         labor-market-opens

                           ask firms
                           [
                           set f-vacancy         12
                           ]

                           let pot-firms         firms with [f-vacancy > 0]

                           ask workers           with [not employed]
                           [
                           ifelse (not empty?    [w-firm] of w-pot-firms)
                           [set w-pot-firms      (turtle-set w-firm n-of (3 - 1 ) pot-firms)]
                           [set w-pot-firms      n-of (min (list 3 count pot-firms)) pot-firms]
                           ]

                           hiring-step 2

                           ask workers           with [not employed][
                           set w-wage            0
                           rt random             360
                           fd (random 4) + 1
                           ]


                           ask firms
                           [
                           set label count       f-employees
                           ]
end 


;;;;;;;;;;;;;;;;;;;;;;     HIRING

to                         hiring-step [trials]

                           while [trials > 0]
                           [
                           ask workers          with [not employed and any? w-pot-firms]
                           [
                           move-to              max-one-of w-pot-firms [f-wage-offer]
                           ]
                           ask firms            with [f-vacancy > 0 ]
                           [
                           let pot-workers      workers-here with [not employed]
                           let quantity         count pot-workers
                           let workers-hired    n-of (min list quantity f-vacancy) pot-workers
                           let wage-employees   f-wage-offer
                           set f-employees      (turtle-set f-employees workers-hired)
                           set f-vacancy        f-vacancy - (count workers-hired)



                           ask f-employees      with [not employed]
                           [
                           set color            white
                           set employed         true
                           set w-wage           wage-employees
                           set w-firm           firms-here
                           set w-pot-firms      no-turtles
                           ]
                           ]
                           set trials trials - 1
                           ask workers with [not employed and any? w-pot-firms][
                           set w-pot-firms min-n-of min (list trials count w-pot-firms) w-pot-firms [f-wage-offer]
                           ]
                           ]
end 



;;;;;;;;;;;;;;;;;;;;;;     FIRM'S PRODUCTION

to                         firms-produce

                           ask firms
                           [

                           set f-production technology  * ((count f-employees) ^ (1 - alpha)) * (f-capital ^ (alpha))
                           set f-capital-cost f-capital * 1
                           set f-total-cost f-labor-cost + f-capital-cost

                           set f-wage-offer      min-wage + min-wage-inc + intensity
                           set f-labor-cost     (count f-employees) * f-wage-offer
                           if f-production > 0 [
                           set f-unit-cost  f-total-cost / f-production
                           ]
                           if f-production = 0 [
                           set f-unit-cost 0
                           ]

                           set f-unit-price f-unit-cost * markup

                           ]
end 

to                         workers-income
                           ask firms
                           [
                           let wage-stipend f-wage-offer
                           ask f-employees
                           [
                           set w-wage wage-stipend
                           ]
                           ]
                           ask workers[

                           ifelse w-wage >= (mean [w-wage] of workers)
                                  [set mpc (mean [w-wage] of workers) / w-wage]
                                  [set mpc (w-wage / (mean [w-wage] of workers))]
                           set income w-wage
                           let income-for-cons mpc * income

                           set w-savings income - income-for-cons


                           ifelse (any? turtle-set w-stores-l)
                           [
                           let id-store [who] of w-stores-l
                           set w-stores (turtle-set w-stores-l n-of ( min list (x2 - 1) count firms with [who != id-store] ) firms with [who != id-store])
                           ]
                           [
                           set w-stores n-of ( min list x2 count firms ) firms
                           ]
                           set w-stores-l max-one-of w-stores [f-production]
                           if (count w-stores != x2) [show (word "Number of my stores " count w-stores " who " who)]
                           buying-steps x2 income-for-cons
                           ]
                           ask workers
                           [
                           set wealth w-savings
                           ]
end 

to                         buying-steps [trials money]

                           while [trials > 0 and money > 0]
                           [
                           let cheapest-store min-one-of w-stores [f-unit-price]
                           let possible-goods-to-buy min list money [f-inventory] of cheapest-store
                           set money money - possible-goods-to-buy
                           ask cheapest-store [
                           set f-inventory f-inventory - possible-goods-to-buy
                           ]
                           ask [patch-here] of cheapest-store [
                           set pcolor blue
                           ]
                           set trials trials - 1
                           set w-stores max-n-of trials w-stores [f-unit-price]
                           ]
end 

to                         firms-revenue

                           ask firms [
                           set f-revenue f-unit-price * (f-production - f-inventory)
                           set f-profit f-revenue - f-total-cost
                           ]
end 

to                         firing-steps
                           ask firms with [f-profit <= 0] [

                           ask f-employees [
                           set employed false
                           ]

                           set f-production 0
                           set f-inventory 0
                           ]
                           ask firms with [f-profit <= 0 ] [die]
end 



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;     VISUALIZATION
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to                         start-firms [#firms]
                           create-firms #firms [
                           set x-position random-pxcor * 0.8
                           set y-position random-pycor * 0.8
                           setxy x-position y-position
                           set color blue
                           set size 2
                           set shape "flag"
                           ]
end 

to                         start-workers [#workers]
                           create-workers #workers [
                           setxy random-pxcor random-pycor
                           set color yellow
                           set size 0.5
                           set shape "person"
  ]
end 

to-report                  all-workers-savings
                           report [w-savings] of workers
end 

There are 2 versions of this model.

Uploaded by When Description Download
Ali Gökhan Karabilgin almost 4 years ago edit Download this version
Ali Gökhan Karabilgin almost 4 years ago Initial upload Download this version

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.