Cyclistic Bike-Share Analysis

The latest version of my capstone project for the Google Data Analytics Professional Certificate.

EDA
data cleaning
data wrangling
data visualization
R
Author

Sandra Jurela

Published

August 25, 2023

Foreword

In September 2021, I completed the Google Data Analytics Professional Certificate hosted on Coursera. The program is very extensive and covers all the steps of the data analysis process as taught by Google (ask, prepare, process, analyze, share, and act). It was my first encounter with databases and analytics tools. I really enjoyed it very much, and I have to say, it made some useful corrections to my analytical mind. I am very grateful for that and highly recommend it!

It consists of 8 courses, the last of which is dedicated to a capstone project. As a passionate cyclist, I have chosen the Cyclistic bike-share case study to showcase what I have learned. In terms of analytics, this was my very first project and I hope you’ll enjoy it!

Introduction

In this case study, I am a junior data analyst working in the marketing analyst team at Cyclistic, a fictional bike-share company in Chicago. The director of marketing believes the company’s future success depends on maximizing the number of annual memberships. Therefore, my team wants to understand how casual riders and annual members use Cyclistic bikes differently. From these insights, my team will design a new marketing strategy to convert casual riders into annual members. But first, Cyclistic executives must approve our recommendations, so they must be backed up with compelling data insights and professional data visualizations.

Three questions will guide the future marketing program:

  1. How do annual members and casual riders use Cyclistic bikes differently?
  2. Why would casual riders buy Cyclistic annual memberships?
  3. How can Cyclistic use digital media to influence casual riders to become members?

Lily Moreno, the director of marketing and my manager has assigned me the first question to answer.

✨ PART I: Ask

In the first step of the data analysis process, we identify the business task and consider key stakeholders.

Business task
How do annual members and casual riders use Cyclistic bikes differently?

Primary Stakeholders

  1. Lily Moreno: the Director of Marketing and my manager
  2. Cyclistic Executive Team: the notoriously detail-oriented executive team who will decide whether to approve the recommended marketing program.

Secondary Stakeholders

  1. Cyclistic Marketing Analytics Team: a team of data analysts who are responsible for collecting, analyzing, and reporting data that helps guide Cyclistic marketing strategy (my team)

✨ PART II: Prepare

The objective of this step is to prepare data for the analysis. I will use the past 12 months of Cyclitis’s historical trip data (from September 2020 to August 2021) to analyze and identify trends. Because Cyclistic is a fictional company, for the purposes of this case study, I will use data from a real bike-share company in Chicago, Divvy. The data has been made available for public use by Motivate International Inc. under this license and can be downloaded here.

The data is released on a monthly schedule and anonymized. It is reliable, original, comprehensive, current, and cited.

I have downloaded 12 CSV files (datasets). Each dataset contains historical trip data for an individual month. In all 12 datasets, each variable has its own column, each observation has its own row, and each value has its own cell. Therefore, I can conclude that the datasets are tidy.

There are 13 columns (variables) in each CSV file. Metadata isn’t provided, but most of the variables are self-explanatory.

Data dictionary

No Column Name Data Type Definition
1 ride_id Text Unique ride ID
2 rideable_type Text Classic, docked, or electric bike
3 started_at Date & Time Trip start date and time
4 ended_at Date & Time Trip end date and time
5 start_station_name Text Trip start station name
6 start_station_id Text Trip start station ID
7 end_station_name Text Trip end station name
8 end_station_id Text Trip end station ID
9 start_lat Numeric Trip start station latitude
10 start_lng Numeric Trip start station longitude
11 end_lat Numeric Trip end station latitude
12 end_lng Numeric Trip end station longitude
13 member_casual Text User type (casual or member)

Only two variables need further clarification:

  • rideable_type - there are three possible values for this variable: classic_bike, docked_bike, and electric_bike. classic_bike is actually a classic dockless bike, docked_bike is a classic docked bike, and electric_bike is an e-bike that can be either docked at any station or locked with cable at any e-station for no additional cost. For an extra $2, it’s possible to lock a bike to any public bike rack, light pole, signpost, or retired parking meter outside of a station within the service area. Classic blue Divvy bikes can only be docked at the traditional Divvy stations.

  • member_casual - there are two possible values for this variable: casual and member, representing casual riders and annual members. Casual riders buy a Single Ride Pass (one trip up to 30 minutes) or a Day Pass (unlimited 3-hour rides for 24-hours), while members buy an Annual Membership (unlimited 45-min rides). This is important because, in the cleaning step of the analysis, I will filter out all trips with a ride length longer than 3 hours.

Fig 1: Divvy plans and pricing

Data issues

If we want to show the most popular stations for each group on the map, each station must have unique geographical coordinates. This is not the case for trips taken with electric bikes. Each such ride has its own starting and ending coordinates, regardless of the start or end station. The reason for this is that electric bikes can be parked outside of the stations within a service area. The following maps made in Tableau on just one month of data serve to illustrate this issue:

Fig 2: Start station frequency for classic and docked bikes

Fig 3: Start station frequency for electric bikes

Therefore, we’ll additionally use the publicly available CSV file, Divvy_Bicycle_Stations.csv, that contains a list of all stations and corresponding geographical coordinates (link). This file is updated regularly. My version is from October 2021. We’ll also use it to check current station names.

Setting up the programming environment

# loading packages
library(tidyverse)
library(lubridate)
library(janitor)
library(skimr)
library(leaflet)
library(reactable)
library(htmltools)

# ggplot theme
theme_set(theme_classic())

Reading the datasets

Let’s see what’s in the data directory.

data_dir <- "data"

fs::dir_ls(data_dir)
data/202009-divvy-tripdata.csv  data/202010-divvy-tripdata.csv  
data/202011-divvy-tripdata.csv  data/202012-divvy-tripdata.csv  
data/202101-divvy-tripdata.csv  data/202102-divvy-tripdata.csv  
data/202103-divvy-tripdata.csv  data/202104-divvy-tripdata.csv  
data/202105-divvy-tripdata.csv  data/202106-divvy-tripdata.csv  
data/202107-divvy-tripdata.csv  data/202108-divvy-tripdata.csv  
data/Divvy_Bicycle_Stations.csv 

We’ll combine dir_ls(), map_dfr() and read_csv() to find data files with monthly trip data in the directory and read them all together into a single data frame. Columns start_station_id and end_station_id in the first three datasets (2020-Sep to 2020-Nov) are of the numeric data type, and all the rest are of characters. To make row binding possible, we’ll give an instruction to read them all as characters.

# monthly trip data
all_trips <- data_dir %>% 
  fs::dir_ls(regexp = "tripdata") %>% 
  map_dfr(read_csv, 
          col_types = cols("start_station_id" = col_character(), 
                           "end_station_id" = col_character()))

# current Divvy stations with coordinates
divvy_stations <- read_csv("data/Divvy_Bicycle_Stations.csv") %>% 
  clean_names()

Data overview

Monthly trip data

# data dimensions (rows x columns)
dim_desc(all_trips)
[1] "[4,913,072 x 13]"

It’s a large dataset with almost 5 million rows and 13 columns.

glimpse(all_trips)
Rows: 4,913,072
Columns: 13
$ ride_id            <chr> "2B22BD5F95FB2629", "A7FB70B4AFC6CAF2", "86057FA01B…
$ rideable_type      <chr> "electric_bike", "electric_bike", "electric_bike", …
$ started_at         <dttm> 2020-09-17 14:27:11, 2020-09-17 15:07:31, 2020-09-…
$ ended_at           <dttm> 2020-09-17 14:44:24, 2020-09-17 15:07:45, 2020-09-…
$ start_station_name <chr> "Michigan Ave & Lake St", "W Oakdale Ave & N Broadw…
$ start_station_id   <chr> "52", NA, NA, "246", "24", "94", "291", NA, NA, NA,…
$ end_station_name   <chr> "Green St & Randolph St", "W Oakdale Ave & N Broadw…
$ end_station_id     <chr> "112", NA, NA, "249", "24", NA, "256", NA, NA, NA, …
$ start_lat          <dbl> 41.88669, 41.94000, 41.94000, 41.95606, 41.89186, 4…
$ start_lng          <dbl> -87.62356, -87.64000, -87.64000, -87.66892, -87.621…
$ end_lat            <dbl> 41.88357, 41.94000, 41.94000, 41.96398, 41.89135, 4…
$ end_lng            <dbl> -87.64873, -87.64000, -87.64000, -87.63822, -87.620…
$ member_casual      <chr> "casual", "casual", "casual", "casual", "casual", "…
rmarkdown::paged_table(head(all_trips)) 
head(all_trips$started_at)
[1] "2020-09-17 14:27:11 UTC" "2020-09-17 15:07:31 UTC"
[3] "2020-09-17 15:09:04 UTC" "2020-09-17 18:10:46 UTC"
[5] "2020-09-17 15:16:13 UTC" "2020-09-17 18:37:04 UTC"

Datetimes are stored in the UTC timezone, which is good considering I’m in Europe.

Current Divvy stations with corresponding coordinates

dim_desc(divvy_stations)
[1] "[785 x 8]"
rmarkdown::paged_table(head(divvy_stations)) 


✨ PART III - Process

In this step, we are going to explore the data further and finally clean it.

Right now we can aggregate data only at the ride level, so we’ll create 3 new columns year_month, day_of_week, and hour extracted from the datetime column started_at and convert them to factors where needed.

all_trips <- all_trips %>% 
  mutate(year_month = format(started_at, "%Y-%m") %>% as_factor(),
         day_of_week = wday(started_at, label = TRUE, 
                            week_start = getOption("lubridate.week.start", 1)),
         hour = hour(started_at) %>% as_factor()) 

Calculating and creating a new column ride_length in minutes, then converting it to a numeric data type and rounding to 2 decimal places

all_trips <- all_trips %>% 
  mutate(ride_length = difftime(ended_at, started_at, units="mins") %>% 
           as.numeric() %>% round(2))

Checking if everything is OK.

rmarkdown::paged_table(sample_n(all_trips, 10))


All is good! Let’s see the summary statistics.

all_trips %>% skim_without_charts()
Data summary
Name Piped data
Number of rows 4913072
Number of columns 17
_______________________
Column type frequency:
character 7
factor 3
numeric 5
POSIXct 2
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
ride_id 0 1.00 16 16 0 4912863 0
rideable_type 0 1.00 11 13 0 3 0
start_station_name 450045 0.91 3 53 0 757 0
start_station_id 450571 0.91 1 36 0 1293 0
end_station_name 491380 0.90 10 53 0 756 0
end_station_id 491764 0.90 1 36 0 1293 0
member_casual 0 1.00 6 6 0 2 0

Variable type: factor

skim_variable n_missing complete_rate ordered n_unique top_counts
year_month 0 1 FALSE 12 202: 822410, 202: 804352, 202: 729595, 202: 532958
day_of_week 0 1 TRUE 7 Sat: 889412, Sun: 758229, Fri: 719239, Wed: 648981
hour 0 1 FALSE 24 17: 499035, 18: 435037, 16: 415752, 15: 353319

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100
start_lat 0 1 41.90 0.04 41.64 41.88 41.90 41.93 42.08
start_lng 0 1 -87.65 0.03 -87.84 -87.66 -87.64 -87.63 -87.52
end_lat 5015 1 41.90 0.04 41.51 41.88 41.90 41.93 42.15
end_lng 5015 1 -87.65 0.03 -88.07 -87.66 -87.64 -87.63 -87.44
ride_length 0 1 21.14 317.71 -29049.97 7.18 12.80 23.27 55944.15

Variable type: POSIXct

skim_variable n_missing complete_rate min max median n_unique
started_at 0 1 2020-09-01 00:00:07 2021-08-31 23:59:35 2021-05-26 16:51:05 4137017
ended_at 0 1 2020-09-01 00:04:43 2021-09-01 17:37:35 2021-05-26 17:12:45 4124534


By observing the data summary we can notice the following issues that need to be addressed:

  • The number of unique ride IDs doesn’t match the number of observations - duplicate rows,
  • Missing values (NAs) in the start_station_name, start_station_id, end_station_name, and end_station_id columns,
  • Number of station IDs doesn’t match the number of stations - it is almost twice as big,
  • Name of the member_casual column is vague, we’ll rename it to user_type,
  • 5015 missing values (NAs) in the end_lat and end_lng columns,
  • The minimum value for the ride_length column is -20.2 days, the maximum value is 38.9 days.

🛠️Removing duplicated records based on the ride_id column

Each row represents one observation (trip). Based on the previous summary, there are a total of 4,913,072 rows and 4,912,863 unique ride_id values, meaning there are 209 rows of duplicated data.

dupes <- all_trips %>% 
  get_dupes(ride_id) 

dupes %>% rmarkdown::paged_table()

These are all trips taken with docked bikes. They started on two different dates, 2020-11-25 and 2020-12-15, and ended on 2020-11-25. Since trips started on 2020-12-15 have negative ride lengths, we’re going to remove them and create a new dataframe.

all_trips_cln <- 
  setdiff(all_trips, 
          dupes %>% select(-dupe_count) %>% filter(date(started_at) == "2020-12-15")) 

Number of removed records.

nrow(all_trips) - nrow(all_trips_cln)
[1] 209

🛠️ Renaming column member_casual to user_type

all_trips_cln <- all_trips_cln %>% rename(user_type = member_casual)

🛠️ Removing observations with missing values in the end_lat and end_lng columns

Every ride has to end somewhere. The average ride length is unusually high for this subset (you don’t see it here; I want to spare you the details). Traffic accident, malfunction? We’ll remove those trips.

We won’t need the columns with coordinates anymore, so we’ll remove them to make the dataframe lighter. Later on, we’ll join the coordinates from the divvy_stations dataframe.

all_trips_cln <- all_trips_cln %>% 
  filter(!is.na(end_lat), !is.na(end_lng)) %>% 
  select(-c(start_lat, start_lng, end_lat, end_lng))

🛠️ Removing trips

  • associated with Divvy test and repair stations
  • with negative ride length (the end of the trip precedes the start)
  • with ride length between 0 and 1 min (potentially false starts or users trying to re-dock a bike to ensure it was secure)
  • with a ride length longer than 180 minutes (3 hours)

Looking for specific values in the start_station_name column associated with Divvy test and repair stations.

Unique start station names
unique(all_trips_cln$start_station_name)
  [1] "Michigan Ave & Lake St"                               
  [2] "W Oakdale Ave & N Broadway"                           
  [3] "Ashland Ave & Belle Plaine Ave"                       
  [4] "Fairbanks Ct & Grand Ave"                             
  [5] "Clark St & Armitage Ave"                              
  [6] "Wells St & Evergreen Ave"                             
  [7] NA                                                     
  [8] "Michigan Ave & 18th St"                               
  [9] "Mies van der Rohe Way & Chestnut St"                  
 [10] "Halsted St & Polk St"                                 
 [11] "Albany Ave & Bloomingdale Ave"                        
 [12] "Lake Shore Dr & Diversey Pkwy"                        
 [13] "Elston Ave & Wabansia Ave"                            
 [14] "Clybourn Ave & Division St"                           
 [15] "Campbell Ave & Fullerton Ave"                         
 [16] "Clark St & Lake St"                                   
 [17] "Sawyer Ave & Irving Park Rd"                          
 [18] "Financial Pl & Ida B Wells Dr"                        
 [19] "Wells St & Huron St"                                  
 [20] "Shedd Aquarium"                                       
 [21] "Streeter Dr & Grand Ave"                              
 [22] "Bissell St & Armitage Ave"                            
 [23] "Franklin St & Lake St"                                
 [24] "Sedgwick St & Huron St"                               
 [25] "Dearborn Pkwy & Delaware Pl"                          
 [26] "Halsted St & Dickens Ave"                             
 [27] "Clark St & Schiller St"                               
 [28] "Michigan Ave & Washington St"                         
 [29] "Aberdeen St & Jackson Blvd"                           
 [30] "Wilton Ave & Diversey Pkwy"                           
 [31] "Wells St & Hubbard St"                                
 [32] "Archer (Damen) Ave & 37th St"                         
 [33] "Franklin St & Monroe St"                              
 [34] "Dearborn St & Monroe St"                              
 [35] "Morgan St & Lake St"                                  
 [36] "Broadway & Granville Ave"                             
 [37] "Columbus Dr & Randolph St"                            
 [38] "California Ave & Milwaukee Ave"                       
 [39] "Milwaukee Ave & Cuyler Ave"                           
 [40] "Wells St & Concord Ln"                                
 [41] "Ashland Ave & Wellington Ave"                         
 [42] "Sheridan Rd & Buena Ave"                              
 [43] "Cottage Grove Ave & 83rd St"                          
 [44] "LaSalle Dr & Huron St"                                
 [45] "Michigan Ave & 14th St"                               
 [46] "Damen Ave & Division St"                              
 [47] "Museum of Science and Industry"                       
 [48] "Wells St & Polk St"                                   
 [49] "Clark St & North Ave"                                 
 [50] "Milwaukee Ave & Grand Ave"                            
 [51] "Wentworth Ave & 104th St"                             
 [52] "Rush St & Cedar St"                                   
 [53] "Lincoln Park Conservatory"                            
 [54] "Lake Shore Dr & Wellington Ave"                       
 [55] "Dearborn St & Erie St"                                
 [56] "Adler Planetarium"                                    
 [57] "Leavitt St & Addison St"                              
 [58] "Damen Ave & Madison St"                               
 [59] "Sheffield Ave & Willow St"                            
 [60] "McClurg Ct & Illinois St"                             
 [61] "Indiana Ave & Roosevelt Rd"                           
 [62] "Orleans St & Hubbard St"                              
 [63] "Seeley Ave & Roscoe St"                               
 [64] "Clark St & Grace St"                                  
 [65] "Wabash Ave & Grand Ave"                               
 [66] "Clark St & Schreiber Ave"                             
 [67] "Paulina Ave & North Ave"                              
 [68] "Southport Ave & Waveland Ave"                         
 [69] "Wentworth Ave & Cermak Rd"                            
 [70] "Buckingham Fountain"                                  
 [71] "Fort Dearborn Dr & 31st St"                           
 [72] "Francisco Ave & Foster Ave"                           
 [73] "Sheridan Rd & Loyola Ave"                             
 [74] "Clinton St & Madison St"                              
 [75] "Halsted St & Clybourn Ave"                            
 [76] "Halsted St & Wrightwood Ave"                          
 [77] "Peoria St & Jackson Blvd"                             
 [78] "Ellis Ave & 60th St"                                  
 [79] "Michigan Ave & Madison St"                            
 [80] "Lakefront Trail & Bryn Mawr Ave"                      
 [81] "Lake Shore Dr & North Blvd"                           
 [82] "Clark St & Bryn Mawr Ave"                             
 [83] "University Ave & 57th St"                             
 [84] "Ashland Ave & Blackhawk St"                           
 [85] "Larrabee St & Armitage Ave"                           
 [86] "Damen Ave & Pierce Ave"                               
 [87] "Damen Ave & Melrose Ave"                              
 [88] "Racine Ave & Belmont Ave"                             
 [89] "Franklin St & Illinois St"                            
 [90] "Broadway & Thorndale Ave"                             
 [91] "Ashland Ave & Chicago Ave"                            
 [92] "Honore St & Division St"                              
 [93] "Southport Ave & Wrightwood Ave"                       
 [94] "Clark St & Winnemac Ave"                              
 [95] "Eastlake Ter & Rogers Ave"                            
 [96] "Clarendon Ave & Junior Ter"                           
 [97] "Lake Shore Dr & Monroe St"                            
 [98] "Kedzie Ave & Milwaukee Ave"                           
 [99] "Michigan Ave & 8th St"                                
[100] "Clinton St & Jackson Blvd"                            
[101] "Lincoln Ave & Sunnyside Ave"                          
[102] "Lake Park Ave & 53rd St"                              
[103] "Desplaines St & Kinzie St"                            
[104] "Lake Park Ave & 35th St"                              
[105] "Kingsbury St & Kinzie St"                             
[106] "Dayton St & North Ave"                                
[107] "Lakeview Ave & Fullerton Pkwy"                        
[108] "Paulina St & Howard St"                               
[109] "Clarendon Ave & Leland Ave"                           
[110] "Chicago Ave & Sheridan Rd"                            
[111] "May St & Cullerton St"                                
[112] "Wood St & Milwaukee Ave"                              
[113] "Green St & Madison St"                                
[114] "Western Ave & Winnebago Ave"                          
[115] "Broadway & Cornelia Ave"                              
[116] "Orleans St & Merchandise Mart Plaza"                  
[117] "McClurg Ct & Erie St"                                 
[118] "Dorchester Ave & 49th St"                             
[119] "Sheffield Ave & Wrightwood Ave"                       
[120] "Shore Dr & 55th St"                                   
[121] "Larrabee St & Kingsbury St"                           
[122] "Damen Ave & Wellington Ave"                           
[123] "Wood St & Chicago Ave"                                
[124] "Desplaines St & Jackson Blvd"                         
[125] "LaSalle St & Illinois St"                             
[126] "State St & Kinzie St"                                 
[127] "Richmond St & Diversey Ave"                           
[128] "Sedgwick St & Schiller St"                            
[129] "Southport Ave & Wellington Ave"                       
[130] "Eberhart Ave & 61st St"                               
[131] "MLK Jr Dr & 29th St"                                  
[132] "Indiana Ave & 26th St"                                
[133] "Humboldt Blvd & Armitage Ave"                         
[134] "Damen Ave & Chicago Ave"                              
[135] "Burling St & Diversey Pkwy"                           
[136] "Franklin St & Adams St (Temp)"                        
[137] "Greenview Ave & Jarvis Ave"                           
[138] "Mies van der Rohe Way & Chicago Ave"                  
[139] "Racine Ave & 18th St"                                 
[140] "Kedzie Ave & Roosevelt Rd"                            
[141] "Ridge Blvd & Howard St"                               
[142] "Canal St & Adams St"                                  
[143] "Lake Shore Dr & Ohio St"                              
[144] "Ritchie Ct & Banks St"                                
[145] "Clinton St & Lake St"                                 
[146] "Noble St & Milwaukee Ave"                             
[147] "Logan Blvd & Elston Ave"                              
[148] "Austin Blvd & Lake St"                                
[149] "Wabash Ave & Roosevelt Rd"                            
[150] "Loomis St & Lexington St"                             
[151] "Wabash Ave & 9th St"                                  
[152] "Larrabee St & Oak St"                                 
[153] "Wells St & Walton St"                                 
[154] "Ashland Ave & Wrightwood Ave"                         
[155] "Orleans St & Chestnut St (NEXT Apts)"                 
[156] "Clark St & Jarvis Ave"                                
[157] "Larrabee St & Menomonee St"                           
[158] "Broadway & Waveland Ave"                              
[159] "Clark St & Elmdale Ave"                               
[160] "Racine Ave & Washington Blvd"                         
[161] "Ellis Ave & 58th St"                                  
[162] "Racine Ave & Fullerton Ave"                           
[163] "Drake Ave & Fullerton Ave"                            
[164] "Indiana Ave & 31st St"                                
[165] "Broadway & Berwyn Ave"                                
[166] "Kingsbury St & Erie St"                               
[167] "Dearborn St & Van Buren St"                           
[168] "Clark St & Newport St"                                
[169] "Ogden Ave & Race Ave"                                 
[170] "Clinton St & Roosevelt Rd"                            
[171] "Sheridan Rd & Lawrence Ave"                           
[172] "Larrabee St & Webster Ave"                            
[173] "Green St & Randolph St"                               
[174] "Leavitt St & Belmont Ave"                             
[175] "Kosciuszko Park"                                      
[176] "Michigan Ave & Jackson Blvd"                          
[177] "Montrose Harbor"                                      
[178] "Lincoln Ave & Winona St"                              
[179] "Aberdeen St & Randolph St"                            
[180] "Clark St & Berwyn Ave"                                
[181] "Ada St & Washington Blvd"                             
[182] "Clark St & Elm St"                                    
[183] "Ashland Ave & Division St"                            
[184] "Ashland Ave & Grand Ave"                              
[185] "Federal St & Polk St"                                 
[186] "Lake Shore Dr & Belmont Ave"                          
[187] "W Armitage Ave & N Sheffield Ave"                     
[188] "Burling St (Halsted) & Diversey Pkwy (Temp)"          
[189] "Lincoln Ave & Diversey Pkwy"                          
[190] "Winchester Ave & Elston Ave"                          
[191] "Field Blvd & South Water St"                          
[192] "Stetson Ave & South Water St"                         
[193] "Cityfront Plaza Dr & Pioneer Ct"                      
[194] "Wabash Ave & Wacker Pl"                               
[195] "Carpenter St & Huron St"                              
[196] "Kimbark Ave & 53rd St"                                
[197] "Larrabee St & North Ave"                              
[198] "Larrabee St & Division St"                            
[199] "Fairfield Ave & Roosevelt Rd"                         
[200] "Sheridan Rd & Noyes St (NU)"                          
[201] "Chicago Ave & Dempster St"                            
[202] "Hermitage Ave & Polk St"                              
[203] "Central Park Ave & Elbridge Ave"                      
[204] "State St & 33rd St"                                   
[205] "Greenwood Ave & 47th St"                              
[206] "Chicago Ave & Washington St"                          
[207] "Broadway & Ridge Ave"                                 
[208] "Sheffield Ave & Kingsbury St"                         
[209] "Pine Grove Ave & Irving Park Rd"                      
[210] "California Ave & Montrose Ave"                        
[211] "Sheridan Rd & Montrose Ave"                           
[212] "Clark St & Randolph St"                               
[213] "Calumet Ave & 18th St"                                
[214] "Spaulding Ave & Armitage Ave"                         
[215] "Damen Ave & Cortland St"                              
[216] "Wells St & Elm St"                                    
[217] "Winthrop Ave & Lawrence Ave"                          
[218] "Clark St & Lincoln Ave"                               
[219] "Western Ave & Division St"                            
[220] "Millennium Park"                                      
[221] "Sheridan Rd & Irving Park Rd"                         
[222] "Milwaukee Ave & Wabansia Ave"                         
[223] "Greenview Ave & Diversey Pkwy"                        
[224] "Rush St & Superior St"                                
[225] "Desplaines St & Randolph St"                          
[226] "Pine Grove Ave & Waveland Ave"                        
[227] "Emerald Ave & 31st St"                                
[228] "Cannon Dr & Fullerton Ave"                            
[229] "Michigan Ave & Ida B Wells Dr"                        
[230] "Halsted St & 47th Pl"                                 
[231] "LaSalle St & Washington St"                           
[232] "Halsted St & 18th St"                                 
[233] "Southport Ave & Roscoe St"                            
[234] "Ogden Ave & Chicago Ave"                              
[235] "Jefferson St & Monroe St"                             
[236] "Walsh Park"                                           
[237] "California Ave & Francis Pl (Temp)"                   
[238] "Michigan Ave & Oak St"                                
[239] "Sheridan Rd & Columbia Ave"                           
[240] "Burnham Harbor"                                       
[241] "Cottage Grove Ave & Oakwood Blvd"                     
[242] "Western Ave & Leland Ave"                             
[243] "Clark St & Drummond Pl"                               
[244] "Theater on the Lake"                                  
[245] "McCormick Place"                                      
[246] "Lincoln Ave & Waveland Ave"                           
[247] "Monticello Ave & Irving Park Rd"                      
[248] "California Ave & Byron St"                            
[249] "Glenwood Ave & Morse Ave"                             
[250] "Lincoln Ave & Fullerton Ave"                          
[251] "State St & 19th St"                                   
[252] "Damen Ave & Leland Ave"                               
[253] "Albany Ave & Montrose Ave"                            
[254] "Wilton Ave & Belmont Ave"                             
[255] "State St & Pearson St"                                
[256] "Field Museum"                                         
[257] "Wacker Dr & Washington St"                            
[258] "Kedzie Ave & Palmer Ct"                               
[259] "Sheffield Ave & Waveland Ave"                         
[260] "Washtenaw Ave & Lawrence Ave"                         
[261] "Broadway & Belmont Ave"                               
[262] "Sheffield Ave & Wellington Ave"                       
[263] "Halsted St & Willow St"                               
[264] "Dauphin Ave & 103rd St"                               
[265] "Throop (Loomis) St & Taylor St"                       
[266] "Western Ave & Lunt Ave"                               
[267] "Broadway & Barry Ave"                                 
[268] "Damen Ave & Grand Ave"                                
[269] "Ashland Ave & 63rd St"                                
[270] "Avers Ave & Belmont Ave"                              
[271] "California Ave & North Ave"                           
[272] "Damen Ave & Thomas St (Augusta Blvd)"                 
[273] "Clifton Ave & Armitage Ave"                           
[274] "Morgan Ave & 14th Pl"                                 
[275] "Constance Ave & 95th St"                              
[276] "Southport Ave & Clybourn Ave"                         
[277] "Greenview Ave & Fullerton Ave"                        
[278] "Ravenswood Ave & Lawrence Ave"                        
[279] "Bernard St & Elston Ave"                              
[280] "Franklin St & Jackson Blvd"                           
[281] "Sheffield Ave & Webster Ave"                          
[282] "South Shore Dr & 67th St"                             
[283] "Vernon Ave & 75th St"                                 
[284] "Ashland Ave & Grace St"                               
[285] "Kedzie Ave & Foster Ave"                              
[286] "State St & Randolph St"                               
[287] "Harper Ave & 59th St"                                 
[288] "Damen Ave & Clybourn Ave"                             
[289] "Sheridan Rd & Greenleaf Ave"                          
[290] "Lincoln Ave & Roscoe St"                              
[291] "State St & Harrison St"                               
[292] "Dusable Harbor"                                       
[293] "Cottage Grove Ave & 43rd St"                          
[294] "Broadway & Wilson Ave"                                
[295] "Christiana Ave & Lawrence Ave"                        
[296] "Clark St & Leland Ave"                                
[297] "Daley Center Plaza"                                   
[298] "St. Clair St & Erie St"                               
[299] "Union Ave & Root St"                                  
[300] "State St & 29th St"                                   
[301] "Paulina St & Montrose Ave"                            
[302] "Halsted St & Roscoe St"                               
[303] "Clark St & Wellington Ave"                            
[304] "Broadway & Argyle St"                                 
[305] "Michigan Ave & Pearson St"                            
[306] "Southport Ave & Belmont Ave"                          
[307] "Blue Island Ave & 18th St"                            
[308] "Franklin St & Chicago Ave"                            
[309] "Southport Ave & Irving Park Rd"                       
[310] "Leavitt St & Armitage Ave"                            
[311] "Clark St & 9th St (AMLI)"                             
[312] "Wentworth Ave & 24th St (Temp)"                       
[313] "Orleans St & Elm St"                                  
[314] "Dodge Ave & Church St"                                
[315] "Budlong Woods Library"                                
[316] "Wabash Ave & Adams St"                                
[317] "Halsted St & 35th St"                                 
[318] "Stockton Dr & Wrightwood Ave"                         
[319] "Artesian Ave & Hubbard St"                            
[320] "Racine Ave & 13th St"                                 
[321] "State St & 123rd St"                                  
[322] "Talman Ave & Addison St"                              
[323] "Albany Ave & 26th St"                                 
[324] "Damen Ave & Cullerton St"                             
[325] "Eberhart Ave & 131st St"                              
[326] "Clark St & Wrightwood Ave"                            
[327] "Bennett Ave & 79th St"                                
[328] "Dorchester Ave & 63rd St"                             
[329] "State St & 35th St"                                   
[330] "Leavitt St & North Ave"                               
[331] "Damen Ave & Charleston St"                            
[332] "Wolcott (Ravenswood) Ave & Montrose Ave"              
[333] "Western Ave & Congress Pkwy"                          
[334] "Racine Ave & Randolph St"                             
[335] "Lincoln Ave & Belmont Ave"                            
[336] "Rush St & Hubbard St"                                 
[337] "Drake Ave & Montrose Ave"                             
[338] "Damen Ave & Sunnyside Ave"                            
[339] "Big Marsh Park"                                       
[340] "Sedgwick St & North Ave"                              
[341] "Wallace St & 35th St"                                 
[342] "Leavitt St & Archer Ave"                              
[343] "Marine Dr & Ainslie St"                               
[344] "Halsted St & 37th St"                                 
[345] "Central Park Ave & Ogden Ave"                         
[346] "Clinton St & Tilden St"                               
[347] "Warren Park West"                                     
[348] "Lake Park Ave & 47th St"                              
[349] "Clark St & Chicago Ave"                               
[350] "Avondale Ave & Irving Park Rd"                        
[351] "Wabash Ave & 16th St"                                 
[352] "Western Ave & Fillmore St"                            
[353] "Kilbourn Ave & Milwaukee Ave"                         
[354] "Wood St & Hubbard St"                                 
[355] "California Ave & Division St"                         
[356] "Cornell Ave & Hyde Park Blvd"                         
[357] "Ellis Ave & 55th St"                                  
[358] "California Ave & Altgeld St"                          
[359] "Benson Ave & Church St"                               
[360] "May St & Taylor St"                                   
[361] "Delano Ct & Roosevelt Rd"                             
[362] "Morgan St & 18th St"                                  
[363] "Wolcott Ave & Polk St"                                
[364] "Jeffery Blvd & 71st St"                               
[365] "Sedgwick St & Webster Ave"                            
[366] "Lakefront Trail & Wilson Ave"                         
[367] "Canal St & Jackson Blvd"                              
[368] "Glenwood Ave & Touhy Ave"                             
[369] "2112 W Peterson Ave"                                  
[370] "Loomis St & Archer Ave"                               
[371] "Phillips Ave & 79th St"                               
[372] "Pulaski Rd & Lake St"                                 
[373] "Clarendon Ave & Gordon Ter"                           
[374] "Central Ave & Chicago Ave"                            
[375] "LaSalle St & Adams St"                                
[376] "Rhodes Ave & 32nd St"                                 
[377] "Western Ave & Roscoe St"                              
[378] "Knox Ave & Montrose Ave"                              
[379] "LaSalle St & Jackson Blvd"                            
[380] "Dearborn St & Adams St"                               
[381] "Broadway & Sheridan Rd"                               
[382] "Calumet Ave & 21st St"                                
[383] "Marshfield Ave & Cortland St"                         
[384] "Wells St & 19th St"                                   
[385] "Clark St & Lunt Ave"                                  
[386] "Western Ave & Monroe St"                              
[387] "Milwaukee Ave & Rockwell St"                          
[388] "Stony Island Ave & 90th St"                           
[389] "Cottage Grove Ave & 111th Pl"                         
[390] "Campbell Ave & North Ave"                             
[391] "Pulaski Rd & Congress Pkwy"                           
[392] "Elizabeth (May) St & Fulton St"                       
[393] "Halsted St & Archer Ave"                              
[394] "Eckhart Park"                                         
[395] "Dauphin Ave & 87th St"                                
[396] "Prairie Ave & 43rd St"                                
[397] "Woodlawn Ave & 55th St"                               
[398] "Western Ave & Walton St"                              
[399] "Leavitt St & Lawrence Ave"                            
[400] "Racine Ave & 35th St"                                 
[401] "Wabash Ave & Cermak Rd"                               
[402] "California Ave & 23rd Pl"                             
[403] "Stave St & Armitage Ave"                              
[404] "Sheffield Ave & Fullerton Ave"                        
[405] "California Ave & Fletcher St"                         
[406] "Laflin St & Cullerton St"                             
[407] "Shields Ave & 28th Pl"                                
[408] "Racine Ave & Congress Pkwy"                           
[409] "Princeton Ave & Garfield Blvd"                        
[410] "State St & Van Buren St"                              
[411] "Clinton St & Washington Blvd"                         
[412] "Damen Ave & Coulter St"                               
[413] "Wood St & Augusta Blvd"                               
[414] "Fairbanks St & Superior St"                           
[415] "Pulaski Rd & Eddy St (Temp)"                          
[416] "Clark St & Montrose Ave"                              
[417] "Loomis St & Jackson Blvd"                             
[418] "Western Ave & 24th St"                                
[419] "Canal St & Madison St"                                
[420] "Damen Ave & Pershing Rd"                              
[421] "California Ave & Lake St"                             
[422] "Jeffery Blvd & 67th St"                               
[423] "Ravenswood Ave & Irving Park Rd"                      
[424] "Spaulding Ave & Division St"                          
[425] "South Shore Dr & 71st St"                             
[426] "Morgan St & Polk St"                                  
[427] "Lincoln Ave & Belle Plaine Ave"                       
[428] "Leavitt St & Chicago Ave"                             
[429] "State St & 95th St"                                   
[430] "Elmwood Ave & Austin St"                              
[431] "Oglesby Ave & 100th St"                               
[432] "Dodge Ave & Mulford St"                               
[433] "St. Louis Ave & Balmoral Ave"                         
[434] "Ellis Ave & 53rd St"                                  
[435] "Halsted St & 111th St"                                
[436] "Lake Park Ave & 56th St"                              
[437] "MLK Jr Dr & 56th St"                                  
[438] "Halsted St & North Branch St"                         
[439] "Major Taylor Trail & 115th St"                        
[440] "Racine Ave & Wrightwood Ave"                          
[441] "Calumet Ave & 51st St"                                
[442] "Wood St & Taylor St"                                  
[443] "Racine Ave & 15th St"                                 
[444] "900 W Harrison St"                                    
[445] "Bosworth Ave & Howard St"                             
[446] "Ashland Ave & Augusta Blvd"                           
[447] "Aberdeen St & Monroe St"                              
[448] "Western Ave & Granville Ave"                          
[449] "Greenwood Ave & 91st St"                              
[450] "Damen Ave & Foster Ave"                               
[451] "Michigan Ave & 71st St"                               
[452] "Prairie Ave & Garfield Blvd"                          
[453] "Stony Island Ave & 71st St"                           
[454] "Southport Ave & Clark St"                             
[455] "Damen Ave & 51st St"                                  
[456] "Canal St & Monroe St"                                 
[457] "Smith Park"                                           
[458] "Manor Ave & Leland Ave"                               
[459] "MLK Jr Dr & Pershing Rd"                              
[460] "Canal St & Taylor St"                                 
[461] "Ridge Blvd & Touhy Ave"                               
[462] "California Ave & Cortez St"                           
[463] "Central St & Girard Ave"                              
[464] "Central Park Ave & Bloomingdale Ave"                  
[465] "Jeffery Blvd & 91st St"                               
[466] "Ashland Ave & 13th St"                                
[467] "Baltimore Ave & 87th St"                              
[468] "WATSON TESTING - DIVVY"                               
[469] "Halsted St & 96th St"                                 
[470] "Clark St & Columbia Ave"                              
[471] "Blackstone Ave & Hyde Park Blvd"                      
[472] "Damen Ave & Walnut (Lake) St"                         
[473] "Calumet Ave & 33rd St"                                
[474] "Kildare Ave & Montrose Ave"                           
[475] "Paulina St & Flournoy St"                             
[476] "Kimball Ave & Belmont Ave"                            
[477] "Cottage Grove Ave & 51st St"                          
[478] "Campbell Ave & Montrose Ave"                          
[479] "Wood St & Taylor St (Temp)"                           
[480] "Paulina St & 18th St"                                 
[481] "Troy St & Elston Ave"                                 
[482] "Halsted St & 104th St"                                
[483] "Evanston Civic Center"                                
[484] "Shields Ave & 43rd St"                                
[485] "Indiana Ave & 103rd St"                               
[486] "Kedzie Ave & Lake St"                                 
[487] "Kedzie Ave & Chicago Ave"                             
[488] "Halsted St & Maxwell St"                              
[489] "Kostner Ave & Lake St"                                
[490] "Keystone Ave & Montrose Ave"                          
[491] "California Ave & 21st St"                             
[492] "Morgan St & 31st St"                                  
[493] "Keystone Ave & Fullerton Ave"                         
[494] "Kedzie Ave & Bryn Mawr Ave"                           
[495] "Kedzie Ave & 24th St"                                 
[496] "Elizabeth St & 47th St"                               
[497] "MLK Jr Dr & 47th St"                                  
[498] "Austin Blvd & Chicago Ave"                            
[499] "Throop St & Taylor St"                                
[500] "Ashland Ave & Lake St"                                
[501] "Ravenswood Ave & Berteau Ave"                         
[502] "Cherry Ave & Blackhawk St"                            
[503] "Clark St & Ida B Wells Dr"                            
[504] "Lincoln Ave & Addison St"                             
[505] "Western Ave & Howard St"                              
[506] "Claremont Ave & Hirsch St"                            
[507] "Canal St & Harrison St"                               
[508] "Hoyne Ave & 47th St"                                  
[509] "MLK Jr Dr & 83rd St"                                  
[510] "Ashland Ave & 69th St"                                
[511] "Ashland Ave & Archer Ave"                             
[512] "Rockwell St & Eastwood Ave"                           
[513] "Leavitt St & Division St"                             
[514] "Laramie Ave & Madison St"                             
[515] "Hoyne Ave & Balmoral Ave"                             
[516] "Racine Ave & Garfield Blvd"                           
[517] "Woodlawn Ave & 75th St"                               
[518] "State St & Pershing Rd"                               
[519] "Western Ave & 21st St"                                
[520] "Central Ave & Lake St"                                
[521] "University Library (NU)"                              
[522] "Woodlawn Ave & Lake Park Ave"                         
[523] "Troy St & North Ave"                                  
[524] "DuSable Museum"                                       
[525] "Ogden Ave & Roosevelt Rd"                             
[526] "Elizabeth St & 92nd St"                               
[527] "Sangamon St & Washington Blvd"                        
[528] "Clinton St & 18th St"                                 
[529] "Stewart Ave & 63rd St"                                
[530] "Kedzie Ave & Leland Ave"                              
[531] "Millard Ave & 26th St"                                
[532] "Wentworth Ave & 63rd St"                              
[533] "Prospect Sq & 91st St"                                
[534] "Latrobe Ave & Chicago Ave"                            
[535] "Valli Produce - Evanston Plaza"                       
[536] "Kedzie Ave & Harrison St"                             
[537] "Wentworth Ave & 35th St"                              
[538] "Central Park Ave & North Ave"                         
[539] "Ashland Ave & Pershing Rd"                            
[540] "Central Park Blvd & 5th Ave"                          
[541] "Conservatory Dr & Lake St"                            
[542] "Austin Blvd & Madison St"                             
[543] "Halsted St & 21st St"                                 
[544] "Stony Island Ave & 64th St"                           
[545] "Ogden Ave & Congress Pkwy"                            
[546] "Kilbourn Ave & Irving Park Rd"                        
[547] "Oakley Ave & Irving Park Rd"                          
[548] "Cottage Grove Ave & 47th St"                          
[549] "Central St Metra"                                     
[550] "Lincolnwood Dr & Central St"                          
[551] "South Shore Dr & 74th St"                             
[552] "Clinton St & Polk St"                                 
[553] "Indiana Ave & 40th St"                                
[554] "Wolcott Ave & Fargo Ave"                              
[555] "Vincennes Ave & 75th St"                              
[556] "Warren Park East"                                     
[557] "Washtenaw Ave & Ogden Ave"                            
[558] "Wentworth Ave & 33rd St"                              
[559] "Western Blvd & 48th Pl"                               
[560] "Cottage Grove Ave & 67th St"                          
[561] "Winchester (Ravenswood) Ave & Balmoral Ave"           
[562] "Emerald Ave & 28th St"                                
[563] "Greenwood Ave & 97th St"                              
[564] "Vernon Ave & 107th St"                                
[565] "Ashland Ave & 78th St"                                
[566] "Wood St & 35th St"                                    
[567] "Halsted St & Roosevelt Rd"                            
[568] "Greenwood Ave & 79th St"                              
[569] "Shields Ave & 31st St"                                
[570] "East End Ave & 87th St"                               
[571] "Calumet Ave & 35th St"                                
[572] "Drake Ave & Addison St"                               
[573] "Wabash Ave & 87th St"                                 
[574] "Stony Island Ave & 82nd St"                           
[575] "State St & 54th St"                                   
[576] "Cottage Grove Ave & 78th St"                          
[577] "Oakley Ave & Touhy Ave"                               
[578] "Marshfield Ave & 44th St"                             
[579] "Racine Ave & 61st St"                                 
[580] "Avenue O & 134th St"                                  
[581] "Malcolm X College"                                    
[582] "Cornell Dr & Hayes Dr"                                
[583] "Cicero Ave & Lake St"                                 
[584] "Ashland Ave & McDowell Ave"                           
[585] "Torrence Ave & 106th St"                              
[586] "Eggleston Ave & 92nd St"                              
[587] "Calumet Ave & 71st St"                                
[588] "Normal Ave & Archer Ave"                              
[589] "Karlov Ave & Madison St"                              
[590] "State St & 79th St"                                   
[591] "Ashland Ave & 50th St"                                
[592] "Maplewood Ave & Peterson Ave"                         
[593] "Clark St & Touhy Ave"                                 
[594] "Yates Blvd & 75th St"                                 
[595] "Stewart Ave & 83rd St"                                
[596] "Marquette Ave & 89th St"                              
[597] "Central Park Ave & 24th St"                           
[598] "Evans Ave & 75th St"                                  
[599] "Sacramento Blvd & Franklin Blvd"                      
[600] "Halsted St & 63rd St"                                 
[601] "63rd St Beach"                                        
[602] "Kostner Ave & Adams St"                               
[603] "Ashland Ave & 66th St"                                
[604] "State St & 76th St"                                   
[605] "Summit Ave & 86th St"                                 
[606] "Stony Island Ave & 67th St"                           
[607] "Vernon Ave & 79th St"                                 
[608] "Laramie Ave & Kinzie St"                              
[609] "Central Ave & Madison St"                             
[610] "Stony Island Ave & South Chicago Ave"                 
[611] "Cottage Grove Ave & 63rd St"                          
[612] "Halsted St & 69th St"                                 
[613] "Kedzie Ave & 21st St"                                 
[614] "Halsted St & 78th St"                                 
[615] "Houston Ave & 92nd St"                                
[616] "Michigan Ave & 114th St"                              
[617] "Eberhart Ave & 91st St"                               
[618] "Rainbow Beach"                                        
[619] "Throop St & 52nd St"                                  
[620] "MLK Jr Dr & 63rd St"                                  
[621] "Stony Island Ave & 75th St"                           
[622] "Exchange Ave & 79th St"                               
[623] "Marshfield Ave & 59th St"                             
[624] "Princeton Ave & 47th St"                              
[625] "Perry Ave & 69th St"                                  
[626] "Racine Ave & 65th St"                                 
[627] "Morgan St & Pershing Rd"                              
[628] "Commercial Ave & 83rd St"                             
[629] "Halsted St & 51st St"                                 
[630] "Ewing Ave & Burnham Greenway"                         
[631] "Phillips Ave & 83rd St"                               
[632] "Clyde Ave & 87th St"                                  
[633] "May St & 69th St"                                     
[634] "Damen Ave & 59th St"                                  
[635] "Halsted St & 56th St"                                 
[636] "Ashland Ave & Garfield Blvd"                          
[637] "Western Ave & 28th St"                                
[638] "Jeffery Blvd & 76th St"                               
[639] "Loomis Blvd & 84th St"                                
[640] "Central Ave & Harrison St"                            
[641] "Cicero Ave & Flournoy St"                             
[642] "Halsted St & 73rd St"                                 
[643] "Cicero Ave & Quincy St"                               
[644] "Laramie Ave & Gladys Ave"                             
[645] "Ellis Ave & 83rd St"                                  
[646] "Kenton Ave & Madison St"                              
[647] "California Ave & 26th St"                             
[648] "South Chicago Ave & Elliot Ave"                       
[649] "Halsted St & 59th St"                                 
[650] "Wabash Ave & 83rd St"                                 
[651] "Ashland Ave & 74th St"                                
[652] "Torrence Ave & 126th Pl"                              
[653] "Seeley Ave & Garfield Blvd"                           
[654] "Eggleston Ave & 69th St"                              
[655] "Rhodes Ave & 71st St"                                 
[656] "Carpenter St & 63rd St"                               
[657] "Cottage Grove Ave & 71st St"                          
[658] "South Chicago Ave & 83rd St"                          
[659] "HUBBARD ST BIKE CHECKING (LBS-WH-TEST)"               
[660] "Walden Pkwy & 100th St"                               
[661] "Burnham Greenway & 105th St"                          
[662] "Elizabeth St & 59th St"                               
[663] "Major Taylor Trail & 124th St"                        
[664] "Avenue O & 118th St"                                  
[665] "N Clark St & W Elm St"                                
[666] "St. Louis Ave & Fullerton Ave"                        
[667] "New St & Illinois St"                                 
[668] "Hale Ave & 107th St"                                  
[669] "Bradley Park"                                         
[670] "Commercial Ave & 130th St"                            
[671] "Vincennes Ave & 104th St"                             
[672] "Western Ave & 111th St"                               
[673] "Ada St & 113th St"                                    
[674] "Lawndale Ave & 111th St"                              
[675] "Homewood Ave & 115th St"                              
[676] "Western Ave & 104th St"                               
[677] "Hegewisch Metra Station"                              
[678] "S Michigan Ave & E 118th St"                          
[679] "Dodge Ave & Main St"                                  
[680] "Base - 2132 W Hubbard Warehouse"                      
[681] "N Green St & W Lake St"                               
[682] "Commercial Ave & 100th St"                            
[683] "N Paulina St & Lincoln Ave"                           
[684] "N Southport Ave & W Newport Ave"                      
[685] "Malcolm X College Vaccination Site"                   
[686] "Broadway & Wilson - Truman College Vaccination Site"  
[687] "W Washington Blvd & N Peoria St"                      
[688] "Kedzie Ave & 110th St"                                
[689] "N Sheffield Ave & W Wellington Ave"                   
[690] "N Carpenter St & W Lake St"                           
[691] "Halsted & 63rd - Kennedy-King Vaccination Site"       
[692] "Western & 28th - Velasquez Institute Vaccination Site"
[693] "Chicago State University"                             
[694] "Damen Ave & Wabansia Ave"                             
[695] "N Damen Ave & W Wabansia St"                          
[696] "S Wentworth Ave & W 111th St"                         
[697] "N Hampden Ct & W Diversey Ave"                        
[698] "Altgeld Gardens"                                      
[699] "Hampden Ct & Diversey Ave"                            
[700] "Kedzie Ave & 104th St"                                
[701] "Avenue L & 114th St"                                  
[702] "Calumet Park"                                         
[703] "Elston Ave & Cortland St"                             
[704] "Loomis St & 89th St"                                  
[705] "Woodlawn & 103rd - Olive Harvey Vaccination Site"     
[706] "W 103rd St & S Avers Ave"                             
[707] "WEST CHI-WATSON"                                      
[708] "Yates Blvd & 93rd St"                                 
[709] "Maryland Ave & 104th St"                              
[710] "S Aberdeen St & W 106th St"                           
[711] "Lyft Driver Center Private Rack"                      
[712] "Cicero Ave & Grace St"                                
[713] "DuSable Lake Shore Dr & Belmont Ave"                  
[714] "DuSable Lake Shore Dr & Monroe St"                    
[715] "DuSable Lake Shore Dr & North Blvd"                   
[716] "DuSable Lake Shore Dr & Ohio St"                      
[717] "DuSable Lake Shore Dr & Wellington Ave"               
[718] "DuSable Lake Shore Dr & Diversey Pkwy"                
[719] "Kildare Ave & 26th St"                                
[720] "Tripp Ave & 31st St"                                  
[721] "Halsted St & 18th St (Temp)"                          
[722] "Lawndale Ave & 16th St"                               
[723] "Spaulding Ave & 16th St"                              
[724] "Homan Ave & Fillmore St"                              
[725] "Lavergne & Fullerton"                                 
[726] "DIVVY CASSETTE REPAIR MOBILE STATION"                 
[727] "Kilpatrick Ave & Parker Ave"                          
[728] "Central Park Ave & Douglas Blvd"                      
[729] "Lamon Ave & Belmont Ave"                              
[730] "Long Ave & Belmont Ave"                               
[731] "Meade Ave & Diversey Ave"                             
[732] "Long Ave & Belden Ave"                                
[733] "Tripp Ave & 15th St"                                  
[734] "Mason Ave & Belmont Ave"                              
[735] "Parkside Ave & Armitage Ave"                          
[736] "Keeler Ave & Roosevelt Rd"                            
[737] "Pulaski Rd & 21st St"                                 
[738] "Central Ave & Parker Ave"                             
[739] "Lawndale Ave & 30th St"                               
[740] "Meade Ave & Addison St"                               
[741] "Kilbourn & Roscoe"                                    
[742] "Mulligan Ave & Wellington Ave"                        
[743] "Lockwood Ave & Wrightwood Ave"                        
[744] "Plainfield & Irving Park"                             
[745] "Narragansett Ave & School St"                         
[746] "Central Ave & Roscoe St"                              
[747] "351"                                                  
[748] "Long & Irving Park"                                   
[749] "Komensky Ave & 31st St"                               
[750] "Kilbourn & Belden"                                    
[751] "Kostner Ave & Wrightwood Ave"                         
[752] "North Ave & New England Ave"                          
[753] "Harding Ave & 26th St"                                
[754] "Harlem Ave & Grace St"                                
[755] "Oketo Ave & Addison St"                               
[756] "Roscoe & Harlem"                                      
[757] "Lamon Ave & Armitage Ave"                             
[758] "Sayre & Diversey"                                     

Creating a vector of station names identified as Divvy test and repair stations.

trs_name <- c("Base – 2132 W Hubbard Warehouse",
              "DIVVY CASSETTE REPAIR MOBILE STATION",
              "HUBBARD ST BIKE CHECKING (LBS-WH-TEST)",
              "WEST CHI-WATSON")

Looking for specific values in the start_station_id column associated with Divvy test and repair stations.

Unique start station IDs
unique(all_trips_cln$start_station_id)
   [1] "52"                                  
   [2] NA                                    
   [3] "246"                                 
   [4] "24"                                  
   [5] "94"                                  
   [6] "291"                                 
   [7] "273"                                 
   [8] "145"                                 
   [9] "108"                                 
  [10] "511"                                 
  [11] "329"                                 
  [12] "315"                                 
  [13] "138"                                 
  [14] "504"                                 
  [15] "38"                                  
  [16] "485"                                 
  [17] "89"                                  
  [18] "53"                                  
  [19] "3"                                   
  [20] "35"                                  
  [21] "113"                                 
  [22] "164"                                 
  [23] "111"                                 
  [24] "140"                                 
  [25] "225"                                 
  [26] "301"                                 
  [27] "43"                                  
  [28] "21"                                  
  [29] "13"                                  
  [30] "212"                                 
  [31] "645"                                 
  [32] "287"                                 
  [33] "49"                                  
  [34] "71"                                  
  [35] "454"                                 
  [36] "195"                                 
  [37] "123"                                 
  [38] "589"                                 
  [39] "289"                                 
  [40] "250"                                 
  [41] "306"                                 
  [42] "585"                                 
  [43] "627"                                 
  [44] "168"                                 
  [45] "130"                                 
  [46] "424"                                 
  [47] "175"                                 
  [48] "126"                                 
  [49] "84"                                  
  [50] "712"                                 
  [51] "172"                                 
  [52] "673"                                 
  [53] "157"                                 
  [54] "110"                                 
  [55] "341"                                 
  [56] "492"                                 
  [57] "215"                                 
  [58] "93"                                  
  [59] "26"                                  
  [60] "255"                                 
  [61] "636"                                 
  [62] "308"                                 
  [63] "165"                                 
  [64] "199"                                 
  [65] "453"                                 
  [66] "16"                                  
  [67] "227"                                 
  [68] "120"                                 
  [69] "2"                                   
  [70] "150"                                 
  [71] "471"                                 
  [72] "451"                                 
  [73] "77"                                  
  [74] "331"                                 
  [75] "349"                                 
  [76] "134"                                 
  [77] "426"                                 
  [78] "197"                                 
  [79] "459"                                 
  [80] "268"                                 
  [81] "460"                                 
  [82] "423"                                 
  [83] "333"                                 
  [84] "288"                                 
  [85] "69"                                  
  [86] "228"                                 
  [87] "226"                                 
  [88] "672"                                 
  [89] "458"                                 
  [90] "350"                                 
  [91] "17"                                  
  [92] "190"                                 
  [93] "325"                                 
  [94] "523"                                 
  [95] "245"                                 
  [96] "76"                                  
  [97] "260"                                 
  [98] "623"                                 
  [99] "638"                                 
 [100] "243"                                 
 [101] "419"                                 
 [102] "56"                                  
 [103] "406"                                 
 [104] "133"                                 
 [105] "60"                                  
 [106] "313"                                 
 [107] "515"                                 
 [108] "251"                                 
 [109] "603"                                 
 [110] "171"                                 
 [111] "61"                                  
 [112] "198"                                 
 [113] "116"                                 
 [114] "303"                                 
 [115] "100"                                 
 [116] "142"                                 
 [117] "416"                                 
 [118] "302"                                 
 [119] "247"                                 
 [120] "48"                                  
 [121] "162"                                 
 [122] "637"                                 
 [123] "107"                                 
 [124] "181"                                 
 [125] "47"                                  
 [126] "501"                                 
 [127] "236"                                 
 [128] "153"                                 
 [129] "431"                                 
 [130] "237"                                 
 [131] "147"                                 
 [132] "507"                                 
 [133] "128"                                 
 [134] "332"                                 
 [135] "286"                                 
 [136] "520"                                 
 [137] "173"                                 
 [138] "15"                                  
 [139] "435"                                 
 [140] "514"                                 
 [141] "192"                                 
 [142] "99"                                  
 [143] "180"                                 
 [144] "66"                                  
 [145] "29"                                  
 [146] "258"                                 
 [147] "532"                                 
 [148] "59"                                  
 [149] "320"                                 
 [150] "321"                                 
 [151] "364"                                 
 [152] "46"                                  
 [153] "166"                                 
 [154] "620"                                 
 [155] "517"                                 
 [156] "28"                                  
 [157] "304"                                 
 [158] "457"                                 
 [159] "654"                                 
 [160] "328"                                 
 [161] "87"                                  
 [162] "503"                                 
 [163] "272"                                 
 [164] "294"                                 
 [165] "74"                                  
 [166] "624"                                 
 [167] "632"                                 
 [168] "186"                                 
 [169] "57"                                  
 [170] "323"                                 
 [171] "144"                                 
 [172] "112"                                 
 [173] "664"                                 
 [174] "499"                                 
 [175] "284"                                 
 [176] "249"                                 
 [177] "472"                                 
 [178] "621"                                 
 [179] "463"                                 
 [180] "346"                                 
 [181] "176"                                 
 [182] "210"                                 
 [183] "277"                                 
 [184] "41"                                  
 [185] "334"                                 
 [186] "152"                                 
 [187] "505"                                 
 [188] "7"                                   
 [189] "264"                                 
 [190] "196"                                 
 [191] "194"                                 
 [192] "92"                                  
 [193] "322"                                 
 [194] "27"                                  
 [195] "359"                                 
 [196] "436"                                 
 [197] "604"                                 
 [198] "625"                                 
 [199] "261"                                 
 [200] "500"                                 
 [201] "148"                                 
 [202] "252"                                 
 [203] "597"                                 
 [204] "461"                                 
 [205] "20"                                  
 [206] "254"                                 
 [207] "481"                                 
 [208] "231"                                 
 [209] "51"                                  
 [210] "338"                                 
 [211] "506"                                 
 [212] "219"                                 
 [213] "182"                                 
 [214] "253"                                 
 [215] "141"                                 
 [216] "305"                                 
 [217] "90"                                  
 [218] "240"                                 
 [219] "158"                                 
 [220] "319"                                 
 [221] "161"                                 
 [222] "96"                                  
 [223] "232"                                 
 [224] "339"                                 
 [225] "34"                                  
 [226] "45"                                  
 [227] "411"                                 
 [228] "98"                                  
 [229] "202"                                 
 [230] "229"                                 
 [231] "54"                                  
 [232] "73"                                  
 [233] "628"                                 
 [234] "259"                                 
 [235] "85"                                  
 [236] "660"                                 
 [237] "4"                                   
 [238] "265"                                 
 [239] "239"                                 
 [240] "220"                                 
 [241] "177"                                 
 [242] "62"                                  
 [243] "257"                                 
 [244] "484"                                 
 [245] "487"                                 
 [246] "447"                                 
 [247] "127"                                 
 [248] "178"                                 
 [249] "242"                                 
 [250] "480"                                 
 [251] "117"                                 
 [252] "106"                                 
 [253] "97"                                  
 [254] "18"                                  
 [255] "290"                                 
 [256] "114"                                 
 [257] "475"                                 
 [258] "296"                                 
 [259] "115"                                 
 [260] "224"                                 
 [261] "695"                                 
 [262] "19"                                  
 [263] "467"                                 
 [264] "300"                                 
 [265] "214"                                 
 [266] "563"                                 
 [267] "496"                                 
 [268] "276"                                 
 [269] "183"                                 
 [270] "223"                                 
 [271] "137"                                 
 [272] "701"                                 
 [273] "307"                                 
 [274] "188"                                 
 [275] "344"                                 
 [276] "640"                                 
 [277] "36"                                  
 [278] "327"                                 
 [279] "355"                                 
 [280] "571"                                 
 [281] "347"                                 
 [282] "470"                                 
 [283] "44"                                  
 [284] "425"                                 
 [285] "163"                                 
 [286] "354"                                 
 [287] "230"                                 
 [288] "5"                                   
 [289] "6"                                   
 [290] "271"                                 
 [291] "293"                                 
 [292] "474"                                 
 [293] "326"                                 
 [294] "81"                                  
 [295] "211"                                 
 [296] "408"                                 
 [297] "193"                                 
 [298] "297"                                 
 [299] "299"                                 
 [300] "156"                                 
 [301] "295"                                 
 [302] "25"                                  
 [303] "154"                                 
 [304] "129"                                 
 [305] "31"                                  
 [306] "318"                                 
 [307] "309"                                 
 [308] "394"                                 
 [309] "132"                                 
 [310] "23"                                  
 [311] "600"                                 
 [312] "468"                                 
 [313] "39"                                  
 [314] "279"                                 
 [315] "324"                                 
 [316] "376"                                 
 [317] "136"                                 
 [318] "714"                                 
 [319] "491"                                 
 [320] "444"                                 
 [321] "124"                                 
 [322] "716"                                 
 [323] "340"                                 
 [324] "578"                                 
 [325] "428"                                 
 [326] "184"                                 
 [327] "213"                                 
 [328] "310"                                 
 [329] "238"                                 
 [330] "382"                                 
 [331] "88"                                  
 [332] "131"                                 
 [333] "125"                                 
 [334] "479"                                 
 [335] "316"                                 
 [336] "717"                                 
 [337] "118"                                 
 [338] "278"                                 
 [339] "9"                                   
 [340] "465"                                 
 [341] "262"                                 
 [342] "438"                                 
 [343] "68"                                  
 [344] "450"                                 
 [345] "267"                                 
 [346] "337"                                 
 [347] "483"                                 
 [348] "72"                                  
 [349] "644"                                 
 [350] "591"                                 
 [351] "285"                                 
 [352] "216"                                 
 [353] "417"                                 
 [354] "420"                                 
 [355] "502"                                 
 [356] "596"                                 
 [357] "22"                                  
 [358] "626"                                 
 [359] "14"                                  
 [360] "342"                                 
 [361] "11"                                  
 [362] "143"                                 
 [363] "639"                                 
 [364] "75"                                  
 [365] "525"                                 
 [366] "456"                                 
 [367] "366"                                 
 [368] "579"                                 
 [369] "528"                                 
 [370] "312"                                 
 [371] "550"                                 
 [372] "40"                                  
 [373] "263"                                 
 [374] "493"                                 
 [375] "592"                                 
 [376] "283"                                 
 [377] "37"                                  
 [378] "256"                                 
 [379] "370"                                 
 [380] "58"                                  
 [381] "218"                                 
 [382] "432"                                 
 [383] "381"                                 
 [384] "222"                                 
 [385] "705"                                 
 [386] "698"                                 
 [387] "160"                                 
 [388] "535"                                 
 [389] "217"                                 
 [390] "206"                                 
 [391] "86"                                  
 [392] "706"                                 
 [393] "410"                                 
 [394] "248"                                 
 [395] "374"                                 
 [396] "311"                                 
 [397] "367"                                 
 [398] "42"                                  
 [399] "442"                                 
 [400] "185"                                 
 [401] "67"                                  
 [402] "498"                                 
 [403] "208"                                 
 [404] "401"                                 
 [405] "32"                                  
 [406] "385"                                 
 [407] "33"                                  
 [408] "91"                                  
 [409] "167"                                 
 [410] "657"                                 
 [411] "635"                                 
 [412] "488"                                 
 [413] "234"                                 
 [414] "146"                                 
 [415] "281"                                 
 [416] "174"                                 
 [417] "546"                                 
 [418] "378"                                 
 [419] "352"                                 
 [420] "244"                                 
 [421] "510"                                 
 [422] "12"                                  
 [423] "241"                                 
 [424] "298"                                 
 [425] "659"                                 
 [426] "690"                                 
 [427] "598"                                 
 [428] "697"                                 
 [429] "662"                                 
 [430] "469"                                 
 [431] "418"                                 
 [432] "711"                                 
 [433] "345"                                 
 [434] "421"                                 
 [435] "365"                                 
 [436] "713"                                 
 [437] "343"                                 
 [438] "415"                                 
 [439] "317"                                 
 [440] "274"                                 
 [441] "109"                                 
 [442] "522"                                 
 [443] "30"                                  
 [444] "80"                                  
 [445] "452"                                 
 [446] "702"                                 
 [447] "464"                                 
 [448] "674"                                 
 [449] "204"                                 
 [450] "356"                                 
 [451] "292"                                 
 [452] "554"                                 
 [453] "191"                                 
 [454] "643"                                 
 [455] "477"                                 
 [456] "179"                                 
 [457] "414"                                 
 [458] "466"                                 
 [459] "622"                                 
 [460] "602"                                 
 [461] "641"                                 
 [462] "704"                                 
 [463] "275"                                 
 [464] "693"                                 
 [465] "676"                                 
 [466] "700"                                 
 [467] "449"                                 
 [468] "121"                                 
 [469] "656"                                 
 [470] "149"                                 
 [471] "630"                                 
 [472] "383"                                 
 [473] "497"                                 
 [474] "351"                                 
 [475] "482"                                 
 [476] "205"                                 
 [477] "490"                                 
 [478] "709"                                 
 [479] "661"                                 
 [480] "409"                                 
 [481] "696"                                 
 [482] "377"                                 
 [483] "373"                                 
 [484] "282"                                 
 [485] "536"                                 
 [486] "495"                                 
 [487] "348"                                 
 [488] "280"                                 
 [489] "619"                                 
 [490] "494"                                 
 [491] "441"                                 
 [492] "553"                                 
 [493] "200"                                 
 [494] "524"                                 
 [495] "119"                                 
 [496] "314"                                 
 [497] "666"                                 
 [498] "50"                                  
 [499] "330"                                 
 [500] "527"                                 
 [501] "159"                                 
 [502] "169"                                 
 [503] "551"                                 
 [504] "586"                                 
 [505] "566"                                 
 [506] "368"                                 
 [507] "478"                                 
 [508] "658"                                 
 [509] "540"                                 
 [510] "655"                                 
 [511] "559"                                 
 [512] "569"                                 
 [513] "407"                                 
 [514] "203"                                 
 [515] "531"                                 
 [516] "605"                                 
 [517] "413"                                 
 [518] "509"                                 
 [519] "422"                                 
 [520] "434"                                 
 [521] "689"                                 
 [522] "233"                                 
 [523] "170"                                 
 [524] "649"                                 
 [525] "476"                                 
 [526] "443"                                 
 [527] "390"                                 
 [528] "684"                                 
 [529] "642"                                 
 [530] "599"                                 
 [531] "433"                                 
 [532] "405"                                 
 [533] "508"                                 
 [534] "547"                                 
 [535] "533"                                 
 [536] "518"                                 
 [537] "544"                                 
 [538] "135"                                 
 [539] "95"                                  
 [540] "122"                                 
 [541] "590"                                 
 [542] "486"                                 
 [543] "336"                                 
 [544] "601"                                 
 [545] "663"                                 
 [546] "399"                                 
 [547] "103"                                 
 [548] "201"                                 
 [549] "519"                                 
 [550] "568"                                 
 [551] "448"                                 
 [552] "437"                                 
 [553] "403"                                 
 [554] "594"                                 
 [555] "429"                                 
 [556] "462"                                 
 [557] "207"                                 
 [558] "703"                                 
 [559] "699"                                 
 [560] "683"                                 
 [561] "369"                                 
 [562] "55"                                  
 [563] "576"                                 
 [564] "402"                                 
 [565] "686"                                 
 [566] "335"                                 
 [567] "489"                                 
 [568] "595"                                 
 [569] "583"                                 
 [570] "646"                                 
 [571] "575"                                 
 [572] "526"                                 
 [573] "549"                                 
 [574] "562"                                 
 [575] "631"                                 
 [576] "653"                                 
 [577] "529"                                 
 [578] "552"                                 
 [579] "707"                                 
 [580] "691"                                 
 [581] "393"                                 
 [582] "209"                                 
 [583] "534"                                 
 [584] "573"                                 
 [585] "555"                                 
 [586] "455"                                 
 [587] "353"                                 
 [588] "396"                                 
 [589] "677"                                 
 [590] "692"                                 
 [591] "440"                                 
 [592] "570"                                 
 [593] "375"                                 
 [594] "388"                                 
 [595] "101"                                 
 [596] "545"                                 
 [597] "565"                                 
 [598] "572"                                 
 [599] "685"                                 
 [600] "102"                                 
 [601] "574"                                 
 [602] "530"                                 
 [603] "542"                                 
 [604] "577"                                 
 [605] "427"                                 
 [606] "391"                                 
 [607] "439"                                 
 [608] "681"                                 
 [609] "694"                                 
 [610] "682"                                 
 [611] "398"                                 
 [612] "556"                                 
 [613] "430"                                 
 [614] "270"                                 
 [615] "580"                                 
 [616] "560"                                 
 [617] "412"                                 
 [618] "392"                                 
 [619] "564"                                 
 [620] "548"                                 
 [621] "581"                                 
 [622] "384"                                 
 [623] "718"                                 
 [624] "582"                                 
 [625] "708"                                 
 [626] "567"                                 
 [627] "561"                                 
 [628] "386"                                 
 [629] "558"                                 
 [630] "446"                                 
 [631] "395"                                 
 [632] "687"                                 
 [633] "541"                                 
 [634] "538"                                 
 [635] "678"                                 
 [636] "539"                                 
 [637] "543"                                 
 [638] "584"                                 
 [639] "537"                                 
 [640] "445"                                 
 [641] "665"                                 
 [642] "593"                                 
 [643] "587"                                 
 [644] "679"                                 
 [645] "720"                                 
 [646] "557"                                 
 [647] "650"                                 
 [648] "652"                                 
 [649] "648"                                 
 [650] "400"                                 
 [651] "588"                                 
 [652] "671"                                 
 [653] "721"                                 
 [654] "710"                                 
 [655] "647"                                 
 [656] "715"                                 
 [657] "719"                                 
 [658] "723"                                 
 [659] "731"                                 
 [660] "722"                                 
 [661] "726"                                 
 [662] "728"                                 
 [663] "727"                                 
 [664] "730"                                 
 [665] "725"                                 
 [666] "724"                                 
 [667] "732"                                 
 [668] "13157"                               
 [669] "TA1309000006"                        
 [670] "KA1503000043"                        
 [671] "TA1309000014"                        
 [672] "TA1305000006"                        
 [673] "13042"                               
 [674] "TA1307000127"                        
 [675] "TA1306000003"                        
 [676] "TA1306000006"                        
 [677] "TA1306000011"                        
 [678] "SL-013"                              
 [679] "13124"                               
 [680] "13137"                               
 [681] "13074"                               
 [682] "TA1309000066"                        
 [683] "TA1307000138"                        
 [684] "TA1307000052"                        
 [685] "TA1309000059"                        
 [686] "13268"                               
 [687] "KA1503000002"                        
 [688] "TA1307000140"                        
 [689] "13294"                               
 [690] "TA1307000062"                        
 [691] "15655"                               
 [692] "TA1307000064"                        
 [693] "TA1306000010"                        
 [694] "13058"                               
 [695] "13179"                               
 [696] "KA1504000076"                        
 [697] "13431"                               
 [698] "KA1503000070"                        
 [699] "13197"                               
 [700] "13006"                               
 [701] "KA1503000040"                        
 [702] "TA1307000129"                        
 [703] "TA1307000159"                        
 [704] "13326"                               
 [705] "SL-009"                              
 [706] "TA1307000120"                        
 [707] "13332"                               
 [708] "TA1305000011"                        
 [709] "TA1307000070"                        
 [710] "TA1305000030"                        
 [711] "TA1309000008"                        
 [712] "15545"                               
 [713] "13162"                               
 [714] "TA1307000039"                        
 [715] "13164"                               
 [716] "KA1504000104"                        
 [717] "13353"                               
 [718] "13022"                               
 [719] "13036"                               
 [720] "13139"                               
 [721] "KA1503000064"                        
 [722] "16920"                               
 [723] "13243"                               
 [724] "13017"                               
 [725] "TA1305000001"                        
 [726] "13028"                               
 [727] "TA1307000121"                        
 [728] "TA1307000130"                        
 [729] "SL-005"                              
 [730] "13165"                               
 [731] "TA1308000019"                        
 [732] "KA1503000041"                        
 [733] "TA1305000009"                        
 [734] "KA1503000072"                        
 [735] "TA1309000004"                        
 [736] "TA1309000035"                        
 [737] "KA1504000129"                        
 [738] "TA1306000007"                        
 [739] "TA1309000043"                        
 [740] "KA1503000034"                        
 [741] "KA1504000140"                        
 [742] "TA1307000126"                        
 [743] "KA1503000012"                        
 [744] "TA1307000166"                        
 [745] "TA1305000041"                        
 [746] "TA1309000019"                        
 [747] "15628"                               
 [748] "TA1308000049"                        
 [749] "TA1305000035"                        
 [750] "KA1504000116"                        
 [751] "13224"                               
 [752] "KA1504000149"                        
 [753] "TA1307000156"                        
 [754] "13276"                               
 [755] "TA1306000032"                        
 [756] "13136"                               
 [757] "15664"                               
 [758] "15529"                               
 [759] "13134"                               
 [760] "TA1307000041"                        
 [761] "KA1503000022"                        
 [762] "KA1504000096"                        
 [763] "TA1308000005"                        
 [764] "13409"                               
 [765] "13229"                               
 [766] "13109"                               
 [767] "15578"                               
 [768] "17660"                               
 [769] "TA1309000018"                        
 [770] "KA1504000103"                        
 [771] "KA1504000106"                        
 [772] "TA1309000007"                        
 [773] "TA1309000001"                        
 [774] "13389"                               
 [775] "13253"                               
 [776] "20252.0"                             
 [777] "13292"                               
 [778] "KA1504000159"                        
 [779] "20110"                               
 [780] "KA1504000164"                        
 [781] "15491"                               
 [782] "13245"                               
 [783] "15546"                               
 [784] "TA1307000128"                        
 [785] "TA1309000037"                        
 [786] "13258"                               
 [787] "RP-004"                              
 [788] "13156"                               
 [789] "TA1305000022"                        
 [790] "TA1307000005"                        
 [791] "13263"                               
 [792] "20116"                               
 [793] "15640"                               
 [794] "TA1309000049"                        
 [795] "TA1309000039"                        
 [796] "20207"                               
 [797] "TA1308000002"                        
 [798] "13277"                               
 [799] "13241"                               
 [800] "TA1305000010"                        
 [801] "KA1504000135"                        
 [802] "18016"                               
 [803] "13303"                               
 [804] "KA1504000082"                        
 [805] "KA1503000047"                        
 [806] "KA1503000033"                        
 [807] "KA1504000148"                        
 [808] "13133"                               
 [809] "TA1309000011"                        
 [810] "15692"                               
 [811] "15645"                               
 [812] "TA1309000055"                        
 [813] "16940"                               
 [814] "20238"                               
 [815] "20120"                               
 [816] "TA1307000163"                        
 [817] "13071"                               
 [818] "13213"                               
 [819] "20205"                               
 [820] "16903"                               
 [821] "20109"                               
 [822] "TA1307000161"                        
 [823] "20236"                               
 [824] "15682"                               
 [825] "KA1503000013"                        
 [826] "KA1503000018"                        
 [827] "SL-011"                              
 [828] "TA1308000050"                        
 [829] "TA1307000131"                        
 [830] "13296"                               
 [831] "13073"                               
 [832] "TA1308000021"                        
 [833] "13146"                               
 [834] "TA1305000029"                        
 [835] "TA1305000014"                        
 [836] "13323"                               
 [837] "TA1305000005"                        
 [838] "13269"                               
 [839] "TA1309000029"                        
 [840] "13008"                               
 [841] "15691"                               
 [842] "KA1503000053"                        
 [843] "13206"                               
 [844] "TA1305000037"                        
 [845] "KA1503000038"                        
 [846] "13290"                               
 [847] "16943"                               
 [848] "15631"                               
 [849] "20231"                               
 [850] "KA1504000161"                        
 [851] "TA1309000063"                        
 [852] "TA1308000038"                        
 [853] "15470"                               
 [854] "13091"                               
 [855] "15644"                               
 [856] "20233"                               
 [857] "KA1503000054"                        
 [858] "TA1307000119"                        
 [859] "20227"                               
 [860] "13341"                               
 [861] "TA1308000001"                        
 [862] "TA1309000061"                        
 [863] "18069"                               
 [864] "KA1504000093"                        
 [865] "15535"                               
 [866] "TA1305000039"                        
 [867] "TA1307000111"                        
 [868] "TA1308000029"                        
 [869] "KA1503000020"                        
 [870] "KA1503000075"                        
 [871] "KA1504000167"                        
 [872] "18062"                               
 [873] "15623"                               
 [874] "KA1503000044"                        
 [875] "15634"                               
 [876] "20221"                               
 [877] "KA1504000168"                        
 [878] "15654"                               
 [879] "20222"                               
 [880] "13053"                               
 [881] "15534"                               
 [882] "16950"                               
 [883] "651"                                 
 [884] "Hubbard Bike-checking (LBS-WH-TEST)" 
 [885] "KA1706005015"                        
 [886] "18022"                               
 [887] "TA1309000053"                        
 [888] "KA1706005007"                        
 [889] "15550"                               
 [890] "15632"                               
 [891] "13056"                               
 [892] "15689"                               
 [893] "13247"                               
 [894] "TA1306000008"                        
 [895] "KA1504000141"                        
 [896] "KA1503000068"                        
 [897] "KA1503000052"                        
 [898] "15667"                               
 [899] "KA1504000156"                        
 [900] "15575"                               
 [901] "15446"                               
 [902] "20226"                               
 [903] "E007"                                
 [904] "KA1503000045"                        
 [905] "E002"                                
 [906] "KA1503000003"                        
 [907] "13307"                               
 [908] "15442"                               
 [909] "13045"                               
 [910] "TA1307000001"                        
 [911] "13379"                               
 [912] "15642"                               
 [913] "15539"                               
 [914] "TA1308000036"                        
 [915] "15530"                               
 [916] "TA1305000025"                        
 [917] "TA1309000002"                        
 [918] "KA1504000142"                        
 [919] "TA1308000026"                        
 [920] "16937"                               
 [921] "E008"                                
 [922] "15449"                               
 [923] "20229"                               
 [924] "16913"                               
 [925] "15622"                               
 [926] "KA1504000151"                        
 [927] "KA1504000113"                        
 [928] "15646"                               
 [929] "TA1308000014"                        
 [930] "TA1309000021"                        
 [931] "TA1308000007"                        
 [932] "13345"                               
 [933] "13331"                               
 [934] "TA1308000013"                        
 [935] "16806"                               
 [936] "KA1504000134"                        
 [937] "15666"                               
 [938] "KA1504000109"                        
 [939] "TA1309000003"                        
 [940] "TA1309000025"                        
 [941] "TA1307000158"                        
 [942] "15615"                               
 [943] "TA1309000032"                        
 [944] "KA1504000091"                        
 [945] "13191"                               
 [946] "20105"                               
 [947] "16010"                               
 [948] "TA1305000004"                        
 [949] "E011"                                
 [950] "KA150400009X"                        
 [951] "KA1504000097"                        
 [952] "13285"                               
 [953] "TA1308000006"                        
 [954] "KA1504000155"                        
 [955] "KA1504000130"                        
 [956] "LF-005"                              
 [957] "13300"                               
 [958] "KA1504000152"                        
 [959] "13193"                               
 [960] "13029"                               
 [961] "KA1503000059"                        
 [962] "20242"                               
 [963] "KA1503000028"                        
 [964] "TA1308000045"                        
 [965] "TA1309000030"                        
 [966] "KA1503000065"                        
 [967] "KA1504000086"                        
 [968] "20244"                               
 [969] "KA1503000025"                        
 [970] "TA1308000035"                        
 [971] "13061"                               
 [972] "TA1309000041"                        
 [973] "13143"                               
 [974] "KA1504000175"                        
 [975] "TA1307000149"                        
 [976] "RN-"                                 
 [977] "13216"                               
 [978] "TA1306000002"                        
 [979] "KA1504000090"                        
 [980] "13256"                               
 [981] "TA1307000160"                        
 [982] "WL-008"                              
 [983] "13288"                               
 [984] "KA1504000147"                        
 [985] "KA1503000021"                        
 [986] "KA1503000023"                        
 [987] "KA1503000049"                        
 [988] "13196"                               
 [989] "15445"                               
 [990] "13221"                               
 [991] "KA17018068"                          
 [992] "15621"                               
 [993] "13398"                               
 [994] "TA1307000107"                        
 [995] "13128"                               
 [996] "TA1307000048"                        
 [997] "TA1309000010"                        
 [998] "13084"                               
 [999] "TA1306000009"                        
[1000] "SL-006"                              
[1001] "KA1504000102"                        
[1002] "TA1305000017"                        
[1003] "KA1504000078"                        
[1004] "18025"                               
[1005] "KA1504000110"                        
[1006] "16991"                               
[1007] "RP-005"                              
[1008] "16994"                               
[1009] "E014"                                
[1010] "KA1503000007"                        
[1011] "TA1308000009"                        
[1012] "TA1309000026"                        
[1013] "13257"                               
[1014] "15686"                               
[1015] "13021"                               
[1016] "KA1503000001"                        
[1017] "13235"                               
[1018] "20246.0"                             
[1019] "TA1306000026"                        
[1020] "KA1503000019"                        
[1021] "13434"                               
[1022] "TA1307000139"                        
[1023] "13194"                               
[1024] "20104"                               
[1025] "KA1503000031"                        
[1026] "13108"                               
[1027] "13430"                               
[1028] "KA1503000011"                        
[1029] "KA1503000030"                        
[1030] "18003"                               
[1031] "KP1705001026"                        
[1032] "KA1504000146"                        
[1033] "13016"                               
[1034] "KA1504000079"                        
[1035] "13001"                               
[1036] "TA1306000013"                        
[1037] "TA1306000025"                        
[1038] "13034"                               
[1039] "13427"                               
[1040] "TA1307000115"                        
[1041] "KA1504000101"                        
[1042] "TA1309000064"                        
[1043] "TA1309000027"                        
[1044] "TA1309000036"                        
[1045] "13063"                               
[1046] "15542"                               
[1047] "TA1308000012"                        
[1048] "TA1306000015"                        
[1049] "WL-011"                              
[1050] "KA1503000029"                        
[1051] "KA1503000074"                        
[1052] "13192"                               
[1053] "13289"                               
[1054] "TA1307000136"                        
[1055] "TA1307000143"                        
[1056] "13249"                               
[1057] "13432"                               
[1058] "TA1307000142"                        
[1059] "TA1306000014"                        
[1060] "13319"                               
[1061] "KA1504000133"                        
[1062] "13068"                               
[1063] "15571"                               
[1064] "TA1307000150"                        
[1065] "KA1503000015"                        
[1066] "13150"                               
[1067] "13135"                               
[1068] "13158"                               
[1069] "13265"                               
[1070] "TA1307000151"                        
[1071] "13278"                               
[1072] "13099"                               
[1073] "13037"                               
[1074] "13075"                               
[1075] "TA1309000023"                        
[1076] "TA1305000003"                        
[1077] "TA1309000024"                        
[1078] "13138"                               
[1079] "13160"                               
[1080] "TA1309000015"                        
[1081] "TA1307000144"                        
[1082] "TA1307000006"                        
[1083] "TA1308000031"                        
[1084] "TA1305000020"                        
[1085] "KA1504000127"                        
[1086] "TA1308000047"                        
[1087] "RP-009"                              
[1088] "RP-002"                              
[1089] "13325"                               
[1090] "TA1307000134"                        
[1091] "TA1309000050"                        
[1092] "TA1306000012"                        
[1093] "TA1309000012"                        
[1094] "LP-"                                 
[1095] "KA1504000158"                        
[1096] "KA1504000080"                        
[1097] "TA1306000016"                        
[1098] "TA1307000038"                        
[1099] "18067"                               
[1100] "13085"                               
[1101] "13242"                               
[1102] "RP-001"                              
[1103] "SL-010"                              
[1104] "15585"                               
[1105] "KA1504000114"                        
[1106] "13155"                               
[1107] "WL-012"                              
[1108] "18058"                               
[1109] "SL-007"                              
[1110] "13266"                               
[1111] "KA1504000143"                        
[1112] "13089"                               
[1113] "KA1503000066"                        
[1114] "13081"                               
[1115] "TA1308000043"                        
[1116] "KA1504000160"                        
[1117] "KA1503000046"                        
[1118] "KA1503000051"                        
[1119] "KA17018054"                          
[1120] "20119"                               
[1121] "16906"                               
[1122] "TA1307000124"                        
[1123] "13304"                               
[1124] "20243"                               
[1125] "TA1309000042"                        
[1126] "20234"                               
[1127] "20254.0"                             
[1128] "18017"                               
[1129] "KA1503000073"                        
[1130] "KA1503000027"                        
[1131] "13080"                               
[1132] "KA1504000128"                        
[1133] "13033"                               
[1134] "13259"                               
[1135] "KA1504000117"                        
[1136] "16933"                               
[1137] "16948"                               
[1138] "16912"                               
[1139] "KA1503000069"                        
[1140] "15651"                               
[1141] "TA1309000058"                        
[1142] "20239"                               
[1143] "TA1308000023"                        
[1144] "15687"                               
[1145] "15597"                               
[1146] "KA1503000055"                        
[1147] "TA1307000066"                        
[1148] "KA1503000071"                        
[1149] "RP-006"                              
[1150] "15544"                               
[1151] "16921"                               
[1152] "13154"                               
[1153] "KA1503000032"                        
[1154] "13354"                               
[1155] "KA1503000004"                        
[1156] "13050"                               
[1157] "20232"                               
[1158] "20206"                               
[1159] "16932"                               
[1160] "13338"                               
[1161] "KA1503000010"                        
[1162] "20121"                               
[1163] "20107"                               
[1164] "20210"                               
[1165] "KA1503000009"                        
[1166] "13420"                               
[1167] "13011"                               
[1168] "15648"                               
[1169] "16953"                               
[1170] "13083"                               
[1171] "13102"                               
[1172] "16905"                               
[1173] "13144"                               
[1174] "RP-008"                              
[1175] "SL-008"                              
[1176] "15685"                               
[1177] "20127"                               
[1178] "20223"                               
[1179] "TA1307000113"                        
[1180] "13217"                               
[1181] "TA1307000117"                        
[1182] "KA1504000139"                        
[1183] "TA1307000153"                        
[1184] "20108"                               
[1185] "TA1305000032"                        
[1186] "TA1305000002"                        
[1187] "13132"                               
[1188] "KA1503000024"                        
[1189] "20235"                               
[1190] "20131"                               
[1191] "15541"                               
[1192] "15443"                               
[1193] "KA1504000126"                        
[1194] "20218"                               
[1195] "RP-007"                              
[1196] "KA1503000005"                        
[1197] "TA1308000046"                        
[1198] "15652"                               
[1199] "15668"                               
[1200] "SL-012"                              
[1201] "15624"                               
[1202] "E006"                                
[1203] "TA1309000067"                        
[1204] "20230"                               
[1205] "TA1309000051"                        
[1206] "TA1305000034"                        
[1207] "TA1307000061"                        
[1208] "16918"                               
[1209] "20118"                               
[1210] "20129"                               
[1211] "TA1307000044"                        
[1212] "13215"                               
[1213] "KA1504000171"                        
[1214] "13059"                               
[1215] "13271"                               
[1216] "TA1308000022"                        
[1217] "TA1309000033"                        
[1218] "TA1307000164"                        
[1219] "15653"                               
[1220] "15643"                               
[1221] "TA1306000029"                        
[1222] "13163"                               
[1223] "KA1503000014"                        
[1224] "13248"                               
[1225] "15650"                               
[1226] "13096"                               
[1227] "KA1504000162"                        
[1228] "20103"                               
[1229] "16907"                               
[1230] "20203"                               
[1231] "16916"                               
[1232] "20215"                               
[1233] "20225"                               
[1234] "20253.0"                             
[1235] "16915"                               
[1236] "20257.0"                             
[1237] "20247.0"                             
[1238] "20204"                               
[1239] "20113"                               
[1240] "20130"                               
[1241] "20124"                               
[1242] "20256.0"                             
[1243] "16970"                               
[1244] "20112"                               
[1245] "20251.0"                             
[1246] "20214"                               
[1247] "15599"                               
[1248] "20245"                               
[1249] "20228"                               
[1250] "20123"                               
[1251] "20101"                               
[1252] "20208"                               
[1253] "20106"                               
[1254] "20.0"                                
[1255] "20211"                               
[1256] "20258.0"                             
[1257] "20128"                               
[1258] "20217"                               
[1259] "20248.0"                             
[1260] "20213"                               
[1261] "20212"                               
[1262] "20125"                               
[1263] "202480.0"                            
[1264] "20201"                               
[1265] "20220"                               
[1266] "20224"                               
[1267] "201022"                              
[1268] "20133"                               
[1269] "20202"                               
[1270] "20249.0"                             
[1271] "DIVVY 001"                           
[1272] "20237"                               
[1273] "20134"                               
[1274] "20126"                               
[1275] "20999"                               
[1276] "365.0"                               
[1277] "368.0"                               
[1278] "362.0"                               
[1279] "366.0"                               
[1280] "364.0"                               
[1281] "DIVVY CASSETTE REPAIR MOBILE STATION"
[1282] "358"                                 
[1283] "329.0"                               
[1284] "363.0"                               
[1285] "473"                                 
[1286] "20209"                               
[1287] "330.0"                               
[1288] "331.0"                               
[1289] "334.0"                               
[1290] "360"                                 
[1291] "397"                                 
[1292] "335.0"                               
[1293] "332.0"                               
[1294] "357"                                 

Creating a vector of station ids identified as ids associated with Divvy test and repair stations.

trs_id <- c("DIVVY 001",
            "DIVVY CASSETTE REPAIR MOBILE STATION",
            "Hubbard Bike-checking (LBS-WH-TEST)")

Keeping only trips that are relevant for the analysis.

all_trips_cln <- all_trips_cln %>%
  filter(!start_station_name %in% trs_name &
         !end_station_name %in% trs_name &
         !start_station_id %in% trs_id &
         !end_station_id %in% trs_id &
         between(ride_length, 1, 180))
dim_desc(all_trips_cln)
[1] "[4,804,481 x 13]"

🔍 Inspecting the difference between the number of station IDs and the number of station names

all_trips_cln %>% 
  group_by(start_station_name, start_station_id) %>% 
  summarise(min_datetime = min(started_at), 
            max_datetime = max(started_at), 
            count = n(),.groups = 'drop') %>%
  arrange(start_station_name, min_datetime) %>% 
  head(20) %>% 
  knitr::kable()
start_station_name start_station_id min_datetime max_datetime count
2112 W Peterson Ave 456 2020-09-01 10:20:07 2020-11-30 17:57:38 295
2112 W Peterson Ave KA1504000155 2020-12-01 20:57:23 2021-08-31 19:04:10 766
351 351 2021-08-04 16:31:29 2021-08-07 23:59:38 2
63rd St Beach 101 2020-09-01 06:32:10 2020-11-29 09:15:38 645
63rd St Beach 15491 2020-12-01 12:13:32 2021-08-31 18:59:18 1716
900 W Harrison St 109 2020-09-01 00:10:07 2020-11-30 21:37:27 1540
900 W Harrison St 13028 2020-12-01 05:57:08 2021-08-31 23:32:29 4379
Aberdeen St & Jackson Blvd 21 2020-09-01 05:21:41 2020-11-30 18:00:59 2762
Aberdeen St & Jackson Blvd 13157 2020-12-01 05:47:45 2021-08-31 21:53:55 7855
Aberdeen St & Monroe St 80 2020-09-01 06:26:54 2020-11-30 16:31:57 2126
Aberdeen St & Monroe St 13156 2020-12-01 00:36:33 2021-08-31 23:57:23 7547
Aberdeen St & Randolph St 621 2020-09-01 05:48:49 2020-11-30 21:05:51 1934
Aberdeen St & Randolph St 18062 2020-12-01 07:23:39 2021-08-31 22:02:47 6648
Ada St & 113th St 727 2020-10-07 19:34:30 2020-11-26 22:29:45 20
Ada St & 113th St 20129 2020-12-13 13:21:13 2021-08-26 14:36:13 65
Ada St & Washington Blvd 346 2020-09-01 04:34:53 2020-11-30 20:44:42 1928
Ada St & Washington Blvd 13353 2020-12-01 07:19:09 2021-08-31 23:42:08 6191
Adler Planetarium 341 2020-09-01 07:04:27 2020-11-30 15:22:52 3961
Adler Planetarium 13431 2020-12-01 15:08:23 2021-08-31 22:11:50 11668
Albany Ave & 26th St 444 2020-09-02 17:49:47 2020-11-29 13:42:10 104

Conclusion: Divvy changed station IDs for most stations at the beginning of December 2020. This will not affect the analysis, so we’ll leave it as is. What is important is that at the time of a ride, each station has been assigned a unique ID. Let’s see why this change happened.

Creating a 3-dimensional frequency table.

ftable(all_trips_cln$user_type, all_trips_cln$year_month, all_trips_cln$rideable_type)
                classic_bike docked_bike electric_bike
                                                      
casual 2020-09             0      166860         57264
       2020-10             0       77464         63239
       2020-11             0       44729         41296
       2020-12         11129        4801         13526
       2021-01          8141        2026          7552
       2021-02          5491        1196          3077
       2021-03         44734       15100         22385
       2021-04         69391       23795         40221
       2021-05        121322       41444         87520
       2021-06        183950       49440        127428
       2021-07        236632       55529        139456
       2021-08        225733       43517        134755
member 2020-09             0      226706         68014
       2020-10             0      152039         85355
       2020-11             0      103106         65012
       2020-12         58556        7660         33450
       2021-01         52683           1         24681
       2021-02         28540           0          9846
       2021-03        105476           0         36713
       2021-04        141562           0         55563
       2021-05        182005           0         87425
       2021-06        242527           0        109475
       2021-07        260782           0        112381
       2021-08        268693           0        116087

From September to November 2020, there were only two rideable types, docked_bike and electric_bike. At the beginning of December 2020, a new rideable type is introduced, the classic_bike, and a distinction is made between the docked_bike and the classic_bike. Since the beginning of 2021, casual riders can use classic and docked bikes, while annual members can only use classic bikes. Therefore, we cannot conclude a preference for one rideable type over another between casuals and members. Only when it comes to electric bikes.

🔍 🛠️ Checking if any station has changed its name at some point

all_trips_cln %>% 
  group_by(start_station_id, year_month) %>%
  summarise(n_distinct_start_station_name = n_distinct(start_station_name), 
            .groups = 'drop') %>% 
  filter(n_distinct_start_station_name > 1) %>% 
  knitr::kable()
start_station_id year_month n_distinct_start_station_name
13074 2021-01 2
13099 2021-07 2
13221 2021-07 2
13300 2021-07 2
19 2020-09 2
26 2020-10 2
317 2020-09 2
332 2020-09 2
351 2021-08 2
503 2020-10 2
625 2020-11 2
631 2021-01 2
704 2020-09 2
709 2020-09 2
725 2020-10 2
E011 2020-12 2
LF-005 2021-07 2
TA1305000039 2021-05 2
TA1306000029 2021-07 2
TA1307000041 2021-07 2
TA1309000039 2021-07 2
TA1309000049 2021-07 2
NA 2020-09 4
NA 2020-10 3
NA 2020-11 4
start_id <- c("13074", "13099", "13300", "19", "26", "317", "332", "351", "503",
              "625", "631", "704", "709", "725", "E011", "LF-005", "TA1305000039",
              "TA1306000029", "TA1307000041", "TA1309000039", "TA1309000049")
all_trips_cln %>%
  filter(start_station_id %in% start_id) %>% 
  group_by(start_station_id, start_station_name) %>%
  summarise(min_datetime = min(started_at), 
            max_datetime = max(started_at), 
            count = n(), .groups = 'drop' ) %>% 
  arrange(start_station_id, min_datetime) %>% 
  knitr::kable()
start_station_id start_station_name min_datetime max_datetime count
13074 Broadway & Wilson Ave 2020-12-01 09:29:54 2021-01-26 19:50:38 425
13074 Broadway & Wilson - Truman College Vaccination Site 2021-01-27 14:35:48 2021-08-31 22:38:18 6036
13099 Halsted St & 18th St 2020-12-01 06:10:22 2021-07-28 12:51:03 1616
13099 Halsted St & 18th St (Temp) 2021-07-26 16:35:28 2021-08-31 23:54:30 509
13300 Lake Shore Dr & Monroe St 2020-12-01 08:26:56 2021-07-21 10:45:56 25133
13300 DuSable Lake Shore Dr & Monroe St 2021-07-20 19:20:12 2021-08-31 23:38:38 9220
19 Throop (Loomis) St & Taylor St 2020-09-01 00:06:50 2020-09-30 07:08:15 811
19 Throop St & Taylor St 2020-09-30 06:11:29 2020-11-30 17:30:36 1048
26 McClurg Ct & Illinois St 2020-09-01 05:05:44 2020-10-21 09:26:26 3877
26 New St & Illinois St 2020-10-18 17:00:24 2020-11-30 21:27:44 1234
317 Wood St & Taylor St 2020-09-01 09:42:40 2020-09-22 09:09:28 417
317 Wood St & Taylor St (Temp) 2020-09-02 14:44:03 2020-11-30 22:32:47 1241
317 Long Ave & Belmont Ave 2021-07-27 21:37:39 2021-08-30 11:23:10 34
332 Burling St (Halsted) & Diversey Pkwy (Temp) 2020-09-01 07:32:26 2020-09-23 15:16:31 1204
332 Burling St & Diversey Pkwy 2020-09-23 16:14:35 2020-11-30 23:05:39 2286
351 Cottage Grove Ave & 51st St 2020-09-01 12:43:12 2020-11-30 23:21:30 385
351 Mulligan Ave & Wellington Ave 2021-08-03 16:01:18 2021-08-30 17:06:17 41
351 351 2021-08-04 16:31:29 2021-08-07 23:59:38 2
503 Drake Ave & Fullerton Ave 2020-09-01 04:40:18 2020-10-01 13:50:08 447
503 St. Louis Ave & Fullerton Ave 2020-10-01 19:53:17 2020-11-30 20:20:55 392
625 Chicago Ave & Dempster St 2020-09-01 09:51:04 2020-11-30 21:35:09 731
625 Dodge Ave & Main St 2020-11-29 14:43:14 2020-11-29 15:25:01 3
631 Malcolm X College 2020-09-01 14:36:58 2021-01-23 18:39:19 311
631 Malcolm X College Vaccination Site 2021-01-27 19:13:29 2021-08-31 18:31:05 979
704 Jeffery Blvd & 91st St 2020-09-03 06:59:22 2020-09-20 15:05:01 19
704 Avenue O & 134th St 2020-09-23 18:40:05 2020-11-11 15:42:28 34
709 Halsted St & 104th St 2020-09-15 18:26:12 2020-09-16 08:01:57 8
709 Michigan Ave & 114th St 2020-09-17 18:27:01 2020-11-28 19:38:12 20
725 Western Ave & 104th St 2020-10-06 14:38:17 2020-10-06 14:38:17 1
725 Halsted St & 104th St 2020-10-13 13:05:17 2020-11-12 11:20:12 23
E011 Chicago Ave & Dempster St 2020-12-01 18:39:42 2020-12-01 18:39:42 1
E011 Dodge Ave & Main St 2020-12-20 18:35:35 2021-08-31 16:08:19 309
LF-005 Lake Shore Dr & North Blvd 2020-12-01 07:21:59 2021-07-21 10:39:07 23613
LF-005 DuSable Lake Shore Dr & North Blvd 2021-07-01 17:21:59 2021-08-31 21:30:07 12941
TA1305000039 Marshfield Ave & Cortland St 2020-12-01 06:57:11 2021-05-26 09:06:13 2396
TA1305000039 Elston Ave & Cortland St 2021-05-23 14:50:25 2021-08-31 22:54:49 3587
TA1306000029 Lake Shore Dr & Ohio St 2020-12-01 05:10:32 2021-07-21 09:34:21 11047
TA1306000029 DuSable Lake Shore Dr & Ohio St 2021-07-21 10:59:27 2021-08-31 23:47:54 4458
TA1307000041 Lake Shore Dr & Wellington Ave 2020-12-01 08:32:58 2021-07-21 10:31:29 11320
TA1307000041 DuSable Lake Shore Dr & Wellington Ave 2021-07-21 08:38:05 2021-08-31 21:16:41 5318
TA1309000039 Lake Shore Dr & Diversey Pkwy 2020-12-01 06:19:39 2021-07-21 10:50:30 11543
TA1309000039 DuSable Lake Shore Dr & Diversey Pkwy 2021-07-21 10:55:37 2021-08-31 22:12:24 5376
TA1309000049 Lake Shore Dr & Belmont Ave 2020-12-01 01:39:00 2021-07-21 10:03:25 11101
TA1309000049 DuSable Lake Shore Dr & Belmont Ave 2021-07-18 14:31:44 2021-08-31 22:52:17 5449

Among other changes, in July 2021, Chicago renamed the iconic Lake Shore Drive to honor its city’s ‘founder’ Jean Baptiste Point DuSable. It is now known as DuSable Lake Shore Drive. You can read the story here.

We’ll now replace old station names in the start_station_name and end_station_name columns with new ones. This step is necessary if we want to get an accurate list of the most popular stations.

all_trips_cln <- all_trips_cln %>% 
  mutate(start_station_name = recode(start_station_name, 
        "Broadway & Wilson Ave" = "Broadway & Wilson - Truman College Vaccination Site",
        "Halsted St & 18th St" = "Halsted St & 18th St (Temp)",
        "Lake Shore Dr & Monroe St" = "DuSable Lake Shore Dr & Monroe St",
        "Throop (Loomis) St & Taylor St" = "Throop St & Taylor St",
        "McClurg Ct & Illinois St" = "New St & Illinois St",
        "Burling St (Halsted) & Diversey Pkwy (Temp)" = "Burling St & Diversey Pkwy",
        "Drake Ave & Fullerton Ave" = "St. Louis Ave & Fullerton Ave",
        "Malcolm X College" = "Malcolm X College Vaccination Site",
        "Lake Shore Dr & North Blvd" = "DuSable Lake Shore Dr & North Blvd",
        "Marshfield Ave & Cortland St" = "Elston Ave & Cortland St",
        "Lake Shore Dr & Ohio St" = "DuSable Lake Shore Dr & Ohio St",
        "Lake Shore Dr & Wellington Ave" = "DuSable Lake Shore Dr & Wellington Ave",
        "Lake Shore Dr & Diversey Pkwy" = "DuSable Lake Shore Dr & Diversey Pkwy",
        "Lake Shore Dr & Belmont Ave" = "DuSable Lake Shore Dr & Belmont Ave")) %>% 
  mutate(end_station_name = recode(end_station_name, 
        "Broadway & Wilson Ave" = "Broadway & Wilson - Truman College Vaccination Site",
        "Halsted St & 18th St" = "Halsted St & 18th St (Temp)",
        "Lake Shore Dr & Monroe St" = "DuSable Lake Shore Dr & Monroe St",
        "Throop (Loomis) St & Taylor St" = "Throop St & Taylor St",
        "McClurg Ct & Illinois St" = "New St & Illinois St",
        "Burling St (Halsted) & Diversey Pkwy (Temp)" = "Burling St & Diversey Pkwy",
        "Drake Ave & Fullerton Ave" = "St. Louis Ave & Fullerton Ave",
        "Malcolm X College" = "Malcolm X College Vaccination Site",
        "Lake Shore Dr & North Blvd" = "DuSable Lake Shore Dr & North Blvd",
        "Marshfield Ave & Cortland St" = "Elston Ave & Cortland St",
        "Lake Shore Dr & Ohio St" = "DuSable Lake Shore Dr & Ohio St",
        "Lake Shore Dr & Wellington Ave" = "DuSable Lake Shore Dr & Wellington Ave",
        "Lake Shore Dr & Diversey Pkwy" = "DuSable Lake Shore Dr & Diversey Pkwy",
        "Lake Shore Dr & Belmont Ave" = "DuSable Lake Shore Dr & Belmont Ave"))

🔍 Inspecting observations with missing values (NAs) in the start_station_name, start_station_id, end_station_name, and end_station_id columns

all_trips_NA <- all_trips_cln %>% 
  filter(is.na(start_station_name) | 
         is.na(end_station_name) |
         is.na(start_station_id) | 
         is.na(end_station_id))

# number of NAs in each column
colSums(is.na(all_trips_NA))
           ride_id      rideable_type         started_at           ended_at 
                 0                  0                  0                  0 
start_station_name   start_station_id   end_station_name     end_station_id 
            433066             433555             465223             465570 
         user_type         year_month        day_of_week               hour 
                 0                  0                  0                  0 
       ride_length 
                 0 
# contingency table for the subset with NAs
table(all_trips_NA$year_month, all_trips_NA$rideable_type)
         
          classic_bike electric_bike
  2020-09            0         30374
  2020-10            0         47054
  2020-11            0         35629
  2020-12          108         16863
  2021-01          135         12485
  2021-02          107          5956
  2021-03          182         21691
  2021-04          161         37194
  2021-05          197         77127
  2021-06          346        115639
  2021-07          473        124787
  2021-08          378        125277
# contingency table for the whole dataset
table(all_trips_cln$year_month, all_trips_cln$rideable_type)
         
          classic_bike docked_bike electric_bike
  2020-09            0      393566        125278
  2020-10            0      229503        148594
  2020-11            0      147835        106308
  2020-12        69685       12461         46976
  2021-01        60824        2027         32233
  2021-02        34031        1196         12923
  2021-03       150210       15100         59098
  2021-04       210953       23795         95784
  2021-05       303327       41444        174945
  2021-06       426477       49440        236903
  2021-07       497414       55529        251837
  2021-08       494426       43517        250842
all_trips_NA %>%   
  count(user_type)
# A tibble: 2 × 2
  user_type      n
  <chr>      <int>
1 casual    322707
2 member    329456
summary(all_trips_NA$ride_length)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    6.82   12.38   17.82   22.13  180.00 

Deleting the observations with missing values can reduce the statistical power of the analysis. We must understand why the data is missing. The reason for missing values here is the fact that electric bikes can be parked outside of the stations within a service area. You can find more information here. In Zone 1, an out-of-station parking fee ($2) is charged. In Zone 2, the out-of-station parking fee is waived to account for the lower density of stations.

There is no way to substitute missing values, and nothing indicates that something is wrong with this subset. If we delete it, we will lose a small percentage of rides taken with classic bikes (0.1%) and a lot of rides taken with electric bikes (42%). We’ll keep these observations.

✅ Final dataset ready for analysis

# selecting columns needed for analysis
al_trips_cln <- all_trips_cln %>% 
  select(start_station_name, end_station_name, user_type, year_month, day_of_week, 
         hour, ride_length, rideable_type)
# final dataset dimensions
dim_desc(al_trips_cln)
[1] "[4,804,481 x 8]"
# proportion of trips removed
(nrow(all_trips) - nrow(all_trips_cln)) / nrow(all_trips) 
[1] 0.02210246

✨ PART IV - Analyze & Share

In this step, we’ll try to find an answer to the question, “How do annual members and casual riders use Cyclistic bikes differently?”, and share key findings by analyzing the following:

  • number of rides
  • average ride length
  • bike-type usage
  • most popular stations
Code for ggplot theme customization
# theme customization
my_theme <- theme(plot.title=element_text(size=14),
                  plot.subtitle=element_text(size=10),
                  axis.text.x=element_text(size=10),
                  axis.text.y=element_text(size=10),
                  axis.title.x=element_text(size=10),
                  axis.title.y=element_text(size=10),
                  strip.text = element_text(size=12),
                  legend.title=element_text(size=11),
                  legend.text=element_text(size=11))

my_colors <- c("#355273", "#FF3030") 


💡 Number of rides

📊 Total Rides by User Type

Show code
all_trips_cln %>% 
  select(user_type) %>% 
  group_by(user_type) %>% 
  summarise(total_rides = n(), .groups = 'drop') %>% 
  webr::PieDonut(aes(user_type, count = total_rides), r0 = 0.7, r1 = 0.9, 
                 labelpositionThreshold = 1, showPieName = FALSE, pieAlpha = 1) + 
  scale_fill_manual(values = my_colors) +
  annotate(geom = 'text', x = 0, y = 0, 
           label = str_c("Totak Rides: ", round(nrow(all_trips_cln)/1e6, 1), "M"),
           size = 4.7) +
  theme_void()

📊 Total Rides by Month

Show code and table output
total_rides_by_month <- all_trips_cln %>% 
  select(user_type, year_month) %>% 
  group_by(user_type, year_month) %>% 
  summarise(total_rides = n()) %>% 
  mutate(percentage = scales::percent(total_rides/sum(total_rides), accuracy = 0.1)) %>% 
  ungroup()
  
total_rides_by_month %>% knitr::kable()
user_type year_month total_rides percentage
casual 2020-09 224124 10.3%
casual 2020-10 140703 6.5%
casual 2020-11 86025 4.0%
casual 2020-12 29456 1.4%
casual 2021-01 17719 0.8%
casual 2021-02 9764 0.4%
casual 2021-03 82219 3.8%
casual 2021-04 133407 6.1%
casual 2021-05 250286 11.5%
casual 2021-06 360818 16.6%
casual 2021-07 431617 19.9%
casual 2021-08 404005 18.6%
member 2020-09 294720 11.2%
member 2020-10 237394 9.0%
member 2020-11 168118 6.4%
member 2020-12 99666 3.8%
member 2021-01 77365 2.9%
member 2021-02 38386 1.5%
member 2021-03 142189 5.4%
member 2021-04 197125 7.5%
member 2021-05 269430 10.2%
member 2021-06 352002 13.4%
member 2021-07 373163 14.2%
member 2021-08 384780 14.6%
Show code
total_rides_by_month %>% 
  ggplot(aes(x = year_month, y = total_rides, fill = user_type)) + 
  geom_col(width = 0.65, position = position_dodge(0.75)) + 
  scale_y_continuous(labels = scales::comma) +
  scale_fill_manual(values = my_colors) +
  labs(title = "Total Rides by Month", subtitle = "September 2020 - August 2021",
       x = "", y = "", fill = "User Type") + 
  my_theme +
  theme(axis.text.x = element_text(angle = 45, hjust = 1), legend.position = "top")

It is evident that the number of rides through the months directly correlates with the weather. Weather history in Chicago (Weather Spark) for the period September 2020 - August 2021 reveals common temperatures throughout the year with the exception of February 2021 (freezing, snow) and the summer months June, July, and August 2021 (above-average temperatures).

The number of rides taken by casuals exceeded the number of rides taken by members only in June, July, and August 2021, during which time casual rides accounted for 55.1% of total casual rides.

The number of rides by casuals in relation to members is much lower in the period from October 2020 to January 2021. The possible cause is the COVID-19 pandemic. We can see the number of new cases per capita in the following animation.


📊 Total Rides by Day of the Week

Show code and table output
total_rides_by_dow <- all_trips_cln %>% 
  select(user_type, day_of_week) %>% 
  group_by(user_type, day_of_week) %>% 
  summarise(total_rides = n()) %>% 
  mutate(percentage = scales::percent(total_rides/sum(total_rides), accuracy = 0.1)) %>% 
  ungroup()

total_rides_by_dow %>% knitr::kable()
user_type day_of_week total_rides percentage
casual Mon 244486 11.3%
casual Tue 236602 10.9%
casual Wed 236318 10.9%
casual Thu 242197 11.2%
casual Fri 314450 14.5%
casual Sat 486516 22.4%
casual Sun 409574 18.9%
member Mon 357796 13.6%
member Tue 393073 14.9%
member Wed 399560 15.2%
member Thu 383457 14.6%
member Fri 388557 14.7%
member Sat 381707 14.5%
member Sun 330188 12.5%
Show code
total_rides_by_dow %>% 
  ggplot(aes(x = day_of_week, y = total_rides, fill = user_type)) + 
  geom_col(width = 0.65, position = position_dodge(0.75)) + 
  scale_y_continuous(labels = scales::comma) +
  scale_fill_manual(values = my_colors) +
  labs(title = "Total Rides by Day of the Week", 
       subtitle = "September 2020 - August 2021",
       x = "", y = "", fill = "User Type") +
  my_theme +
  theme(legend.position = "top")

Casual riders prefer Saturday rides (22.4% of total casual rides). Sunday is the second day with the highest number of rides (18.9%), followed by Friday (14.5%). Rides from Monday to Thursday are equally split (11%).

Members’ rides are much more evenly split (13–15%). Members took the fewest rides on Sundays (12.5%).


📊 Total Rides by Hour

Show code and table output
total_rides_by_hour <- all_trips_cln %>%
  select(user_type, hour) %>% 
  group_by(user_type, hour) %>% 
  summarise(total_rides = n()) %>% 
  mutate(percentage = scales::percent(total_rides/sum(total_rides), accuracy = 0.1)) %>% 
  ungroup()

total_rides_by_hour %>% knitr::kable() 
user_type hour total_rides percentage
casual 0 43483 2.0%
casual 1 30951 1.4%
casual 2 19563 0.9%
casual 3 10690 0.5%
casual 4 7551 0.3%
casual 5 9465 0.4%
casual 6 20186 0.9%
casual 7 35908 1.7%
casual 8 50059 2.3%
casual 9 61550 2.8%
casual 10 87268 4.0%
casual 11 116386 5.4%
casual 12 141729 6.5%
casual 13 152619 7.0%
casual 14 159014 7.3%
casual 15 167521 7.7%
casual 16 182255 8.4%
casual 17 208923 9.6%
casual 18 187132 8.6%
casual 19 143626 6.6%
casual 20 105533 4.9%
casual 21 86832 4.0%
casual 22 79799 3.7%
casual 23 62100 2.9%
member 0 24795 0.9%
member 1 15890 0.6%
member 2 9038 0.3%
member 3 5144 0.2%
member 4 6306 0.2%
member 5 24432 0.9%
member 6 71187 2.7%
member 7 126402 4.8%
member 8 139994 5.3%
member 9 109507 4.2%
member 10 111689 4.2%
member 11 137262 5.2%
member 12 160348 6.1%
member 13 158130 6.0%
member 14 157059 6.0%
member 15 177986 6.8%
member 16 224585 8.5%
member 17 279870 10.6%
member 18 239079 9.1%
member 19 169026 6.4%
member 20 110341 4.2%
member 21 77320 2.9%
member 22 58519 2.2%
member 23 40429 1.5%
Show code
total_rides_by_hour %>% 
  ggplot(aes(x = hour, y = total_rides, color = user_type)) +
  geom_line(aes(group = user_type), size = 1) +
  scale_y_continuous(labels = scales::comma) +
  scale_color_manual(values = my_colors) +
  labs(title = "Total Rides by Hour", subtitle = "September 2020 - August 2021",
       x = "", y = "", color = "User Type") +
  expand_limits(y = 3e5) +
  my_theme +
  theme(legend.position = "top")

Among members, we see spikes in use at 8 a.m. and 5 p.m., with another small bump at noon. Annual members are locals and frequent riders. They use bikes to commute to work or school, run errands, or get to appointments.

Among casual riders, we see a spike in use at 5 p.m. Casual riders are one-way commuters. Overall, they tend to ride in the late morning and afternoon.

💡 Average ride length

Ride Length summary statistics by user type in minutes.

all_trips_cln %>%   
  select(user_type, ride_length) %>% 
  group_by(user_type) %>% 
  summarize(min = min(ride_length),
            q1 = quantile(ride_length, 0.25),
            median = median(ride_length),
            mean = mean(ride_length),
            q3 = quantile(ride_length, 0.75),
            max = max(ride_length)) %>% 
  knitr::kable()
user_type min q1 median mean q3 max
casual 1 9.87 17.22 26.10541 31.15 180.00
member 1 6.12 10.40 13.83993 17.82 179.98

The average ride length for casuals (26 min) is almost twice as long as the average ride length for members (14 min). On average, rides by casuals last 12 minutes longer than rides by annual members.


📊 Average Ride Length by Day of the Week

Show code and table output
avg_ride_length_by_dow <- all_trips_cln %>% 
  select(user_type, day_of_week, ride_length) %>% 
  group_by(user_type, day_of_week) %>% 
  summarise(avg_ride_length = mean(ride_length) %>% round(2)) %>% 
  ungroup()

avg_ride_length_by_dow %>% knitr::kable() 
user_type day_of_week avg_ride_length
casual Mon 26.39
casual Tue 23.88
casual Wed 23.25
casual Thu 22.63
casual Fri 24.25
casual Sat 28.29
casual Sun 29.76
member Mon 13.34
member Tue 13.11
member Wed 13.21
member Thu 13.04
member Fri 13.48
member Sat 15.35
member Sun 15.62
Show code
avg_ride_length_by_dow %>% 
  ggplot(aes(x = day_of_week, y = avg_ride_length, fill = user_type)) + 
  geom_col(width = 0.665, position = position_dodge(0.75)) + 
  scale_y_continuous(labels = scales::comma) +
  scale_fill_manual(values = my_colors) +
  labs(title = "Average Ride Length (minute) by Day of the Week",
       subtitle = "September 2020 - August 2021",
       x = "", y = "", fill = "User Type") +
  my_theme +
  theme(legend.position = "top") 

The average ride length for members is constant from Monday to Friday (13 min), with a slight increase on Saturdays and Sundays (15 min).

The average ride length for casuals varies during the week (from 22 to 30 min), The highest average ride length is on Sundays (30 min), followed by Saturdays (28 min).


📊 Average Ride Length by Hour

Show code and table output
avg_ride_length_by_hour <- all_trips_cln %>% 
  select(user_type, hour, ride_length) %>% 
  group_by(user_type, hour) %>% 
  summarise(avg_ride_length = mean(ride_length) %>% round(2)) %>% 
  ungroup()

avg_ride_length_by_hour %>% knitr::kable()
user_type hour avg_ride_length
casual 0 23.48
casual 1 22.59
casual 2 21.83
casual 3 21.65
casual 4 19.90
casual 5 18.87
casual 6 17.03
casual 7 18.05
casual 8 20.33
casual 9 25.39
casual 10 28.84
casual 11 29.63
casual 12 29.30
casual 13 29.98
casual 14 29.97
casual 15 28.87
casual 16 26.94
casual 17 24.95
casual 18 24.19
casual 19 24.35
casual 20 24.48
casual 21 23.80
casual 22 23.28
casual 23 22.90
member 0 12.72
member 1 13.00
member 2 12.92
member 3 13.16
member 4 12.21
member 5 11.47
member 6 12.26
member 7 12.44
member 8 12.51
member 9 13.02
member 10 13.78
member 11 14.09
member 12 13.93
member 13 14.31
member 14 14.73
member 15 14.56
member 16 14.44
member 17 14.51
member 18 14.28
member 19 13.97
member 20 13.65
member 21 13.37
member 22 13.07
member 23 12.80
Show code
avg_ride_length_by_hour %>% 
  ggplot(aes(x = hour, y = avg_ride_length, color = user_type)) +
  geom_line(aes(group = user_type), size = 1) +
  scale_y_continuous(labels = scales::comma) +
  scale_color_manual(values = my_colors) +
  labs(title = "Average Ride Length (minute) by Hour", 
       subtitle = "September 2020 - August 2021",
       x = "", y = "", color = "User Type") +
  my_theme +
  theme(legend.position = "top")

The longest rides for casuals start in the late mornings and afternoons. The average ride length for members is pretty much constant during the day.


📊 Average Ride Length by Hour and Day of the Week

Show code
all_trips_cln %>%
  group_by(user_type, day_of_week, hour) %>%
  summarise(avg_ride_length = mean(ride_length), .groups = 'drop') %>% 
  ggplot(aes(x = hour, y = avg_ride_length, color = user_type)) +
  geom_line(aes(group = user_type), size=1) +
  facet_wrap(~day_of_week) +
  scale_y_continuous(labels = scales::comma) +
  scale_x_discrete(breaks = seq(1, 23, 2)) +
  scale_color_manual(values = my_colors) +
  labs(title = "Average Ride Length (minute) by Hour and Day of the Week", 
       subtitle = "September 2020 - August 2021",
       x = "", y = "", color = "User Type") +
  my_theme +
  theme(legend.position = "top")

💡 Bike-type usage

all_trips_cln %>% 
  select(user_type, rideable_type) %>% 
  group_by(user_type, rideable_type) %>% 
  summarise(total_rides = n()) %>% 
  mutate(percentage = scales::percent(total_rides/sum(total_rides), accuracy = 0.1)) %>% 
  ungroup() %>% 
  pivot_wider(-total_rides, names_from = rideable_type, values_from = percentage) %>% 
  knitr::kable()
user_type classic_bike docked_bike electric_bike
casual 41.8% 24.2% 34.0%
member 50.9% 18.6% 30.5%

Note: Both classic_bike and docked_bike are classic bikes. classic_bike is a classic docless bike, while docked_bike is a classic docked bike.

On average, casual riders took 66% of total casual rides with classic bikes and 34% with electric. Members took slightly fewer rides with electric bikes (30.5%) than casuals.


📊 Rideable Type by Month

Show code
all_trips_cln %>%
  group_by(user_type, year_month, rideable_type) %>% 
  summarise(total_rides = n()) %>% 
  ggplot(aes(x = year_month, y = total_rides, fill = rideable_type)) +
  geom_col(width = 0.7, position = "fill") +
  facet_wrap(~user_type) +
  scale_y_continuous(labels = scales::percent) +
  labs(title = "Rideable Type Usage by Month", 
       subtitle = "September 2020 - August 2021",
       x = "", y = "") + 
  my_theme + 
  theme(axis.text.x = element_text(angle = 45, hjust = 1), legend.position = "top")

We can see that from October 2020 to January 2021, more rides were taken with electric bikes than on average. Since fewer rides were taken in those months, both groups had more electric bikes at their disposal.

✨ PART V: Act

Casual riders can be locals or visitors (tourists). With our new marketing campaign, we should target only locals since there is little chance that visitors will buy an annual membership. Unfortunately, there is no way to distinguish locals from visitors in the group of casual riders. We’ll have to settle for the data we currently have.

My top three recommendations for the new marketing strategy aimed at converting casual riders into annual members are::

1. Conduct the marketing campaign during the summer months (June, July, August), mostly on weekends in the afternoon but also on weekdays around 5 p.m.

2. Use the fact that casual riders tend to ride 12+ minutes longer than annual members.

3. Act in the areas of stations that are most popular with casual riders.


You’ve reached the end of this project. Thank you for reading! Dream big. Bye! 🖐