Cancellation reason

After cancelling their subscription, customers are sometimes called by a Full Circle representative to provide a reason for cancellation (recorded in latest_cancel_reason_quit. If the customer provides an answer, the representative selects the reason that most closely matches the customer’s answer.

ggplot(inactive_filtered, aes(x=latest_cancel_reason_quit, y=weeks_subscribed, 
                     fill=latest_cancel_reason_quit)) + 
  geom_boxplot(outlier.shape=NA) + 
  guides(fill=FALSE) + 
  coord_flip(ylim=c(0,60)) + 
  labs(title="Avg. Weeks by Cancel Reason", x="avg. weeks subscribed", y="cancel reason")

Signup Promotion

Full Circle tracks how customers begin their subscription by marketing channel via initial_signup_promo_category.

ggplot(inactive_filtered, aes(x=initial_signup_promo_category, y=weeks_subscribed, 
                     fill=initial_signup_promo_category)) + 
  geom_boxplot(outlier.shape=NA) + guides(fill=FALSE) + 
  coord_flip(ylim=c(0,60)) + 
  labs(title="Avg. Weeks by Signup", x="avg. weeks subscribed", y="signup category")

ggplot(inactive_filtered) + geom_bar(aes(fill=initial_signup_promo_category, x=latest_cancel_reason_quit), position="fill", binwidth=30) + ggtitle("Membership Changes over Time") + coord_flip() + scale_fill_brewer(palette="Set2")

Distribution Center

ggplot(inactive) + geom_density(aes(x = weeks_subscribed)) + 
  facet_wrap(~ distribution_center, ncol = 2) + 
  scale_x_log10(breaks = c(1,10,100)) + 
  ggtitle("Fig 5. Density (log): Dist Center")

Grocery Region

ggplot(inactive) + geom_density(aes(x = weeks_subscribed)) + 
  facet_wrap(~ grocery_region, ncol = 2) + 
  scale_x_log10(breaks = c(1,10,100)) + 
  ggtitle("Fig 6. Density (log): Grocery Region")

Membership History

ggplot(membership) + geom_bar(aes(x=timestamp, fill=history), position="fill", 
                              binwidth=30) + 
  scale_fill_manual(values=c("#CC6666", "#9999CC", "#66CC99")) + 
  ggtitle("Membership Changes over Time")

Credits

The data sets

The following analysis “credit” related variables was performed on three data sets:

  1. Inactive
  2. InactiveW
  3. Active

Each data set consists of rows that represent customers of Full Circle.

The Inactive data contains subcribers who cancelled. This data set was narrowed from 126,439 rows by applying the following criteria: 1. These subscribers cancelled once and only once.
2. They cancelled AND signed up between 3/1/2012 and 3/1/2014. Any customer that both subscribed and dropped within this two-year window. 3. Customers who were never invoiced – i.e. a “0” under invoice_count were removed.

The resulting “inactive” data set has 34,216 customers (“observations”) with a median subscription length of 4.71 weeks.

The InactiveW data set is a subset of Inactive. It consists of 16,914 customers who subscribed for less than 4.71 weeks – all customers below the median of the larger Inactive popultion. These represent the most dissatified customers.

Line of inquiry

To determine whether there is a relationship between credits received and length of subscription. We use invoice count as a proxy for subscription length since it more accurately reflects the value of a customer and excludes weeks when a subscription is put on hold.

credits_count

Summary statistics, plots, and correlations – per each of the three data sets.

Inactive:

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.1111  0.4000  0.5061  1.0000 13.0000

## [1] -0.6612984

InactiveW:

## Length  Class   Mode 
##      0   NULL   NULL

## [1] -0.5363024

Active:

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## 0.00000 0.03030 0.06250 0.09675 0.11950 1.25000

## [1] -0.06023276

Exit Survey