CPG Beauty and Personal Care Personas
Individual-level beauty and personal care profiles where purchase and digital behaviour sit on the same person, across eight surfaces including TikTok Shop. One row per person, with every tagged event resolved to exactly one of twenty categories.
- 376
- Features per profile
- 20
- Categories
- GB, US
- Markets
- Quarterly
- Refreshed
- 12 months
- Window
What this is
The category where social commerce actually matters
TikTok Shop reaches a third of US profiles here, more than Chrome, and brings brands no retailer panel sees. That, combined with purchase and search on the same person, is what this dataset is for.
Why it is different
Why it is different
Social commerce, measured not inferred
TikTok Shop appears as both a purchase and a browsing surface, so discovered on TikTok and bought elsewhere is directly measurable rather than assumed.
Emerging brands surface on their own
Brands that sell almost entirely outside traditional retail show up without anyone adding them to a watchlist first.
Routine separated from considered
Oral care and deodorant behave like replenishment while skincare, fragrance and cosmetics show research before purchase. The crossover block separates them on the same person.
Categories that partition
Every event resolves to exactly one of twenty categories, so shares sum and regimen adjacency is a straightforward co-occurrence question.
What is in each profile
376 features, grouped by prefix
- Category
- 202 columns. Per category: events, interest events, purchase events, spend, share, top brand and brand HHI, across twenty categories.
- Brand
- 68 columns. Events, purchase events and spend per tracked brand from a fixed per-market list, plus cohort-level
brand_hhi,brand_top_shareandbrand_distinct. - Crossover
crossover_type,crossover_conversion_rate,crossover_research_ratio, and the prospect, converted and habit brand sets.- Purchase and interest
- Baskets, spend, repeat rate and active months, alongside
interest_searches,interest_product_viewsandinterest_distinct_queries. - Time and seasonal
- Nineteen day and day-part columns including whether someone browses and buys on the same day, plus a calendar-anchored seasonal block.
How teams use it
What it supports
Social-commerce measurement
Track discovery on TikTok against purchase elsewhere, on the same person.
Emerging-brand detection
Spot brands gaining ground outside traditional retail before they appear in panel data.
Routine versus considered
Separate replenishment categories from those where research precedes purchase.
Repertoire and switching
A median of six distinct brands per person makes this a genuinely multi-brand category. Condition on active months.
Regimen adjacency
Categories partition cleanly, so buys skincare and also buys hair care is a direct co-occurrence question.
Sample query
Research-to-purchase crossover by market
SELECT
identity_market,
crossover_type,
COUNT(DISTINCT user_id) AS profiles,
ROUND(AVG(brand_distinct), 1) AS brands_per_person,
ROUND(AVG(brand_hhi), 3) AS brand_concentration,
ROUND(AVG(crossover_conversion_rate), 3) AS conversion_rate
FROM cpg_personas_v3
WHERE engagement_active_months >= 3
GROUP BY identity_market, crossover_type
HAVING COUNT(DISTINCT user_id) >= 20
ORDER BY profiles DESC;Conditioning on active months matters: brand concentration is censored by observation length, so someone seen for a single month looks perfectly loyal.
Specifications
What ships
| Dataset | cpg_personas_v3, scoped to beauty and personal care |
|---|---|
| Grain | One row per person per market, unique on user_id |
| Aggregation | Derived behavioural features only: rates, shares, indices, counts and flags. No raw purchase rows. |
| Field count | 376 columns in GB, 374 in the US. A surface absent from a market produces no columns rather than empty ones. |
| Categories | Twenty, including skincare, hair care, fragrance, oral care, bath and shower, deodorant, cosmetics, eye makeup, lip products, body care, sun care, nail care, shaving and hair colour. |
| Surfaces | Amazon purchases, Tesco purchases in GB, TikTok Shop purchases and browsing, Google search, Chrome browsing, Safari browsing. |
| Brand resolution | Roughly a third of events in GB and a fifth in the US name a specific brand; the rest resolve to category only. Cohort-level brand columns are reliable, and the long tail of brands is not yet covered. |
| Demographics | Age band, gender, education, household income and device, on each row and effectively complete. |
| Geography | United Kingdom, United States. GB carries Tesco basket data and the US does not, so condition on observability before comparing purchase behaviour. |
| Window | 12 months, June 2025 to May 2026 |
| Refresh cadence | Quarterly |
| Format | Native tables on Snowflake and Databricks |
| PII | None. No names, emails or device identifiers. |
Privacy & provenance
Aggregated features only
Every column in this dataset is a derived, aggregated behavioural feature: a rate, a share, a concentration index, a count, a flag. Raw purchase rows are never exposed and are not part of what ships. All data comes from participants who opted in through the Measure app and browser extension. Participants are compensated, are told what is collected, and can withdraw at any time.
- No personal identifiers are included: no names, emails or device IDs.
- `user_id` is a pseudonym. The mapping that could resolve it to a person is internal and is not shared.
- Brand and category matching is pattern-based, so it is precise on branded strings and looser on generic ones.
- Nothing in the data supports efficacy, skin-type or health inference.
- Handled in line with GDPR, CCPA and applicable data protection law.
Request access
Talk to us about scope, sample data and licensing.
Snowflake Marketplace, Databricks Marketplace