Regork Growth Opportunities

Introduction

Problem Statement

As data scientists at Regork, the goal is to leverage data analytics to uncover insights into customer behavior, market trends, and purchasing tendencies. We are tasked with identifying a potential area of growth where the company could invest future resources to increase revenue and profits.

Solution Overview

Our analysis uncovered an opportunity to further increase product purchases by leveraging coupons in the demographic range of 45-54 years old. The demographic is already heavily invested in coupon use, so diversifying our coupon options and offering seasonal coupon bundles could increase overall revenue and product sales.

Expected Benefits

By analyzing sales data, customer demographics, and purchasing patterns, we aim to pinpoint opportunities for expansion that will drive financial growth and enhance the competitive position of Regork in the grocery market. By better leveraging the coupon demand for the age demographic of 45-54, we can utilize their purchasing tendencies to increase product sales and revenue.

Packages/Libraries Required

completejourney

  • Provides access to data sets.

tidyverse

  • Data wrangling, exploration, and visualization.

lubridate

  • Parse and manipulate dates.

ggplot2

  • Data visualization package.

Exploratory Data Analysis

Organizing Data Structure

For this analysis, we utilized transactions, promotions, products, demographics, and coupons to identify trends signifying areas for improvement. By joining them into one vector, the data is easily cross-referenced for trend identification.

suppressMessages({
    library(completejourney)
    library(tidyverse)
    library(lubridate)
    library(ggplot2)
  })
transactions <- get_transactions()
promotions <- get_promotions()
products <- products
demographics <- demographics
coupons <- coupons

tppdc <- suppressMessages(transactions %>%
  inner_join(products, by = join_by(product_id), relationship = "many-to-many") %>%
  inner_join(promotions, by = join_by(store_id, product_id, week), relationship = "many-to-many") %>%
  inner_join(coupons, by = join_by(product_id), relationship = "many-to-many") %>%
  inner_join(demographics)
)

Graph 1: Total Coupon Purchases by Age Demographic

First, we looked at the total coupon purchases made by each age demographic to determine which age group utilizes coupons the most frequently. According to the graph, our target demographic for coupons will be ages 45-54.

coupon_by_age <- tppdc %>%
  group_by(age) %>%
  summarize(total_coupons = n())

ggplot(coupon_by_age, aes(x = age, y = total_coupons, fill = age)) +
  geom_bar(stat = "identity") +
  scale_y_continuous(breaks = scales::pretty_breaks(n=10)) +
  labs(title = "Coupon Purchases by Age Demographic",
       x = "Age Demographic",
       y = "Total Coupon Purchases",
       fill = "Age Demographic") +
  theme_minimal()

Graph 2: Top 10 Product Purchases Using Coupons for Age Demographic 45-54.

We are now going to analyze the top 10 products purchased using coupons by the 45-54 age demographic. By focusing on boosting the sales of the less popular items, ranked #6-10, to levels comparable with the top 5 items, we can significantly increase our revenue.

filtered_data <- tppdc %>%
  filter(age == "45-54")

top_products <- tppdc %>%
  group_by(product_category) %>%
  summarise(total_purchased = sum(quantity)) %>%
  arrange(desc(total_purchased)) %>%
  head(10)

ggplot(top_products, aes(x = reorder(product_category, -total_purchased), y = total_purchased)) +
  geom_bar(stat = "identity", fill = "forestgreen") +
  labs(title = "Top 10 Products Purchased Using Coupons (Age 45-54)",
       x = "Product Category",
       y = "Total Purchases") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1, size = 8)) +
  scale_y_continuous(breaks = seq(0, max(top_products$total_purchased), by = 10000))

Graph 3: Products #6-10 Purchase Quantity Over a Year for (Age 45-54).

Here we are analyzing the purchases of the #6-10 most popular coupon items over the course of a year. By understanding the trends and patterns behind these items, we aim to optimize our coupon marketing strategies to align with their historically peak sales periods. Bundling products at their peaking sales times with products that are in a slump will incentive customers to buy both products, increasing overall sales.

filtered_data_45_54_6_10 <- tppdc %>%
  filter(age == "45-54", product_category %in% c("BEEF", "FRZN VEGETABLE/VEG DSH", "EGGS", "ICE CREAM/MILK/SHERBTS", "REFRGRATD JUICES/DRNKS"))

sales_over_week <- suppressMessages(filtered_data_45_54_6_10 %>%
  group_by(week, product_category) %>%
  summarise(total_sales = sum(quantity)) %>%
  ungroup()
)

ggplot(sales_over_week, aes(x = week, y = total_sales, color = product_category, group = product_category)) +
  geom_line() +
  labs(title = "Sales of Coupon Products #6-10 Over the Calendar Year (Age 45-54)",
       x = "Week",
       y = "Total Sales",
       color = "Product Category") +
  theme_minimal() +
  scale_x_continuous(breaks = scales::pretty_breaks(n = 10)) +  
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Graph 4: Products Most Commonly Bought with Coupons

We determined that analyzing the most commonly purchased coupon items would be highly beneficial. By marketing our coupons as bundles or offering greater savings when bundling the most popular items, we can attract more customers. Additionally, by pairing these frequently bought coupon items with less popular ones, we can boost overall product sales.

coupon_transactions <- tppdc %>%
  filter(coupon_disc > 0) %>%
  group_by(product_category) %>%
  summarise(total_coupons = sum(quantity)) %>%
  arrange(desc(total_coupons)) %>%
  head(10)

ggplot(coupon_transactions, aes(x = reorder(product_category, total_coupons), y = total_coupons, fill = product_category)) +
  geom_bar(stat = "identity") +
  labs(title = "Top 10 Products Purchased with Coupons",
       x = "Product Category",
       y = "Total Purchases with Coupons") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1, size = 8) 
  )

Summary

Problem Statement

Regork tasked us with finding growth operations within their current sales. Our analysis focuses on the purchasing behavior of customers, specifically in relation with coupon usage to find out where we can invest our time and marketing efforts.

Key Findings

Our analysis highlights a huge opportunity for Regork within the 45-54 year old age demographic, which exhibits the highest sales with coupons. By expanding our coupon offerings and tailoring them to this market, Regork can gain additional sales and retain more customers.

Insights from our Analysis

  • Coupon Usage by Age: The 45-54 age group is the most active with coupons, which makes them the most valuable target for strategic enhancements.

  • Top Products Purchased with Coupons: The top 10 most frequently purchased items with coupons were identified, with the potential to boost sales for the lower performing items.

  • Seasonal Trends in Purchases: We examined purchasing patterns of all of the lower performing items, so that we could find the most optimal time to employ marketing strategies and targeted promotions.

  • Bundling Opportunities: We looked at items that were frequently purchased with coupons, suggesting that if we were to bundle the coupon offerings with other items, we could increase the revenue per customer transaction.

Limitations

  • Coupon Values: We are unable to identify exact coupon offerings and discounts. Our recommendations to increase coupon offerings to increase revenue could be less effective at increasing profit if the coupons decrease profit margins significantly.
  • Direct Coupon Offering Effectiveness: It is difficult to tell if offering coupon bundles would directly incentivize customers to buy additional items they usually would not purchase.

Possible Improvements

  • If someone identified exactly which coupons sold together the most successfully, that could potentially point to the most viable bundling options to give more specific examples.

Recommendations

  • Expand Coupon Offerings for the 45-54 Demographic: Prioritize categories that are underperforming yet still rank relatively high on the total sales list. By targeting these areas, we can tap into their potential and drive increased sales within this key demographic

  • Introduce Seasonal Promotions: Every item we analyzed exhibited seasonal peaks. By strategically sending out targeted coupons during these peak periods for each category, Regork could significantly boost sales across all categories.

  • Leverage Product Bundling Discounts: Promote larger purchases by offering discounts on bundled items that are usually bought with coupons but less typically bought together. This strategy can boost total sales while enhancing customer satisfaction and loyalty.

By developing a new coupon strategy based on our insights, Regork can tap into an underserved market segment. This market is already engaged and contributing to daily sales. By strengthening our approach and addressing all customer wants and needs, we can create a competitive advantage and drive even greater success