Data from: Local competition promotes hurtful behavior towards unknown others
Data files
Jan 20, 2026 version files 2.83 MB
-
CRSU_rawdata.csv
2.75 MB
-
earnings_by_role.do
1.72 KB
-
Ethics_approval_UvA_2019_EC_20190128040115.pdf
14.43 KB
-
README.md
7.57 KB
-
strategy_class_to90.do
5.43 KB
-
Strategy_Class.csv
24.57 KB
-
strategy_comparison.do
4.18 KB
-
strategy_earnings_bySub.csv
9.85 KB
-
strategy_earnings_bySub.dta
13.87 KB
-
Table2.do
1.56 KB
Abstract
Humans frequently cooperate to achieve benefits unattainable through selfish behavior. Punishment of free-riders is key for sustaining cooperation, but also costly, raising questions about the origins of such behavior. Some evolutionary models suggest that individuals may be willing to hurt unknown others in competitive environments. However, empirical evidence about the effect of the scale of competition on strategies involving hurtful behavior in human groups, such as spite, retaliation for hurting, and punishment of free-riders, is missing. Using a laboratory experiment, we manipulate the scale of competition to investigate its influence on hurtful and helpful behaviors between unknown humans in an indirect reciprocity game. We observe distinct behavioral patterns between local and global competition. When competition is local and thus confined to take place within isolated groups, we find frequent hurting as an expression of spite and retaliation. In contrast, when competition extends globally across several groups, hurting is used for the punishment of free-riders primarily, whereas helping behavior is rewarded, which together promotes cooperation. Thus, while isolated competition fosters inefficient, antisocial behavior, global competition encourages prosociality and cooperation.
[Access this dataset on Dryad https://doi.org/10.5061/dryad.mcvdnckd6]
The raw data for the study is in CRSU_rawdata.csv. The variable definitions are shown at the bottom of this README.txt file.
Information for the strategy classification (one row for each of the 156 subjects) is in Strategy_Class.csv. The variable definitions are shown at the bottom of this README.txt file.
Human subjects ethics committee approval included in Ethics_approval_UvA_2019_EC_20190128040115.pdf
Analysis code:
Data processing and statistical tests use Stata version 19.
Note: The labels period and round are used interchangeably.
Note: Statements to "drop if round>90" can be omitted to conduct analysis for all 100 rounds, as reported in section 5 of the Supplemental Online Materials.
- Table2.do provides the calculations and statistical tests for results shown in Table 2 of the paper. It also calculates the proportion of each action by period for graphing the time series (Figures 2 and 3).
- strategy_class_to90.do creates results to populate the worksheet columns of Strategy_Class.csv and identify the chosen strategies, through action frequencies and individual logit regressions as explained in the Supplemental Online Materials.
- earnings_by_role.do calculates mean earnings by donor (A) and recipient (B) roles, and cumulative earnings, through period 90 for the variables ave_as_A, ave_as_B and earn_at90 of Strategy_Class.csv.
- strategy_earnings_bySub.dta is the Stata dataset taking the relevant variables from Strategy_Class.csv to conduct statistical tests comparing strategy frequencies (Figure 4 and Table S1) and strategy earnings (Figure 5 and Table S3), using strategy_comparison.do. This dataset is also provided in open access format strategy_earnings_bySub.csv.
Variable definitions for raw data CRSU_rawdata.csv:
ida: ID number of donor (A)
idb: ID number of recipient (B)
round: round number
adecision: Donor's (A's) decision
acumearn: A cumulative earnings
bcumearn: B cumulative enarings
numblbya: Number of helps in A's history
numgrbya: Number of snubs in A's history
numpubya: Number of hurts in A's history
numblbya2rds: Number of helps by A in past 2 rounds
numgrbya2rds: Number of snubs by A in past 2 rounds
numpubya2rds: Number of hurts by A in past 2 rounds
numblbyb: Number of helps in B's history
numgrbyb: Number of snubs in B's history
numpubyb: Number of hurts in B's history
numblbyb3rds: Number of helps by B in past 3 rounds
numgrbyb3rds: Number of snubs by B in past 3 rounds
numpubyb3rds: Number of hurts by B in past 3 rounds
clickbl1: Did A click to see B's info when B helped in period -1
clickbl2: Did A click to see B's info when B helped in period -2
clickbl3: Did A click to see B's info when B helped in period -3
clickgr1: Did A click to see B's info when B snubed in period -1
clickgr2: Did A click to see B's info when B snubed in period -2
clickgr3: Did A click to see B's info when B snubed in period -3
clickpu1: Did A click to see B's info when B hurt in period -1
clickpu2: Did A click to see B's info when B hurt in period -2
clickpu3: Did A click to see B's info when B hurt in period -3
see1onbl1: If clickbl1=yeslook, B's recipient action in period -1
see2onbl1: If clickbl1=yeslook, B's recipient action in period -2
see3onbl1: If clickbl1=yeslook, B's recipient action in period -3
see1onbl2: similar to above if clickbl2=yeslook
see2onbl2
see3onbl2
see1onbl3: similar to above if clickbl3=yeslook
see2onbl3
see3onbl3
see1ongr1: similar to above if clickgr1=yeslook
see2ongr1
see3ongr1
see1ongr2: similar to above if clickgr2=yeslook
see2ongr2
see3ongr2
see1ongr3: similar to above if clickgr3=yeslook
see2ongr3
see3ongr3
see1onpu1: similar to above if clickpu1=yeslook
see2onpu1
see3onpu1
see1onpu2: similar to above if clickpu2=yeslook
see2onpu2
see3onpu2
see1onpu3: similar to above if clickpu3=yeslook
see2onpu3
see3onpu3
group: group number within session
round10: Indicates blocks of 10 rounds
session: session code
R1dum: dummy variable to indicate GLO treatment
R2dum: dummy variable to indicate LOC treatment
cohort: Unique identifier for cohort (group)
indivIDa: Unique ID number for A (donor)
indivIDb: Unique ID number for B (recipient)
bluedum: Dummy variable to indicate help decision
purpledum: Dummy variable to indicate hurt decision
numclicksgrpur: not used
multposs: not used
Variable definitions for strategy classification (one row for each of the 156 subjects) in Strategy_Class.csv:
(Note that help_rate_helpers is n/a if donor never meets a recipient who helped frequently)
subjectID: Subject ID number
punish_logit: Indicator for significance of others helps in punish logit
punishGT0.1: Indicator for punish greater than 10 percent
punisher_def: Indicator for discriminate punisher
hurt_hurters: Indicator for hurting past hurter greater than 50 percent
hurt_rate: Hurting frequency
recip_hurts: Frequency recipient has 2 or 3 hurts in history
hurts_hurtful: Frequency of hurts for hurtful recipient
punish_logit_pun: Indicator for significance of others hurts in punish logit
retaliator: Indicator for retaliator
punish_logits_both: Indicator for both punish logit variables significant
help_logit: Indicator for significance of others helps in helping logit
passLT0.6: Indicator for snub less than 60 percent
helpGT0.35: Indicator for help more than 35 percent
help_rate: Overall helping rate
help_rate_helpers: Helping rate for recipients who help 2 or 3 times (can be n/a if never meet a recipient who helped 2 or 3 times)
recip_helps: Frequency recipient has 2 or 3 helps in history
helps_helpful: Helping frequency when recipient has 2 or 3 helps in history
rewarder: Indicator for discriminate rewarder
help_logit_own: Indicator for significance of own helps in helping logit
not_discrim: Indicator for not discriminate
no_actionGT0.85: Indicator if no action taken more than 85 percent
cautious: Indicator for cautious strategy
helpGT0.8: Indicator if helps greater than 80 percent
altruist: Indicator for altruist strategy
pastGT0.8: Indicator if snub greater than 80 percent
defector: Indicator for indiscriminate defector
punishGT0.5: Indicator if hurt greater than 50 percent
punisher: Indicator for indiscriminate punisher
unclassified: Indicator if strategy unclassified
lookupGT0.2: Indicator if looks up pass or punish history greater than 20 percent
GLOtreatID: Indicator for GLO treatment
i_rewarder: Indicator for image rewarder
s_rewarder: Indicator for standing rewarder
i_punisher: Indicator for image punisher
s_punisher: Indicator for standing punisher
i_retaliator: Indicator for image retaliator
s_retaliator: Indicator for standing retaliator
class: Strategy classification identifier
poolclass: Pooled strategy classification identifier
earn_at90: Earnings accumulated through period 90
euro_pay: Payoff earned in Euros
rank: Earnings ranking within group
norm_earn: Earnings normalized for equal role frequency
A_times: Frequency in donor role through period 90
ave_as_A: Average earnings as donor
ave_as_B: Average earnings as recipient
normearn2: Average earnings if both role frequency is equal
norm_euros: Earnings in Euros for equal role frequency
norm_rank: Earnings ranking within group for equal role frequency
Human subjects data
Consent was provided by subjects in accordance with regulations at the University of Amsterdam (reference EC 20190128040115; ethics committee approval included in Dryad files).
156 subjects participated in the experimental sessions that were conducted at the CREED laboratory of the University of Amsterdam. Participation was voluntary, and subjects were recruited through email announcements from a standard university subject pool. Each experimental session lasted approximately 60 minutes. Subjects' total earnings in euros were determined by the relative ranking of the points (denoted by ‘francs’ in the experimental instructions) earned over all the rounds of the indirect reciprocity game. The only difference between the treatments is how the ranking is determined for these euro earnings, either within a local group or globally across several groups. By design, average earnings were 20 euros in both treatments.
Each subject participated in only one session, and none had previously participated in a similar experiment. Subjects were seated in separate cubicles, which ensured anonymity during the experiment. We consider each group of 6 subjects as one independent observation, because subjects only interacted with the other 5 subjects in their group.
The experiment was computerized and all interactions took place anonymously through computers. The supplementary online materials contain the instructions script provided to subjects. At the end of each experimental session subjects were paid their euro earnings in private and in cash. In all treatments, subjects were informed of the matching procedure, the number of rounds, and how to calculate the payoff. The experiment was neutrally framed. The donor’s choices were called ‘blue’ (help), ‘green’ (snub) and ‘purple’ (hurt).
Each session consisted of 100 rounds of the experimental game. In each round each six-subject cohort was randomly partitioned in three donor–recipient pairs. Therefore, pairing was independent of previous choice, distinguishing it from previous theoretical models. A recipient received no information about her donor and made no decision. A donor, however, learned the most recent three decisions made by her recipient.
By choosing between the three colors the donor decided whether she would help, hurt or snub the recipient. The recipient learned her donor’s chosen color and her own earnings in each round only after all donors had made and confirmed all their decisions. The round number was always visible and both the donor and the recipient could always access the information they observed and their own decisions in all past rounds. In each round a pair of matched subjects only saw the decision of the donor in their pair.
