This directory contains descriptions of the different mobility modes that can be described by the Mobility Data Specification. It contains a list of all defined vehicle states and event types, as well as mode-specific state-machines, unique mode properties and attributes.
All MDS APIs should be mode-agnostic.
The mode
value is used to specify the applicable mobility category in MDS Policy, Provider/Agency, and many other parts of MDS.
A mode
is defined as: A distinct regulatory framework for a type of mobility service or program, as distinguished by a combination of:
- the data needed by regulators,
- the operating rules under which the service functions,
- the legal authority under which it is regulated, and
- the design and operating model of the service itself.
There will be some gray areas and some differences from one jurisdiction to another (e.g. taxis and ridehail may be regulated under the same rules on one place, but different rules in another). MDS will not pre-define a complete taxonomy of modes, or identify every modal boundary upfront, but will instead add modes on an as-needed basis, maintaining as much consistency of naming as possible.
We err on the side of treating highly similar services as one mode, but consult with our members and community to inform each decision about how to integrate a new service and whether it needs to be designated as its own mode. This is a policy implementation question as much as it is a technical one.
Each mode defined in MDS shall include key descriptive information, such as journey type (e.g. point-to-point, multi-segment, multi-segment overlapping), primary purpose (goods, single passenger, multi-passenger, etc.), and a description of the service being offered that aligns with terminology commonly understood by the public (e.g. “e-scooter” or “ridehailing”).
MDS is intended to be used for multiple transportation modes, including its original micromobility (e-scooters, bikes, etc.) mode, as well as additional modes such as taxis, car share, and delivery bots. A given provider_id
shall be associated with a single mobility mode, so that the mode does not have to be specified in each data structure and API call. A provider implementing more than one mode shall register a unique provider_id
for each mode.
- Micromobility (
micromobility
) - dockless or docked small devices such as e-scooters and bikes. - Passenger services (
passenger-services
) - transporting individuals with a vehicle driven by another entity, including taxis, TNCs, and microtransit - Car share (
car-share
) - shared point-to-point and station-based multi-passenger vehicles. - Delivery robots (
delivery-robots
) - autonomous and remotely driven goods delivery devices
Some fields used across MDS APIs are defined in more detail within each mode.
The journey_id
field allows multiple trip segments to be referentially linked together. See each mode definition for details.
The journey_attributes
object allows additional mode-specific information about the nature of a journey to be described. See each mode definition for details.
The trip_type
field allows the purpose of each trip segment to be described. See each mode definition for details.
The trip_attributes
object allows additional mode-specific information about the nature of a trip to be described. It can return a list of JSON-formatted key/value pairs which correspond to the allowed attributes and values for the operative mode. See each mode definition for details.
See more available trip attributes for any mode in the trips object.
The fare_attributes
object allows additional mode-specific information about fare information associated with the trip. It can return a list of JSON-formatted key/value pairs which correspond to the allowed attributes and values for the operative mode. See each mode definition for details.
See more available fare attributes for any mode in the trips object.
The vehicle_attributes
object returns a list of JSON-formatted key/value pairs which correspond to the allowed attributes and values for the operative mode. For each mode, the allowed attributes and corresponding values are defined in the mode definition.
See more available vehicle attributes for any mode in the vehicles object.
The accessibility_attributes
object returns a list of JSON-formatted key/value pairs which correspond to the allowed accessibility attributes and values for the operative mode. For each mode, the allowed attributes and corresponding values are defined in the mode definition.
While each mode is unique in its operational and business models, there are several areas where there are significant differences from one mode to the next. Each of these areas is defined in more detail within the mode, and each pull from a base of options defined in a central location.
Vehicle states are used to define the disposition of individual vehicles and fleets of vehicles. See vehicle states for a list of possible values, and each mode definition for details about which are used per mode.
Event types are the possible transitions between vehicle states. See event types for a list of possible values, and each mode definition for details about which are used per mode.
Possible combinations of how the vehicle_state
changes in response to each event_type
. See each mode definition for a table of possible transition combinations.
The State Machine Diagram visually shows the state transitions. See each mode definition for a diagram.