top of page

The mathematics of marketing; Coles "Little Shop"

How the giving away of "free" toys can drive an increase in consumer spend.

FullSizeRender.jpg

There was a clamour of excitement in the kitchen at my client's office this morning; the weekly grocery delivery had arrived.  The reason for the buzz; the four packets that contained mini-replicas of grocery items that were part of the Coles "Little Shop" promotion.

 

Anyone with kids in Australia will be familiar with this promotion - for every $30 spent on your shop, you receive (at random) a plastic miniature of a popular brand.  There are thirty to collect in all - from toothpaste to dog food and bananas to Tim-Tams.  But how much would you need to spend to secure the complete set (and keep the kids happy)?

 

This is a variation on the Coupon Collector's problem - or for those like me who grew up in England, the Panini Football Sticker Album problem.  Applying a stochastic approach over 100,000 trials, I determined that the mean number of $30 spends that you would require to achieve success without assistance would be 120.  That's a whopping $3,600 - even if you managed to limit your shop to exactly $30 each time.

 

Of course, as with football stickers, an informal swaps market - #gotgotneed - will speed you towards completion.  Indeed, Coles will be running in-store swap days on Saturday August 11th - it may be wise to reschedule your visit to a less busy time unless, of course, you are chasing that elusive jar of Nutella.

For those interested in recreating my analysis, the following code in R will simulate 100,000 trials and report summary statistics of the results, along with a histogram plot of the number of $30 purchases required to hit the complete set through purchasing alone:

## Coles Little Shop Simulation
## Function simcollect(n) simulates the coupon collector's problem.
## With 30 to collect in all, how many $30 spends are required to get a
##   full set of miniature grocery items?


simcollect <-function(n) {
  coupons <- 1:n # set of coupons
  collect <- numeric(n)
  nums <-0
  while (sum(collect)<n)
  {
    i <- sample(coupons,1)
    collect[i] <- 1
    nums <- nums + 1
  }
  nums
}


## Simulate over 100,000 trials and summarise results
trials <-100000
simlist <- replicate(trials,simcollect(30))
summary(simlist)
hist(simlist)

About

At hut4, we help businesses to harness the power of data science and AI to achieve their goals. With broad experience across multiple industries, we provide a comprehensive range of services covering all areas of data science and analytics. 

Copyright © 2024 hut4 Data Science.  All Rights Reserved

  • linkedin
bottom of page