Climate clubs and side-payments
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
For a description of the model, see manuscript entitled: Side-payments: An effective instrument for building climate clubs? and the accompanying technical appendix.
The input data file "Output_GCP.txt" must be stored in the same folder as the model.
The agents in the model are patches, which represent countries. Enthusiasts are green, non-members are black, and members that received a side-payment to enter are red. Countries whose names are written in black make net side-payments out. Which countries are enthusiasts is chosen in the Interface.
PATCHES-OWN Emissions and GDP are shares of the global totals. Emissions-r and gdp-r are the the empirical data entered. Due to missing data, these sum to .97 and .98. The attributes gdp and emissions sum to 1.
Damage costs, abatement costs, club benefits, and payoff are measured in percentage of own gdp.
Bribes are measured as a percentage of ggp. Remember to divide by gdp to obtain a country's expenditure.
Damage costs and club benefits are assumed to be proportional to GDP. Damage costs are a function of the emissions of non-members Abatement costs are set to 1% of gdp for all.
CALCULATING INDIVIDUAL VULNERABILITIES AND DAMAGE COSTS When vulnerability-index is on, damage costs are differentiated based on nd-gain scores. Global damages always sum to globalMDC. When vulnerability-weight is 1, vulnerability is a country's nd-gain score as a share of the gdp-weigthed average nd-gain score. If the weight is 2, the difference is doubled, so that a score of 1.1 becomes 1.2. Some countries might get negative mdc, e.g., Norway when the weight is 4. Should probably avoid such values, or check that the model can handle negative mdc. When weight is 1, the EU followed by the USA have the largest absolute damages. With weight 2, it is China.
SIDE-PAYMENTS Costs of side payments are distributed according to wtp, i.e., so it's a function of vulnerability and gdp. See Barrett 2001. (unless cost-sharing-gdp is chosen).
-Option 'equity' allows side payments only where the recipient has lower gdp/capita than the donor. -Option "only-enthusiasts-pay" specifies that only enthusiasts share the cost of side-payments.
HOW IT WORKS
(what rules the agents use to create the overall behavior of the model)
HOW TO USE IT
(how to use the model, including a description of each of the items in the Interface tab)
THINGS TO NOTICE
(suggested things for the user to notice while running the model)
THINGS TO TRY
(suggested things for the user to try to do (move sliders, switches, etc.) with the model)
EXTENDING THE MODEL
(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)
NETLOGO FEATURES
(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)
RELATED MODELS
(models in the NetLogo Models Library and elsewhere which are of related interest)
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)
Comments and Questions
globals [patch-data countries donors new-volunteers new-bribees new-exits weightedavgnd-gain gross-bribe enthusiast-left] patches-own [enthusiast member benefit payoff emissions emissions-r gdp gdp-r nd-gain vulnerability mdc population WTA WTB WTB/WTA WTB-WTA bribe] to setup ca reset-ticks resize-world 0 14 0 9 use-data set countries patches with [emissions-r > 0] ; ignores the patches with negative emissions, and empty patches. ask patches with [emissions-r <= 0][set pcolor white] set-enthusiasm ask countries [ set gdp gdp-r / sum [gdp-r] of countries ; these are adjusted values so that they sum to one. gdp-r sums to .98 due to missing data set emissions emissions-r / sum [emissions-r] of countries ] who-pays set-damage-costs ask countries with [enthusiast = 1][ set member 1 set pcolor green ] ask countries with [enthusiast = 0] [ set member 0 ] end to use-data file-open "Output_GCP.txt" ; THIS DATA FILE MUST BE STORED IN THE SAME FOLDER AS THE MODEL set patch-data [] while [not file-at-end?] [ set patch-data sentence patch-data (list (list file-read file-read file-read file-read file-read file-read file-read)) ] file-close foreach patch-data [ask patch first ? item 1 ? [set plabel item 2 ? set emissions-r item 3 ? set gdp-r item 4 ? set nd-gain item 5 ? set population item 6 ?]] end to set-damage-costs ifelse vulnerability-index = true [ set weightedavgnd-gain (sum [nd-gain * (gdp / mean [gdp] of countries)] of countries) / count countries ; this calculates the nd-gain avg weighted by gdp for use below ask countries[ ; this calculates vulnerability and mdc so that global damages sum to globalMDC. based on above avg nd-gain which is weighed by gdp set vulnerability (nd-gain + (vulnerability-weight - 1) * (nd-gain - weightedavgnd-gain)) / weightedavgnd-gain set mdc globalMDC * vulnerability ] ][ ask countries [ set mdc globalMDC ] ] end to who-pays ; determinse whether only enthusiasts or all members can contribute to side-payments ifelse only-enthusiasts-pay = false[ set donors countries ][ set donors countries with [enthusiast = 1] ] end to go ; THE OVERARCHING PROCEDURE. BELOW ARE SUB-PROCEDURES. tick if count countries with [member = 0] > 0 [ join-or-leave ; this loops until no more volunteers want to join (volunteering is rare in this model) ] if new-volunteers = 0 and count countries with [member = 1] > 0 and side-payment = true [ ; each negotiation stage is a tick. side payments will only be offered when no more states want to join voluntarily side-payments ] if new-volunteers = 0 and new-bribees = 0 [ ; once no more countries can be bribed into the club, enthusiasts consider leaving enthusiasts-leave ] ask countries [ calculate-payoff ] end to join-or-leave ; This procedure checks whether anyone has incentive for unilater action (rarely the case) set new-volunteers 0 ; this is a counter to determine when to enter next stage ask countries with [member = 0][ calculate-benefit ] ask max-one-of countries with [member = 0][benefit - 1][ if benefit > 1[ ; measured in % of gdp set member 1 set pcolor blue set new-volunteers new-volunteers + 1 ] ] end to side-payments ;This is the side-payment procecure set new-bribees 0 if count countries with [member = 0 ] = 0 [stop] ask countries with [member = 0][ ; it is repeated for every non-member in random order calculate-benefit set WTA (1 - benefit) * gdp ; WTA is compensation needed to join, measured in aboslute terms (% of ggp) calculate-WTB ; this calls a sub-procedure that calculates each potential donor's benefit if a given non-member joins. ifelse equity = false[ ; the procedure differs depending on whether the "equity" option is chosen set WTB/WTA sum [WTB * gdp] of donors with [member = 1] / WTA ; ratio between club WTB and entrant WTA. can be moved to ask max-one-of to speed up the model set WTB-WTA sum [WTB * gdp] of donors with [member = 1] - WTA ; difference between WTA and club WTB, measured in % of ggp ][ set WTB/WTA sum [WTB * gdp] of donors with [member = 1 and (gdp / population) > [gdp / population] of myself] / WTA set WTB-WTA sum [WTB * gdp] of donors with [member = 1 and (gdp / population) > [gdp / population] of myself] - WTA ] ] ask donors [set WTB 0] ; reset needed for technical reasons ask max-one-of countries with [member = 0] [WTB-WTA][ ; the entrant giving the largest net benefits enters first if WTB/WTA > 1 [ ; it will only enter if both it and the club can benefit from it. this could be expressed in terms of WTB-WTA too. calculate-WTB ifelse equity = false [ ; the procedure differs depending on whether the "equity" option is chosen ask donors with [member = 1][ set bribe bribe - WTB * gdp / [WTB/WTA] of myself ; donors share the cost according to their benefit from expansion (See Barrett 2001) ] ; "bribe" is negative for those who pay. It measures accumulated bribes, in absolute terms (% of GGP) ][ let members-richer-than-entrant donors with [member = 1 and (gdp / population) > [gdp / population] of myself] ; if "equity" is on, only the members richer than the entrant share the cost ask members-richer-than-entrant[ set bribe bribe - WTB * gdp / [WTB/WTA] of myself ] ; end most likely entrant asks members ] set member 1 set pcolor orange set bribe bribe + WTA ; "bribe" is negative for those who pay. It measures accumulated bribes, in absolute terms (% of GGP) print WTA * 755.9 ; to convert from % of GGP to US$, multiply by 755.9, as GGP 2013 in current US$ was 75.59 trillion (worldbank.org) set gross-bribe gross-bribe + WTA * 755.9 ; this is a checker set new-bribees new-bribees + 1 ] ] ; end if pareto improvements are possible ask countries with [bribe < 0] ; actors who make net side-payments have their names displayed in black [set plabel-color 0] end to enthusiasts-leave ask countries with [enthusiast = 1][ calculate-payoff if payoff < (- mdc) [ ; payoff in the non cooperative outcome set member 0 set pcolor grey set enthusiast 0 set enthusiast-left 1 ; enthusiasts leave the club ] ] ask countries with [pcolor = orange][ calculate-benefit if benefit < 1 [ set pcolor red ; those who require continous bribes are red ] ] if enthusiast-left = 1 [ ; if enthusiasts leave, those who no longer benefit, leave too. New negotiations will start if there are remaining enthusiasts. ask countries with [member = 1 and enthusiast = 0] [ calculate-benefit if benefit < 1 [ set member 0 set pcolor black ] ] set enthusiast-left 0 ask countries [set bribe 0] ; bribe is reset to allow new negotiations to start. ] end to calculate-benefit ; benefit is measured in % of gdp set benefit mdc * emissions end to calculate-WTB ; WTB is measured in % of gdp, so must often be multiplied by gdp when used ask donors with [member = 1][ ; the potential entrant asks members set WTB mdc * [emissions] of myself ] end to calculate-payoff ; measured in % of gdp. Payoff is normalized to be (- Damage cost) in the BAU, and (-Club fee) if all countries are club members. ifelse member = 1[ set payoff (- 1) - mdc * (sum [emissions] of countries with [member = 0]) + bribe / gdp][ ; payoff for members set payoff (- mdc) * sum [emissions] of countries with [member = 0] ; payoff for non-members ] end to set-enthusiasm ask patches with [plabel = "China"][set enthusiast china-enthusiast] ask patches with [plabel = "United States"][set enthusiast usa-enthusiast] ask patches with [plabel = "European Union"][set enthusiast eu-enthusiast] ask patches with [plabel = "Russian Federation"][set enthusiast russia-enthusiast] ask patches with [plabel = "India"][set enthusiast india-enthusiast] ask patches with [plabel = "Brazil"][set enthusiast brazil-enthusiast] ask patches with [plabel = "Japan"][set enthusiast japan-enthusiast] ask patches with [plabel = "Indonesia"][set enthusiast indonesia-enthusiast] ask patches with [plabel = "Australia"][set enthusiast australia-enthusiast] ask patches with [plabel = "Iran, Islamic Rep."][set enthusiast iran-enthusiast] ask patches with [plabel = "Canada"][set enthusiast canada-enthusiast] ask patches with [plabel = "Mexico"][set enthusiast mexico-enthusiast] ask patches with [plabel = "Korea, Rep."][set enthusiast korea-enthusiast] ask patches with [plabel = "South Africa"][set enthusiast sa-enthusiast] end
There is only one version of this model, created about 10 years ago by Author Author.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Climate clubs and side-payments.png | preview | Preview for 'Climate clubs and side-payments' | about 10 years ago, by Author Author | Download |
Output_GCP.txt | data | Input data that must be saved in the same folder as the model. | about 10 years ago, by Author Author | Download |
This model does not have any ancestors.
This model does not have any descendants.
Author Author
Please note:
The file named "Output_GCP.txt" must be stored in the same folder as the model. It contains input data. The file can be downloaded under the "Files" tab.
Posted about 10 years ago