Gathering insights from restaurants and menus on UberEats

Robert Atuahene
Posted on May 3, 2020

Motivation:

With Covid19, consumers will likely skew their dining options towards meal delivery vs. in restaurant dining. Restaurants that do open will need to significantly reduce in-restaurant dining traffic to only a few patrons at any given time to limit exposure and spread until a vaccine is developed. Medical experts estimate it may take up to a couple of years for a vaccine to be developed and widely administered. In the time being, restaurants will likely move a significant portion of their menu items online and to food delivery services like Ubereats, Grubhub, Doordash and Postmates in order to survive.

As online menu options grow and customers begin to rely more heavily on such online services they will need a specialized(vertical) query tool that will help them make the best selections based on their price points, culinary preferences and geographical location.

Restaurant operators in turn will look to tools that will allow them to optimize their menu selection and pricing within each geographical location.

This project kicks off the research and exploratory analysis aimed at ultimately generating actionable insights to restaurant operators and their customers regarding menu selection and pricing. Specifically for the restaurant owner, I will use data scraped from UberEats US website and the subsequent data analysis to help a restaurant owner answer 2 simple questions:

  • How do I choose my menu?
  • Which cities should I target?

For the consumer, I seek to use the data to answer a simple question:

  • where do I take the kids to dinner?

Scraping & Pre-processing

I used Selenium and multiple processes spawned on 2 commodity hardware to speed up scraping data on the UberEats website.

Ultimate goal is to scrape data across all ~3k+ cities listed on the UberEats US website.

For this initial analysis , I scraped all cities in Arizona and Alabama. Resulting dataset after pre-processing: 98k rows, with 15 features including:

  • Restaurant name
  • Restaurant geographical location
  • Uber's restaurant city name
  • Restaurant category
  • Restaurant pricing category
  • Restaurant rating
  • Number of reviews
  • Full restaurant menu with menu-subtitle, dish name, dish description and meal price

Exploratory Data Analysis

Menu selection:-

If I put myself in the shoes of a restaurant operator, I would want to know what the top menu categories are in my location and to better understand how the competition is pricing these menus locally. With this in mind and using data scraped for the state of Arizona, I generated the following boxplots - (click on image to enlarge)

For all but 1 category, 75% of the meals are priced under $10. Meal prices on the "Picked For You" submenu (meals recommended to customers by UberEats' algorithms ) appear to be much higher with significant outliers to the upside.

A density plot of the distribution of  "Picked For You" submenu prices confirms the finding from the above boxplot that the median(not the 3rd quartile) for this subset of meals is ~$10 with several outliers ranging from $20-$68 per meal.

Now that we know that the UberEats recommended meals are generally the higher menu items, I wanted to find out how the recommended meal prices vary across the major cities in Arizona and across restaurants in Arizona. With the bar plots below, I found that Scottsdale Arizona and a Red Lobster restaurant had the highest averages.

 

 

Restaurant Reviews and Ratings

One of the popular measures of restaurant popularity is the quantity and quality of their reviews.  For this particular analysis, I explored the distribution of restaurant ratings in both Arizona(AZ) and Alabama(AL) and found out that most ratings(1-5) were positively skewed with most of ratings falling between 4.25 and 4.75 in both states.

And from the scatter plot below, we can see that the more actively reviewed restaurants generally have higher ratings with lower variability in the results compared to less actively reviewed restaurants. Intuitively, this makes sense as successful restaurants tend to have a bigger and more enthusiastic customer base and if a large enough subset choose to rate a restaurant then it's reasonable to expect that the sentiment conveyed online in aggregate mimics the sentiment of the overall customer base.

With this backdrop it will be interesting to see in further analysis, the influence(if any) of restaurant ratings on restaurant menu prices and selection.

Menu items

With an understanding of the price distribution of sub-menu categories in Arizona, I proceeded to take a deeper look into the composition of menu items.

A wordcloud of the text describing each menu item in the corpus generated this:

which wafts of American fast food - burgers and fries. Indeed, a subsequent wordcloud on the food categories in the corpus(states of Arizona and Alabama) confirms this:

Now shifting my attention to the consumer, I wanted to answer this:

Where do we take the kids to dinner in Arizona?

For the state of Arizona, I picked the top restaurants after grouping them by the number of distinct menu items on their respective Kid's menu.

From the chart above, if you are a parent with picky eaters and in the state of Arizona, look for a Panera Bread, a Red Robin, a Babbo Italian Eatery, a BJ's Restaurant or a Dillon's BBQ nearest you.

Conclusions:

  • If you are a restaurant owner in Arizona, you are looking at pricing most dishes at ~$10.
  • UberEats' recommended meals off your menu are typically priced higher than the rest of the menu. Hence it will be prudent to include some higher priced/higher margin items on your menu to take advantage of this UberEats feature.
  • For this corpus, ratings were positively skewed and the heavily reviewed restaurants had higher ratings in general with smaller dispersion in ratings. A restaurant owner could look at heavily reviewed and highly rated competitors for inspiration.
  • In terms of actual menu selection, within the corpus, I found American fast foods to be the most popular and this could guide menu selection.
  • For a parent looking for a wide selection of kid's meals, analysis of the corpus using variety as the only criteria brings up Panera Bread and Red Robin as the top dining options.

With more data, I plan to extend this analysis to cover the menu items and prices across other geographical regions.  Ultimately, this will aid restaurant owners in menu selection and pricing.

About Author

Robert Atuahene

Robert Atuahene

Financial services executive with extensive experience in trading and risk management of listed derivatives. Excited about opportunities to apply data science to the financial services domain and beyond!
View all posts by Robert Atuahene >

Leave a Comment

Avatar
Restaurantes en tiempos de rentas altas $ ¿Qué es una Dark Kitchen y cuáles son sus factores de éxito? – Datlas Investigación | Blog de www.datlas.mx August 17, 2020
[…] https://nycdatascience.com/blog/student-works/web-scraping/gathering-insights-from-restaurants-and-m… […]

View Posts by Categories


Our Recent Popular Posts


View Posts by Tags

#python #trainwithnycdsa 2019 airbnb Alex Baransky alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus API Application artist aws 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 Bundles California Cancer Research capstone Career Career Day citibike clustering Coding Course Demo Course Report D3.js data Data Analyst data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization Deep Learning Demo Day Discount dplyr employer networking feature engineering Finance Financial Data Science Flask gbm Get Hired ggplot2 googleVis Hadoop higgs boson Hiring hiring partner events Hiring Partners Industry Experts Instructor Blog Instructor Interview Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter lasso regression Lead Data Scienctist Lead Data Scientist leaflet linear regression Logistic Regression machine learning Maps matplotlib Medical Research Meet the team meetup Networking neural network Neural networks New Courses nlp NYC NYC Data Science nyc data science academy NYC Open Data NYCDSA NYCDSA Alumni Online Online Bootcamp Open Data painter pandas Part-time Portfolio Development prediction Prework Programming PwC python python machine learning python scrapy python web scraping python webscraping Python Workshop R 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 Selenium sentiment analysis Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau team TensorFlow Testimonial tf-idf Top Data Science Bootcamp twitter visualization web scraping Weekend Course What to expect word cloud word2vec XGBoost yelp