Processed Trip Dataset — Structure & JSON Schema
This document describes the structure of a processed trip dataset as returned by the trip retrieval API. All example values use fake/redacted data to protect sensitive information.
1. Overview
The processed trip dataset is a JSON response containing a single vehicle trip that has been through the server-side scoring and analysis pipeline. Unlike the raw trip dataset — which carries full IMU sensor readings and per-second quantiles — the processed dataset focuses on driving behavior scores, speed compliance, eco-scoring, and annotated route points with alerts and events already classified.
A processed trip typically contains fewer waypoints than the raw equivalent (interpolated points are thinned, zero-speed stretches are collapsed), and each point carries contextual annotations such as speed limits, alert classifications, and phone-usage/cornering flags.
2. Top-Level Response Envelope
| Field | Type | Description |
|---|---|---|
Result | object | Contains the trip payload and status code (see §3). |
Note: Unlike the raw dataset envelope (
success,status_code,message,error), the processed dataset wraps everything under a singleResultobject with an embeddedCodefield.
Example (top-level)
{
"Result": {
"Track": { "..." },
"Code": 200
}
}
3. Result Object
Result Object| Field | Type | Description |
|---|---|---|
Track | object | Full processed trip payload (see §4). |
Code | integer | HTTP-style status code (e.g. 200). |
4. Track Object
Track ObjectThe Track object is the main container, split into logical groups below.
4.1 Trip Metadata
| Field | Type | Unit | Description |
|---|---|---|---|
StartDate | string (ISO 8601) | — | Trip start timestamp (device local timezone). |
EndDate | string (ISO 8601) | — | Trip end timestamp (device local timezone). |
Status | string | — | Trip lifecycle status. Known values: "Active". |
Distance | number | km | Total trip distance. |
Duration | number | minutes | Total trip duration. |
OriginChanged | boolean | — | Whether the trip origin was reassigned to a different user/device. |
TrackOriginCode | string | — | Origin classification. Known values: "OriginalDriver". |
ShareType | string | — | Sharing status. Known values: "NotShared". |
DrivingTips | string | — | Server-generated driving advice (may be empty). |
Tags | array | null | — | User-defined tags for the trip. |
BeaconId | integer | — | Bluetooth beacon identifier (0 = none). |
VehicleToken | string | null | — | Linked vehicle token, if assigned. |
4.2 Event Counts
| Field | Type | Description |
|---|---|---|
AccelerationCount | integer | Number of harsh acceleration events detected. |
DecelerationCount | integer | Number of harsh braking events detected. |
4.3 Addresses & Cities
| Field | Type | Description |
|---|---|---|
AddressStart | string | Full formatted address at trip origin. |
AddressEnd | string | Full formatted address at trip destination. |
CityStart | string | City name at trip origin. |
CityFinish | string | City name at trip destination. |
AddressStartParts | object | Structured address components for trip origin (see §4.3.1). |
AddressFinishParts | object | Structured address components for trip destination (see §4.3.1). |
4.3.1 Address Parts Object
| Field | Type | Description |
|---|---|---|
CountryCode | string | ISO 3166-1 alpha-3 country code (e.g. "DEU"). |
Country | string | Country name. |
County | string | County / administrative region. |
PostalCode | string | Postal / ZIP code. |
State | string | State or province (may be empty). |
City | string | City name. |
District | string | District or neighborhood. |
Street | string | Street name. |
House | string | House/building number. |
Example
{
"CountryCode": "DEU",
"Country": "Germany",
"County": "Berlin",
"PostalCode": "10115",
"State": "Berlin",
"City": "Berlin",
"District": "Mitte",
"Street": "Friedrichstraße",
"House": "42"
}
4.4 Driving Scores (1–5 Scale)
Legacy scoring on a 1-to-5 star scale (5 = best).
| Field | Type | Range | Description |
|---|---|---|---|
Rating | integer | 1–5 | Overall driving score. |
RatingCornering | integer | 1–5 | Cornering behavior score. |
RatingAcceleration | integer | 1–5 | Acceleration behavior score. |
RatingBraking | integer | 1–5 | Braking behavior score. |
RatingSpeeding | integer | 1–5 | Speed compliance score. |
RatingPhoneUsage | integer | 1–5 | Phone distraction score. |
RatingTimeOfDay | integer | 0–5 | Time-of-day risk score (0 = not scored). |
4.5 Driving Scores (0–100 Scale)
Granular scoring on a 0-to-100 scale (100 = best).
| Field | Type | Range | Description |
|---|---|---|---|
Rating100 | integer | 0–100 | Overall driving score. |
RatingCornering100 | integer | 0–100 | Cornering behavior score. |
RatingAcceleration100 | integer | 0–100 | Acceleration behavior score. |
RatingBraking100 | integer | 0–100 | Braking behavior score. |
RatingSpeeding100 | integer | 0–100 | Speed compliance score. |
RatingPhoneDistraction100 | integer | 0–100 | Phone distraction score. |
RatingTimeOfDay100 | integer | null | 0–100 | Time-of-day risk score. null if not evaluated. |
4.6 Eco-Scores
| Field | Type | Range | Description |
|---|---|---|---|
EcoScore | integer | 0–100 | Overall eco-driving score. |
EcoScoreFuel | integer | 0–100 | Fuel efficiency sub-score. |
EcoScoreTyres | integer | 0–100 | Tyre wear sub-score. |
EcoScoreBrakes | integer | 0–100 | Brake wear sub-score. |
EcoScoreDepreciation | integer | 0–100 | Vehicle depreciation sub-score. |
4.7 Speed & Phone Statistics
| Field | Type | Unit | Description |
|---|---|---|---|
AverageSpeed | number | km/h | Average speed during the trip. |
MaxSpeed | number | km/h | Maximum speed recorded. |
OverSpeedMileage | number | km | Total distance driven over the speed limit. |
MidOverSpeedMileage | number | km | Distance driven at moderate overspeed (e.g. 10–20 km/h above limit). |
HighOverSpeedMileage | number | km | Distance driven at high overspeed (e.g. >20 km/h above limit). |
PhoneUsage | number | minutes | Total phone usage duration during the trip. |
PhoneUsageKm | number | km | Distance driven while using phone. |
PhoneUsageOverSpeed | number | minutes | Phone usage time while over speed limit. |
PhoneUsageOverSpeedKm | number | km | Distance driven while using phone and over speed limit. |
4.8 Time-of-Day Breakdown
| Field | Type | Unit | Description |
|---|---|---|---|
RushHours | number | minutes | Duration spent driving in rush-hour windows. |
NightHours | number | minutes | Duration spent driving at night. |
DayHours | number | minutes | Duration spent driving during daytime. |
4.9 Points Array
See §5 below.
5. Point Object (Processed Waypoint)
Each point is an annotated route sample. The processed dataset reduces sensor-level detail in favor of contextual annotations (speed limits, alerts, phone usage, cornering flags).
Compared to the raw dataset waypoint (35 fields + quantiles), a processed point has 18 fields — no IMU accelerometer/gyroscope readings and no quantiles.
| Field | Type | Unit | Description |
|---|---|---|---|
Id | integer | — | Unique server-assigned point identifier (globally sequential). |
Number | integer | — | Sequential index within this trip (0-based). |
TotalMeters | number | meters | Cumulative distance from trip start. |
Speed | number | km/h | Instantaneous GPS speed. |
MidSpeed | number | km/h | Smoothed/median speed. 0 indicates an interpolated point without a direct GPS fix. |
PointDate | string | ISO 8601 | Timestamp of this sample (device local timezone). |
Latitude | number | degrees | WGS-84 latitude. |
Longitude | number | degrees | WGS-84 longitude. |
Height | number | centimeters | Altitude. 0 indicates an interpolated point. |
Course | number | degrees | Heading (0–360, clockwise from true north). 0 on interpolated points. |
Yaw | number | deg/s | Yaw rate (rotation around vertical axis). |
Lateral | number | — | Lateral (cornering) force magnitude. |
AlertType | string | — | Driving event alert classification (see §5.1). |
AlertValue | number | — | Magnitude of the detected alert event. 0 if no alert. |
SpeedType | string | — | Speed compliance classification (see §5.2). |
SpeedLimit | integer | km/h | Posted speed limit at this location (map-matched). |
PhoneUsage | boolean | — | Whether the driver was using the phone at this point. |
Cornering | boolean | — | Whether a cornering event was flagged at this point. |
5.1 AlertType Values
AlertType Values| Value | Description |
|---|---|
"" (empty) | No alert at this point. |
"acc" | Harsh acceleration event detected. |
"decel" | Harsh braking event detected. |
When AlertType is non-empty, AlertValue contains the event magnitude (higher = more severe).
5.2 SpeedType Values
SpeedType Values| Value | Description |
|---|---|
"norm" | Speed is within or below the posted speed limit. |
"mid" | Moderate overspeed — driving above the speed limit but within a tolerance band. |
"high" | High overspeed — significantly exceeding the posted limit. |
5.3 Interpolated Points
Some points have MidSpeed = 0, Height = 0, and Course = 0. These are interpolated between actual GPS fixes: the SDK or server filled in position estimates for seconds where no direct GPS reading was available. They still carry Speed (propagated from the nearest real fix) and SpeedLimit (map-matched).
Example Point (fake coordinates)
{
"Id": 10000000001,
"Number": 42,
"TotalMeters": 1250.75,
"Speed": 45.30,
"MidSpeed": 45.30,
"PointDate": "2026-01-15T14:30:42+01:00",
"Latitude": 52.52000,
"Longitude": 13.40500,
"Height": 3520.0,
"Course": 128.50,
"Yaw": -2.15,
"Lateral": 0,
"AlertType": "",
"AlertValue": 0,
"SpeedType": "norm",
"SpeedLimit": 50,
"PhoneUsage": false,
"Cornering": false
}
Example Alert Point (fake coordinates)
{
"Id": 10000000225,
"Number": 224,
"TotalMeters": 2513.58,
"Speed": 43.70,
"MidSpeed": 43.70,
"PointDate": "2026-01-15T14:35:17+01:00",
"Latitude": 52.51200,
"Longitude": 13.41200,
"Height": 8935.17,
"Course": 203.04,
"Yaw": -2.53,
"Lateral": 0,
"AlertType": "acc",
"AlertValue": 5.057,
"SpeedType": "norm",
"SpeedLimit": 30,
"PhoneUsage": false,
"Cornering": false
}
6. Raw vs. Processed Dataset Comparison
| Aspect | Raw Dataset | Processed Dataset |
|---|---|---|
| Envelope | success, status_code, message, result, error | Result.Track, Result.Code |
| Storage reference | S3Location present | Not included |
| User/Device info | UserInfo + DeviceInfo | Not included |
| Waypoint count | ~839 (1 Hz, every second) | ~728 (thinned, interpolated gaps filled) |
| Fields per waypoint | 35 + Quantiles (~77 values) | 18 |
| IMU sensors | Full accel + gyro (processed & original, 3 axes each) | Only Yaw and Lateral retained |
| Quantiles | 6 categories x 7 stats per waypoint | Not included |
| Speed limits | Not included | Map-matched SpeedLimit per point |
| Alerts | Not included | AlertType + AlertValue per point |
| Driving scores | Not included | 1–5 and 0–100 scales, 7 categories |
| Eco-scores | Not included | 5 eco-score categories |
| Addresses | Not included | Geocoded start/end with structured parts |
| Speed analysis | Not included | Over-speed mileage breakdown |
| Phone usage | Not included | Per-point flags + trip-level statistics |
| Cornering | Not included | Per-point boolean flag |
7. Data Flow Diagram
┌────────────────────────────────────────────────────────────────────────┐
│ API Response │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ Result │ │
│ │ ├── Code (200) │ │
│ │ └── Track │ │
│ │ ├── Metadata │ │
│ │ │ ├── StartDate, EndDate, Status, Duration, Distance │ │
│ │ │ ├── TrackOriginCode, OriginChanged, ShareType │ │
│ │ │ ├── BeaconId, VehicleToken, Tags │ │
│ │ │ └── DrivingTips │ │
│ │ ├── Event Counts │ │
│ │ │ └── AccelerationCount, DecelerationCount │ │
│ │ ├── Addresses │ │
│ │ │ ├── AddressStart / AddressEnd (formatted) │ │
│ │ │ ├── CityStart / CityFinish │ │
│ │ │ └── AddressStartParts / AddressFinishParts │ │
│ │ │ └── CountryCode, Country, County, PostalCode, │ │
│ │ │ State, City, District, Street, House │ │
│ │ ├── Driving Scores │ │
│ │ │ ├── 1–5 scale: Rating, Cornering, Acceleration, │ │
│ │ │ │ Braking, Speeding, PhoneUsage, TimeOfDay │ │
│ │ │ └── 0–100 scale: same categories + PhoneDistraction │ │
│ │ ├── Eco-Scores │ │
│ │ │ └── EcoScore, Fuel, Tyres, Brakes, Depreciation │ │
│ │ ├── Speed & Phone Stats │ │
│ │ │ ├── AverageSpeed, MaxSpeed │ │
│ │ │ ├── OverSpeedMileage, MidOverSpeed, HighOverSpeed │ │
│ │ │ └── PhoneUsage, PhoneUsageKm, ...OverSpeed variants │ │
│ │ ├── Time-of-Day Breakdown │ │
│ │ │ └── RushHours, NightHours, DayHours │ │
│ │ └── Points [0..N] │ │
│ │ ├── Identity: Id, Number │ │
│ │ ├── Position: Lat, Lon, Height, TotalMeters │ │
│ │ ├── Motion: Speed, MidSpeed, Course, Yaw, Lateral │ │
│ │ ├── Alerts: AlertType, AlertValue │ │
│ │ ├── Speed: SpeedType, SpeedLimit │ │
│ │ └── Flags: PhoneUsage, Cornering │ │
│ └──────────────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────────────┘
8. JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://damoov.com/schemas/processed-trip-dataset.json",
"title": "Processed Trip Dataset",
"description": "API response containing a single processed vehicle trip with driving scores, eco-scores, and annotated route points.",
"type": "object",
"required": ["Result"],
"properties": {
"Result": {
"type": "object",
"required": ["Track", "Code"],
"properties": {
"Code": {
"type": "integer",
"description": "HTTP-style status code."
},
"Track": {
"$ref": "#/$defs/Track"
}
}
}
},
"$defs": {
"Track": {
"type": "object",
"required": [
"StartDate", "EndDate", "Status", "Distance", "Duration",
"AccelerationCount", "DecelerationCount",
"AddressStart", "AddressEnd",
"Rating", "RatingCornering", "RatingAcceleration",
"RatingBraking", "RatingSpeeding", "RatingPhoneUsage", "RatingTimeOfDay",
"PhoneUsage", "MidOverSpeedMileage", "HighOverSpeedMileage",
"OriginChanged", "TrackOriginCode", "DrivingTips",
"Points", "ShareType", "CityStart", "CityFinish",
"BeaconId", "VehicleToken",
"RushHours", "NightHours", "DayHours",
"AverageSpeed", "MaxSpeed", "OverSpeedMileage",
"PhoneUsageOverSpeed", "PhoneUsageKm", "PhoneUsageOverSpeedKm",
"Rating100", "RatingCornering100", "RatingAcceleration100",
"RatingBraking100", "RatingSpeeding100", "RatingPhoneDistraction100",
"RatingTimeOfDay100",
"EcoScoreFuel", "EcoScoreTyres", "EcoScoreBrakes",
"EcoScoreDepreciation", "EcoScore",
"AddressStartParts", "AddressFinishParts", "Tags"
],
"properties": {
"StartDate": {
"type": "string",
"format": "date-time",
"description": "Trip start timestamp (device local timezone)."
},
"EndDate": {
"type": "string",
"format": "date-time",
"description": "Trip end timestamp (device local timezone)."
},
"Status": {
"type": "string",
"description": "Trip lifecycle status.",
"enum": ["Active"]
},
"Distance": {
"type": "number",
"minimum": 0,
"description": "Total trip distance (km)."
},
"Duration": {
"type": "number",
"minimum": 0,
"description": "Total trip duration (minutes)."
},
"AccelerationCount": {
"type": "integer",
"minimum": 0,
"description": "Number of harsh acceleration events."
},
"DecelerationCount": {
"type": "integer",
"minimum": 0,
"description": "Number of harsh braking events."
},
"AddressStart": {
"type": "string",
"description": "Full formatted address at trip origin."
},
"AddressEnd": {
"type": "string",
"description": "Full formatted address at trip destination."
},
"Rating": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"description": "Overall driving score (1-5 scale)."
},
"RatingCornering": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"description": "Cornering score (1-5 scale)."
},
"RatingAcceleration": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"description": "Acceleration score (1-5 scale)."
},
"RatingBraking": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"description": "Braking score (1-5 scale)."
},
"RatingSpeeding": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"description": "Speed compliance score (1-5 scale)."
},
"RatingPhoneUsage": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"description": "Phone distraction score (1-5 scale)."
},
"RatingTimeOfDay": {
"type": "integer",
"minimum": 0,
"maximum": 5,
"description": "Time-of-day risk score (0 = not scored)."
},
"PhoneUsage": {
"type": "number",
"minimum": 0,
"description": "Total phone usage duration (minutes)."
},
"MidOverSpeedMileage": {
"type": "number",
"minimum": 0,
"description": "Distance at moderate overspeed (km)."
},
"HighOverSpeedMileage": {
"type": "number",
"minimum": 0,
"description": "Distance at high overspeed (km)."
},
"OriginChanged": {
"type": "boolean",
"description": "Whether trip origin was reassigned."
},
"TrackOriginCode": {
"type": "string",
"description": "Origin classification (e.g. 'OriginalDriver')."
},
"DrivingTips": {
"type": "string",
"description": "Server-generated driving advice."
},
"Points": {
"type": "array",
"items": { "$ref": "#/$defs/Point" },
"description": "Ordered array of annotated route points."
},
"ShareType": {
"type": "string",
"description": "Sharing status (e.g. 'NotShared')."
},
"CityStart": {
"type": "string",
"description": "City name at trip origin."
},
"CityFinish": {
"type": "string",
"description": "City name at trip destination."
},
"BeaconId": {
"type": "integer",
"description": "Bluetooth beacon identifier (0 = none)."
},
"VehicleToken": {
"type": ["string", "null"],
"description": "Linked vehicle token, if assigned."
},
"RushHours": {
"type": "number",
"minimum": 0,
"description": "Driving time in rush-hour windows (minutes)."
},
"NightHours": {
"type": "number",
"minimum": 0,
"description": "Driving time at night (minutes)."
},
"DayHours": {
"type": "number",
"minimum": 0,
"description": "Driving time during daytime (minutes)."
},
"AverageSpeed": {
"type": "number",
"minimum": 0,
"description": "Average speed (km/h)."
},
"MaxSpeed": {
"type": "number",
"minimum": 0,
"description": "Maximum speed recorded (km/h)."
},
"OverSpeedMileage": {
"type": "number",
"minimum": 0,
"description": "Total distance over speed limit (km)."
},
"PhoneUsageOverSpeed": {
"type": "number",
"minimum": 0,
"description": "Phone usage time while over speed limit (minutes)."
},
"PhoneUsageKm": {
"type": "number",
"minimum": 0,
"description": "Distance driven while using phone (km)."
},
"PhoneUsageOverSpeedKm": {
"type": "number",
"minimum": 0,
"description": "Distance driven while using phone and over speed limit (km)."
},
"Rating100": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Overall driving score (0-100 scale)."
},
"RatingCornering100": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Cornering score (0-100 scale)."
},
"RatingAcceleration100": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Acceleration score (0-100 scale)."
},
"RatingBraking100": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Braking score (0-100 scale)."
},
"RatingSpeeding100": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Speed compliance score (0-100 scale)."
},
"RatingPhoneDistraction100": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Phone distraction score (0-100 scale)."
},
"RatingTimeOfDay100": {
"type": ["integer", "null"],
"minimum": 0,
"maximum": 100,
"description": "Time-of-day risk score (0-100). Null if not evaluated."
},
"EcoScoreFuel": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Fuel efficiency eco-score."
},
"EcoScoreTyres": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Tyre wear eco-score."
},
"EcoScoreBrakes": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Brake wear eco-score."
},
"EcoScoreDepreciation": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Vehicle depreciation eco-score."
},
"EcoScore": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Overall eco-driving score."
},
"AddressStartParts": {
"$ref": "#/$defs/AddressParts"
},
"AddressFinishParts": {
"$ref": "#/$defs/AddressParts"
},
"Tags": {
"type": ["array", "null"],
"items": { "type": "string" },
"description": "User-defined tags."
}
}
},
"AddressParts": {
"type": "object",
"required": [
"CountryCode", "Country", "County", "PostalCode",
"State", "City", "District", "Street", "House"
],
"properties": {
"CountryCode": {
"type": "string",
"description": "ISO 3166-1 alpha-3 country code."
},
"Country": {
"type": "string"
},
"County": {
"type": "string"
},
"PostalCode": {
"type": "string"
},
"State": {
"type": "string"
},
"City": {
"type": "string"
},
"District": {
"type": "string"
},
"Street": {
"type": "string"
},
"House": {
"type": "string"
}
}
},
"Point": {
"type": "object",
"required": [
"Id", "Number", "TotalMeters", "Speed", "MidSpeed",
"PointDate", "Latitude", "Longitude", "Height", "Course",
"Yaw", "Lateral", "AlertType", "AlertValue",
"SpeedType", "SpeedLimit", "PhoneUsage", "Cornering"
],
"properties": {
"Id": {
"type": "integer",
"description": "Unique server-assigned point identifier."
},
"Number": {
"type": "integer",
"minimum": 0,
"description": "Sequential index within the trip (0-based)."
},
"TotalMeters": {
"type": "number",
"minimum": 0,
"description": "Cumulative distance from trip start (meters)."
},
"Speed": {
"type": "number",
"minimum": 0,
"description": "Instantaneous GPS speed (km/h)."
},
"MidSpeed": {
"type": "number",
"minimum": 0,
"description": "Smoothed speed (km/h). 0 = interpolated point."
},
"PointDate": {
"type": "string",
"format": "date-time",
"description": "Sample timestamp (device local timezone)."
},
"Latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "WGS-84 latitude (degrees)."
},
"Longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "WGS-84 longitude (degrees)."
},
"Height": {
"type": "number",
"description": "Altitude (centimeters). 0 = interpolated point."
},
"Course": {
"type": "number",
"minimum": 0,
"maximum": 360,
"description": "Heading (degrees, clockwise from north). 0 on interpolated points."
},
"Yaw": {
"type": "number",
"description": "Yaw rate (deg/s)."
},
"Lateral": {
"type": "number",
"description": "Lateral (cornering) force magnitude."
},
"AlertType": {
"type": "string",
"enum": ["", "acc", "decel"],
"description": "Driving event classification. Empty = no alert."
},
"AlertValue": {
"type": "number",
"minimum": 0,
"description": "Alert event magnitude. 0 if no alert."
},
"SpeedType": {
"type": "string",
"enum": ["norm", "mid", "high"],
"description": "Speed compliance: norm (within limit), mid (moderate overspeed), high (severe overspeed)."
},
"SpeedLimit": {
"type": "integer",
"minimum": 0,
"description": "Posted speed limit at this location (km/h)."
},
"PhoneUsage": {
"type": "boolean",
"description": "Whether the driver was using the phone."
},
"Cornering": {
"type": "boolean",
"description": "Whether a cornering event was flagged."
}
}
}
}
}
Updated 6 days ago
