StatPearls improves ROAS and launches ML-driven campaigns using RudderStack and Amazon Redshift


  • StatPearls eliminated data silos and disparate schemas by using RudderStack to build a warehouse native CDP on Amazon Redshift
  • StatPearls used granular, user-level data to understand their true cost per paid customer, drastically improving ROAS
  • RudderStack Profiles eliminated a critical blind spot, enabling StatPearls to see the entire customer journey and accurately calculate LTV for every customer type

Key Stats

  • 1.7x increase in customer retention
  • 3x increase in personalized message volume
  • 3.8x increase in ad spend with positive ROAS

"RudderStack Profiles allows our data team to quickly add attributes to our customer 360 table, which our marketing team can use to quickly understand the data, then create cohorts for remarketing. Now we don’t have to write long SQL queries to mine the data; I can add new traits directly to user profiles that marketing can immediately filter on.

- Mike Sperduti, Head of Engineering at StatPearls


Founded in 2014, StatPearls is a leading professional healthcare education and technology company. Along with an expansive array of over 35,000 point-of-care and educational activities, more than 8,000 authors and editors have published nearly 10,000 peer-reviewed PubMed-indexed articles on virtually every clinical topic in healthcare, making StatPearls the largest and most comprehensive e-Learning resource in healthcare.

Serving medical professionals across hundreds of different job roles, StatPearls has positioned itself as a leader in the field. To better optimize the experience for each individual medical professional and their specific learning pathways, StatPearls’ data team attempted to combine data from various sources to understand how users found their site, which products new users purchased, which courses they completed, and how often they came back to purchase additional products. Specifically, StatPearls’ data team wanted to help the business understand how much organic traffic to their free articles turned into paying customers. Additionally, they wanted more visibility into the effectiveness of their advertising spend over the lifetime of a customer, not just their initial purchase.

Initially, they tried exporting data from payment systems and querying their app databases, but their lack of dedicated infrastructure for customer data meant that visibility was limited, data quality was low, and time to insight was prohibitively slow. These technical limitations distracted the data and engineering teams from key projects, which negatively impacted the rest of the business.

The lack of clean, first-party data across the entire customer journey meant their analytics teams were only able to work off a subset of data sources. Downstream, the marketing team struggled to optimize user onboarding and nurturing because they didn’t have confidence where users were in their journey or the data to perform meaningful segmentation.

“Even though we had our users and product SKUs in our database, we had to manually mine that database every time sales and marketing had a question,” recounts Mike Sperduti, Head of Engineering at StatPearls. “It was critical for them to know which specific groups of doctors bought which products, but we had to query our production database to get those answers, which was really hard on the data team.”

To solve this data divide, StatPearls chose RudderStack as its Warehouse Native CDP solution, using the Event Stream and ETL pipelines to standardize and automate customer data collection and integration, ultimately centralizing all of their first-party data in Amazon Redshift.

Standardizing data was the first step, but RudderStack’s Profiles feature helped them turn the customer data in Redshift into a complete picture of the customer journey, automating identity resolution and ultimately putting them on a fast-track to building an ML model for churn.

Challenge: Understanding the full customer journey and lifetime value

StatPearls provides educational resources to hundreds of different types of medical professionals, each of whom have different learning needs. They offer over 500 different exams and thousands of single courses, meaning their customer journey is incredibly complex.

“We really struggled to understand the journey of each different medical professional,” explains Sperduti. “We needed to understand how they wanted to use our site and consume content, but that was a very complicated data problem.”

StatPearls lacked dedicated infrastructure for customer data, meaning they had to chase data down across different systems and try to piece together the customer journey manually, which was time consuming and error-prone.

Those delays and limited visibility hindered every team in the company, distracting the data team from key projects, and slowing down the sales and marketing teams trying to provide relevant product recommendations
to customers. The paid advertising team also struggled to efficiently scale spend because they didn’t have a clear view into a customers’ lifetime value, making it impossible to calculate true acquisition cost and return on ad spend (ROAS). “We had multiple data sources: Stripe, Intercom, and our own database logging. It was very painful to reconcile all of the data because we didn’t have it cleanly funneling into a single place.”

Solution: Build a complete view of the customer with RudderStack and Redshift

StatPearls used RudderStack’s high-performance JavaScript SDK and Event Stream pipeline to track every user behavior and purchase across their entire website, eliminating their biggest obstacle into seeing the entire customer journey. When they combined that user behavioral data with payments data from Stripe, they had the ingredients to build a single source of truth in Redshift.

Having all of their first-party data in one place was the foundation for StatPearls to unify that data into a customer 360 table using RudderStack Profiles.

RudderStack Profiles makes it easy to build complete profiles in your warehouse. It automates the creation of an identity graph and customer journey by extracting relevant data points across multiple sources, automatically generating the needed SQL code to create a unified table in Redshift. Instead of spending hours and days authoring queries, StatPearls engineers can now easily select unique identifiers across hundreds of tables and run them through Profiles for accurate and complete identity graphs. They can then collect relevant user features to create 360 customer views to get deeper insight into how visitors convert, the performance of paid campaigns, and when current customers might churn.

“Even though we had the data in Redshift, we had to figure out how to stitch it, from payments, to anonymous web traffic, to our registered users,” explains Sperduti. “We would get a customer from Google Ads, but we didn’t know whether the customer renewed, so we had a hard time figuring out what to spend. Profiles really helped us understand lifetime value on a cohort basis, for various different types of doctors and nurses, so we knew exactly how much to spend.

In combination with clean, first-party from RudderStack Event Stream, Profiles has given StatPearls ownership of its data by automating the tedious cleaning and modeling tasks required to stitch user identities and unify the customer journey.

StatPearls used RudderStack to build an end-to-end customer data platform on Redshift, accelerating time to insight and enabling marketing and sales to make decisions with confidence.

"RudderStack really helped us, as the engineering team, paint a clear picture of the entire customer journey across our entire website for the marketing team"

- Mike Sperduti, Head of Engineering at StatPearls

Results: Unlocking High ROAS and ML-driven campaigns

StatPearls used RudderStack to build a complete, warehouse native workflow that helps every team move fast with confidence.

RudderStack Event Stream captures their entire customer journey, delivering it directly to Redshift, their single source of truth for customer data. They then use RudderStack Profiles to resolve customer identities and get a full view of the journey for each unique type of customer, including the channel that first brought them to the website and their complete lifetime value across purchases and subscriptions.

StatPearls’ paid advertising team combines granular attribution data and a complete payment history to understand exactly how much money they make from each different type of customer, and how much they spent on the campaigns that drove conversion. This led to a 3.8x increase in their Google Ads budget, all while maintaining positive, efficient ROAS.

“Data from RudderStack helped our team turn marketing into a math problem,” says Sperduti. “We know that when we spend X on a particular campaign, we are going to get Y yield over time.”

Seeing the entire customer journey also helps StatPearls understand which customers are likely to stop using their platform or purchasing products. Their data team has used Profiles as a foundation for modeling churn with machine learning, enabling their marketing team to take action before they lose a customer. They can send these predictive traits directly to their sales and marketing tools using RudderStack’s Reverse ETL pipeline.

“Understanding our audience was a great first step, but now we are starting to proactively shape the customer experience through predictive traits. We now send them really compelling emails or offers when we detect they are likely to churn.”

Leveraging ML and predictive traits, the StatPearls team has tripled the number of personalized messages they are sending, leading to a 1.7x increase in customer retention.

StatPearls data stack

Destinations: Intercom, Sendgrid, Google Analytics, Meta Ads, Bing Ads, Reddit Ads
Sources: JavaScript, .Net, Stripe, Google Ads, Meta Ads
Warehouses: Amazon Redshift


We'll send you updates from the blog and monthly release notes.