ODD Tools
An Operational Design Domain (ODD) defines the specific conditions under which an ADS is designed to function. Safety Pool has the ability to validate ODD definitions, and search for scenarios matching a given ODD definition.
Format
The ISO 34503 standard specifies an ODD taxonomy and definition format. The format requirements outline four specification types: Include statements, Exclude statements, Conditional Statements, and Mode specification.
Include statements specify ODD attributes that are inside of the ODD, and Exclude statements specify ODD attributes that are outside of the ODD.
If an element is in the ODD, then an ADS system can handle it. If an element is outside of the ODD, then the ADS system cannot handle it, and if they encounter this element in deployment, may have to perform a minimal risk manoeuvre.
The attribute names come from the BSI PAS 1883:2025 standard. When defining child attributes, the ‘all’ keyword may be used. For attributes with value ranges, the units can be viewed in the Safety Pool tag area. For access to the raw taxonomy TTL file, please contact support@safetypooldb.ai.
Example 1
INCLUDE "Drivable area type" is ["Motorways", "Radial roads"]
EXCLUDE "Weather" is ["Snowfall", "Rainfall"]
INCLUDE "Junctions" is [all]In this example, the definition states that ‘motorways’ and ‘radial roads’ are within the ODD – the ADS can handle them - but ‘snowfall’ and ‘rainfall’ are not (and therefore, the ADS cannot handle them). All junctions (in this taxonomy, this is intersections and roundabouts) are considered within the ODD.
The mode, which must be specified for all definitions, is used to specify how non-listed attributes should be handled:
In Permissive mode, any non-listed attributes are considered inside of the ODD
In Restrictive mode, any non-listed attributes are considered outside of the ODD
In Default mode, any non-listed attributes are considered inside of the ODD definition, but irrelevant for testing purposes.
(In practice, this acts similarly to Permissive mode).
Example 2
MODE: DEFAULT
EXCLUDE "EnvironmentParticulates" is ["Sand", "Dust"]
INCLUDE "Illumination" is ["Artificial illumination", "Day"]In this example, ‘Sand’ and ‘dust’ are considered outside of the ODD, while ‘Artificial illumination’ and ‘day’ are considered inside of the ODD.
Conditional statements are used when the inclusion or exclusion of attributes depends on other attributes. These conditions can be simple, or they can be Boolean combinations of attributes.
Example 3
MODE: DEFAULT
CONDITIONAL IF 'Illumination' is ['IlluminationDay']:
INCLUDE 'Drivable area type' is ['Motorways']
CONDITIONAL IF "Drivable area surface type" is ["Gravel", "Segmented"]:
EXCLUDE "DrivableAreaSurfaceCondition" are ["Flooded roadways", "Snow on drivable area"]In this definition, motorways are only allowed if it’s daytime. Flooded roads and roads with snow are not allowed if gravel roads or segmented road surfaces are also present.
ODD-Based Search
Basic Queries
Includes and exclusions are considered with the mode to create a search criteria with tags and then return scenarios with matching attributes.
In Permissive mode, the search will return all scenarios that do not contain any of the excluded elements
As all non-listed elements are automatically included in Permissive mode, any ‘include’ statements are redundant
In Restrictive mode, only scenarios with attributes that have been explicitly included will be returned
As all non-listed elements are automatically excluded in Restrictive mode, any ‘exclude’ statements are redundant
In Default mode, there are two different search types that can be toggled: Strict, or Extended
In Default (Strict) mode, the search function will return scenarios which contain all included elements, and no excluded elements
In Default (Extended) mode, the search function will return scenarios which contain at least one of the included elements, and no excluded elements
Intuitively speaking, the Extended mode will return scenarios which partially match. It will return a wider range of scenarios.
Redundant statements:
In Permissive mode, as described above, any ‘Include’ statements are redundant (as any non-mentioned elements will be included automatically in the search). Therefore, any basic ‘Include’ statements will not appear in the search criteria for Permissive searched, and any basic ‘Exclude’ statements will not appear in the search criteria for Restrictive mode. This is intentional.
Example 4
MODE: RESTRICTIVE
INCLUDE "Environmental Conditions" is [all]
INCLUDE "Dynamic elements" is [all]
INCLUDE "Drivable area" is [all]
INCLUDE "Junctions" is [all]
INCLUDE "Special structures" is ["Bridges", "Pedestrian Crossing", "Rail Crossing", "Tunnel"]
INCLUDE "Fixed road structures" is [all]
EXCLUDE "Temporary road structures" is [all]In this example, the search will match scenarios with any environmental conditions, dynamic elements, drivable area types, junctions, and fixed structures, as well as matching the listed special structures. As it’s in Restrictive mode, all of these elements must be explicitly included in order to search for them.
Any scenarios containing temporary road structures will not be returned. However, as this definition is in restrictive mode, any non-mentioned elements will automatically be excluded from the definition. As such, this final ‘EXCLUDE’ line is redundant – it doesn’t add anything to the search query, as temporary road structures will be excluded with or without this line.
Example 5
MODE: DEFAULT
INCLUDE "DrivableAreaType" is ["RoadTypeMotorway", "Radial roads"]
EXCLUDE "Weather" is ["Snowfall", "Rainfall"]
INCLUDE "DaySunElevation" is [10:90]
EXCLUDE "LongitudinalUpSlope" is [0:-]
INCLUDE "ParticulatesType" is [all]With Strict selected: This search will return scenarios containing motorways or radial roads, AND a value of sun elevation between 10 and 90 degrees, AND at least one kind of environmental particulates. Snowfall, rainfall, and all values of up-slope are excluded.

Figure 1: Default search in STRICT mode.
This search returns zero scenarios (as of Jan 2026).
With Extended selected: This search will return scenarios containing motorways or radial roads, OR a value of sun elevation between 10 and 90 degrees, OR at least one kind of environmental particulates (or any combination of these elements). Snowfall, rainfall, and all values of up-slope are excluded. Therefore, an extended search will match more scenarios.

Figure 2: Default search in EXTENDED mode (note the extra ORs in front of the top-level included elements).
This search returns ~37,000 scenarios (as of Jan 2026)
Conditional Queries
Intuitively, searches with conditional queries will only return scenarios with the included (or without the excluded) attributes when the condition is met.
This is made clearest through examples:
Example 6
MODE: PERMISSIVE
CONDITIONAL IF "EnvironmentParticulates" is ["ParticulatesWater", "ParticulatesDust"]:
EXCLUDE "DrivableAreaType" is ["Motorways", "RoadTypeSlip"]
EXCLUDE "Lane dimensions" is [0:2.0]
INCLUDE "Special structures" is ["Pedestrian crossings"]In this example, the search will return scenarios that do not contain either water or dust particulates simultaneously to containing motorways, slip roads, or lanes below 2m in width.
As the mode is permissive, pedestrian crossings are automatically included, regardless of any particulates (or other conditions). Therefore, this final line is redundant, and won’t affect the search (it also won’t visibly appear in the search criteria).

Figure 3: A Permissive search for Example 6. Note how the Included ‘Special structures’ do not appear in the search criteria – this is because searching with Inclusions in Permissive mode is redundant.