The product we are surveying on is a hand sanitizer spray from a company named Preening that is based at New York. Preening’s products feature all natural, non-toxic ingredients, and eco-friendly packaging. One of their products, hand sanitizer spray, has an easy to carry yet delicate design (picture below). However, the brand is a fairly new luxury product and not well-known, so it can be hard to compete with other hand sanitizers on the market. Thus, the purpose of this analysis is to understand the current marketing for this product, and what our target customers(luxury beauty product lovers) think about the price, the packaging design, moisturizer, and the volume of the product, which is also the attributes of our product. The design of our survey is using logit model which Dr.Helveston build in R as a package. Key insights we found are consumers tend to choose
The hand sanitizer and hand cream market had a remarkable increase on post COVID-19 and even more after the pandemic exploded. People are more serious about washing and cleansing their hands regularly. At the same time, it is very important that women are likely to take more care about moisturizing their hand skin after using a high percentage of alcohol sanitizer during the day. Preening is a luxury hand cleanser brand that features all natural ingredients that will not leave your hands with harsh feelings, and it is also known for its eco-friendly packaging because the products are recyclable and refillable. The most outstanding feature of this product comparing to other products is that Preening comes with moisturize, which keeps your hand clean and also leave a good amount of moisture. Preening Hand Cleanser & Purified contains all natural ingredients such as Organic Aloe Leaf, Organic Coconut, Witch Hazel, Organic Jojoba Seed, Rose Flower, Sunflower Seed, Rosemary Leaf, and etc. Along with all that the product promises there are no animal testing, no artificial fragrances, paraban, sulfates, or any harmful chemicals that may harm your hands or the environment. Preening comes with three types of cream: Hydrating Hand Mist, Hand Cleanser and Purifier Refill, and Hand Cleanser and Purifier On-the-go Spray. Because Preening is a new brand, so we decided to focus on price, bottle design, volume, and moisturizer to have a better understanding of how customers value each attribute, and help the company to make a decision of what changes they need to make in order to gain a high market value. Hence, in this report, we will present how the survey was designed, what data we collected, how we analyzed the data, visualized the results, and most importantly, what insights we get from the results.
The eligible requirements to participate in this survey are “older than 18”, and “confirming to read and understand the information/ policy/ purposes of doing the survey. The reason we decided to put “older than 18 years old” is because people, who take the survey, are able to take responsibility for themselves seriously. They will not use our survey for a wrong purpose. Also, people who use hand sanitizer, and value or are interested in luxury beauty products will be consider as eligible respondents in the survey. To be more detailed, we want to find people who at least use hand sanitizer regularly, and who at least own or know one luxury beauty product. We collected age range, gender, race, and income from the respondents.These types of questions will show us what kind of customers are interested in the products (Eg: students or influencer). The Education information our team presented to the respondents were explanation of four attributes, including price per bottle, design of the bottle, volume in oz for each bottle, and whether the bottle comes with moisturizing.
For our survey, we picked four attributes(Price, Moisturizer, Volume, Design) and each attribute has more than two levels. For Price($), because we focus on luxury beauty market, we set a high range for prices: “35”, “45”, “55”; as for Design we picked two most commonly used bottle design(“Squeeze”, “Spray”) along with Preening bottle design(“Twist Spray”); for Moisturizer is straightforward which has two levels: “Yes”, “No”; and Volume(oz) we want to select small size bottle which will be easy to carry: “1.7”, “2.0”, “2.5”. With these attributes and levels, we did not want to consider the interaction effect, because as you can see each attribute is unique and seems have no significant interaction effect with other attributes. Thus, we decide to use a D-optimal fractional factorial design. We had three alternative choices for each question and six questions in total, because after the pilot survey, we want to keep our respondents focused and it seems like four alternative was alot. The summary table of the attributes can be seen below:| Attribute | Level |
|---|---|
| Price | 35, 45, 55 |
| Volume | 1.7, 2.0, 2.5 |
| Design | Squeeze, Spray, Twist Spray |
| Moisturizer | Yes, No |
Major changes we made after the pilot survey was switching one attribute Scents to Moisturizer, because we saw Scents would only add noise to the model compared to Moisturizer. Another major change was we reworded screen out question from daily use of handsanitizer to ever used because we want to include more respondents to ensure our sample size. We changed the size of the pictures and made sure the conjoint questions button looks neat.
In the survey,the total sample size originally were 331, but after cleaned out some noisy respondents who did old version of survey, there were total of 245 after combing three surveys together; after cleaned out NA respondent Id, there were 219, then after filtering the incomplete choice questions, there are a total of 221 choice question respondents. After removed duplicated respondent ID, there were total of 208 respondents. Lastly, after dropped out screen out question and people who went too fast or too long, we had 168 respondent left for the modeling and analysis.
The average completion time for the survey was about six minutes. We found 86% (126 out of 168) respondents prefer to use or carry their own personal hand sanitizer and 75% (126 out of 168) respondents were using hand sanitizer daily, which indicates again as we mentioned in the introduction that the potential market for personal hand sanitizer is big. Most excitingly, in our sample, we had about 72t% of them were interested in luxury beauty products, which matches our targeted audiences for the study.
In terms of demographic, in general, we had a sample of balanced gender(men 78 vs women 79), majority white, mostly under 40’s, and most of them had annual income under $90,000. There are a small portion(28 respondents) who had income over 100,000 and we think could use for further analysis in terms of how high-income group think about the product.
Summary information of respondents’ demographics can be found in the table below. Sample Description
Sample <- c ("Total Sample Size", "Total Number of Choice Question Responses", "Total Number of Respndents after Removed Duplicated Respondent ID", "Total Number of People After Dropped Out Screen Out Question")
Total <- c (245, 221,208, 163)
report.data <- data.frame(Sample, Total)
knitr::kable(head(report.data[, 1:2]), "pipe")
| Sample | Total |
|---|---|
| Total Sample Size | 245 |
| Total Number of Choice Question Responses | 221 |
| Total Number of Respndents after Removed Duplicated Respondent ID | 208 |
| Total Number of People After Dropped Out Screen Out Question | 163 |
Intro Questions
Question 1: How often do you use hand sanitizer?
IntroQ1 <- c("How often do you use hand sanitizer?","","","")
IntroA1 <- c("Hourly","Three times/ Week","Depends on circumstances","Don't use at all")
Number_of_Respondents <- c(15, 141, 67, "Screen_Out")
IntroQA_1 <- data.frame(IntroQ1, IntroA1, Number_of_Respondents)
knitr::kable(head(IntroQA_1[, 1:3]), "pipe")
| IntroQ1 | IntroA1 | Number_of_Respondents |
|---|---|---|
| How often do you use hand sanitizer? | Hourly | 15 |
| Three times/ Week | 141 | |
| Depends on circumstances | 67 | |
| Don’t use at all | Screen_Out |
Question 2: Do you prefer to carry your own hand sanitizer or you prefer to use the public one?
IntroQ2 <- c("Do you prefer to carry your own hand sanitizer or you prefer to use the public one?","")
IntroA2 <- c("Personal Hand Sanitizer","Public Hand Sanitizer")
Number_of_Respondents <- c(183, 40)
IntroQA_2 <- data.frame(IntroQ2, IntroA2, Number_of_Respondents)
knitr::kable(head(IntroQA_2[, 1:3]), "pipe")
| IntroQ2 | IntroA2 | Number_of_Respondents |
|---|---|---|
| Do you prefer to carry your own hand sanitizer or you prefer to use the public one? | Personal Hand Sanitizer | 183 |
| Public Hand Sanitizer | 40 |
Demographic Questions
Question 1: What is your age range?
Question_1 <- c ("1) What is your age range?","","","","","","")
Answers_1 <- c(" 18 ~ 25","26 ~ 30","31 ~ 40","41 ~ 50","51 ~ 60","61 +","Prefer not to say")
Number_of_Respondents <- c(75,45,55,17,13,6,2)
QA_1 <- data.frame(Question_1, Answers_1, Number_of_Respondents)
knitr::kable(head(QA_1[, 1:3]), "pipe")
| Question_1 | Answers_1 | Number_of_Respondents |
|---|---|---|
| 1) What is your age range? | 18 ~ 25 | 75 |
| 26 ~ 30 | 45 | |
| 31 ~ 40 | 55 | |
| 41 ~ 50 | 17 | |
| 51 ~ 60 | 13 | |
| 61 + | 6 |
Question 2: What is your current gender identity?
Question_2 <- c ("2) What is your current gender identity?","","","")
Answers_2 <- c("Male","Female","Non-binary", "Prefer not to say")
Number_of_Respondents <- c(102,111,3,4)
QA_2 <- data.frame(Question_2, Answers_2, Number_of_Respondents)
knitr::kable(head(QA_2[, 1:3]), "pipe")
| Question_2 | Answers_2 | Number_of_Respondents |
|---|---|---|
| 2) What is your current gender identity? | Male | 102 |
| Female | 111 | |
| Non-binary | 3 | |
| Prefer not to say | 4 |
Question 3: I identify my race as:
Question_3 <-c ("3) I identify my race as:","","","","","","")
Answers_3 <- c("Asian", "African American or Black", "White (Not of Hispanic or Latino origin)","Hispanic or Latino","American Indian or Alaska Native","Native Hawaiian or Pacific Islander","Prefer not to say")
Number_of_Respondents <- c(37, 12, 130, 21, 3 ,1 ,4)
QA_3 <- data.frame(Question_3, Answers_3, Number_of_Respondents)
knitr::kable(head(QA_3[, 1:3]), "pipe")
| Question_3 | Answers_3 | Number_of_Respondents |
|---|---|---|
| 3) I identify my race as: | Asian | 37 |
| African American or Black | 12 | |
| White (Not of Hispanic or Latino origin) | 130 | |
| Hispanic or Latino | 21 | |
| American Indian or Alaska Native | 3 | |
| Native Hawaiian or Pacific Islander | 1 |
Question 4: What is your annual income range (from all sources) before taxes and other deductions from pay?
Question_4 <- c ("4) What is your annual income range (from all sources) before taxes and other deductions from pay?","","","","","")
Answers_4 <- c("Less than $10,000","$10,000 - $39,999","$40,000 - $69,999","$70,000 - $99,999","More than $100,000","Prefer not to say")
Number_of_Respondents <- c(19,35,3,1,42,12)
QA_4 <- data.frame(Question_4, Answers_4, Number_of_Respondents)
knitr::kable(head(QA_4[, 1:3]), "pipe")
| Question_4 | Answers_4 | Number_of_Respondents |
|---|---|---|
| 4) What is your annual income range (from all sources) before taxes and other deductions from pay? | Less than $10,000 | 19 |
| $10,000 - $39,999 | 35 | |
| $40,000 - $69,999 | 3 | |
| $70,000 - $99,999 | 1 | |
| More than $100,000 | 42 | |
| Prefer not to say | 12 |
The process starts with creating a new variable “session” and filtering out any NA in session for each survey to ensure no extra rows being included while we combining the three surveys together through Session variable. Follow by that, we started to filter out NA and duplicated respondent-ID to make sure each id represents one unique individual respondent. Then we filtered out people who didn’t finish choice questions and who don’t use hand sanitize at all(the screen out question). Also individual who went too fast on the choice questions were eliminated; People who stayed on too long (for more than 2000 minutes) were also dropped. We also filtered out respondents who did older version of the survey, which Dr.Helveston spotted on and suggested the solution What happened was we didn’t close the survey after the pilot study, and we had some classmates or us tested the survey for feedback were accidentally collected towards the final survey data, which messed up the data structure because those respondents had older version survey that had four alternative options for choice questions. We didn’t filter anyone out for the attention/practice question because we set that question as purely practice question with no ideal options. Then we convert the data into long format for and list all ID variables in the first rows of the data set.
Our model is a Logit Model that have two continuous variables and two discrete variables. Below is our utility model:
\[u_j = \beta_1 x_j^{\mathrm{Price}} + \beta_2 x_j^{\mathrm{Volume}} + \beta_3 \delta_j^{\mathrm{Design-Spray}} + \beta_4 \delta_j^{\mathrm{Design-Squzze}} + \beta_5 \delta_j^{\mathrm{Moisturizer-Yes}} + \varepsilon_j\] After running the basic model, we got the following coefficient for each attributes:| Parameter | Coefficient | Std.Error |
|---|---|---|
| \(\beta_1\) | -0.0736 | 0.005 |
| \(\beta_2\) | 0.496 | 0.119 |
| \(\beta_3\) | 0.436 | 0.076 |
| \(\beta_4\) | 0.278 | 0.083 |
| \(\beta_5\) | 0.874 | 0.084 |
After running the mixed model, and checked the sigma value for each attributes, the model results can be seen below; we think the coefficients follow the logic that professor explained in class, which for both models, we got all negative coefficient for Price, meaning despite people know it’s a luxury product, people still are less likely to choose the higher priced options. We also did a sub-group modeling, which we used gender(male/female) and divided data based off these two group for modeling. One interesting thing to notice in the sub-group modeling is that both men and women group like moisturizer feature and women value this feature more.
alternative | price | Volume | Design_Spray | Design_Twist_Spray | Moisture 1 | 35 | 1.7 | 0 | 1 | 0 2 | 40 | 2.5 | 0 | 0 | 1 3 | 50 | 2.0 | 1 | 0 | 0
alternative | price | Volume | Design_Spray | Design_Twist_Spray | Moisture 1 | 35 | 1.7 | 0 | 1 | 0 2 | 40 | 2.5 | 0 | 0 | 1 3 | 50 | 2.0 | 1 | 0 | 0