The Service Interface for Real Time Information - Vehicle Monitoring


Current version for SIRI-VM is:   v1.1  (last changed  )


This document is part of the Norwegian SIRI Profile and describes datasets and elements used for exchanging updates on position and status, as well as estimated delays in the SIRI Vehicle Monitoring (VM) real-time format.

SIRI-VM is used to model vehicle-movements and their progress compared to a planned timetable. The data is linked to objects in the planned data by use of ID's, which ensures data quality.

Data requirements

Sending a ServiceDelivery of SIRI-VM data must be in accordance with this profile and the entire dataset should be contained within a single XML file.

When sending Vehicle Monitoring data, information should be limited to contain only the MonitoredCall, that is the previous or current stop (and IsCompleteStopSequence = 'false')

Note that the profile does not present an exhaustive list of all real-time information technically possible to transfer via SIRI-VM, but it lays the foundation for which demands are placed on the datasets in order to meet the demands set by Håndbok N801.

It is permitted for client systems to send more than one VehicleActivity per VehicleMonitoringDelivery, in order for real-time information to be conflated and be transferred as part of the same ServiceDelivery.

The examples associated with this profile are meant to show practical implementations of specific use cases, and can contain supplementary, lack certain data fields, or contain optional data, compared to a full and complete dataset. See SIRI-VM#Components  for closer descriptions of the data types, specifications and requirements on the unique elements of the SIRI VM-data.

It is a fundamental requirement that valid timetable data (as NeTEx or SIRI-ET-data) is delivered before sending in position- and status information as SIRI-VM.




A data type for representing vehicle monitoring (for estimated adjustment of times) for one or more VehicleJourneys.

VehicleMonitoringDelivery < ServiceDelivery

attributeversionxsd:NMTOKEN1: 1

Version ID for EstimatedTimetableDelivery

elementResponseTimestampxsd:dateTime1: 1

Timestamp for when the dataset was created/published.

elementVehicleActivitySIRI-VM#VehicleActivity1: *

A container element for sending one or more VehicleActivity with a timestamp.


Container-element for  returning one or more VehicleActivity.


elementRecordedAtTimexsd:dateTime1: 1

Timestamp for when the position/status was recorded/updated.

elementValidUntilTimexsd:dateTime1: 1Validity-expiration date and time of the dataset.
elementProgressBetweenStopsSIRI-VM#ProgressBetweenStops0: 1

Information on the progress of the vehicle between stops.

elementMonitoredVehicleJourneySIRI-VM#MonitoredVehicleJourney1: 1

Data object for a real-time monitored VehicleJourney


Information on the progress of the vehicle along the current ServiceLink, i.e. between the previous and the next ScheduledStopPoint


elementLinkDistancexsd:decimal0: 1

Distance in meters between the previous stop (or current, if located at stop) and the next stop.

Corresponds to Distance for current ServiceLink, when available.

elementPercentagexsd:decimal1: 1How much of the total distance (percentage) that has been traversed at the time of the message.


Data objects with elements to describe a real-time monitored VehicleJourney, including supplementary locational information, and data about the previous/current stop.

Used to enrich existing timetable data.


elementLineRefxsd:NMTOKEN1: 1Reference to the Line in question (ID to the corresponding object in the timetable data)
elementDirectionRefxsd:NMTOKEN0: 1Direction reference (i.e. reference to Direction element describing general course/heading for current Journey)
elementFramedVehicleJourneyRefFramedVehicleJourneyRefStructure0: 1

Reference to VehicleJourney in question. Has a date.

Note: Either FramedVehicleJourneyRef (ServiceJourneyId + Date) or VehicleJourneyRef (DatedServiceJourney) MUST be set.

elementVehicleModeVehicleModesEnumeration0: 1

Transport types

Possible values:

  • air
  • bus
  • coach
  • ferry (mapped to "water")
  • metro
  • rail
  • tram
elementOperatorRefxsd:NMTOKEN0: 1

Reference to Operator in question (ID to the corresponding company in the timetable data)

elementOriginRefxsd:NMTOKEN0: 1

Reference to origin Quay in question (ID to the corresponding Quay in the timetable data and national stop place registry)

elementOriginNameNaturalLanguagePlaceNameStructure0: 1

Name describing the origin of the departure.

elementDestinationRefxsd:NMTOKEN0: 1Reference to destination Quay in question (ID to the corresponding Quay in the timetable data and national stop place registry)
elementDestinationNameNaturalLanguagePlaceNameStructure0: 1Name describing the destination of the departure.
elementMonitoredxsd:boolean0: 1

Whether the vehicle is currently reporting real-time data or not (for example set to true when the driver of the vehicle logs on to the system before departing).

elementDataSourcexsd:string1: 1Codespace of the data source (see codespace).

1: 1

The position of a vehicle as a geospatial point.

elementBearingxsd:float0: 1Current compass bearing (direction of VehicleJourney)
elementVelocityxsd:nonNegativeInteger0: 1Vehicle speed. Either actual speed or average speed may be used.
elementOccupancyOccupancyEnumeration0: 1

Open seats-status.

Possible values:

  • unknown
  • manySeatsAvailable (more than ~50% of seats available)
  • seatsAvailable (less than ~50% of seats available)
  • standingAvailable (less than ~10% of seats available)
  • full (close to or at full capacity)
  • notAcceptingPassengers (if vehicle/carriage is not in use / unavailable, or passengers are only allowed to alight due to e.g. crowding)

This status should reflect the allowed occupancy level, not necessarily physical spacing available.

If the operator runs with reduced capacity, e.g. in order to maintain a certain service level, social distancing etc., the occupancy status must be set in accordance with current limitation i.e. "full" when all seats assigned for use are occupied (regardless of disallowed seating/standing still being physically available).

elementDelayxsd:duration1: 1


Defined as "PT0S" (0 seconds) when there are no delays.

elementInCongestionxsd:boolean0: 1

Whether the vehicle is affected by traffic jams or other circumstances which may lead to further delays.

elementVehicleStatusVehicleStatusEnumeration0: 1

Vehicle status.

Possible values:

  • assigned (a vehicle has been assigned, but not yet deployed)
  • atOrigin (VehicleJourney has not begun, the vehicle is still at the first stop)
  • cancelled
  • completed (verification that the VehicleJourney has been completed)
  • inProgress
  • offRoute (VehicleJourney is taking a detour)



0: 1

Reference to DatedServiceJourney-ID for the corresponding object in the timetable data.

Note: Either VehicleJourneyRef (DatedServiceJourneyId) or FramedVehicleJourneyRef (ServiceJourneyId + Date) MUST be set.

elementVehicleRefxsd:NMTOKEN1: 1Reference to the vehicle in question (ID to the corresponding vehicle in the timetable data).
elementMonitoredCallSIRI-VM#MonitoredCallStructure0: 1

Information on the most recent (if en route) or current (if stopped) call made at a stop for a VehicleJourney.

elementIsCompleteStopSequencexsd:boolean1: 1

Always set to 'false' when the submitted data only contains MonitoredCall.


Specifies location of something.


attributesrsNamexsd:string0: 1The reference system for longitude and latitude. If stated, use WGS84 or if necessary a valid coordinate-reference to the standard used (for example "EPSG:4326").
(choice) element





1: 1

Longitude (-180 to 180)

Latitude (-90 to 90)


Location coordinates.

For example: <gml: pos srsName="urn:ogc:def:crs:EPSG::4326"> -59.123 -45.1254 </gml:pos>

Note! The stop place registry only accepts WGS84-coordinates.


Information regarding the current stop for VehicleJourney (the stop the vehicle is headed to or has stopped at.


elementStopPointRefxsd:NMTOKEN1: 1

Reference to the Quay in question (ID corresponding to objects in the national stop place registry).

elementStopPointNameNaturalLanguageStringStructure0: 1

Name of the stop (not used due to the reference to the national stop place registry, but can be included to make the XML easier to read).

elementVehicleAtStopxsd:boolean0: 1

Whether the vehicle is at the stop.

elementVehicleLocationAtStopSIRI-VM#Location0: 1

Where the vehicle is at the stop.

Used for significant deviations from planned and published information.

elementDestinationDisplayNaturalLanguageStringStructure0: 1

Destination text (information only, not to be used for override but can be included to make the XML easier to read).