← Work / Eyewear Sales Analysis

25

Eyewear Sales Analysis

100K+ Rows and One Real Question

Topicdata analysis
TypeAnalytics
Year2025

Context

The raw sales data existed across multiple export formats with inconsistent field naming, duplicated entries, and non-standardized category codes that varied by account. Before any analysis was possible, the data needed normalization. But normalization isn't the interesting part — it's the cost of admission. The real question was about performance drivers: which product attributes predict sell-through? How does pricing interact with promotional activity? Where are the account-level patterns hiding in the aggregate numbers?

Approach

Cleaned and standardized 100K+ rows of eyewear sales data in R using tidyverse, built a normalization pipeline handling the most common inconsistency patterns across account exports, then ran exploratory analysis through ggplot2 to surface performance patterns across price tier, brand, account type, and promotional cadence. The framework was built to be repeatable — not a one-time analysis, but a reusable structure for ongoing quarterly reporting.

Results
  • Built a normalized data pipeline reducing prep time by approximately 70% on subsequent analyses
  • Identified price tier as the strongest single predictor of promotional lift across brands
  • Surfaced three account-level performance patterns invisible in aggregate reporting
  • Framework adopted informally by the team for subsequent quarterly review cycles
Takeaways

The most valuable analysis I've done used real data with real stakes

There's a meaningful difference between learning R through tutorials and using it to answer a question your team genuinely needs answered by Friday. The stakes change your relationship to the work, and the constraints change the quality of the output. Real messy data is a better teacher than any cleaned dataset.