How to Eat Diet Friendly at Olive Garden

Author

Erin McLaughlin

What are We Looking At?

The data we will be using is the olive garden menu nutritional data that includes amounts like calories, protein, sugars, and trans fat for each menu item. Included in this data frame is their catering nutritional information as well. This information is available thanks to Nutritionix.

What are we trying to learn?

I want to look at how many of the meals listed on the Olive Garden menu take up the total amount of calories that one person should have in a day (2000). I also want to look at how someone with diabetes could eat at Olive Garden. Most people who live with diabetes or high cholesterol have to eat heart healthy, low carb, and low sodium diets.

Starting the Process

We have to first make sure all of our packages that we require are available by using out library() function.

Portion Sizes

We are staring out process by looking at the serving sizes of the Olive Garden menu. A recommendation for the appropriate amount of calories to eat in a day is 2000. Therefore, I want to start by looking at what menu items are close to maxing out a persons calorie intake for an entire day.

#to filter out the bulking words from the data set

df_filtered <- 
  nutrition %>%
  filter(!grepl("Catering|One-Gallon|Half-Gallon", `Menu Item`,ignore.case = TRUE)) %>% 
  arrange(desc(Calories)) %>% 
  select(`Menu Item`, Calories) %>% 
  slice_head(n=3)

print(df_filtered)
# A tibble: 3 × 2
  `Menu Item`                                          Calories
  <chr>                                                   <dbl>
1 Chicken Tortelloni Alfredo[more info]                    1980
2 Chicken Alfredowith Crispy Chicken Fritta[more info]     1790
3 Chicken Alfredowith Grilled Chicken[more info]           1570

The above answers the basic question that no one classic menu item will be equal to or more than your suggested daily calories intake. However if a customer decides to add a drink, I want to know what drinks they can order that will allow for those customers to still stay under the 2000 calorie limit.

#The menu data frame is ordered like a menu to where lines 142 to 196 are the drinks
drinks<-
  nutrition %>% 
    slice(142:196)

drinks %>% 
  ggplot(aes(x = Calories)) +
  geom_histogram(fill = "pink",col = "blue", bins = 40)+
  scale_x_continuous(breaks = seq(0, 900, by = 100))+
  labs(title = "Calorie Distribution of Drinks", x= "Calories", y = "How Many Drinks have this Calorie Amount?" )

zero_calories<-
  drinks %>% 
  filter(Calories <=20) %>% 
  select(`Menu Item`,Calories)
print(zero_calories)
# A tibble: 5 × 2
  `Menu Item`                      Calories
  <chr>                               <dbl>
1 Coffee[more info]                       0
2 Italian Bottled Water[more info]        0
3 Tea[more info]                          0
4 Coke Zero[more info]                    0
5 Diet Coke[more info]                    0

We can see that there are only 5 drinks (Coffee, Water, Tea, Coke Zero, and Diet Coke) that are less than the 20 calorie buffer left by the Chicken Tortellini Alfredo.

Heart Health Eating

Let look at the what Menu Items would be considered friendly to diabetics. Whom, to my understanding, need items with low to no sugars and low amounts of carbohydrates. A Low-Carb Diet means that a person is consuming no more than 130 carbs a day. A low sodium diet means consuming no more than 1500 mgs of sodium a day.

#we make a column that 
nutrition %>% 
  mutate(low_sodium = Sodium<1500) %>% 
  mutate(diabetic_friendly = Sugars==0 & `Total Carbs`<=130 ) %>% 
  filter(diabetic_friendly==TRUE&low_sodium==TRUE&Cholesterol>0) %>%
  ggplot(aes(x = `Menu Item`, y = Cholesterol)) +
  geom_bar(stat = "identity", fill = "steelblue")+
  labs(title = "Heart Healthy Options", x = "Menu Items", y = "Cholesterol")

heart_options<-
  nutrition %>% 
  mutate(low_sodium = Sodium<1500) %>% 
  mutate(diabetic_friendly = Sugars==0 & `Total Carbs`<=130 ) %>% 
  filter(diabetic_friendly==TRUE&low_sodium==TRUE&Cholesterol>0) %>% 
  arrange(Cholesterol) %>% 
  select(`Menu Item`, Calories,Cholesterol, Sodium, `Total Carbs`, Sugars)

print(heart_options)
# A tibble: 17 × 6
   `Menu Item`                  Calories Cholesterol Sodium `Total Carbs` Sugars
   <chr>                           <dbl>       <dbl>  <dbl>         <dbl>  <dbl>
 1 Calamari, Add Spicy Ranch[m…      240          15    740             2      0
 2 Shrimp Fritto Misto, Add Sp…      240          15    740             2      0
 3 Kids Cheese Pizza, Add Pepp…       60          15    210             0      0
 4 Kids Create Your Own Pasta,…      160          20    350             2      0
 5 Create Your Own Pasta, Cris…      240          50    730            14      0
 6 Kids Create Your Own Pasta,…      240          50    730            14      0
 7 Stuffed Ziti Fritta[more in…      500          60   1040            40      0
 8 Create Your Own Pasta, Meat…      480          65   1060             7      0
 9 Side of Meatballs[more info]      480          65   1060             7      0
10 Kids Chicken Fingers[more i…      300          65    580            15      0
11 Stuffed Ziti Fritta, Add Al…      220          70    300             3      0
12 Create Your Own Pasta, Gril…      130          75    540             0      0
13 Side of Grilled Chicken[mor…      130          75    540             0      0
14 Kids Create Your Own Pasta,…      130          75    540             0      0
15 Kids Create Your Own Pasta,…       45          75    130             0      0
16 Create Your Own Pasta, Glut…      380         100    260            77      0
17 Create Your Own Pasta, Saut…      170         245    410             1      0

The above listed options are heart health friendly and we can see that a heart healthy option is the fired calamari. The sugar, carb, sodium, and cholesterol levels are low enough that a person on a heart healthy diet should choose calamari as their meal and or as a smart choice for their appetizer. Many of the kids meals were classified as heart healthy, we could assume that this is due to their smaller portion size.

Catering Options

The last question I have for this menu is what catering options are considered diabetic friendly on the larger scale. So to do this I first found what menu items were considered “catering” options and then i looked to find what options were low sodium and low carb. The only catering option for food that is zero sugar is the Chicken Tenders. The catering meals are considered family style and therefore serve anywhere from 4 to 6 people. For our purposes we will take the sodium and total carb amounts and divde them by 1500 and 130 to see if the number is < 5 (middle of 4 and 6) to then see if it is a carb and sodium friendly meal.

nutrition %>% 
  filter(grepl("Catering", `Menu Item`, ignore.case = TRUE)) %>% 
  mutate(serves_people_carb = `Total Carbs`/5, serves_people_sodium = Sodium/1500, peoples_worth_calories = Calories/2000) %>%
  mutate(for_five = peoples_worth_calories<5) %>% 
  ggplot(aes(x = serves_people_sodium, y = serves_people_carb))+
  geom_point(col = "orange")+
  labs(title = "How Many Peoples Worth of Carbs to Sodium in Catering Options", 
       x = "Peoples worth of Sodium", y = "Peoples worth of Carbs")

There is a positive correlation between sodium levels and carb levels. Therefore the catering menu serves more sodium and carbohydrates worth of food than the listed serving size.

Conclusion

If you are looking to go to Olive Garden for a meal, and you are restricted to a heart healthy diet there are few items available for you. The same case exists if we try and organize a catering from Olive Garden for people on a heart healthy diet.