Mobility Data Specification: Event Types

April 14, 2026 ยท View on GitHub

This file defines all possible event_types that can be used in state machines across all MDS modes. Each mode will use some subset of these events. See individual mode definitions for additional details specific to that mode.

As with all MDS definitions, they should be described in a way that maximizes their relevance to multiple modes whenever possible.

event_typeDescription
agency_drop_offDrop off by the agency
agency_pick_upPick up by the agency, e.g. impound
battery_chargedBattery charged (entering service)
battery_lowBattery low (exiting service)
changed_geographiesGeography change per Geography Driven Events
charging_startBattery start charging
charging_endBattery end charging
comms_lostCommunications lost
comms_restoredCommunications restored
compliance_pick_upPick up for compliance (rule violation)
customer_cancellationCustomer cancelled a trip
decommissionedDecommissioned
driver_cancellationDriver cancelled a trip (if known, and more specific than trip_cancel)
fueling_startFueling starts
fueling_endFueling ends
locatedLocation found (opposite of Missing)
maintenanceStart general maintenance in right of way
maintenance_pick_upStart pick up for maintenance outside of right of way
maintenance_endEnd of maintenance
not_locatedLocation unknown
off_hoursOff hours - end of service
on_hoursOn hours - start of service
order_drop_offDelivery of the order at the customer location
order_pick_upPick up of the order at business
passenger_cancellationPassenger cancelled a trip (if known, and more specific than trip_cancel)
provider_cancellationProvider cancelled a trip (if known, and more specific than trip_cancel)
provider_drop_offDrop off by the provider
rebalance_pick_upPick up for rebalancing
recommissionRecommissioned
remote_startRemotely start the engine
remote_endRemotely stop the engine
reservation_cancelReservation cancelled before trip (different than trip_cancel since the transaction hadn't started yet, and the reservation hold is let go)
reservation_startReservation started
reservation_stopReservation stopped temporarily. If at the end of a trip, the time between reserved and stopped States is the customer wait time.
service_endEnd of service
system_startStart of service
system_resumeResume system operations, e.g. start of day
system_suspendSuspend system operations, e.g. end of day
trip_cancelCancel trip - trip is ended by anyone for some reason, either before or after motion starts (note: use more specific cancellation event types when possible)
trip_endEnd trip - end of the trip and transaction
trip_enter_jurisdictionTrip enters a jurisdiction
trip_leave_jurisdictionTrip leaves a jurisdiction
trip_pausePause trip temporarily but do not end trip - trip intends to continue, but is paused in motion or transaction
trip_resumeResume trip - trip resumes after a trip_pause (a pause is required before a resume can happen)
trip_startStart trip - first start of a trip and transaction (required for any trip)
trip_stopStop trip - last movement in the trip, intending to end it (customer may be idling or interacting with devices to end trip)
unspecifiedUnspecified

Limitations on the Use of Certain Values

MDS is intended to communicate the provider's best available information to regulators. However there may be legitimate circumstances where providers do not have definitive or current information about devices on the ground. MDS incorporates some values to convey these situations. These vehicle state and event type values are to be used sparingly and temporarily, and are not meant for repeated or prolonged use. These values exist to create logical coherence within MDS about vehicles that are operating abnormally or are out of communication. When a more accurate value is known, the MDS API should be updated with the latest information. Cities may add language to their Service Level Agreements (SLAs) that minimize the use of these values by providers.

Event Type: Unspecified

The unspecified event type state transition means that the vehicle has moved from one state to another for an unspecified or unknown reason. It is used when there are multiple possible event types between states, but the reason for the transition is not clear. It is expected that unspecified will not be used frequently, and only for short periods of time. Cities may put in place specific limitations via an SLA. When more accurate information becomes available to the provider, it should be updated in the MDS data by sending a new event type state transition with the current timestamp.

Generally, regulator Service-Level Agreements will limit the amount of time a vehicle's last event type may be unspecified.

Multi State Transitions

See the mode specific state-transition tables which descibe how the vehicle_state changes in response to each event_type. Most events will have a single event_type. However, if a single event has more than one ordered event_type entry, the intermediate vehicle_state value(s) are discarded. For example, if an event contains [trip_end, battery_low] then the vehicle transitions from on_trip through available to non_operational per the state machine, but the vehicle is never "in" the available state.

Out of Order Events

Note that to handle out-of-order events, the validity of the prior-state shall not be enforced at the time of ingest via Provider or Agency. Events received out-of-order may result in transient incorrect vehicle states.


Modes Overview


MDS Home