library(tidyverse)
library(completejourney)
library(dplyr)
library(stringr)
library(lubridate)
library(ggplot2)
transactions <- get_transactions()
promotions <- get_promotions()
transactions %>%
inner_join(coupon_redemptions) %>%
filter(yday(transaction_timestamp) == yday(redemption_date)) %>%
inner_join(demographics) %>%
filter(marital_status != "NA") %>%
mutate(month = month(transaction_timestamp, label = TRUE, abbr = FALSE)) %>%
group_by(month, marital_status) %>%
summarise(total_redemptions = n()) %>%
slice_max(order_by = total_redemptions, n = 3) %>%
ggplot(aes(x = month, y = total_redemptions, color = marital_status, group = marital_status)) +
geom_point(size = 2) +
geom_line(size = 1) +
scale_color_brewer(palette = "Pastel1") +
scale_y_continuous(labels = scales::comma) +
labs(title = "Figure 1. Total Coupon Usage per Month by Marital Status During Year 2017",
subtitle = "People who were married typically used more coupons.
May, August, and November witnessed remarkable spikes in coupon redemptions for both groups. ",
y = "Total Coupon Redemption",
x = "Month") +
theme(axis.title.x = element_text(face = "bold"),
axis.text.x = element_text(angle = 45, hjust = 1),
axis.title.y = element_text(face = "bold"),
plot.title = element_text(face = "bold", size = 13),
plot.subtitle = element_text(size = 8, face = "italic"))



LS0tDQp0aXRsZTogJyoqTW9kdWxlIDUgVmlzdWFsaXphdGlvbiBMYWIqKicNCmF1dGhvcjogIkxpbmggTGUiDQpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KYGBge3J9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoY29tcGxldGVqb3VybmV5KQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoc3RyaW5ncikNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KYGBgDQoNCmBgYHtyfQ0KdHJhbnNhY3Rpb25zIDwtIGdldF90cmFuc2FjdGlvbnMoKQ0KcHJvbW90aW9ucyA8LSBnZXRfcHJvbW90aW9ucygpDQpgYGANCg0KDQpgYGB7ciwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0V9DQp0cmFuc2FjdGlvbnMgJT4lDQogIGlubmVyX2pvaW4oY291cG9uX3JlZGVtcHRpb25zKSAlPiUNCiAgZmlsdGVyKHlkYXkodHJhbnNhY3Rpb25fdGltZXN0YW1wKSA9PSB5ZGF5KHJlZGVtcHRpb25fZGF0ZSkpICU+JQ0KICBpbm5lcl9qb2luKGRlbW9ncmFwaGljcykgJT4lDQogIGZpbHRlcihtYXJpdGFsX3N0YXR1cyAhPSAiTkEiKSAlPiUNCiAgbXV0YXRlKG1vbnRoID0gbW9udGgodHJhbnNhY3Rpb25fdGltZXN0YW1wLCBsYWJlbCA9IFRSVUUsIGFiYnIgPSBGQUxTRSkpICU+JQ0KICBncm91cF9ieShtb250aCwgbWFyaXRhbF9zdGF0dXMpICU+JQ0KICBzdW1tYXJpc2UodG90YWxfcmVkZW1wdGlvbnMgPSBuKCkpICU+JQ0KICBzbGljZV9tYXgob3JkZXJfYnkgPSB0b3RhbF9yZWRlbXB0aW9ucywgbiA9IDMpICU+JQ0KICBnZ3Bsb3QoYWVzKHggPSBtb250aCwgeSA9IHRvdGFsX3JlZGVtcHRpb25zLCBjb2xvciA9IG1hcml0YWxfc3RhdHVzLCBncm91cCA9IG1hcml0YWxfc3RhdHVzKSkgKw0KICBnZW9tX3BvaW50KHNpemUgPSAyKSArDQogIGdlb21fbGluZShzaXplID0gMSkgKw0KICBzY2FsZV9jb2xvcl9icmV3ZXIocGFsZXR0ZSA9ICJQYXN0ZWwxIikgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGFiZWxzID0gc2NhbGVzOjpjb21tYSkgKw0KICBsYWJzKHRpdGxlID0gIkZpZ3VyZSAxLiBUb3RhbCBDb3Vwb24gVXNhZ2UgcGVyIE1vbnRoIGJ5IE1hcml0YWwgU3RhdHVzIER1cmluZyBZZWFyIDIwMTciLA0KICAgICAgIHN1YnRpdGxlID0gIlBlb3BsZSB3aG8gd2VyZSBtYXJyaWVkIHR5cGljYWxseSB1c2VkIG1vcmUgY291cG9ucy4gDQpNYXksIEF1Z3VzdCwgYW5kIE5vdmVtYmVyIHdpdG5lc3NlZCByZW1hcmthYmxlIHNwaWtlcyBpbiBjb3Vwb24gcmVkZW1wdGlvbnMgZm9yIGJvdGggZ3JvdXBzLiAiLA0KICAgICAgIHkgPSAiVG90YWwgQ291cG9uIFJlZGVtcHRpb24iLA0KICAgICAgIHggPSAiTW9udGgiKSArDQogIHRoZW1lKGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChmYWNlID0gImJvbGQiKSwNCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxKSwNCiAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiYm9sZCIpLA0KICAgICAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiYm9sZCIsIHNpemUgPSAxMyksDQogICAgICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDgsIGZhY2UgPSAiaXRhbGljIikpDQpgYGANCg0KDQpgYGB7ciwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0V9DQp0b3BfNV9zYWxlcyA8LSB0cmFuc2FjdGlvbnMgJT4lDQogIGFudGlfam9pbihjb3Vwb25fcmVkZW1wdGlvbnMsIGJ5ID0gYygiaG91c2Vob2xkX2lkIikpICU+JQ0KICBpbm5lcl9qb2luKGRlbW9ncmFwaGljcywgYnkgPSAiaG91c2Vob2xkX2lkIikgJT4lDQogIGlubmVyX2pvaW4ocHJvZHVjdHMsIGJ5ID0gInByb2R1Y3RfaWQiKSAlPiUNCiAgZ3JvdXBfYnkoYnJhbmQsIHByb2R1Y3RfY2F0ZWdvcnkpICU+JQ0KICBzdW1tYXJpc2UodG90YWxfc2FsZXMgPSBzdW0oc2FsZXNfdmFsdWUsIG5hLnJtID0gVFJVRSkpICU+JQ0KICBhcnJhbmdlKGRlc2ModG90YWxfc2FsZXMpKSAlPiUNCiAgc2xpY2VfbWF4KG9yZGVyX2J5ID0gdG90YWxfc2FsZXMsIG4gPSA1KQ0KDQp0cmFuc2FjdGlvbnMgJT4lDQogIGFudGlfam9pbihjb3Vwb25fcmVkZW1wdGlvbnMsIGJ5ID0gYygiaG91c2Vob2xkX2lkIikpICU+JQ0KICBpbm5lcl9qb2luKGRlbW9ncmFwaGljcywgYnkgPSAiaG91c2Vob2xkX2lkIikgJT4lDQogIGlubmVyX2pvaW4ocHJvZHVjdHMsIGJ5ID0gInByb2R1Y3RfaWQiKSAlPiUNCiAgc2VtaV9qb2luKHRvcF81X3NhbGVzKSAlPiUNCiAgZ3JvdXBfYnkoYWdlLCBicmFuZCkgJT4lDQogIHN1bW1hcmlzZSh0b3RhbF9zYWxlcyA9IHN1bShzYWxlc192YWx1ZSwgbmEucm0gPSBUUlVFKSkgJT4lDQogIGdncGxvdChhZXMoeCA9IGFnZSwgeSA9IHRvdGFsX3NhbGVzLCBmaWxsID0gYWdlKSkgKw0KICBnZW9tX2NvbCgpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxhYmVscyA9IHNjYWxlczo6ZG9sbGFyKSArDQogIGZhY2V0X3dyYXAofmJyYW5kKSArDQogIGxhYnModGl0bGUgPSAiRmlndXJlIDIuMi4gVG9wIDUgVG90YWwgU2FsZXMgV2l0aG91dCBDb3Vwb24gUmVkZW1wdGlvbnMgYnkgQWdlIGFuZCBCcmFuZCIsDQogICAgICAgc3VidGl0bGUgPSAiVG9wIDUgZ29vZHMgaW4gdG90YWwgc2FsZXMsIHJlZ2FyZGxlc3Mgb2YgbmF0aW9uYWwgb3IgcHJpdmF0ZSBicmFuZHMsIA0Kd2VyZSBtb3N0bHkgcHVyY2hhc2VkIHdpdGhvdXQgdXNpbmcgY291cG9ucyBieSBwZW9wbGUgYmV0d2VlbiAzNSBhbmQgNTQgeWVhcnMgb2xkLiIsDQogICAgICAgeCA9ICJBZ2UiLA0KICAgICAgIHkgPSAiVG90YWwgU2FsZXMiKSArDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIiwgDQogICAgICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChmYWNlID0gImJvbGQiKSwNCiAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiYm9sZCIpLA0KICAgICAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiYm9sZCIsIHNpemUgPSAxMyksDQogICAgICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDksIGZhY2UgPSAiaXRhbGljIikpIA0KYGBgDQoNCg0KYGBge3IsIHdhcm5pbmcgPSBGQUxTRSwgbWVzc2FnZSA9IEZBTFNFfQ0KY29va2llc19iYXNrZXQgPC0gdHJhbnNhY3Rpb25zICU+JQ0KICBpbm5lcl9qb2luKHByb2R1Y3RzKSAlPiUNCiAgZ3JvdXBfYnkoYmFza2V0X2lkKSAlPiUNCiAgZmlsdGVyKGFueShwcm9kdWN0X2NhdGVnb3J5ID09ICJDT09LSUVTIikpDQoNCmNvX3B1cmNoYXNlcyA8LSB0cmFuc2FjdGlvbnMgJT4lDQogIGlubmVyX2pvaW4ocHJvZHVjdHMpICU+JQ0KICBmaWx0ZXIoYmFza2V0X2lkICVpbiUgY29va2llc19iYXNrZXQkYmFza2V0X2lkICYgcHJvZHVjdF9jYXRlZ29yeSAhPSAiQ09PS0lFUyIpDQoNCmNvX3B1cmNoYXNlc19jb3VudHMgPC0gY29fcHVyY2hhc2VzICU+JQ0KICBncm91cF9ieShwcm9kdWN0X2NhdGVnb3J5KSAlPiUNCiAgc3VtbWFyaXNlKGNvdW50ID0gbigpKSAlPiUNCiAgYXJyYW5nZShkZXNjKGNvdW50KSkgJT4lDQogIHNsaWNlX21heChvcmRlcl9ieSA9IGNvdW50LCBuID0gMTApDQoNCmdncGxvdChjb19wdXJjaGFzZXNfY291bnRzLCBhZXMoeCA9IHJlb3JkZXIocHJvZHVjdF9jYXRlZ29yeSwgY291bnQpLCB5ID0gY291bnQsIGNvbG9yID0gcHJvZHVjdF9jYXRlZ29yeSkpICsNCiAgZ2VvbV9zZWdtZW50KGFlcyh4ID0gcHJvZHVjdF9jYXRlZ29yeSwgeGVuZCA9IHByb2R1Y3RfY2F0ZWdvcnksIHkgPSAwLCB5ZW5kID0gY291bnQpLCBzaXplID0gMSkgKw0KICBnZW9tX3BvaW50KHNpemUgPSAzKSArDQogIHNjYWxlX3lfY29udGludW91cyhsYWJlbHMgPSBzY2FsZXM6OmNvbW1hKSArDQogIGxhYnModGl0bGUgPSAiRmlndXJlIDMuIFRvcCAxMCBDb21wbGVtZW50YXJ5IEdvb2RzIG9mIENvb2tpZXMgYnkgUXVhbnRpdHkiLA0KICAgICAgIHN1YnRpdGxlID0gIk1vc3QgY3VzdG9tZXJzIHdobyBib3VnaHQgY29va2llcyB0ZW5kZWQgdG8gYWxzbyBwdXJjaGFzZSBzb2Z0IGRyaW5rcy4iLCANCiAgICAgICB4ID0gIlByb2R1Y3QgQ2F0ZWdvcnkiLA0KICAgICAgIHkgPSAiUHVyY2hhc2UgUXVhbnRpdHkiKSArDQogIGNvb3JkX2ZsaXAoKSArDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIiwgDQogICAgICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChmYWNlID0gImJvbGQiKSwNCiAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiYm9sZCIpLA0KICAgICAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiYm9sZCIsIHNpemUgPSAxMyksDQogICAgICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDksIGZhY2UgPSAiaXRhbGljIikpICsNCiAgc2NhbGVfY29sb3JfdmlyaWRpc19kKG9wdGlvbiA9ICJwbGFzbWEiKQ0KYGBgDQoNCg0KDQo=