Business Question: Which product promotions generate true incremental sales growth, and which primarily shift purchases forward without increasing overall demand?


Use the tabs below to navigate through the required rubric sections of this report.

Use the hide/show buttons to toggle between hiding and viewing R code.


Introduction


The Growth Possibility

Retail promotions are commonly used to stimulate product demand through an increase in short-term sales to encourage customer purchasing. However, not all promotions lead to true, lasting incremental growth. Some promotions may simply prompt customers to buy a product earlier than they normally would, rather than increasing overall demand like intended. As a result, future sales may be reduced and profit margins may be negatively impacted. This behavior, often referred to as pull-forward purchasing, occurs when customers take advantage of a promotion to stock-up, resulting in higher sales volume during the promotion, but lower sales volume afterward.

This analysis examines whether product promotions at Regork result in sustained increases in sales, or if product promotions primarily reflect this pull-forward behavior.

Identifying which promotions drive lasting demand represents an important growth opportunity, as it allows Regork to focus marketing efforts on products that generate meaningful returns, while reducing investment in less effective promotions. Understanding this distinction is essential for improving marketing efficiency, protecting margins, and supporting long-term revenue growth.


Analytic Methodology Employed

Transaction-level sales data were used to identify promotional periods for selected high-volume products. For each product, sales performance was evaluated across three windows: pre-promotion, during promotion, and post-promotion.

Promotional activity in this dataset is defined at the product–store–week level; therefore, a promotion flag was constructed to identify weeks in which a given product was actively promoted.

Total weekly unit sales and revenue were computed for each window, and percentage changes were calculated to quantify promotional lift and post-promotion effects. These metrics were used to classify promotions as generating likely true demand or pull-forward behavior.


Proposed Use of Analysis

This analysis is designed to provide the Regork CEO with a clearer understanding of how promotional investments translate into long-term value.

While promotions are frequently evaluated based on short-term sales lift, this perspective may overlook whether those gains represent true incremental demand or merely a shift in purchasing timing.

By examining both in-period lift and post-promotion performance, this analysis seeks to determine which promotions create sustained growth and which may only accelerate purchases temporarily.

The findings will help inform a more strategic allocation of promotional resources, enabling Regork to prioritize initiatives that support durable revenue growth rather than short-term volume spikes.


Packages & Libraries

# Packages and Libraries to be used

library(completejourney)
library(tidyverse)
library(scales)
library(lubridate)


Package Descriptions

# Package Table listing all packages and tables to be used, along with the explanation of their intended use and purpose

package_table <- tibble(
  Package = c(
    "completejourney",
    "dplyr (via tidyverse)",
    "tidyr (via tidyverse)",
    "ggplot2 (via tidyverse)",
    "scales",
    "lubridate"
  ),
  Purpose = c(
    "Provides transaction, product, and promotion datasets used in the analysis",
    "Used for data cleaning, joining tables, filtering observations, and summarizing sales metrics",
    "Used to reshape summarized data for comparison across promotion windows",
    "Used to create visualizations of promotional performance",
    "Used to format percentage metrics and improve axis label readability in visualizations",
    "Used to perform date calculations required to define pre-, during-, and post-promotion windows"
  )
)

knitr::kable(package_table)
Package Purpose
completejourney Provides transaction, product, and promotion datasets used in the analysis
dplyr (via tidyverse) Used for data cleaning, joining tables, filtering observations, and summarizing sales metrics
tidyr (via tidyverse) Used to reshape summarized data for comparison across promotion windows
ggplot2 (via tidyverse) Used to create visualizations of promotional performance
scales Used to format percentage metrics and improve axis label readability in visualizations
lubridate Used to perform date calculations required to define pre-, during-, and post-promotion windows
# Suppress messages and warnings resulting from loading the packages

suppressPackageStartupMessages({
  library(completejourney)
  library(tidyverse)
  library(scales)
  library(lubridate)
})


Exploratory Data Analysis


Methodology

This analysis evaluates promotional effectiveness by comparing product sales before, during, and after promotional weeks. For a selected group of frequently promoted products, total weekly sales and unit volume were calculated across three time windows: a pre-promotion period (the week prior to promotion), the promotion period itself (the week during the promotion), and a post-promotion period (the week following the promotion).

Promotional lift was measured as the percentage change in total sales during the promotion week relative to the pre-promotion baseline week.

Post-promotion change was calculated in a similar manner to assess whether sales remained elevated or declined after the promotion concluded.

These metrics allow for distinction between promotions that generate sustained demand and those that primarily encourage customers to shift purchases earlier than they otherwise would.

By examining both short-term lift and post-promotion performance, this approach provides a practical framework for identifying promotions that contribute to true incremental growth versus those that reflect pull-forward purchasing behavior.


Key Definitions

# Table listing all key terms referenced throughout analysis, along with their explanation

key_definitions <- tibble(
  Term = c(
    "Pre-Promotion", 
    "Promotion Period",
    "Post-Promotion", 
    "Lift", 
    "Post-Promotion Change"
    ),
  Definition = c(
    "The week immediately preceding the promotion week",
    "The week in which the product is promoted",
    "The week immediately following the promotion week",
    "Percent change in total sales during the promotion week vs the pre-promotion week",
    "Percent change in total sales during the post-promotion week vs the pre-promotion week"
  )
) 

knitr::kable(key_definitions)
Term Definition
Pre-Promotion The week immediately preceding the promotion week
Promotion Period The week in which the product is promoted
Post-Promotion The week immediately following the promotion week
Lift Percent change in total sales during the promotion week vs the pre-promotion week
Post-Promotion Change Percent change in total sales during the post-promotion week vs the pre-promotion week


Summary

Business Question

Retail promotions are a critical lever for driving short-term sales growth, but not all promotional activity generates true incremental demand. In many cases, promotions may simply shift purchases forward, creating temporary spikes in sales followed by post-promotion declines. This dynamic can inflate performance metrics during the promotional window while masking limited long-term impact.

The central business question addressed in this analysis is: Which product promotions generate sustained incremental sales growth, and which primarily shift purchases forward without increasing overall demand?

By distinguishing between these two outcomes, Regork can better allocate promotional resources toward strategies that enhance long-term revenue and profitability rather than short-term volume gains.


Analytic Methodology Employed

This analysis utilized the Complete Journey dataset, integrating transaction-level sales data with product records and promotional records to evaluate promotional performance across selected high-volume product categories.

Promotional activity in this dataset is defined at the product–store–week level; therefore, a promotion flag was constructed to identify weeks in which a given product was actively promoted.

Using these promotion indicators, structured comparison windows were defined surrounding promotional activity.

For each selected product, total weekly sales and unit volume were calculated across three time windows: a pre-promotion period (the week prior to promotion), the promotion period itself (the week during the promotion), and a post-promotion period (the week following the promotion).

For each product, two key performance metrics were calculated: Promotional lift was measured as the percentage change in total sales during the promotion week relative to the pre-promotion baseline week.

Post-promotion change was calculated in a similar manner to assess whether sales remained elevated or declined after the promotion concluded.

These metrics allow for direct comparison of short-term promotional impact and subsequent sales behavior, supporting evaluation of whether promotions generate sustained incremental growth or primarily shift purchasing behavior across time periods.


Analytic Insights

This analysis demonstrates that high promotional lift does not necessarily translate into sustained growth.

To synthesize findings, I developed a Promotion Impact Decision Map, a scatter plot visualizing immediate promotional lift on the horizontal axis and post-promotion performance on the vertical axis.

This framework enabled clear segmentation of products into those generating sustained growth, those producing temporary lift, and those experiencing negative post-promotion effects.


Promotion Impact Decision Map

# Scatter plot of sales_lift and sales_post_change percentages from lift_table

ggplot(lift_table,
       aes(x = sales_lift,
           y = sales_post_change,
           color = product_type)) +
  geom_point(size = 4, alpha = 0.9) +
  geom_vline(xintercept = 0, linetype = "dashed") +
  geom_hline(yintercept = 0, linetype = "dashed") +
  scale_x_continuous(labels = percent_format(accuracy = 1)) +
  scale_y_continuous(labels = percent_format(accuracy = 1)) +
  labs(
    title = "Promotion Impact Decision Map",
    subtitle = "Right = greater lift during promotion | Up = sustained gains after promotion",
    x = "Sales Lift During Promotion (%)",
    y = "Sales Change After Promotion (%)",
    color = "Product"
  ) +
  theme_minimal()


Several products exhibited strong increases in sales during the promotion period, but experienced measurable declines afterward, indicating forward-shifted demand rather than true incremental consumption. In these cases, promotions appear to accelerate purchasing behavior without expanding overall demand.

Specifically, Choice Beef generated extremely high in-period lift, but experienced a substantial post-promotion decline, suggesting strong pull-forward behavior rather than sustained demand.

Similarly, Snacks/Appetizers and Soft Drinks show positive lift during promotion, but negative post-period performance, indicating temporary volume shifts.

Conversely, a smaller subset of products showed both positive promotional lift and continued strength in the post-promotion period. These products represent true incremental growth drivers, suggesting that promotional exposure increased consumption, or customer acquisition, in a more lasting manner.

For example, Beer/Ale/Malt Liquors, Shredded Cheese, and Fluid Milk White Only all demonstrate both positive lift and modest post-promotion gains, suggesting stronger demand impact.

Overall, the visualization suggests that not all promotions create lasting value, reinforcing the need for a more selective, performance-based promotional strategy.

For instance, Frozen Premium Entrees/Dinners shows negative lift and a sharp post-promotion decline, indicating that current promotions may not be effective for this category.

The findings also suggest that promotional outcomes vary meaningfully by product category. Staple categories tended to revert quickly to baseline levels after promotions ended, while more discretionary or indulgent categories displayed greater volatility, with sharper increases and sharper declines.

These patterns indicate that product characteristics and purchase behavior play a significant role in determining whether promotions create sustainable value.


Analytic Implications

From a strategic perspective, Regork should move beyond evaluating promotions based solely on short-term lift.

While many products show strong in-period gains, the scatter analysis demonstrates that not all of those gains translate into sustained demand. Promotions that generate both positive lift and stable or positive post-promotion performance should be prioritized, as they reflect true incremental growth, rather than shifted purchasing behavior.

For products that consistently experience post-promotion declines, the promotional approach may need to be adjusted. This could include reducing discount depth, spacing promotions further apart, or integrating cross-category strategies to discourage forward buying.

More broadly, incorporating post-promotion performance into the evaluation process would allow Regork to make more disciplined, data-informed promotional decisions. By focusing on long-term impact rather than short-term volume spikes, leadership can better align promotional investments with sustainable revenue growth and overall profitability objectives.


Limitations

This analysis is descriptive in nature and does not establish causal relationships.

It does not control for seasonality, competitive activity, promotional depth, or differences in display or coupon mechanics.

Additionally, the fixed pre- and post-promotion windows may not fully capture longer-term behavioral adjustments.

Future work could incorporate price elasticity modeling, customer-level segmentation, and predictive modeling to better forecast which promotions are likely to generate sustained incremental demand.

Incorporating additional variables such as discount magnitude and promotional channel would further strengthen strategic recommendations.

Despite these limitations, the analysis provides a structured and actionable framework for distinguishing between temporary promotional spikes and lasting growth effects.