The Portland Water Bureau is monitoring a fire in the Bull Run Watershed

Tap water remains safe to drink. More information or follow the Portland Water Bureau on X (Twitter) and Facebook for updates. Español | Tiếng Việt | 简体中文 | Русский| українська | Soomaali | Română | नेपाली | Chuukese

Guide to E-Scooter Street Use Dashboard

A view of streets filled with varying colors
The Portland Bureau of Transportation (PBOT) has launched the E-Scooter Street Use Dashboard which shows how electric scooters (e-scooters) use Portland's street and bicycle network. This page explains what data is included, how to use the dashboard, and how to download the data yourself.

What data is included in the E-Scooter Street Use Dashboard?

Data on electric scooter (e-scooter) trips comes directly from e-scooter companies, as required by their permit to operate in Portland. 

The Portland Bureau of Transportation (PBOT) gets this data using the standards and application programming interface (API) outlined in the City of Portland’s version of the Mobility Data Specification (MDS). To learn more about MDS and follow its development, visit the Open Mobility Foundation's GitHub repository

Before we began processing any route data, we first used our street and bicycle network data to create a set of segments which an E-Scooter is likely to use during a trip. We then used the point along those segments that is halfway along the segment to create a set of polygons where each polygon represents the area where any point within it is closest to the point it represents along the segment. 

The image below shows how this might look for a set of streets. Each street segment has its midpoint as a circle within a shape in a  blue color  to show the area of the polygon described above. 

Demonstration of polygons surrounding street midpoints
Demonstration of polygons that surround a street midpoint to capture location data near street midpoints.

The data provided by e-scooter operators gives us a series of location "pings" for nearly every e-scooter trip taken in Portland. As we process e-scooter route data, we determine the midpoint of a segment each “ping” location is closest to by performing an intersect operation between the “ping” location and the set of polygons shown above. The image below attempts to demonstrate this process. It shows the same image as above with two scooter location "pings" indicated by a scooter icon in a circle with a line connecting them to indicate the line that would be considered the route of this scooter. Two polygons are highlighted in a lighter, red color to indicate that they are considered to have been used in this trip.

Demonstration of polygons surrounding street midpoints and a route intersecting them
Demonstration of route matching using polygons surrounding street midpoints.

You may notice that some streets that this scooter trip likely would have used are not highlighted. It is important to understand that we only match locations that we receive “ping” locations for and not the points and/or routes that are implied by this series of locations. This means that sometimes adjacent streets will have use statistics that may seem unnatural, and this is the cause. This is done to ensure accuracy, as some location pings are not necessarily close, and estimating the route of a trip can be an error-prone process.

How to use the E-Scooter Street Use Dashboard

We have designed the dashboard using the Tableau platform. It shows a lot of data without having to change any of the settings. However, we want to guide you on ways you can use the dashboard to explore the data in different ways.

Once you feel ready to use the dashboard, click the link below:

Use the E-Scooter street use dashboard

Understanding the map color scheme 

To display data in a way that provides a more useful comparison of trip activity between areas of high usage and lower usage, the map displays colors using a logarithmic scale. This is done to smooth the color distance between the highest and lowest values. A logarithm tells us what exponent value for a specific base gets us a certain value (e.g., if 10^x = 100 we can solve for x by applying the logarithm log10(100) which gives us the value 2, and thus x = 2). This is helpful for displaying colors for scooter activity because we can transform the value 1,000,000 to 6 and 10 to 1, moving those numbers much closer in range than they would be without a logarithm function applied. This method is especially useful when visualizing data that has a large range of values, such as scooter trip data.

To help explain this in practice, the following images show this method applied to E-Scooter trips aggregated to the census block group level. The first image shows trips without using a logarithm to modify the color range, and the second image shows the same data with a logarithmic color scale applied. You will notice that the difference between the images is that more of the city receives a darker color with a logarithmic scale, and demonstrates those areas outside of the downtown area that show a relatively higher level of scooter activity.

Census block groups in Portland filled with various colors
Demonstration of a color scale without using a logarithm function.
Census block groups in Portland filled with various colors
Demonstration of a color scale using a logarithm function.

Searching, Zooming, and Changing the map 

Tableau's map interaction tools

The vertical toolbar in the upper left corner of the map allows users to search for specific zip codes and change the map extent that is visible by zooming in and out.  

  • To search:  Clicking on the magnifying glass icon pops-up a search bar that can be used to search for specific zipcodes in the City of Portland. At this time, no additional search features are available (e.g., an address) 

  • To zoom in or out: Clicking on the plus (+) button will zoom the map in and the minus (-) button will zoom the map out. Holding the Ctrl key and using your mouse wheel or trackpad to scroll will also zoom the map in and out. Double clicking a spot on the map will zoom the map in. 

  • To reset the map view: Clicking the home (house icon) button resets the view extent and returns users to the default map scale.

Selecting data from the map

The right caret button (triangle-shaped symbol pointing towards the right) reveals additional map options that allows users to select zoom area, pan around the map, or select features via rectangle, circle (radial), or freestyle (lasso). 

  • Zoom Area button (rectangle shape with magnifying glass) lets users select the area they are interested in viewing by drawing a rectangle over the area of interest.  

  • Pan button (crossed arrow shape) returns users to the default pan tool that allows users to pan around the map and explore areas of interest.  

  • Three Selection buttons (dashed line square, circle, and asymmetrical rounded shape) enable users to select specific areas of interest on the map. 

    • Square Selection button- selects all features within the rectangle shape a user draws. To use, click somewhere on the map and drag mouse to expand the size and shape of the rectangle selected area. 

    • Radial Selection button- selects all features within a designated radius of a central point. To use, click the area of interest and drag your mouse until the desired radial distance around the point is achieved. 

    • Lasso Selection button- selects a custom area on map, as drawn by user. To use, click anywhere on the map and draw a shape around the area of interest. Users do not need to finish drawing and “close” the shape, the blue highlighted area will be selected. 

Filtering Data Displayed on Map 

Tableau's E-Scooter Street Use Filter Tools

The filter pane on the right sidebar of the Scooter Route Map enables users to filter by one or more features, including:  

  • Street Type 

  • Year 

  • Month  

  • Weekday/Weekend 

  • Hour 

  • Scooter Activity 

The default for each variable listed is to show “(All).” However, if users want to refine their search and, for example, only look at trips on a certain street type (e.g., arterials) in certain months (e.g. June, July, and August), the filter pane allows users to generate custom queries.

  • To filter variable(s)click the outlined box below the filter name to reveal the possible values available for each filter. Using these, users can filter by one or multiple values. Users can either eliminate selections one-by-one or deselect “(All),” which will un-check all the selection boxes, and allow users to individually select the values of interest. A search bar exists at the top of each drop-down menu that users can use to narrow their search (e.g. if one wants to include or exclude any type of private road from their search, they can type “private” into the drop-down search bar and any values that contain the relevant text will remain).  

  • To filter by scooter activity there is a range slider at the bottom of the filter pane that allows users to change the upper and lower bounds of scooter activity displayed on the map. The default is to show a lower bound of greater than or equal to three (≥ 3) that is set to preserve user privacy and an upper bound reflective of the total amount of scooter activity (i.e. the greatest number of scooter “hits”  on a single street segment). Users can select and slide the small semi-circle shapes on each end of the line to change the amount of scooter activity displayed. Alternatively, users can enter specific upper and lower bound values by clicking the numbers and typing in the values of interest.  

  • To clear selected filters and return to the default (show All values), there is a funnel icon with a red “x” in line with each filter that will appear if a filter is applied to a variable. Clicking this icon, will clear any selections and return the map display to the default view, which is to show all available variables. 

  • Toggling filter mode: To change whether selected values for each filter are included or excluded from the map, click the down arrow in the top right corner of the filter that appears when you move your mouse over the filter. A dropdown appears that will let you select either “Include values” or “Exclude values”.