GLP-1 Journey Personas
Individual-level GLP-1 behavioural profiles, built from first-party consented AI chat, browsing, search and purchase activity. Each row is one anonymised person, placed on where they sit in the GLP-1 journey, from early awareness through on-drug to maintenance, using transparent rule-based signals.
- 150
- Features per profile
- 5
- Journey stages
- US, UK
- Markets
- Monthly
- Refreshed
- Jan 2025
- History from
What this is
Built from observed behaviour
Most GLP-1 datasets are modelled from pharmacy claims or inferred from survey panels. This one is derived from what consented participants actually did across ChatGPT, Gemini, Chrome, Google Search and Amazon: the questions they asked, the pages they read, the things they bought. Those events are resolved to one profile per person, then rolled up into journey, barrier, brand and momentum blocks.
Why it is different
Four things a claims or survey cut cannot give you
The whole journey, stage by stage
Current stage, furthest stage reached, and whether someone lapsed or restarted are all tracked separately. Churn and re-engagement stay visible instead of collapsing into a single label.
Why someone sits at that stage
Every profile is scored for how much it is driven by cost, side-effects, needle anxiety and access. That gives you the messaging angle and the likely switching trigger, rather than just a stage label.
Private versus public intent
How much someone works a GLP-1 decision through privately with an AI assistant, compared with publicly in search and forums. Search data on its own cannot show this.
Auditable classifications
Journey and barrier signals are rule-based and LLM-free. Every classification can be explained and defended, whether to a client or to a regulator.
What is in each profile
150 features across six blocks
- Journey
journey_stage(current),journey_max_stage(furthest reached),journey_activity_status(active, lapsed, discontinued),journey_stage_path,journey_funnel_velocity, per-phase dwell,journey_reinitiation_count.- Brand and drug
brand_metrics_drug_primary, route (injectable or oral), brand breadth, andbrand_metrics_ai_introduced_brand_flag, which marks a brand the AI raised that the person never named.- Barriers
barriers_cost,barriers_side_effect_fear,barriers_needle,barriers_access_supplyand others. Each is a salience score between 0 and 1.- Trajectory
trajectory_engagement_slope,trajectory_at_risk_score, and month-over-monthmom_*momentum, volatility and peak timing.- Information
information_private_public_gap,information_private_share,information_source_concentration.- Coverage
coverage_cohort_depth(aware, engaged, on-drug), per-surface coverage flags, andrelevance_cf, a graded GLP-relevance confidence score.
How teams use it
Five starting points
Journey-stage segmentation
Target by current stage, furthest stage reached and activity status. Scope to the on-drug cohort instead of the search-diluted whole.
Switching-trigger audiences
Combine stage, barrier salience and primary drug to isolate, for example, on-drug people struggling with side-effects on one specific drug.
Barrier and drop-off analysis
Rank barrier salience by stage, then use the at-risk score and month-over-month trend to catch people about to lapse.
Commerce halo
Join purchase and app-usage signals to journey stage to size demand tied to treatment behaviour: side-effect basket, skincare, telehealth, fitness and pharmacy apps.
Demographic profiling
Profile how demographic segments move through the journey using the demographic fields already on each row. No separate lookup or join is needed.
Sample query
On-drug audience by demographics, barrier and drug
SELECT
g."age_group",
g."brand_metrics_drug_primary" AS primary_drug,
COUNT(DISTINCT g."user_id") AS unique_personas,
ROUND(AVG(g."barriers_cost"), 3) AS cost_salience,
ROUND(AVG(g."barriers_side_effect_fear"), 3) AS side_effect_salience,
ROUND(AVG(g."trajectory_at_risk_score"), 3) AS avg_at_risk
FROM MEASURE_EVENT_METRICS_PROD.ACCESS.GLP1_JOURNEY_PERSONAS g
WHERE g."coverage_cohort_depth" = 'on_drug'
GROUP BY g."age_group", g."brand_metrics_drug_primary"
HAVING COUNT(DISTINCT g."user_id") >= 20
ORDER BY unique_personas DESC;The HAVING clause in this example limits results to groups of at least 20 people.
Specifications
What ships
| Grain | One row per anonymised person. An optional person-month panel is available for transition and churn work. |
|---|---|
| Aggregation | Derived behavioural features only: scores, rates, stages and shares. No raw event rows. |
| Field count | 150 columns |
| Journey model | 5 stages: aware, considering, access, on-drug, maintenance. Cohort-depth tiers are aware, engaged and on-drug. |
| Surfaces | ChatGPT, Gemini, Chrome browsing, Google Search, Amazon, plus GLP-adjacent app usage |
| Demographics | Basic demographic groupings are included as fields on each row, so no separate profile table is needed. |
| Geography | United States, United Kingdom |
| History from | 1 January 2025 |
| Refresh cadence | Monthly |
| Format | Snowflake native table |
| 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 score, a rate, a stage, a share. Raw event 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.
- Free text and journey data are scrubbed and anonymised before any feature is built.
- 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