# What Waze Map Editors Need to know about how traffic data is stored

The Waze map editor's motto is "usability, simplicity, retention". What we want to retain is the traffic data the Waze servers use for determining the best routes. In order to develop and understand useful guidelines and best practices, we must understand what information is stored and what happens to it when we junction, disconnect, cut, merge, shrink, stretch, add or remove geometry nodes, change the direction (unknown, one way, reverse direction, two-way). Of course, Waze chooses to keep some details about its routing algorithms (and the data those algorithms use) secret, so you won't find those details here.

## Glossary

Segment cross speed
The average speed at which wazers traverse the segment from A to B or from B to A during each time slice (fraction of day / day of week), not counting the additional time it takes to transition from one segment to the next.
Segment cross time
The average time it takes for a wazer to traverse the segment from A to B or from B to A during each time slice (fraction of day / day of week). Calculated from segment cross speed and segment length.
Transition time
The average additional time it takes to transition from one segment to another, in addition to the segment cross time. If the average segment cross for segment 1 time is 30s and the transition time from segment 1 to segment 2 is 30s, then the average total time it takes to enter segment 1 until entering segment 2 is 60s (during that time slice). Wait times at traffic signals or other intersections to turn or go straight contribute to transition time.

## What information is stored

• For each segment, the Segment cross speed in each direction (A to B and B to A) is stored, for many different times of day and each day of the week (time slices). In the past, Waze has referred to these as Forward Cross Speed and Backwards Cross Speed.
• In addition, we have been told that "transition time" is stored. This is the additional time it takes to go from the segment, through a specific junction node it is connected to, to another segment also connected to that junction node. We do not know of any way to get these directly.
• Time to traverse a segment can be calculated from speed times length. The total time to cross segment 1 in the A-B direction and get to segment 2 is the segment 1 Forward Cross Speed + transition time to segment 2.
• We do not now how these numbers are calculated, what happens when wazers leave a segment before they get to the end, turn off their phone, or lose cell service. We don't know whether waze stores a lot of historical speeds and times or just keeps a running average, and whether it keeps data for more times of day then the 48 half-hour periods it shares with us.

## What information we can see

Scripts like route speeds can get the total time/speed to cross from one segment to the next for every half hour for every day of the week. They cannot get the cross speeds and transitions separately, but we can see the different times it takes if a route goes left, right, or straight when leaving the segment.

## When is traffic data lost?

• When you delete a segment, all traffic data involving that segment is lost
• When you disconnect a segment at a junction, all transition (turn wait time) data into and out of that end of the segment is lost.

## What happens to traffic data when you make changes to the roads

• When you delete a segment (let's call it segment 100)
• its cross times and transition times to other segments is deleted.
• all transition times from other segments to that segment are lost; waze does not remember "turning left from segment 101 is a long wait" it remembers "the transition time from segment 101 to segment 100 is 3 minutes at 5:30 PM". If you delete segment 100, it can no longer use that information.
• When you delete and replace a segment, waze has to start from scratch collecting data on segment cross time and also time to make turns to and from that segment.
• When you shift the position of a junction without disconnecting anything, changing the lengths of several segments
• The cross speeds are not changed.
• Cross times calculations will change because the lengths of the segments has changed
• Transition times are not affected.
• When you cut a segment into 2 shorter segments without changing anything else at the 2 original junctions
• The cross speed of the original segment is used for both of the new segments
• Transition times at the 2 original junctions are applied to the new segments
• What are the transition times between the 2 new segments across the new junction.
• When you disconnect all segments from a junction node and save.
• The junction node is deleted and replaced by a new junction node ID
• The transition times passing through that junction node are lost
• When you move segments from one junction node to another junction node
• All transition times which passed through the first junction node are lost.
• New transition times connecting the same segments through the new junction node are created.

# Questions

## What happens when

• Drag one junction node with two segments on top of another junction node with another 2 segments. Are the s1->s2 and s3->s4 transition times retained at the new junction node?
• Change the segment's length without moving the ends, as by stretching out a geometry node.
• Same cross speed is used, so the calculated cross time will change (?)
• transition times are unaffected.
• Create 1 segment from 2 by deleting the junction joining them.
• Cross speed?
• Transition times at the nodes on either end of the new segment?
• Transition time between the 2 segments that have been joined to create the new segment?
• Turn a turn green arrow red -- does anything happen to the already-stored transition time or cross speed? Does anything change about how data related to that segment is collected and stored when that red arrow transition is traversed?
• Turn a red arrow green. See above.
• Change a 2-way segment to 1 way, so that the turn arrow is no longer visible.
• After a period of time (minute, day, month, year,) reverse the direction of the 1-way segment
• disconnect a segment from a junction
• and reconnect it before saving.
• and save it disconnected, but reconnect it and save again before the next tile update
• and save it disconnected through the next tile update, then reconnect directly after tile update.
• for a few days, weeks, or months -- as a way to close a road during construction.
• and then reconnect it to the same junction (nothing else having changed at that junction in the meantime)
• Connect a segment to a junction
• a former "dead-end" node of an existing segment
• convert a bow tie junction to a "H" junction by the following method
1. disconnect segment 1 from the bow tie junction
2. connect segment 1 to the cross segment to create a new junction
3. disconnect segment 2 from the bow tie junction
4. connect segment 2 to the new junction.
• convert a bow tie junction to a "H" junction by the following method
1. bridge segment 1 to segment 2
2. move the joined segment to the new junction location on the cross segment
3. reduce the elevation to ground and use the "junction" icon to create the new junction.