NetLogo banner

NetLogo Publications
Contact Us

Modeling Commons

Beginners Interactive NetLogo Dictionary (BIND)
NetLogo Dictionary

User Manuals:
Farsi / Persian


NetLogo User Community Models

(back to the NetLogo User Community Models)

[screen shot]

If clicking does not initiate a download, try right clicking or control clicking and choosing "Save" or "Download".(The run link is disabled because this model uses extensions.)


This model is an attempt at modelling the behaviour of extorters, their victims and
police in the context of the GLODERS project. It uses some but not all of the features described by Luis Gustavo Nardin, Giulia Andrighetto, Rosaria Conte, Mario Paolucci in their IntERS model ( and extends it with territoriality and some more features as discussed during GLODERS project meetings.

Whereas an earlier version ( was mainly devoted to analyse the systemic effects of the behaviour of the agents, whose decision making processes are only modelled rather crudely, this version includes the registration of events by most groups of agents, the identification of these events as relevant for one of the norms which partly govern the agent behaviour as well as the calculation of the salience of these norms for future actions of the agents. This salience is converted into a propensity to take an action by either abiding by the respective norm or violating it.

Additionally, this version, in contrast to another earlier version, is event-oriented, i.e. the model does not progress period for period such that in every period (tick) all agents do their businesses in a certain (albeit random) order, but the model proceeds from event to event, initial events being scheduled during initialisation, later events scheduled by the internal logic of action )more details belo).


The world contains several villages (shape: church) in which several enterprises (shape: house) exist which can fall victim to extortion. Extorters (shape: person) can approach
their targets first in their immediate vicinity, if they do not find any more potential victims in their immediate vicinity they extend this vicinity.

**Normative board**
Agents of all types have a normative board, in which norms are represented, and a mechanism with which they can remember events and norm invocations, and they can calculate the salience of the respective norms as a means to decide which of their possible actions they will apply in a given situation. This works as follows:

* Events such as denunciation, paying extortion, shopping and so on trigger messages to agents in the neighbourhood. If an event is related to more than one norm, several messages are broadcast by the agent which triggered the event. Each of these messages contains a reference to a norm (usually the norm or norms which is or are followed or violated by the action). A recipient of such a message updates those of its memory entries which refer to the specified norm according to whether the action is performed by itself or by another agent and whether the message contains a punishment or a sanction. This is implemented in a series of `update-` procedures (the `update-` procedures combine the invocation and the updates).

* The calculation of an action probability consists of two steps: the individual drive of shops to denounce and/or to pay is determined by the risk of being extorted compared to the benefit of being protected by the successful extorter. The latter is currently and exogenous variable (`benefit-for-victims`). The individual drive of other kinds of agents is set in a similar manner. The normative drive depends on former experience with an agent's own actions and on observations made of normative behaviour of other agents' in the neighbourhood (see, pp. 33-39).

* When an agent has to choose between different action options (including the option of doing nothing) it calculates a probability (`calculate-propensity-from` for actions controlled by only one norm, and `propensity-to` for actions controlled by two conflicting norms) for each of the action options which in turn depends on a rationally calculated "individual drive" (implemented in the procedure `calculate-my-individual-drive-to` with respect to the action named as the procedure's argument) and a "normative drive" which is calculated from the salience of the norm or norms involved in the action option. The salience of the norm, in turn, is calculated according to a complicated formula (implemented in the procedure `calculate-my-normative-drive-to`) which combines the memory of
* cases when this agent abided by the respective norm or violated it,

* cases when this agent observed norm compliances and violations in its neighbourhood,

* cases when this agent received punishments or sanctions and

* cases when this agent heard about, applied or personally received invocations of the respective norm.

* When an action is related to more than one norm (as is the case with events when pizzo is paid --- as this violates the `DO-NOT-PAY-EXTORTION` norm and at the same time complies with the `PAY-EXTORTION-AS-EVERYBODY-DOES` norm, the decision considers only the one with the higher salience.

**Shops** serve for providing the population with goods and services of any type. To keep things simple, these goods and services are not detailed. Shops receive payment from their customers and bear the fixed and variable costs of their business by paying into a funds which is evenly distributed to the population which is considered to provide the shops with the necessary supply (both in goods and sevrices) --- to keep things simple here, too, the households of the population receive an equal share of the overall period income of the shops, as if all of them served as suppliers and workers for the shops equally.

Shops are often approached by criminals for "pizzo" which they can refuse at the risk of being severely punished. They can avoid this with a certain propensity to call the police (`denunciation-propensity`), denouncing the extorters and having them prosecuted. When a shop decides to denounce an extorter it joins an "addio-pizzo" movement and makes this fact known to everybody (and to the modeller by changing its colour from blue to red). When a shop decides not to denounce and the extorter (only if it is listed in the criminal records) is observed by the police, the victim collaborates as a witness (not as a denouncer), the extorter is prosecuted and the victim is punished for not not denouncing (it receives both a norm violation and a punishment message with respect to the `DENOUNCE-EXTORTION` norm).

In case shops are approached by more than one extorter at the same time --- this happens mainly in the initial phase and represents what might have happened when mafia-like organisations first came into being --- the shops decide whom to pay to, and the successful extorter will then protect the shop against the rivalling extorters. When due to extortion and punishment the asset of a shop falls below zero, it is closed and does not participate in the trading process until it is compensated from a funds filled by the confiscated wealth of the extorters.


**Consumers** choose a shop for purchasing their goods. They have a certain propensity `my-addio-pizzo-buy-propensity` which they calculate from the salience of their norms `DO-NOT-SHOP-AT-EXTORTION-PAYER` and `BUY-FROM-EXTORTION-PAYER`to choose shops belonging to the "addio-pizzo" movement. If their current shop is closed, they choose another, preferably belonging to the "addio-pizzo" movement and preferably having only a small number of customers (the reason for this is two-fold: they want to avoid crowded shops, and shops with only few customers should get a chance to prosper).

**Extorters** start their career as individual criminals and approach the nearest reachable shop, asking for a "pizzo" which is a certain proportion (either `extortion-level-LOW` or `extortion-level-HIGH` depending on the type the extorter belongs to) of its revenue per period. When the shop refuses and the police fails to successfully prosecute the extorter, the latter punishes the shop, taking away a certain proportion of all its assets (either `punishment-severity-LOW` or `punishment-severity-HIGH`, again depending on the type the extorter belongs to). It is understood that all assets of a shop are easily convertible into money, there are no physical assets which could be destroyed. Punishment becomes public, even when the victim does not officially denounce the extorter, the name of the extorter is added to the criminal records, and this extorter is now under observation.

If the police hinders the extorter from punishing, the extorter is kept in investigation custody such that it cannot act any longer during the current period. If it is convicted it is brought to jail for a certain number of periods, and all its assets are confiscated and transferred into a funds from which in turn punished shops can be compensated (following a first come--first served principle). If several extorters approach the same shop at the same time, one of them is selected by the shop to protect the shop against rivalling extorters, and the latter subordinate to the former, forming a family and eventually a hierarchy, for instance in case the successful extorter is already subordinate to someone else; if any rivalling extorters already belong to families, the family hierarchy is not changed.

Extorters know about two norms, `DO-NOT-BETRAY-COLLEAGUES` and `ABJURE-CRIME` (but these are not yet implemented).

At the end of each period extorters embedded in a family structure pay a tribute of `solidarity * wealth` to their respective leaders, and these leaders in turn distribute equal shares of their `wealth * solidarity` to their followers.

Extorters can collaborate with the police (become "pentiti") with a certain probability (`ruefulness`) in the phase when they are in investigation custody. This propensity is currently exogenous, but in a future version it will be controlled by the two norms `DO-NOT-BETRAY-COLLEAGUES` and `ABJURE-CRIME` mentioned above. If they decide to behave this way they become inactive forever and denounce their neighbours in the network whose names are then added to the criminal records. Pentiti are removed from the family tree and do no longer participate in the redistribution of wealth within their former family.

**Police** try to prosecute a denounced extorter and are successful with a certain probability (`my-prosecution-propensity`) which depends on their earlier experience. Moreover they keep criminal records for all extorter agents which ever were denounced in the past. If such an extorter which has a criminal record comes into the range of vision of police, it is also prosecuted. Arrested extorters cannot continue their activities during the current tick (they are in investigative custody).

They know about two norms, `ANXIETY-IS-JUSTIFIED` and `TRY-HARD-TO-IMPRISON`.

Beside the police which try to arrest extorters found by denunciation or observation there is also a court (represented by the observer) which can condemn an extorter found guilty. In this case they spend a longer time in jail.

The **"logic of action"** mentioned above can be described as follows:

Immediately after the initialisation all consumers are scheduled to go shopping at 10:00 of the first day (and to repeat this action once a week at the same time) and to select a shop from whom they will buy — later they will have an opportunity to switch to another shop when their norm salience calculations recommend them to buy from a shop which does not pay extortion. At the same time the extorters are schedule to become active after a delay of three to five days. Moreover the periodic events mentioned above are scheduled.
Once an extorter becomes active it starts to find possible victims in its vicinity (whose initial radius is given by a parameter valid for all extorters but which can be extended a factor which is another input parameter whenever the search for victims turns out unsuccessful). If a victim was found it is approached after a small delay (the time between find-victims and wait-for-extorter in Table 2), if not, another attempt at finding victims is made with a delay between approximately 6 and 8 days (150 and 200 hours).

If victim and extorter meet, the former makes a decision whether it denounces the latter or whether it pays the requested amount to the latter — the requested amount is a percentage of the current income from sales determined by an input parameter. If the shop decides not to pay or if it has not had any income during the current month it cannot pay, and the ex-torter is scheduled to return within a week. In these cases two outcomes are possible:

* if the shop refused to pay in the first meeting the extorter will only be successful if the shop reconsiders its decision neither to denounce nor to pay or
* in case the shop was unable to pay anything before the extorter might be successful if the shop in turn was meanwhile successful in selling anything to a paying custom-er, otherwise the shop will be bankrupt and perhaps be re-opened when extortion and/or punishment was the reason of its bankruptcy and the state compensated from confiscated extorter assets.

If the victim decides to denounce it ask a police officer nearby and schedules its start-prosecution procedure for some time within the next two weeks, and there is also a chance that the police officer has observed the extorter’s approach (but only if the latter is already in the police’s criminal records, i.e. was denounced earlier on by some other shop or who was found punishing another shop — an activity which is always observable and cannot be concealed, much like arson), and in this case the prosecution also starts within a week. After the extorter was denounced it is scheduled to become active again to find other victims dur-ing the following two weeks (but if it is meanwhile caught by the police the scheduled task will, of course, never be performed). As a further consequence of denunciation, the de-nounced extorter will also plan to punish the shop, and this is scheduled for some time within the next two weeks, provided this extorter has not been brought to custody before this date.

If the same victim is approached by several extorters before the former makes the decision between denouncing and paying discussed above, it has to choose among the competing extorters. The successful extorter subordinates its competitors, this forming a growing hier-archy of families which is documented in one of the NetLogo windows (but not analysed in depth so far). The unsuccessful extorters will become active again and try to find victims during the next few days. At the end of each month the extorters’ incomes are redistributed within each family (isolated extorters do not participate in this redistribution process).

When a police officer starts to prosecute an extorter (either after denunciation or after po-lice observation) it will take up to 200 days until the extorter is either brought to custody or escaped. In the latter case the extorter will become active again, otherwise it stays in custo-dy until the court (represented by NetLogo’s observer) passes a sentence, which will take between one and about seven months. If the extorter is acquitted he becomes active the next day, if it is sentenced its period of being inactive in jail will be an integer number of years (between three and eight). When the prisoner is released it will again become active and try to find victims within the next few days.

A new feature also available in this event-oriented version is an option to reset the memories of all agents (separately for the different agent types). Pressing one of the `reset-...` buttons (while the simulation run is being interrupted) empties the memories of all agent of the respective breed and fills them with norm invocations as if `BACKGROUND`had been set to +100.

In behaviour space mode the `event_norm_intervention_batch` can be run to generate runs in which at the end of `intervention-month` all agents of some or all breeds are reset in the same way as discussed in the previous paragraph. `intervention-type = 0` means no intervention, 1, 5..7, 11..13 and 15 reset the public, 2, 5, 8, 9, 11, 13..15 reset the shops, 3, 6..8, 11, 12, 14, 15 reset the police, and 4, 7, 9, 10, 12..15 reset the extorters. In batch mode the model runs for 24 simulated months, and `intervention-month` is set to 12.

Additionally, four switches can be used (but not in the batch version, as then all possible intervention combination are set automatically) to schedule interventions for the types separately; these will then occur at the end of the month indicated by the slider `intervention-month`.


Press `setup` to set all parameters to their standard values. Then change all the sliders and switches that you want to change.

The `initial-...` sliders determine the numbers of the different breeds in the world. There is currently no guarantee that arbitrary combinations of the `initial-...` sliders yield reasonable results. The same applies to the sliders which determine wealth and income. If the number of agents is too large for the world to keep them in separate patches you will receive a warning in the output window (bottom right).

The `constant-random-seed?` switch allows to run the model with the same random seed for different parameter combinations. If it is set OFF, every run starts with a new random seed.

If the `debug?` choser is on, output will be written to the file logfile.txt. Each new run is preceded with the date and time of the start of the run unless the file is deleted. NOT TO BE USED in the applet version!

The red and blue extortion links can be switched off with the `show-extortion-links?` switch.

Press `populate` to populate the world with all these agents. Press `go-eventwise` to run the model. The model will run for `max-months` simulated months (and can only be stopped with the help of `Tools`->`Halt`).

The two groups of plots show what their headlines suggest. The block in the upper right corner contains histograms of norm saliences and of action propensities, the block in the lower right corder contains numbers of shops and extorters for different categories and amounts of wealth these possess.The percentages of different extortion outcomes is also plotted as an average of the past 10 cycles. The last of these moving averages can also be output in the behaviour space version such that it can be analysed as

The calculation consists of two steps: the individual drive of shops to denounce and/or to pay is determined by the risk of being extorted compared to the benefit of being protected by the successful extorter. The latter is currently and exogenous variable (`benefit-for-victims`). The individual drive of other kinds of agents is set in a similar manner. The normative drive depends on former experience with an agent's own actions and on observations made of normative behaviour of other agents' in the neighbourhood (see, pp. 33-39).

The following sliders control global variables:

* `LOCAL` determines the distance within which events can be observed
* `NDW` is the weight of the normative drive for calculating the decision probability, the sum of the two weights for individual drive and normative drive is 1.0
* `DISCOUNT` determines the weight of older memory contents (whenever a new event arrives, the number of all previous events is multiplied by `DISCOUNT` before 1 is added for the current event; thus with `DISCOUNT = 1.0` all events have the same weight inependent of their age.
* The standard initialisation of the memory of all agents with 0 could be unrealistic as it does not take account of the fact that any snapshot of the real world would start with real actors whose memory is not empty but filled with remembered compliances and violations of norms and past punishments and sanctions. This is why the slider `BACKGROUND` offers the possibility to initialise the agents according either to the standard (empty memories: `BACKGROUND = 0`) or to a "civic" scheme which is intolerant to extortion rackets (`0 < BACKGROUND < 100`) or to a "traditional" scheme which is tolerant to extortion rackets (`-100 < BACKGROUND < 0`), where the absolute amount of `BACKGROUND` denotes how intensive the "civic" or "traditional" scheme is.

In behaviour space mode the `event_norm_sensitivity_batch` can be run, then the sliders for `BACKGROUND`, `NDW`, `LOCAL`, `DISCOUNT`, `extortion-level-...`, `punishment-severity-...`, `prosecution-propensity`, `denunciation-propensity`, `benefit-for-victims`, `conviction-probability`, `solidarity`, `consumption-per-period`, `escape-chance`, `extortion-radius-extension`, `vision-range`, `hide-denounce-propensity` and `addio-pizzo-threshold` have no effect. Instead random values are assigned to these variables. In this case multiple runs with a random setting for the parameters which are relevant for the norm version.

A CSV file can be written (except in the batch version) in which every extortion case is documented much like in the Palermo database (but still with less information). As this would not work for applets, the respective code is a comment (search for "file" and remove the semicolons to make the code active).


Target enterprises have an initial wealth uniformly distributed between the numbers on the respective min and max sliders, the income of a shop depends on the number of customers currently choosing it.

Extorters have two different extortion levels and two different severity levels (as in Nardin et al.) and a consumption per period which is currently fixed for all extorters at the same level. The difference between extortion and punishment severity levels can, of course, be suppressed by setting the sliders to the same value.

Extortion is a proportion (`extortion-level`) of the income per period, punishment for not paying is a proportion (`punishment-severity`) of the total wealth of the target.

Often the local hierarchies agglomerate to one unique hierarchy.

The model keeps an extortion database of all attempted or successful extortion cases with information on whether the extorters were denounced, observed, prosecuted or condemned. (not for the batch version, and in this version the respective code must be made active by removing the semicolons in all respective lines.)

The model calculates the main parameters of the norm salience distributions (mean and standard deviation).


The formula for calculating salience could be simplified. As weighting coefficients are multiples of 0.33 one could replace them with the respective multiples of 1.0 and change the `numerator` and the `denominator` accordingly. The formula is claimed in Deliverable 3.1 to have been extracted from Cialdini, R. B., Kallgren, C. A., Reno, R. R. (1990). A focus theory of normative conduct: A theoretical refinement and reevaluation of the role of norms in human behavior. Advances in Experimental Social Psychology. 24: 201–234. But it seems that only the terms used in this formula were extracted from this source (which does not say anything about the weights).

"DO-NOT-PAY-EXTORTION" and "PAY-EXTORTION-AS-EVERYBODY-DOES" are not just the two sides of a coin but two norms which are in conflict. As the effects of these norms exclude each other (extortion is either paid or not paid) it is necessary to discuss how the probability of paying is calculated. The simple version would be to assume that every violation of one of the two morms is a compliance with the other. But then sanctions and punishments of the two norms cannot be separated. Burning down the shop is certainly a punishment for a violation of the "PAY-EXTORTION-AS-EVERYBODY-DOES" norm, but what is it in terms of the "DO-NOT-PAY-EXTORTION" norm?

This model introduces norms relevant for the police and the extorter agents which have never been discussed among the GLODERS teams. Obviously, their behaviour, too, will be controlled by norms in the real world, and hence the model should include norms for these agent types, too. Without having implemented anything reasonable about them, the model contains two norms for each of them (see above).

Not all norm invocations have been implemented yet, perhaps some norm-related messages have been forgotten. They will be inserted in future versions.


The model can be used to find out which of the input parameters guiding the behaviour of the various kinds of agents have the greatest impact on the various output parameters (see Troitzsch 2014). This is best done using the `event_norm_sensitivy_batch` in behavour space. It goes without saying that the model, although inspired by results of empirical research into individual behaviour done within the GLODERS project, has not yet been validated with respect to its output variables, thus it cannot be used to guide policy making, but it gives hints at which empirical macro variables to analyse.
The output generated by the model in a CSV file can be used to perform similar analyses as those made with the empirical data in the siciliy and Calabria database (629 cases of extortion which became known to the police and the courts, see the papers cited below).


The model could be extended by endowing the agents with even more learning capabilities. Particularly extorters could then optimise their behaviour as a reaction on punishment and sanctions. And certainly the relations between the public and the shops could be modelled in more detail, e.g. by having individual consumers work for one shop and purchase different kinds of goods from several different shops.


Nothing special. The code uses recursive functions to determine to which family an extorter belongs and to write up the hierarchy in the output window. This version makes use of the time extension (which needs to be present either in the directory where the model resides or in the `extensions` directory of the NetLogo installation.


There are three mafia models in the community (,%20edited%202,,%20mafia%20and%20storewoners and which I have not consulted so far.

Predecessors of this version can be found at

* is a period oriented version with constant action probabilities for all agent-types
* is a period oriented version with norm oriented behaviour of all agent types, much like in this version


The research leading to these results has received funding from the European Union Seventh Framework Programme (FP7/2007--2013) under grant agreement no. 315874 ([Global dynamics of extortion racket systems, GLODERS]( These results reflect only the author’s views, and the European Union is not liable for any use that may be made of the information contained therein. The author thanks his colleagues in this and earlier projects for fruitful discussions over many years.

The model owes a lot to the Nardin et al. discussion paper and to the discussions within the GLODERS project. The GLODERS project used earlier versions of this model as a proof of concept and a quick and dirty prototype of the final GLODERS simulator.

The model, its predecessors and some of its first results are documented in

The following papers dealing with earlier (period-oriented) versions of this model have already been published or have been accepted:

* Troitzsch, Klaus G. (2015). Distribution Effects of Extortion Racket Systems. In F. M. Amblard (Hrsg.), Advances in Artificial Economics. Berlin: Springer. pp. 181–193.

* Troitzsch, Klaus G. (2015). Extortion Racket Systems as Targets for Agent-Based Simulation Models. Comparing Competing Simulation Models and Emprical Data. Advances in Complex Systems, 18.

* Troitzsch, Klaus G. (2016). Can agent-based simulation models replicate organised crime? Trends in Organised Crime. To appear.

* Nardin, Luis G.; Andrighetto, Giulia; Conte, Rosaria; Székely, Áron; Anzola, David; Elsenbroich, Corinna; Lotzmann, Ulf; Neumann, Martin; Punzo, Valentina; Troitzsch, Klaus G. (2016). Simulating the Dynamics of Extortion Racket Systems: A Sicilian Mafia Case Study. Autonomous Agents and Multi-Agent Systems.

* Troitzsch, Klaus G. (2016). Using empirical data for designing, calibrating and validating simulation models. To appear in the Proceedings of the Social Simulation Conference, Groningen, September 2015.

A more detailed description of modelling results of this version will appear in the final GLODERS book to appear in late 2016:

* Elsenbroich, Corinna; Anzola, David; Gilbert, Nigel, eds. (2016). Social Dimensions of Organised Crime. Modelling the Dynamics of Extortion Rackets. New York: Springer 2016


Cite this model with the URL


Written by Klaus G. Troitzsch 2013-2016. The model may be used and extended if the source is quoted and a note is sent to

(back to the NetLogo User Community Models)