Back to all datasets
Data listing for Snowflake and Databricks

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_share and brand_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_views and interest_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

01

Social-commerce measurement

Track discovery on TikTok against purchase elsewhere, on the same person.

02

Emerging-brand detection

Spot brands gaining ground outside traditional retail before they appear in panel data.

03

Routine versus considered

Separate replenishment categories from those where research precedes purchase.

04

Repertoire and switching

A median of six distinct brands per person makes this a genuinely multi-brand category. Condition on active months.

05

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

Datasetcpg_personas_v3, scoped to beauty and personal care
GrainOne row per person per market, unique on user_id
AggregationDerived behavioural features only: rates, shares, indices, counts and flags. No raw purchase rows.
Field count376 columns in GB, 374 in the US. A surface absent from a market produces no columns rather than empty ones.
CategoriesTwenty, 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.
SurfacesAmazon purchases, Tesco purchases in GB, TikTok Shop purchases and browsing, Google search, Chrome browsing, Safari browsing.
Brand resolutionRoughly 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.
DemographicsAge band, gender, education, household income and device, on each row and effectively complete.
GeographyUnited Kingdom, United States. GB carries Tesco basket data and the US does not, so condition on observability before comparing purchase behaviour.
Window12 months, June 2025 to May 2026
Refresh cadenceQuarterly
FormatNative tables on Snowflake and Databricks
PIINone. 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