{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/driving_behaviour_event/v1.json",
  "title": "driving_behaviour_event contract v1",
  "type": "object",
  "required": [
    "acceleration_g",
    "asset",
    "category",
    "deceleration_g",
    "external_id",
    "occurred_at"
  ],
  "properties": {
    "gps": {
      "type": "object",
      "description": "the position carried on the event, and by the declared producer edge the geographic area it is attributed to",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "— (datum, CRS and precision **unverified**)"
    },
    "asset": {
      "type": "string",
      "description": "the vehicle the event was recorded against",
      "x-demiton-requiredness": "required",
      "x-demiton-reference": true
    },
    "device": {
      "type": "number",
      "description": "the telematics device that recorded the event",
      "x-demiton-requiredness": "optional"
    },
    "driver": {
      "type": "number",
      "description": "the operator attributed to the event",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "category": {
      "type": "string",
      "description": "which kind of event it is: harsh braking or harsh acceleration",
      "x-demiton-requiredness": "required"
    },
    "duration_s": {
      "type": "number",
      "description": "how long the event lasted (`attributes.duration`)",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "s",
      "x-demiton-type": "decimal"
    },
    "external_id": {
      "type": "string",
      "description": "the source's own event identifier (`id`)",
      "x-demiton-requiredness": "required"
    },
    "occurred_at": {
      "type": "string",
      "description": "when the harsh braking/acceleration event occurred",
      "x-demiton-requiredness": "required",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "acceleration_g": {
      "type": "number",
      "description": "peak acceleration of an EA event, magnitude, INSTANTANEOUS",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "g",
      "x-demiton-type": "decimal"
    },
    "deceleration_g": {
      "type": "number",
      "description": "peak deceleration of an HB event, magnitude, INSTANTANEOUS (never summed)",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "g",
      "x-demiton-type": "decimal"
    },
    "raw_attributes": {
      "type": "object",
      "description": "the untouched source event payload, including the per-second acceleration/GPS trace the resource description promises",
      "x-demiton-requiredness": "optional"
    },
    "acceleration_threshold_g": {
      "type": "number",
      "description": "the EA threshold the event exceeded (`maxAccelerationThrsh`)",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "g",
      "x-demiton-type": "decimal"
    },
    "deceleration_threshold_g": {
      "type": "number",
      "description": "the HB threshold the event exceeded (`minDecelerationThrsh`)",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "g",
      "x-demiton-type": "decimal"
    }
  },
  "x-demiton-register-type": "driving_behaviour_event",
  "x-demiton-contract-version": "1.0.3",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [
    {
      "axis": "asset",
      "requirement": "required",
      "role": "subject"
    },
    {
      "axis": "financial_period",
      "requirement": "optional",
      "role": "context"
    }
  ],
  "x-demiton-measures": [
    {
      "key": "acceleration_g",
      "accumulation": "instantaneous",
      "dtype": "float",
      "unit": "g"
    },
    {
      "key": "acceleration_threshold_g",
      "accumulation": "instantaneous",
      "dtype": "float",
      "unit": "g"
    },
    {
      "key": "deceleration_g",
      "accumulation": "instantaneous",
      "dtype": "float",
      "unit": "g"
    },
    {
      "key": "deceleration_threshold_g",
      "accumulation": "instantaneous",
      "dtype": "float",
      "unit": "g"
    },
    {
      "key": "duration_s",
      "accumulation": "instantaneous",
      "dtype": "float",
      "unit": "s"
    }
  ],
  "x-demiton-provenance": {
    "standards": [
      {
        "code": "GDA2020 / MGA2020",
        "title": "Geocentric Datum of Australia 2020 and Map Grid of Australia 2020 (EPSG:7844 / EPSG:78xx zones)",
        "access": "public_summary",
        "region": "Australia",
        "edition": "GDA2020 = ITRF2014 at epoch 2020.0",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Privacy Act 1988 (Cth)",
        "title": "Privacy Act 1988 - Australian Privacy Principles",
        "access": "full_text_verified",
        "clause": "APP 3",
        "region": "Australia",
        "edition": "APP Guidelines ch 3 v1.2 (2026-05-13)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Workplace Surveillance Act 2005 (NSW)",
        "title": "Workplace Surveillance Act 2005 (tracking surveillance of employees)",
        "access": "public_summary",
        "clause": "s 10",
        "region": "Australia",
        "edition": "in force (compilation 2025-06-14)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Regulation (EU) 2016/679 (GDPR)",
        "title": "General Data Protection Regulation (GDPR)",
        "access": "public_summary",
        "region": "European Union",
        "edition": "2016",
        "checked_on": "2026-09-14"
      },
      {
        "code": "ISO 55001",
        "title": "Asset management - Asset management system - Requirements",
        "access": "paywalled_secondary",
        "region": "International",
        "edition": "2024 (AS ISO 55001:2024 identical AU adoption)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "ISO/TS 15143-3",
        "title": "Earth-moving machinery and mobile road construction machinery - Worksite data exchange - Telematics data (AEMP 2.0)",
        "access": "paywalled_secondary",
        "region": "International",
        "edition": "2020 (SA TS ISO 15143.3:2021 AU and PD ISO/TS 15143-3:2020 UK identical adoptions)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "RFC 7946",
        "title": "The GeoJSON Format (IETF Proposed Standard)",
        "access": "full_text_verified",
        "region": "International",
        "edition": "August 2016",
        "checked_on": "2026-09-14"
      },
      {
        "code": "ICO monitoring workers guidance",
        "title": "ICO Employment practices and data protection: monitoring workers",
        "access": "full_text_verified",
        "region": "United Kingdom",
        "edition": "current guidance (under review after the Data (Use and Access) Act)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "UK GDPR / Data Protection Act 2018",
        "title": "UK GDPR and Data Protection Act 2018",
        "access": "public_summary",
        "region": "United Kingdom",
        "edition": "as amended",
        "checked_on": "2026-09-14"
      },
      {
        "code": "49 CFR Part 395 Subpart B",
        "title": "FMCSA - Hours of Service of Drivers - Electronic Logging Devices",
        "access": "full_text_verified",
        "clause": "s 395.26",
        "region": "United States",
        "edition": "current (ELD mandate from 2017-12-18)",
        "checked_on": "2026-09-14"
      }
    ]
  },
  "description": "Harsh braking, acceleration and cornering events from telematics.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/driving_behaviour_event/",
  "x-demiton-register-catalog": "https://docs.demiton.io/concepts/register-catalog"
}