We predict the risk of having an accident caused by driving behaviour and context using an objective approach. For all trips submitted by a given driver, we analyse their exposure to several risk factors and match it with public road safety statistics to provide objective driver risk assessments.

Risk assessment of a trip

We compute trip risk scores by detecting the presence of risk factors that might contribute to a hypothetical accident (i.e., contributory factors). The presence of a given contributory factor is then weighted by road safety statistics related to the road type where it has been detected and the severity of observed accidents. For instance, if we observe exceeding_speed_limit in motorway, we weight this event using the number of accidents caused by exceeding_speed_limit in motorway, disaggregating into different levels of severity. Finally, these weights are combined to provide a safety score which goes from 0 to 100 where 100 is the safest.

Trip assessment details

The assessment submitted to the customer’s endpoint contains information about the risk summary and the list of observed risk events.

Name Description
summary Aggregated metrics for the trip (more)
events List of locations where contributory factors where detected (more)

Risk summary

Going more in depth, the risk summary contains the following information:

Name Description
safety_score The level of driver’s safety in the profiled trip. Range: 0-100
meta_data Aggregated customer’s specific data related to risk.
nb_of_contributory_factors Number of contributory factors analysed in the trip.

Risk events

Then, the list of events contains the following information about risk events:

Name Description
from_date Start of the contributory factor detection (timestamp)
to_date End of the contributory factor detection (timestamp)
latitude Latitude of the detection
longitude Longitude of the detection
road_type Type of road where the event has been detected. Possible values: motorway, urban, rural.
contributory_factor_name Name of the detected contributory factor. A description list of contributory factors details is available here
link_id Unique identifier of the road segment (i.e., link_id) where the event has been detected.
meta_data Additional information about the event (e.g., vehicle dynamics information).


To recapitulate, we put forward the following example of the trip processing flow:

  1. Customer A submits a trip to the Motion-S platform using the Motion-S API;
  2. The trip is augmented by the Motion-S platform;
  3. The trip is processed by the type of assessment specified by Customer A;
  4. Motion-S submits the result of the assessment to the Customer A’s endpoint.

The following is an example of such result:

  "uid": "<motion-s-unique-trip-identifier>",
  "origin": "<customer-name>-<fleet-name>-<fleet-number>",
  "context": { ... },
  "risk": {
    "summary": {
      "safety_score": 92.35,
      "meta_data": {},
      "nb_of_contributory_factors": 21
    "events": [
        "from_date": "2017-12-05 06:10:22",
        "to_date": "2017-12-05 06:10:23",
        "latitude": 49.51561,
        "longitude": 5.97418,
        "road_type": "motorway",
        "contributory_factor_name": "exceeding_speed_limit",
        "link_id": 719646008,
        "meta_data": {
          "speed_kmh": 96.12,
          "acceleration_ms2": 1.74,
          "bearing_rate": 0.69,
          "bearing": 325.45,
          "traffic_speed": 80,
          "g_force": 0.18
        "from_date": "2017-12-05 06:17:25",
        "to_date": "2017-12-05 06:17:26",
        "latitude": 48.9515,
        "longitude": 9.13604,
        "road_type": "urban",
        "contributory_factor_name": "rain_sleet_snow_or_fog",
        "link_id": -1080033497,
        "meta_data": {
          "speed_kmh": 8.86,
          "acceleration_ms2": 0.5,
          "bearing_rate": 0.5,
          "bearing": 194.34,
          "traffic_speed": 38,
          "g_force": 0.05

Contributory factors

As it was mentioned in the previous section, the risk score is obtained by detecting the presence of risky factors that might contribute to an hypothetical accident (i.e., contributory factors). The following table contains the baseline factors we use in this type of assessment which might be extended by additional information about the driver and the vehicle (e.g., CAN data).

Factor Description
Aggressive driving This factor is present when the driver is travelling in an aggressive and/or dangerous manner which might cause, or contribute to, an accident.
Animal or object in carriageway This factor involves the situation that an animal may crash into the vehicle, which is mainly detected in rural roads by the presence of Animal Crossing traffic signals.
Careless, reckless or in a hurry Identify if the driver behaves in a negligent or thoughtless manner or is in a hurry and, therefore, is behaving in an unsafe manner.
Dazzling sun This factor is present when the driver is travelling under dazzling sun conditions.
Disobeyed double white lines Identify driver risky manoeuvres in non-overtaking sections of the road (double white lines sections of the road) by looking for high acceleration and heading variation patterns in such areas.
Disobeyed “Give Way” or “Stop” sign or markings Measure whether the driver did not stop at “Stop” sign or give way at “Give Way” sign or road markings.
Disobeyed pedestrian crossing facility Detects driver disobedience of pedestrian facilities, in terms of speeding when approaching pedestrian crossing.
Exceeding speed limit Risk factor present when the driver is exceeding the posted speed limit (i.e., the legal speed limit).
Failed to look properly Risk factor that involves situations where the driver is not paying attention to the road signalling ahead (e.g., distraction event close to an intersection, short anticipation to priority signs).
Fatigue This factor involves situations where the driver cannot drive effectively or is unable to perceive hazards due to drowsiness. Such situations can be induced by continuous driving for more 2 hours without stop.
Illegal turn or direction of travel Identify situations where the driver is turning left/right at junctions (or performing a “U-turn”) where this is not allowed, or is travelling the wrong way.
Junction overshoot Detect whether the driver does not stop at a junction and overshoots the stop line or give way markings.
Loss of control Risk factor present when the vehicle’s dynamics are such that the driver loss the control of the vehicle. For instance, swerving at high speed.
Poor or defective road surface Measure the driver’s attitude towards the quality of the road. For instance, going at high speed on a road with potholes and cracks.
Poor turn or manoeuvre Identify a manoeuvre performed by the driver which might cause, or contribute to, an accident (e.g., harsh turning left, right, U-turn or overtaking).
Rain, sleet, snow or fog This factor is present when the visibility due to weather is lower than the stopping sight distance due to speed.
Road layout Measure whether the permanent layout of the road (i.e., low category roads, one-lane, no emergency lane) might put the driver under risk.
Slippery road Detect if the vehicle is in a weather condition that might cause skidding such as wet or icy roads.
Sudden braking Detect if a vehicle’s sudden braking might cause, or contribute to, an accident.
Swerved Sudden changes of direction that might cause an accident.
Travelling too fast for conditions This factor involves the situation where the driver is travelling within the speed limit, but their speed was not appropriate for the traffic conditions.

Driver Risk Assessment API

Apart from the risk of a given trip, customers can also ask for the risk assessment of a given driver. For this, Motion-S exposes an endpoint which customers can call along with driver parameters. In the sections below, we give details about this endpoint.






Query parameters

  • ref_driver_ids (separated by “;”);
  • ref_from_date (“YYYY-MM-DD” format);
  • ref_to_date (“YYYY-MM-DD” format);
  • token: provided by Motion-S
curl -i -H "Accept: application/json" \
        -H "Content-Type: application/json" \
        -H "Authorization: Basic token" \
        -X GET https://<customer-name>.motion-s.com/mobility_profiling/risk_assessment/ drivers?ref_driver_ids=a793d2a99b632f0a;04893637cd6844e9


Successful response

HTTP status code


Response values

The response of this API consists of a list of risk assessments according to the requested drivers. Each of them has the following information:

Metric Description
devices_ids Motion-S device unique identifiers associated to a given driver.
safety_score_avg Average safety_score in a given date range.
total_distance_in_km Travelled distance in a given date range, measured in km.
number_of_trips Number of trips in a given date range.
date_from Date of the first trip used for this assessment.
date_to Date of the latest trip used for this assessment.

If no dates are provided, these values are computed including all driver’s trips.