Skip to content

About

End-to-end data analysis of Sephora products using Python, Tableau, and exploratory data analysis, with an interactive dashboard and comprehensive project report.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

36 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sephora-Product-Analysis

End-to-end data analysis of Sephora products using Python, Tableau, and exploratory data analysis, with an interactive dashboard and comprehensive project report.

Sephora Customer Satisfaction Score (CSS) Analysis

An end-to-end data analytics project exploring the drivers of Customer Satisfaction Score (CSS) across Sephora's beauty product catalog, using Python for statistical analysis and Tableau for interactive visualization.

Business Context

Sephora is a global prestige beauty retailer offering an extensive catalog of skincare, makeup, fragrance, and haircare products. With millions of customer interactions and reviews generated across its catalog, understanding what drives customer satisfaction is a strategic priority for merchandising, pricing, and product recommendation decisions.

Objectives

  1. Understand customer satisfaction behavior — identify patterns in CSS, rating distribution, and product characteristics that influence satisfaction.
  2. Recognize key satisfaction drivers — determine which brand, pricing, engagement, and demographic factors are associated with higher or lower ratings.
  3. Optimize product and customer experience strategies — translate findings into actionable recommendations for assortment, pricing, and recommendation strategy.

Key Metric

CSS (Customer Satisfaction Score) = Average Product Rating, decomposed across four MECE dimensions: Product & Brand, Pricing, Engagement & Social Proof, and Customer Demography.

Dataset

  • product_info.csv — 8,494 products with brand, category, pricing, and rating attributes.
  • reviews_0-250.csv — individual customer reviews (270K+ after cleaning), covering a 250-product subset of the catalog.

Data scope note: the review-level dataset provided covers only 250 of the 8,494 products in the catalog. This is a limitation of the source data (provided for portfolio purposes), not a processing error. Findings derived from review-level data (engagement and demographic hypotheses) are scoped to this subset and are documented as such throughout the analysis.

Methodology

  1. KPI Tree Construction — CSS broken down into four dimensions, each mapped to specific, testable hypotheses.
  2. Hypothesis Formulation — 11 structured hypotheses (H1–H11) spanning bivariate and multivariate relationships.
  3. Data Cleaning & Preparation — missingness diagnosis (structural vs. random), type correction, feature engineering (price tiers, brand aggregates, recommendation rate, feedback polarity).
  4. Exploratory Data Analysis — six phases (Univariate → Bivariate × 3 dimensions → Multivariate → Demographic), each hypothesis paired with a formal statistical test (t-test, ANOVA, Tukey HSD, correlation, chi-square, multiple regression).
  5. Tableau Dashboard & Storyboard — 13 interactive sheets across 4 dashboards, sequenced into a 7-point guided narrative.

Tools Used

  • Python (Google Colab): pandas, numpy, matplotlib, seaborn, scipy, statsmodels
  • Tableau: dashboard and storyboard development
  • Excel: supporting planning artifacts (KPI tree, EDA phase plan)

Repository Structure

├── NL_Sephora.ipynb          # Full analysis notebook (cleaning, EDA, hypothesis testing)
├── NL_Sephora.pdf            # Condensed business report (max 15 pages)
├── NL_Sephora.twbx           # Tableau packaged workbook (dashboards + storyboard)
├── data/
│   ├── product_info.csv
│   └── reviews_0-250.csv
└── README.md

Key Findings

  • Brand identity is the strongest validated driver of CSS, confirmed in both bivariate and multivariate testing — Sephora's own largest-volume brands underperform smaller specialist brands even after controlling for scale.
  • Recommendation rate is the strongest engagement predictor of CSS (r = 0.92), far outperforming raw popularity (loves_count).
  • Pricing shows a threshold effect, not a gradient — Budget-tier products underperform, but Mid, Premium, and Luxury tiers perform similarly.
  • Category effects concentrate at the extremes — the "Men" category rates highest, "Mini Size" rates lowest; most other category pairs show no significant difference.
  • Demographic factors (skin type, skin tone) show statistically significant but practically negligible relationships with rating.
  • Combined, price tier, category, and brand explain only ~16% of rating variance — most of what drives satisfaction lies outside these dimensions.

Full findings, statistical results, and business recommendations are documented in NL_Sephora.pdf.

Limitations

  • Review-level analysis is scoped to a 250-product subset due to incomplete source data coverage.
  • sale_price_usd and value_price_usd were excluded from analysis due to >80% missingness (structurally sparse fields).
  • Regression-based findings (Phase 4) are explanatory/inferential, not predictive — no train/test split or model deployment was performed.

Deliverables

  1. Jupyter Notebook (Google Colab) — full cleaning, EDA, and hypothesis-testing pipeline
  2. Tableau Dashboard — 4 dashboards, 13 sheets, filterable by category/brand/price tier
  3. PDF Report — business-facing summary of methodology, findings, and recommendations

About

End-to-end data analysis of Sephora products using Python, Tableau, and exploratory data analysis, with an interactive dashboard and comprehensive project report.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages