The ODD Protocol: An Updated Definition
The following description and explanation of the seven elements of ODD is designed to fix the problems and ambiguities of the original protocol and its description. This updated ODD protocol fully replaces the original description given by Grimm et al. (2006), which is obsolete because of its ambiguities; however, the description of ODD’s overall purpose and rationale given by Grimm et al. (2006) is still valid. The ODD protocol is defined by the seven elements described below, their labels or identifiers, and the sequence in which they are described. For clarification, a few identifiers have been renamed slightly and two design concepts have been added (Table 1).
Using ODD means using exactly these identifiers in the order specified by the protocol (numbering the elements, though, from 1 to 7 is optional and can depend on journal formatting requirements). There are manuscripts that claimed to follow the ODD protocol, but the order of elements was changed, elements were lumped, modified identifiers were used, or entire elements omitted. The purpose of a standard is, however, to assure a common understanding of the work done. Therefore it must be followed consistently.
When ODD is used, it should be referred to in the following way: “the model description follows the ODD (Overview, Design concepts, Details) protocol (Grimm et al., 2006, this work)”. This is important because when using a standard it is necessary to refer to where it has been described. Moreover, systematic evaluation of the practice of using ODD, as has been done in this review, would be impossible without references to the publications presenting ODD and its update.
In the following update of ODD, each element is described by questions providing a kind of checklist and explanations. A template document for writing ODD model descriptions that contains the following questions and explanations is included in Supplementary material.
3.1. Purpose
3.2. Entities, State Variables, and Scales
One way to define entities and state variables is the following: if you want (as modelers often do) to stop the model and save it in its current state, so it can be re-started later in exactly the same state, what kinds of information must you save? If state variables have units, they should be provided. State variables can change in the course of time (e.g., weight) or remain constant (e.g., sex, species-specific parameters, location of a non-mobile entity). State variables should be low level or elementary in the sense that they cannot be calculated from other state variables. For example, if farmers are represented by grid cells which have certain spatial coordinates, the distance of a farmer to a certain service centre would not be a state variable because it can be calculated from the farmer’s and service centre’s positions.
Most ABMs include the following types of entities:
In describing spatial and temporal scales and extents (the amount of space and time represented in a simulation), it is important to specify what the model’s units represent in reality. For example: “One time step represents 1 year and simulations were run for 100 years. One grid cell represents 1 ha and the model landscape comprised 1000×1000 ha; i.e., 10,000 square kilometers”.
3.3. Process Overview and Scheduling
By “in what order?” we refer to both the order in which the different processes are executed and the order in which a process is performed by a set of agents. For example, feeding may be a process executed by all the animal agents in a model, but we must also specify the order in which the individual animals feed; that is, whether they feed in random order, or fixed order, or size-sorted order. Differences in such ordering can have a very large effect on model outputs (Bigbee et al., 2006; Caron-Lormier et al., 2008).
The question of when variables are updated includes the question of whether a state variable is immediately assigned a new value as soon as that value is calculated by a process (asynchronous updating), or whether the new value is stored until all agents have executed the process, and then all are updated at once (synchronous updating). Most ABMs represent time simply by using time steps: assuming that time moves forward in chunks. But time can be represented in other ways (Grimm and Railsback, 2005, Chapter 5). Defining a model’s schedule includes stating how time is modeled, if it is not clear from the ‘Entities, State Variables, and Scales’ element.
3.4. Design Concepts
The design concepts are an open-ended list that could be expanded as new concepts are identified. Concepts that are not relevant to a particular model should nevertheless be listed, but simply described as not applicable. Alternatively, if the list of design concepts grows long and more concepts need to be discussed, relevant subsets could be presented, and the relevance of the concepts included in the description should be made explicit.
3.5. Initialization
3.6. Input Data
3.7. Submodels
Table 1: Comparison of the original and updated ODD protocols.
Original ODD Protocol | Updated ODD Protocol |
---|---|
Overview | Overview |
- Purpose | - Purpose |
- State variables and scales | - Entities, state variables, and scales |
- Process overview and scheduling | - Process overview and scheduling |
Design Concepts | Design concepts |
Details | Details |
- Initialization | - Initialization |
- Input | - Input data |
- Submodels | - Submodels |
The table summarizes the changes to the ODD protocol and the detailed explanations provided above aim to clarify the requirements for documenting an agent-based model comprehensively. Adhering to this updated ODD protocol ensures clarity, reproducibility, and thorough understanding of the model for anyone reviewing the description.