Uber/Lyft Maximization: More Money for The Time

Posted on Mar 12, 2019

Project GitHub | LinkedIn:   Niki   Moritz   Hao-Wei   Matthew   Oren

The skills we demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.


Uber and Lyft who are the main ridesharing companies can make more money at a faster rate by filling their cars with passengers at a higher peak time when they are on the road. The typical Uber/Lyft driver normally have full-time jobs, full-time students, or in between jobs. Being an Uber/Lyft driver to make some extra cash on the side is ideal, however, you would want to optimize your time. With this being in mind and using the data that's freely available to the public at sfcta.org, I created a Shiny app for rideshare drivers that suggests where they will most likely find passengers in an area for pick up to drop off quicker. The Shiny app is based on the area zone in the Bay area, time, and day of the week.

The Data

The San Francisco Transportation Authority released some data of Uber and Lyft usage within the city by the Bay area. The two rideshare companies combined logged more than 150,000 daily rides on typical Fridays in the fall of 2016 which only included pick-ups and drop-offs within the city limits. With the "TNCs" official report and data, I used pick-ups and drop-offs from the Fall of 2016 in which the data also provided the GPS coordinates and were also in the form of shape files. I also used data from the Transportation Authority for the block level summaries "taz" zones (traffic analysis zones) in which divided the city up into different area zones.

The App: Visualization and Suggestion

Once I cleaned and merged the data, I transformed the given shape files of the GPS coordinates into a heatmap using Leaflet maps, longitude and latitude points. I added filters so the user can manually select the days of the week and times for pick-ups or drop-offs. To give drivers a better idea for times ahead, I added a histogram on the sidebar to show the number of pick-ups and drop-offs overtime on the users filter criteria.

This Shiny app offers both basic exploratory data analysis and a tool to visualize Uber/Lyft pick-ups and drop-offs. Open the app in the hyperlink above and test out the scenarios below.

R Shiny app for pick-ups and drop-offs according to day of week and direction

Above, you have the options for the day of the week and pick-ups or drop-offs with the leaflet heat map to the left. The "taz" information in the data set are the colored areas that you see in the heatmap. Once your criteria are selected, you will see the different taz areas change color showing the user how many pick-ups or drop-offs are being made in that specific area. This gives drivers a better understanding of what area of the city would be best to be in for picking up passengers on a given day at a given time.

Uber/Lyft pick-ups and drop-offs according to time of day on given day of week

You also have the time of day option to the right with an option play button which shows the transformation of the number of pick-ups and drop-offs throughout the selected day which appears in the leaflet heat map. The bottom right of the heat map has a legend designating the colors specific value. The bottom of the time slider, you may select the play button which shows the driver how the heatmap changes through the selected day. Therefore, the driver knows what area to be in later on in the day if need be. The histogram above the time slider also shows the user the peak times for that day for optimizing use.

Monday evening pick-ups

This is an example for typical Monday evening pick-ups. Not too much activity, however, you have the peak times in the morning commute hours and more so in the evening commute hours.

Saturday night pick-ups

Now, this is a Saturday evening and as you can see there is a lot more activity compared to the earlier example. By looking at the legend, you can see the values changed to a higher value. The histogram also shows the steady increase in pick-ups throughout the day and evening as supposed to Monday.

Suppose a full-time college student is working on the side as a driver for Uber/Lyft for some extra cash. Due to the intensity of his/her studies and the limited free time he/she wants to optimize their time on the road. With limited time or only being able to work a couple of days a week, they would want to be on the road working at the best possible times and day of the week to earn as much as they can. Makes sense right? Using this app that type of user can calculate the best day, time and area to be available to optimize their earnings. As you can see below, the user who decides they want to work on a Saturday night can select that day, choose pick-up, then use the slider bar to watch what areas on the map appear the most red. Therefore, the "college student" can plan accordingly for their work time.

Selecting day of week and pick-up/drop-off
Select time of day
See areas with the most pick-ups according to the legend

Future Work

This investigation didn't take into account the Uber/Lyft waiting time for particular pick-ups. With drivers being able to identify times and locations for better optimizing their time, this could cause some problems for passengers having to wait an unreasonable amount of time. Therefore, a lot more work to be done to investigate other choices of transportation such as community bike or scooters. San Fransisco only had data available for the fall season where having data year- round would give users a better understanding of how different seasons affect the passengers. Considering events occurring in the city that demand drive rideshare would be ideal. Then, I believe it would be good to implement predictive analytics and suggestions for drivers, such as route and time optimization using machine learning.

The Code

All of the code and data used for this Shiny app can be found on my GitHub page here.

About Author

Lauren Taylor

A Sam Houston State graduate in Business Administration. Looking to change career paths into more of an IT industry involving machine learning and algorithms. Love to continue learning python, SQL, and R code language.
View all posts by Lauren Taylor >

Related Articles

Leave a Comment

Gurkan Gezgin March 13, 2019
Very useful! Even though I feel pretty confident with patterns at 25k rides, I appreciate how you highlighted the hotzones.

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 2020 Revenue 3-points agriculture air quality airbnb airline alcohol Alex Baransky algorithm alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus ames dataset ames housing dataset apartment rent API Application artist aws bank loans beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep boston safety Bundles cake recipe California Cancer Research capstone car price Career Career Day citibike classic cars classpass clustering Coding Course Demo Course Report covid 19 credit credit card crime frequency crops D3.js data data analysis Data Analyst data analytics data for tripadvisor reviews data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization database Deep Learning Demo Day Discount disney dplyr drug data e-commerce economy employee employee burnout employer networking environment feature engineering Finance Financial Data Science fitness studio Flask flight delay gbm Get Hired ggplot2 googleVis H20 Hadoop hallmark holiday movie happiness healthcare frauds higgs boson Hiring hiring partner events Hiring Partners hotels housing housing data housing predictions housing price hy-vee Income Industry Experts Injuries Instructor Blog Instructor Interview insurance italki Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter las vegas airport lasso regression Lead Data Scienctist Lead Data Scientist leaflet league linear regression Logistic Regression machine learning Maps market matplotlib Medical Research Meet the team meetup methal health miami beach movie music Napoli NBA netflix Networking neural network Neural networks New Courses NHL nlp NYC NYC Data Science nyc data science academy NYC Open Data nyc property NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time performance phoenix pollutants Portfolio Development precision measurement prediction Prework Programming public safety PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R Data Analysis R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn seafood type Selenium sentiment analysis sentiment classification Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau teachers team team performance TensorFlow Testimonial tf-idf Top Data Science Bootcamp Top manufacturing companies Transfers tweets twitter videos visualization wallstreet wallstreetbets web scraping Weekend Course What to expect whiskey whiskeyadvocate wildfire word cloud word2vec XGBoost yelp youtube trending ZORI