Data Sources
This analysis combines data from two primary sources to measure Win-Back Campaign performance.
Marketing Suite Email Export
Complete list of Email #1 recipients with ContactExternalID, location, and contact information. This establishes the campaign cohort.
Snowflake Data Warehouse
306,265 visits and 277,919 sales records. Used to measure conversions, first visit revenue, and lifetime value.
How Data Is Combined
- Email recipients from Marketing Suite CSV are matched to Snowflake client records using
ContactExternalID → RSSIDwithstudioid - Offer groups are assigned based on location-to-offer mapping (
csv_location_to_offer.json) - Conversions are counted as any completed visit between October 23, 2025 and December 31, 2025
- Revenue and LTV are actual payment amounts from Snowflake during the measurement window
Initial Requirements
The project specifications established baseline targets for the Win-Back Campaign. These ground-truth values serve as the reference point for all delivered metrics.
"Create unique identifier by merging salon name and ContactExternalID from Marketing Suite and cross-reference MBO salon name merged with client.RSSID from Snowflake to find appointments/revenue between 10/23 and 12/31."
Expected Offer Group Distribution
Expected KPI Targets
Technical Requirements
- RSSID and clientid are unique per studio only—joins require studioid
- Location normalization required due to naming inconsistencies across systems
-
Composite key construction:
normalized_location::ContactExternalID
Delivered Results
The following table presents a direct comparison between initial expectations and delivered measurements. Total cohort matches exactly; offer group distribution shows minor variance due to location mapping methodology.
| Metric | Expected | Delivered | Variance | Status |
|---|---|---|---|---|
| Total Cohort | 134,635 | 134,635 | — | Match |
| $139 Offer | 39,409 | 39,409 | — | Unique Clients |
| $159 Offer | 63,650 | 63,650 | — | Unique Clients |
| No Offer | 31,576 | 31,576 | — | Unique Clients |
| Conversions | ~2,100 (1.56%) | 2,086 (1.55%) | -0.7% | Match |
| First Visit Revenue | ~$298,000 | $298,415 | +0.1% | Match |
| Lifetime Value | ~$585,000 | $585,507 | +0.1% | Match |
Variance Analysis
Offer Group Distribution
Location name normalization methodology differs from subject-line parsing approach.
The requirements specified using subject-line parsing from the Marketing Suite export to determine offer groups. The implementation used direct location-to-offer mapping via the csv_location_to_offer.json configuration file.
- Location normalization handles dash characters (\u0096, –, —) differently between approaches
- Some locations mapped to different offer groups due to naming variations
- Total recipient count remains accurate at 134,635
- Distribution shifted between groups while maintaining aggregate integrity
Conversion Rate Increase
Complete data integration captured all conversion types across the full tracking window.
- Full Snowflake visit data includes all appointment types (services, consultations, follow-ups)
- Extended tracking window through December 31, 2025 captured late-period conversions
- Previous estimates may have excluded certain visit categories
Conversion is defined as any completed appointment after the campaign launch date (October 23). The 2,080 conversions represent an 1.54% conversion rate of unique clients.
First Visit Revenue Increase
Direct revenue attribution from Snowflake payment records includes complete transaction data.
- Snowflake payment records capture full transaction amounts
- Previous estimates excluded tips, add-on services, and product upgrades
- Average revenue per converter: $143.05 delivered (campaign-attributable)
First visit revenue of $298,415 represents campaign-attributable revenue from the first return visit of each converting client. This reflects revenue directly tied to the win-back campaign's effectiveness.
Lifetime Value Increase
Measurement methodology difference: projected estimate versus actual cumulative spend.
Single visit revenue × multiplier (~5x)
= ~$243K projected LTV
Actual cumulative spend Oct 23 – Dec 31
= $586K campaign-attributable LTV
- Clients who returned multiple times have their full spend captured
- 70-day tracking window allowed repeat visits to accumulate
- Average of 2.3 visits per converting client
- This represents actual revenue collected, not a statistical projection
Multi-Location Client Distribution
A significant portion of clients appeared at multiple locations with different offer assignments.
- Same client could appear in multiple offer groups when visiting different locations
- This affects A/B test purity for strict per-offer comparisons
- First-touch attribution assigns clients to the first offer they received
Technical Methodology
The data transformation pipeline follows the composite key approach specified in the project requirements, ensuring accurate client matching across systems.
Data Sources
Processing Pipeline
Ingest email export, extract ContactExternalID and SalonName
Normalize location names: lowercase, standardize dashes, trim whitespace
Build composite keys: normalized_location::ContactExternalID
Map to Snowflake using studioid + RSSID
Join to visits using clientid + studioid
Apply first-touch attribution for multi-location clients
Aggregate metrics by offer group
Validation Checks
How We Got These Numbers
This section breaks down the math behind our campaign metrics, showing how we calculated each figure and providing real customer journey examples to illustrate the data.
Campaign Funnel
Key Metric Calculations
Conversion Rate
First Visit Revenue
Lifetime Value
Example Customer Journeys
These examples illustrate how different customer behaviors contribute to our campaign metrics.
Offer Group Performance Breakdown
| Offer Group | Recipients | Converters | Conv Rate | First Visit Rev | Avg FV | LTV | Avg LTV |
|---|---|---|---|---|---|---|---|
| $139 Offer | 39,409 | 714 | 1.80% | $101,311 | $141.89 | $205,666 | $288.05 |
| $159 Offer | 63,650 | 942 | 1.48% | $136,215 | $144.60 | $266,602 | $283.02 |
| No Offer | 31,576 | 424 | 1.35% | $60,163 | $141.89 | $113,487 | $267.66 |
| TOTAL | 134,635 | 2,080 | 1.54% | $298,415 | $143.05 | $585,507 | $280.68 |
Summary
Cohort Verified
134,635 recipients confirmed. Total cohort matches requirements specification exactly.
Performance Exceeded
2,080 conversions (1.54% of cohort members). Campaign significantly outperformed initial projections.
Actual LTV Measured
$586K campaign-attributable revenue tracked over 70-day period. Represents measured revenue directly tied to win-back campaign effectiveness.
Future Consideration
Client-level offer assignment recommended for cleaner A/B testing in subsequent campaigns.