1 Part A — Expected Returns

Let \(S_n\) represent the number of returns among \(n\) orders. The number of returns follows a binomial distribution:

\[ S_n \sim \operatorname{Binomial}(n,p) \]

For the 300-order campaign, \(n=300\) and \(p=0.12\).

The expected number of returns is:

\[ E[S_n] = np \]

The standard deviation is:

\[ SD(S_n) = \sqrt{np(1-p)} \]

# Calculate the expected number of returns and standard deviation.
n <- 300

expected_returns <- n * p
sd_returns <- sqrt(n * p * (1 - p))

cat("PART A — EXPECTED RETURNS\n")
## PART A — EXPECTED RETURNS
cat("--------------------------------\n")
## --------------------------------
cat(sprintf("Expected number of returns: %.2f\n", expected_returns))
## Expected number of returns: 36.00
cat(sprintf("Standard deviation: %.4f\n", sd_returns))
## Standard deviation: 5.6285

The retailer can expect approximately 36 returns from 300 orders. The standard deviation is approximately 5.63 returns, which describes the typical amount of variation around the expected count. The actual number of returns will vary from campaign to campaign, even when the return probability remains 12%.

2 Part B — Demonstrate the Central Limit Theorem

The Central Limit Theorem states that, as the sample size increases, the distribution of the standardized sample total becomes approximately normal under appropriate conditions.

For each cohort size (\(n=10\), \(n=50\), and \(n=300\)), the code below simulates 5,000 independent cohorts. Each simulated return count is generated from a binomial distribution.

The standardized return count is:

\[ Z = \frac{S_n-np}{\sqrt{np(1-p)}} \]

# Cohort sizes used to demonstrate the CLT.
cohort_sizes <- c(10, 50, 300)

# Store the standardized simulated counts for each cohort size.
standardized_counts <- list()

for (cohort_n in cohort_sizes) {

  # Generate 5,000 independent binomial return counts.
  simulated_returns <- rbinom(
    nsim,
    size = cohort_n,
    prob = p
  )

  # Standardize each simulated count using its theoretical mean and SD.
  cohort_mean <- cohort_n * p
  cohort_sd <- sqrt(cohort_n * p * (1 - p))

  standardized_counts[[as.character(cohort_n)]] <-
    (simulated_returns - cohort_mean) / cohort_sd
}

# Display the three histograms and overlay the standard normal density.
# The density scale allows the histogram to be compared with dnorm().
par(mfrow = c(3, 1), mar = c(4, 4, 3, 1))

for (cohort_n in cohort_sizes) {

  z_values <- standardized_counts[[as.character(cohort_n)]]

  hist(
    z_values,
    probability = TRUE,
    breaks = "Sturges",
    main = paste("Standardized Return Counts (n =", cohort_n, ")"),
    xlab = "Standardized return count (Z)",
    ylab = "Density",
    col = "lightgray",
    border = "white"
  )

  # Overlay the theoretical standard normal density.
  curve(
    dnorm(x),
    add = TRUE,
    col = "red",
    lwd = 2
  )
}

par(mfrow = c(1, 1))

For the smallest cohort size (\(n=10\)), the standardized distribution is relatively discrete and may differ noticeably from the standard normal curve. With \(n=50\), the distribution generally becomes smoother and more bell-shaped. At \(n=300\), the standardized distribution is expected to look more closely aligned with the standard normal density.

The normal approximation becomes more reasonable as the cohort size increases because the effects of individual binary outcomes become less noticeable in the overall distribution. The CLT is therefore most apparent for the larger cohort sizes.

3 Part C — Estimate the Risk of Exceeding Capacity

The retailer can process 45 returns. Exceeding capacity means receiving at least 46 returns:

\[ P(S_{300}>45)=P(S_{300}\geq 46) \]

For the continuity-corrected normal approximation, the boundary is 45.5:

\[ z = \frac{45.5-np}{\sqrt{np(1-p)}} \]

The approximate overflow probability is:

\[ P(S_{300}>45) \approx 1-\Phi(z) \]

# Campaign parameters.
n <- 300
capacity <- 45

# Calculate the continuity-corrected z-score.
z_capacity <- (capacity + 0.5 - n * p) /
  sqrt(n * p * (1 - p))

# Calculate the approximate probability using the normal distribution.
approx_probability <- pnorm(
  z_capacity,
  lower.tail = FALSE
)

# Calculate the exact binomial probability of more than 45 returns.
exact_probability <- pbinom(
  capacity,
  size = n,
  prob = p,
  lower.tail = FALSE
)

# Calculate the absolute difference between the two probabilities.
absolute_error <- abs(approx_probability - exact_probability)

cat("PART C — OVERFLOW RISK\n")
## PART C — OVERFLOW RISK
cat("--------------------------------\n")
## --------------------------------
cat(sprintf("Capacity: %d returns\n", capacity))
## Capacity: 45 returns
cat(sprintf("Continuity-corrected z-score: %.4f\n", z_capacity))
## Continuity-corrected z-score: 1.6878
cat(sprintf("Normal approximation: %.6f (%.2f%%)\n",
            approx_probability, approx_probability * 100))
## Normal approximation: 0.045721 (4.57%)
cat(sprintf("Exact binomial probability: %.6f (%.2f%%)\n",
            exact_probability, exact_probability * 100))
## Exact binomial probability: 0.049309 (4.93%)
cat(sprintf("Absolute error: %.6f\n", absolute_error))
## Absolute error: 0.003588

The continuity-corrected normal approximation estimates the probability of exceeding the retailer’s capacity at approximately 4.57%. The exact binomial calculation gives an overflow probability of approximately 4.93%. The absolute error is approximately 0.00359, or 0.36 percentage points.

The retailer’s target is to keep the overflow risk at or below 2%. Both the normal approximation and the exact binomial calculation exceed this target. Therefore, a capacity of 45 returns does not provide a sufficiently low overflow risk. The two methods support the same conclusion: the retailer should consider increasing its return-processing capacity.

4 Overall Conclusion

The expected number of returns for the 300-order promotion is 36, with a standard deviation of approximately 5.63. The simulations demonstrate that the standardized binomial distribution becomes increasingly similar to a standard normal distribution as cohort size increases.

For the retailer’s capacity planning, both the continuity-corrected normal approximation and the exact binomial probability indicate that the risk of receiving more than 45 returns is greater than the 2% target. Increasing processing capacity would help reduce the risk of returns exceeding available capacity.