Customer Quality Scoring
Customer Quality Scoring assigns every tracked visitor a score from 0 to 100 and places them into actionable segments. These segments are sent alongside conversion events to ad platforms, enabling smarter bidding, better lookalike audiences, and reduced wasted spend.
How the Algorithm Works
The scoring algorithm evaluates five behavioral signals, each with a configurable weight:
| Signal | Default Weight | How It's Measured |
|---|---|---|
| Purchase count | 30% | Total number of completed purchase events |
| Total revenue | 25% | Sum of all purchase event values in the customer's currency |
| Visit frequency | 20% | Distinct sessions (unique days with at least one event) within the scoring window |
| Recency | 15% | Inverse of days since last activity -- more recent activity scores higher |
| Cart-to-purchase rate | 10% | Ratio of purchase events to add_to_cart events |
Each signal is normalized to a 0--100 scale relative to all customers in the workspace, then combined using the weights above to produce the final score.
By default, the algorithm considers the last 90 days of activity. Older events are excluded to keep scores reflective of current behavior.
Score Recalculation
Scores are recalculated automatically:
- On event ingestion -- When a new event arrives for a customer, their score is queued for recalculation.
- Scheduled batch job -- Every 6 hours, a background job recalculates scores for all active customers to account for recency decay.
Segment Definitions
Based on their score and behavioral patterns, customers are assigned to one of six segments:
| Segment | Score Range | Additional Criteria | Description |
|---|---|---|---|
| high_value | > 80 | -- | Top-tier customers with strong purchase history and engagement |
| repeat | 60--80 | 2+ purchases | Returning buyers with consistent activity |
| promising | 40--60 | Active in last 30 days | Engaged visitors who have not yet become repeat buyers |
| at_risk | 20--40 | Declining activity trend | Previously active customers showing reduced engagement |
| new | Any | First seen < 30 days ago | Recently acquired visitors, regardless of score |
| churned | < 20 | No activity in 90+ days | Dormant customers with no recent signals |
A customer can only belong to one segment. The new segment takes priority -- any customer first seen within the last 30 days is classified as new regardless of score. After 30 days, the score-based rules apply.
Using Segments for Ad Optimization
Meta (Facebook/Instagram)
- Lookalike Audiences -- Export your
high_valuesegment and create a 1% lookalike audience in Meta Ads Manager. This tells Meta to find new users who resemble your best customers. - Custom Audiences -- Use
at_riskorchurnedsegments for win-back campaigns with tailored messaging. - Value Optimization -- When the
purchaseevent includes the customer score as a custom property, Meta can optimize delivery toward higher-value conversions.
Google Ads
- Value-Based Bidding -- The score is sent as a conversion value adjustment. Google's Smart Bidding uses this to prioritize clicks from users likely to become high-value customers.
- Customer Match -- Upload hashed email lists from specific segments for targeted remarketing.
TikTok
- Custom Audiences -- Build segment-based audiences for retargeting.
- Value Optimization -- Pass the score with
CompletePaymentevents to enable TikTok's value-based optimization.
Viewing Customer Scores
Individual Customer Profile
Navigate to Analytics > Tracking > Customers and click any customer to view:
- Current score and segment assignment
- Score history chart showing changes over time
- Event timeline listing all tracked events
- Attribution data including first-touch and last-touch sources
Segment Overview
The Segments tab shows aggregate statistics:
| Metric | Description |
|---|---|
| Customer count | Number of customers in each segment |
| Average score | Mean score within the segment |
| Average revenue | Mean lifetime revenue per customer |
| Trend | Week-over-week change in segment size |
GDPR Compliance
Customer scoring respects consent and privacy regulations:
- Consent required -- Scores are only calculated for customers who have granted tracking consent via
omni('consent', true). - Data export -- Customer score data is included in GDPR data export requests.
- Data erasure -- When a customer requests deletion, all scoring data, event history, and segment assignments are permanently removed.
- No PII in scores -- The scoring algorithm uses behavioral signals only. Personal identifiers (email, phone) are hashed before storage and never used in score computation.
If a customer revokes consent, their score is frozen and no new events are processed. The score is retained until an explicit erasure request is made.
Related Pages
- Server-Side Tracking & CAPI -- Set up tracking pixels and destinations
- Dashboard -- Overview of social media performance
- Revenue Attribution -- Track social-to-sales conversions
- Audience Segments & Scoring -- Broader audience segmentation tools