Traffic view feed specifications

Here’s the information you see in the Traffic View feed:

  1. General traffic information: Routes, unusual traffic, ETAs
  2. Irregularities (also called unusual traffic): Alerts and traffic jams that affect an exceptionally large number of users
  3. Incidents/reports/alerts: Waze user generated reports and alerts related to a specific incident causing traffic.
 

Note: When you change the polygon or routes in the Traffic View tool, your feed changes too.

JSON Element Value Description
id (Root-Level) String / UUID The primary identifier at the root level of a traffic jam or incident payload. This matches the parent event's unique uuid across the platform.
bbox Object / Array Bounding box coordinates representing the spatial limits of the feed payload.
broadcasterId Integer / String The unique account identification code of the partner feed owner within the Waze master database.
type String Event type categorization. Corresponds to values defined in the Alert Type reference matrix.
subtype String Event subtype specialization. Dependent on configuration flags (for example, atf parameter filtering rules).
street String / Null The street name exactly as stored in the map database. Text layout reflects un-canonicalized forms and may return null states.
city String / Null

City and state name [City, State] if available, [State] if not associated with a city.

Cities are mapped strictly to official political boundaries. This will return empty (city='') if an incident occurs outside an official municipal line.

country String Two-letter absolute country code mappings conforming to the ISO 3166-1 alpha-2 standard (see two letter codes in http://en.wikipedia.org/wiki/ISO_3166-1).
isMetric Boolean Indication to the UI what units to use in the display.
length Integer / Float Length of route in meters.
lengthOfJams Array / Object List of total length of jams in the bounding box by jam level (indicates how jammed the area is).
line Array of Points Route geometry.
time Integer Time in seconds it takes to cross the route right now (for example, in the last check. Checks happen about every two minutes).
turnType String Legacy field inherited from older routing architectures. This element almost universally resolves to NONE and should be ignored by your parsing layer.
envelope Object Bounding box of the route.
historicTime Integer Time in seconds it usually takes to cross this route on the current day of week and time. Calculated using ~30-minute buckets over prior weeks (weighted heavily toward recent weeks). Adjusts automatically to evaluate equivalent holiday periods across prior years.
alternateRoute Object A suggested route with a faster ETA. Calculated only for routes with a jamLevel over 1 where real-time traffic delay is at least 2 minutes slower than free flow.
usersOnJams Array / Object Count of users per jam level (these are relative weighted numbers).
Under irregularities/route The following fields are nested directly inside the irregularities list elements:
irregularities Array List of routes that are found as having high ETA relative to historic ETAs (Unusual traffic events). Escalated automatically when real-time speeds drop 75% or more below the segment historical average (regularSpeed).
irregularities/route/id Integer A counter running starting with 0 that counts the number of irregularities on routes.
irregularities/route/name String Route name (i.e. major street name this route goes through, similar to route name a user sees when routes from the app).
irregularities/route/type String Returns "STATIC" if the irregularity is caused by a structural road closure, otherwise returns "DYNAMIC" for normal high-volume traffic congestion.
irregularities/route/fromName String Street name where the irregularity route starts.
irregularities/route/toName String Street name where the irregularity route ends.
irregularities/route/endNode String Internal node tracking used to determine route context. Populated on a best-effort basis, doesn't map to standard parameters in basic Jams feeds and shouldn't be used for database joins.
irregularities/route/alerts Array Lists the unique root IDs of core user-submitted alerts that are directly responsible for causing or triggering the traffic irregularity (Cause Alerts).
irregularities/route/[shared] (Various) The following elements evaluate exactly to their baseline route definitions: time, line, length, historicTime, jamLevel, envelope, alternateRoute, leadAlert.
Under subRoutes The following fields are nested directly inside the subRoutes list elements:
subRoutes Array List of sub sub routes. When a route has any jams on it the route is split into sub routes, each of them with a different jam level. For example, a route could be split into 4 sub routes with corresponding jam levels 0,1,3,0.
subRoutes/fromName String Street name where subroute starts.
subRoutes/toName String Street name where subroute ends.
subRoutes/name String Given by the feed owner, describes the sub route.
subRoutes/segments Array Array of nested tracking objects mapping the infrastructure footprints consumed by a traffic jam. The nested id inside this array represents the internal road segment reference code.
subRoutes/jamLevel Integer Traffic congestion scale where level 0 is free flow, levels 1 to 3 indicate increasing slowdown, level 4 means standstill, and level 5 indicates a full road closure.
subRoutes/[shared] (Various) The following elements evaluate exactly as described in the basic definitions, just isolated for the sub route: line, length, time, historicTime, envelope.
Under leadAlert The following fields are nested directly inside the leadAlert object:
leadAlert Object One of many alerts on the route that’s prioritized as the most major one.
leadAlert/id String / UUID Alert id (internal id). Unique to each individual parent incident.
leadAlert/type String Alert type.
leadAlert/subType String Alert sub type - depends on atof parameter. Note: Codebase Enums must support the latest authority codes, including HAZARD_ON_ROAD_EMERGENCY_VEHICLE and HAZARD_ON_ROAD_MOBILE_SPEED_CAMERA.
leadAlert/reportByNickname String Nickname of the reporter user.
leadAlert/reportByMood Integer Mood id of the reporter user.
leadAlert/description String / Null Alert description as added by the reporting user. Third-Party Processing Alert: Context blocks forwarded from third-party municipal authorities or public works records are piped into this property as unformatted, free text. Downstream regex cleaning scripts should be configured defensively to normalize truncation or unexpected formatting anomalies.
leadAlert/numThumbsUp Integer Number of thumbs up given by wazers to this alert.
leadAlert/numNotThereReports Integer Number of thumbs down ("Not There" reports) given by wazers to this alert.
leadAlert/City String / Null City of the alert (optional). Mapped strictly via political boundaries; if an incident falls outside an official municipality edge, this will remain completely empty.
leadAlert/Street String / Null Street of the alert (optional).
leadAlert/reportTime Timestamp When alert was reported.
leadAlert/position Object Alert location (latitude, longitude).

 

Traffic View feed example

{

  "usersOnJams": [

    {

      "wazersCount": 1718,

      "jamLevel": 0

    },

    {

      "wazersCount": 0,

      "jamLevel": 1

    },

    {

      "wazersCount": 25,

      "jamLevel": 2

    },

    {

      "wazersCount": 0,

      "jamLevel": 3

    },

    {

      "wazersCount": 0,

      "jamLevel": 4

    }

  ],

  "routes": [

    {

      "historicTime": 446,

      "line": [

        {

          "x": -74.20689323194252,

          "y": 40.64175770128392

        },

        {

          "x": -74.14963579315261,

          "y": 40.60903444419476

        }

      ],

      "bbox": {

        "minY": 40.60903444419476,

        "minX": -74.22707498420026,

        "maxY": 40.643716689521995,

        "maxX": -74.14963579315261

      },

      "length": 9846,

      "type": "STATIC",

      "jams": [],

      "alerts": [],

      "toName": "",

      "name": "278 E",

      "fromName": "",

      "jamLevel": 0,

      "id": 1376,

      "time": 436

    },

    {

      "subRoutes": [

        {

          "toName": "SR-139 W (lower)",

          "historicTime": 358,

          "line": [

            {

              "x": -74.006321,

              "y": 40.722572

            },

            {

              "x": -74.006582,

              "y": 40.722752

            },

            {

              "x": -74.085259,

              "y": 40.730522

            }

          ],

          "bbox": {

            "minY": 40.730522,

            "minX": -74.085259,

            "maxY": 40.740889,

            "maxX": -74.062409

          },

          "fromName": "SR-139 W (lower)",

          "length": 3520,

          "jamLevel": 0,

          "time": 261

        }

      ],

      "historicTime": 687,

      "line": [

        {

          "x": -74.00632136441801,

          "y": 40.7225729836073

        },

        {

          "x": -74.08525957374057,

          "y": 40.73052272482624

        }

      ],

      "bbox": {

        "minY": 40.7225729836073,

        "minX": -74.08525957374057,

        "maxY": 40.740889,

        "maxX": -74.00632136441801

      },

      "length": 9092,

      "type": "STATIC",

      "jams": [],

      "alerts": [],

      "toName": "",

      "name": "78 W",

      "fromName": "",

      "jamLevel": 0,

      "id": 1377,

      "time": 735

    }

  ],

  "irregularities": [

    {

      "alerts": [],

      "historicTime": -1,

      "line": [

        {

          "x": -74.016234,

          "y": 40.706399

        },

        {

          "x": -74.010097,

          "y": 40.70187

        }

      ],

      "bbox": {

        "minY": 40.706399,

        "minX": -74.016234,

        "maxY": 40.706399,

        "maxX": -74.016234

      },

      "name": "Double tube closure ",

      "length": 1040,

      "jamLevel": 5,

      "id": 0,

      "time": -1,

      "type": "DYNAMIC",

      "jams": [],

      "leadAlert": {

        "numComments": 0,

        "comments": [],

        "city": "Manhattan, NY",

        "numThumbsUp": 0,

        "street": "Battery Park Underpass",

        "subType": "ROAD_CLOSED_EVENT",

        "id": "alert-2130271205/3c856425-262f-3668-b03c-25d3b02c01f7",

        "position": "40.706399 -74.016234",

        "type": "ROAD_CLOSED",

        "numNotThereReports": 0,

        "isLeadAlert": true,

        "reportTime": 1522084545431

      }

    },

    {

      "alerts": [],

      "historicTime": -1,

      "line": [

        {

          "x": -74.050004,

          "y": 40.73128

        },

        {

          "x": -74.062409,

          "y": 40.73913

        }

      ],

      "bbox": {

        "minY": 40.73128,

        "minX": -74.050004,

        "maxY": 40.73128,

        "maxX": -74.050004

      },

      "name": "Construction  ",

      "length": 1414,

      "jamLevel": 5,

      "id": 1,

      "time": -1,

      "type": "DYNAMIC",

      "jams": [],

      "leadAlert": {

        "numComments": 0,

        "comments": [],

        "city": "Jersey City, NJ",

        "numThumbsUp": 0,

        "street": "SR-139 W (lower)",

        "subType": "ROAD_CLOSED_EVENT",

        "id": "alert-2132049084/1c67d40f-2e98-30cb-a64a-ae153bfe850a",

        "position": "40.73128 -74.050004",

        "type": "ROAD_CLOSED",

        "numNotThereReports": 0,

        "isLeadAlert": true,

        "reportTime": 1522077324308

      }

    }

  ],

  "broadcasterId": "b9c6100b281f316fbc17b6d94f96524f",

  "areaName": "ny_area",

  "bbox": {

    "minY": 40.208,

    "minX": -74.75,

    "maxY": 41.108,

    "maxX": -73.38

  },

  "name": "New York Area | DEMO",

  "isMetric": false,

  "restrictions": {},

  "lengthOfJams": [

    {

      "jamLevel": 1,

      "jamLength": 1872

    },

    {

      "jamLevel": 2,

      "jamLength": 10461

    },

    {

      "jamLevel": 3,

      "jamLength": 9917

    },

    {

      "jamLevel": 4,

      "jamLength": 1470

    },

    {

      "jamLevel": 5,

      "jamLength": 43032

    }

  ],

  "updateTime": 1522138104077

}

Routes example

 

Irregularity classification thresholds

When a segment's speed plummets 75% below its historical average (regularSpeed), the event is escalated from a standard jam and added to the Irregularities dataset. The severity classification (type) is assigned dynamically based on net time delay added to the segment:

Type Highway Infrastructure (Major/Minor Highways, Freeways) Secondary & Local Roads (Regular Streets)

SMALL

Delay time added > 7 minutes Delay time added > 5 minutes

MEDIUM

Delay time added > 15 minutes Delay time added > 10 minutes

LARGE

Delay time added > 30 minutes Delay time added > 20 minutes

HUGE

Delay time added > 1 hour Delay time added > 1 hour

STATIC vs. DYNAMIC classifications:

  • The type parameter inside the irregularities stream may return text states beyond DYNAMIC:

    • DYNAMIC: Represents a shifting bottleneck driven strictly by high, real-time traffic volume

    • STATIC: Explicitly dictates that the underlying irregularity is caused by a structural road closure

Historical heuristics

The historicTime field shows the typical travel time for a route. To calculate this, the engine takes the stats of the segment data from the same day during past weeks in ~30 minute interval buckets.

The calculation uses these rules:

  • Interval buckets: Historical records are grouped into ~30-minute blocks for that specific day of the week
  • Recent data weights: The engine evaluates data from previous weeks, but gives more weight to recent weeks. Older data becomes less important to the calculation as time goes backץ
  • Holiday tracking: For holidays, the engine automatically adjusts to look at historical data from matching holiday periods in past years rather than a standard week

Alert types

Waze currently supports the following types and subtypes of user-generated alerts:

Note: for historical reasons, HAZARD and WEATHERHAZARD types are used interchangeably. The nature of such alerts should be determined using the subtype.

Alert type

Alert Subtype

ACCIDENT

  • ACCIDENT_MINOR
  • ACCIDENT_MAJOR
  • NO_SUBTYPE

JAM

  • JAM_MODERATE_TRAFFIC
  • JAM_HEAVY_TRAFFIC
  • JAM_STAND_STILL_TRAFFIC
  • JAM_LIGHT_TRAFFIC
  • NO_SUBTYPE

WEATHERHAZARD / HAZARD

  • HAZARD_ON_ROAD
  • HAZARD_ON_SHOULDER
  • HAZARD_WEATHER
  • HAZARD_ON_ROAD_OBJECT
  • HAZARD_ON_ROAD_POT_HOLE
  • HAZARD_ON_ROAD_ROAD_KILL
  • HAZARD_ON_SHOULDER_CAR_STOPPED
  • HAZARD_ON_SHOULDER_ANIMALS
  • HAZARD_ON_SHOULDER_MISSING_SIGN
  • HAZARD_WEATHER_FOG
  • HAZARD_WEATHER_HAIL
  • HAZARD_WEATHER_HEAVY_RAIN
  • HAZARD_WEATHER_HEAVY_SNOW
  • HAZARD_WEATHER_FLOOD
  • HAZARD_WEATHER_MONSOON
  • HAZARD_WEATHER_TORNADO
  • HAZARD_WEATHER_HEAT_WAVE
  • HAZARD_WEATHER_HURRICANE
  • HAZARD_WEATHER_FREEZING_RAIN
  • HAZARD_ON_ROAD_LANE_CLOSED
  • HAZARD_ON_ROAD_OIL
  • HAZARD_ON_ROAD_ICE
  • HAZARD_ON_ROAD_CONSTRUCTION
  • HAZARD_ON_ROAD_CAR_STOPPED
  • HAZARD_ON_ROAD_TRAFFIC_LIGHT_FAULT
  • HAZARD_ON_ROAD_EMERGENCY_VEHICLE
  • HAZARD_ON_ROAD_MOBILE_SPEED_CAMERA
  • NO_SUBTYPE

MISC

  • NO_SUBTYPE

CONSTRUCTION

  • NO_SUBTYPE

ROAD_CLOSED

  • ROAD_CLOSED_HAZARD
  • ROAD_CLOSED_CONSTRUCTION
  • ROAD_CLOSED_EVENT
  • NO_SUBTYPE

Irregularities (Unusual traffic jams) example

Was this helpful?

How can we improve it?
Search
Clear search
Close search
Main menu
8852946996812646206
true
Search Help Center
false
true
true
true
false
false
false
false
false