Skill: leooooooow/win-back-campaign (version 1.1.0)

--- name: "Win-Back Campaign" description: "Design automated win-back campaigns targeting lapsed customers with personalized re-engagement sequences across email, SMS, and paid ads, using recency-based segmentation to maximize reactivation rates and recovered revenue." category: "ecommerce-marketing" version: "1.0" tags: ["win-back", "retention", "re-engagement", "lapsed-customers", "lifecycle-marketing", "ecommerce"] --- # Win-Back Campaign Skill Design and execute automated win-back campaigns that re-engage lapsed ecommerce customers through personalized, multi-channel sequences. This skill applies recency-frequency-monetary (RFM) segmentation to prioritize high-value defectors, then orchestrates coordinated touches across email, SMS, and paid ads to maximize reactivation rates and recovered revenue. --- ## Quick Reference Use this table for fast decision-making during campaign design. | Decision | Strong | Acceptable | Weak | |---|---|---|---| | **Lapse definition** | Custom per-brand based on historical repurchase intervals (e.g., 1.5x median order gap) | Industry-standard thresholds (90/180/365 days) | Single arbitrary cutoff with no data backing | | **Segmentation model** | Full RFM scoring with tiered treatment paths | Recency-only segmentation with 3+ tiers | No segmentation; one message to all lapsed customers | | **Incentive escalation** | Graduated offers that increase across the sequence (no discount > 10% off > 15% + free shipping) | Fixed discount offered at a strategic point in the sequence | Leading with the deepest discount on the first touch | | **Channel orchestration** | Coordinated email + SMS + paid ads with suppression logic and frequency caps | Email primary with SMS for high-value segments only | Blasting all channels simultaneously with identical messaging | | **Personalization depth** | Dynamic content referencing last-purchased products, browse history, and predicted preferences | Category-level personalization (e.g., "We miss you in Women's Shoes") | Generic "We miss you" with no product or behavioral context | | **Sequence timing** | Data-driven intervals based on engagement signals and send-time optimization | Fixed cadence with reasonable spacing (e.g., Day 0, 7, 14, 21) | Random or overly aggressive timing (daily emails) | | **Exit criteria** | Multi-signal: purchase, click-through with browse, explicit opt-out, hard bounce | Purchase or unsubscribe triggers exit | No exit logic; customers receive full sequence regardless of actions | | **Success metrics** | Reactivation rate, recovered revenue, incremental lift vs. holdout, LTV of reactivated cohort | Open rate, click rate, conversion rate | Vanity metrics only (sends, impressions) | --- ## Solves This skill addresses the following problems: 1. **Revenue leakage from customer churn** -- Existing customers who stop buying represent lost lifetime value that is 5-7x cheaper to recover than acquiring net-new customers. 2. **Undifferentiated re-engagement attempts** -- Sending the same "We miss you" email to all lapsed customers regardless of their value, recency, or purchase history wastes budget and trains customers to ignore outreach. 3. **Discount dependency** -- Brands that immediately offer deep discounts to lapsed customers erode margins and condition buyers to wait for deals rather than purchasing at full price. 4. **Channel fragmentation** -- Email, SMS, and paid ads operate in silos with no coordination, leading to redundant messaging, frequency fatigue, and an incoherent customer experience. 5. **Unclear lapse definitions** -- Without data-driven thresholds for when a customer is "lapsed," teams either act too early (wasting touches on customers who would have returned organically) or too late (after the customer has fully disengaged). 6. **No measurement of incrementality** -- Without holdout groups and proper attribution, teams cannot distinguish between customers who were genuinely won back and those who would have returned on their own. 7. **Compliance and deliverability risk** -- Mailing deeply lapsed contacts without proper list hygiene damages sender reputation, increases spam complaints, and risks regulatory violations under CAN-SPAM, GDPR, and TCPA. --- ## Workflow ### Step 1: Define Lapse Thresholds Analyze historical purchase data to establish when a customer should be considered "lapsed" for this specific brand. **Actions:** - Pull median and average inter-purchase intervals for the past 12-24 months. - Calculate the distribution of repurchase gaps (25th, 50th, 75th, 90th percentiles). - Set the "at-risk" threshold at approximately 1.25x the median repurchase interval. - Set the "lapsed" threshold at approximately 1.5x the median repurchase interval. - Set the "deeply lapsed" threshold at 2x+ the median or 365 days, whichever is shorter. - Validate thresholds by checking what percentage of customers who cross each threshold eventually return without intervention. **Output:** A documented lapse definition table with three tiers and the data supporting each threshold. ### Step 2: Segment the Lapsed Population Apply RFM segmentation to the lapsed customer base to create differentiated treatment groups. **Actions:** - Score each lapsed customer on Recency (time since last purchase), Frequency (total orders), and Monetary (total or average order value). - Create segments such as: High-Value Recent Lapse, High-Value Deep Lapse, Low-Value Recent Lapse, Low-Value Deep Lapse, One-Time Buyers. - Size each segment and estimate revenue potential based on historical AOV and predicted reactivation probability. - Flag segments requiring special handling (e.g., customers acquired via deep discounts who never paid full price, seasonal-only buyers). - Exclude customers who are undeliverable (hard bounces, invalid phone numbers), legally suppressed, or who have explicitly opted out. **Output:** A segmentation table with segment names, sizes, value estimates, and assigned campaign tiers. ### Step 3: Design the Re-engagement Sequence Build a multi-touch sequence for each major segment, mapping messages across channels with escalating urgency and incentives. **Actions:** - Define the number of touches per segment (typically 4-6 for high-value, 2-3 for low-value). - Map each touch to a channel (email, SMS, paid ad) with clear reasoning for the channel choice. - Write messaging frameworks for each touch that escalate from emotional/brand-centric to incentive-driven: - Touch 1: Reminder and value reinforcement (no discount). - Touch 2: Social proof, new arrivals, or personalized recommendations. - Touch 3: Modest incentive (e.g., 10% off or free shipping). - Touch 4: Stronger incentive with urgency (e.g., 15% off, 48-hour expiration). - Touch 5 (high-value only): Final appeal with best offer or personal outreach. - Touch 6 (high-value only): Sunset notice -- "We will stop emailing you unless you want to stay." - Set timing intervals between touches based on engagement signals and segment tier. - Define dynamic content blocks (last purchased product, recommended products, loyalty points balance). **Output:** A sequence map per segment showing touch number, channel, timing, message theme, offer level, and dynamic content requirements. ### Step 4: Configure Channel-Specific Execution Set up each channel with proper targeting, suppression, and tracking. **Actions:** - **Email:** Create templates, set up automated flows in ESP, configure suppression for purchasers and unsubscribers, warm up sending to deeply lapsed segments gradually. - **SMS:** Draft compliant messages within character limits, ensure TCPA/consent compliance, set quiet hours, integrate short-link tracking. - **Paid Ads:** Build custom audiences from lapsed segments, create retargeting ads on Meta/Google, set frequency caps (3-5 impressions per week), exclude converted customers in near-real-time. - Implement cross-channel suppression: if a customer converts via email on Touch 2, suppress remaining SMS and ad touches. - Set up UTM parameters and attribution tracking for each channel and touch. **Output:** Channel configuration checklist with platform-specific settings, audience uploads, and suppression rules documented. ### Step 5: Establish Holdout Groups and Measurement Create proper test/control structure to measure true incrementality. **Actions:** - Randomly hold out 10-15% of each segment as a control group that receives no win-back treatment. - Define primary KPIs: reactivation rate, recovered revenue, incremental lift, cost per reactivation. - Define secondary KPIs: open rate, click rate, unsubscribe rate, spam complaint rate, revenue per recipient. - Set measurement windows (30-day, 60-day, 90-day post-campaign). - Build a reporting dashboard or template to track performance by segment, channel, and touch. **Output:** Measurement plan with holdout group definitions, KPI targets, and reporting cadence. ### Step 6: Launch and Optimize Execute the campaign with phased rollout and continuous optimization. **Actions:** - Launch to the smallest or least-risky segment first to validate mechanics and deliverability. - Monitor deliverability metrics (bounce rate, spam complaints) closely for the first 48-72 hours. - A/B test subject lines, send times, offer levels, and creative within each touch. - Review performance weekly against KPIs and holdout benchmarks. - Adjust timing, messaging, or offers based on performance data. - Document learnings for future campaign iterations. **Output:** Launch schedule, monitoring checklist, and optimization log. ### Step 7: Post-Campaign Analysis and Iteration Evaluate results, calculate ROI, and feed learnings back into the next cycle. **Actions:** - Compare reactivation rates and revenue between treatment and holdout groups across all segments. - Calculate incremental revenue, cost per reactivation, and ROI by segment and channel. - Identify which segments, channels, and touches drove the highest incremental lift. - Analyze the behavior of reactivated customers post-campaign (do they make a second purchase? what is their projected LTV?). - Determine which lapsed customers should be moved to a sunset/suppression list. - Update lapse thresholds, segmentation rules, and sequence design based on findings. **Output:** Post-campaign report with ROI analysis, segment-level findings, and actionable recommendations for the next iteration. --- ## Worked Examples ### Example 1: DTC Skincare Brand ($8M Annual Revenue) **Context:** A direct-to-consumer skincare brand with a 45-day median repurchase interval, 120K total customers, and a growing churn problem. Email list is 95K, SMS subscribers are 35K. Average order value is $62. **Step 1 -- Lapse Thresholds:** - Median repurchase interval: 45 days. - At-risk: 56 days (1.25x). Lapsed: 68 days (1.5x). Deeply lapsed: 90+ days (2x). - Analysis shows 72% of customers who go beyond 90 days without purchasing never return organically. **Step 2 -- Segmentation:** | Segment | Criteria | Size | Est. Revenue Potential | |---|---|---|---| | VIP Lapsed (68-90 days) | 3+ orders, AOV > $75, last purchase 68-90 days ago | 2,400 | $198K | | VIP Deeply Lapsed (90-180 days) | 3+ orders, AOV > $75, last purchase 90-180 days ago | 1,800 | $126K | | Standard Lapsed (68-90 days) | 2+ orders, AOV $40-75 | 5,100 | $224K | | Standard Deeply Lapsed (90-180 days) | 2+ orders, AOV $40-75 | 4,300 | $155K | | One-Time Buyers (68-180 days) | 1 order only | 8,900 | $196K | | Dormant (180+ days) | Any history, 180+ days | 6,200 | Suppressed -- sunset flow only | **Step 3 -- Sequence Design (VIP Lapsed segment):** | Touch | Day | Channel | Theme | Offer | Dynamic Content | |---|---|---|---|---|---| | 1 | 0 | Email | "Your skin routine is waiting" | None | Last purchased products, reorder CTA | | 2 | 4 | SMS | Quick check-in | None | First name, product name | | 3 | 8 | Email | New launches + personalized recs | None | Browsing-history-based recommendations | | 4 | 14 | Email + Paid Ads | Loyalty reward unlock | Free deluxe sample with order | Points balance, sample product image | | 5 | 21 | Email | Exclusive VIP offer | 15% off + free shipping | Best-sellers in their preferred category | | 6 | 30 | Email | "Should we keep in touch?" | 20% final offer, 72hr expiry | Sunset warning | **Step 4 -- Channel Configuration:** - Email: Klaviyo flows with branching logic based on open/click behavior. Gradual send ramp for 90+ day segments (10% Day 1, 25% Day 2, 100% Day 3). - SMS: Postscript integration, messages sent 10am-8pm local time only. Two SMS touches max for any segment. - Paid Ads: Meta custom audiences updated daily. Frequency cap of 4 impressions/week. Lookalike exclusion to avoid prospecting overlap. - Cross-channel suppression: Real-time purchase event triggers suppression across all three channels within 1 hour. **Step 5 -- Measurement:** - 12% holdout per segment (random assignment, stratified by RFM score). - Primary target: 8% reactivation rate for VIP Lapsed (vs. estimated 3% organic return rate from holdout). - Measurement window: 30 days post-last-touch. - Weekly Slack report auto-generated from Klaviyo + GA4 data. **Step 6 -- Results (after 30 days):** - VIP Lapsed: 11.2% reactivation (holdout: 3.1%). Incremental lift: 8.1 percentage points. - VIP Deeply Lapsed: 5.8% reactivation (holdout: 1.4%). Incremental lift: 4.4pp. - Standard Lapsed: 6.9% reactivation (holdout: 2.8%). Incremental lift: 4.1pp. - One-Time Buyers: 3.2% reactivation (holdout: 1.9%). Incremental lift: 1.3pp. - Total incremental recovered revenue: $47,200. - Campaign cost (creative + SMS + ads): $4,100. ROI: 10.5x. --- ### Example 2: Home Goods Marketplace ($22M Annual Revenue) **Context:** A multi-brand home goods marketplace with a 120-day median repurchase interval, 280K customers, and heavy seasonality (Q4 peak). Email list is 210K, SMS is 62K. AOV is $94. **Step 1 -- Lapse Thresholds:** - Median repurchase interval: 120 days. - At-risk: 150 days. Lapsed: 180 days. Deeply lapsed: 270+ days. - Seasonal adjustment: Customers whose last purchase was in Q4 get a 30-day grace extension before being classified as lapsed (holiday gifters who may not repurchase until the following Q4). **Step 2 -- Segmentation:** | Segment | Size | Revenue Potential | Treatment Tier | |---|---|---|---| | High-Value Lapsed (180-270 days, AOV > $120, 3+ orders) | 4,100 | $574K | Premium 6-touch | | Mid-Value Lapsed (180-270 days, 2+ orders) | 11,200 | $843K | Standard 4-touch | | Low-Value Lapsed (180-270 days, 1 order, AOV < $60) | 15,800 | $521K | Light 2-touch | | Deeply Lapsed (270-365 days, any value) | 18,400 | $460K | Reactivation 3-touch | | Dormant (365+ days) | 22,100 | Suppressed | Sunset only | **Step 3 -- Sequence Design (High-Value Lapsed):** | Touch | Day | Channel | Theme | Offer | |---|---|---|---|---| | 1 | 0 | Email | "Discover what's new in your favorite categories" | None -- curated new arrivals | | 2 | 5 | Paid Ads (Meta + Google Display) | Retargeting with top-rated products from browsed categories | None | | 3 | 10 | Email | Customer favorites + UGC reviews | Free shipping (normally $8.95) | | 4 | 17 | SMS | Flash access to a private sale | 12% off, 48hr window | | 5 | 24 | Email | "Your home deserves an update" -- seasonal editorial | 15% off + free shipping | | 6 | 35 | Email | Farewell + final offer | 20% off, 72hr expiry, sunset warning | **Step 4 -- Channel Configuration:** - Email: Iterable workflows with engagement scoring. Send-time optimization enabled. Suppression on purchase, unsubscribe, or spam complaint. - SMS: Attentive platform. Single SMS touch for mid-value, zero for low-value. Consent verified against TCPA records before enrollment. - Paid Ads: Meta CAPI integration for real-time audience syncing. Google Customer Match for search remarketing on branded + category terms. Combined ad budget: $6,500/month with daily pacing. Converted customers suppressed within 4 hours via automated audience exclusion. - Cross-channel orchestration: Iterable serves as the orchestration layer. SMS and ad triggers are API-driven from Iterable flow branching. **Step 5 -- Measurement:** - 10% holdout per segment. - Primary targets: 6% reactivation for High-Value Lapsed, 4% for Mid-Value, 2% for Low-Value. - Secondary: Monitor deliverability -- target < 0.05% spam complaint rate and < 2% bounce rate on deeply lapsed sends. - Attribution: 7-day click, 1-day view window for ads. Last-touch for email/SMS. **Step 7 -- Post-Campaign Analysis (after 60 days):** - High-Value: 7.8% reactivated (holdout: 2.2%). Incremental revenue: $89,400. - Mid-Value: 4.4% reactivated (holdout: 1.6%). Incremental revenue: $62,100. - Low-Value: 1.9% reactivated (holdout: 1.1%). Incremental revenue: $18,200. - Deeply Lapsed: 2.1% reactivated (holdout: 0.6%). Incremental revenue: $31,500. - Total incremental recovered revenue: $201,200. - Total campaign cost: $14,800 (creative, SMS credits, ad spend). ROI: 12.6x. - Key learning: Touch 3 (free shipping email) drove the highest single-touch conversion rate across all segments, suggesting shipping cost is a bigger barrier than product price for this audience. - Action: Next iteration will test free shipping as the lead offer for mid-value segments, potentially removing percentage discounts entirely. --- ## Common Mistakes 1. **Leading with discounts.** Offering 20% off in the first touch trains customers to churn and wait for the win-back discount. Start with value, product recommendations, or emotional appeals. Reserve incentives for Touches 3-5. 2. **Treating all lapsed customers identically.** A VIP who spent $2,000 over 10 orders and a one-time buyer who spent $30 need fundamentally different win-back approaches. Segment by value and tailor treatment intensity accordingly. 3. **Ignoring deliverability when mailing deeply lapsed contacts.** Sending a bulk email to 50,000 contacts who have not opened an email in 6+ months will spike bounce rates and spam complaints, potentially damaging your sender reputation for all campaigns. Ramp gradually and warm up. 4. **No holdout group.** Without a control group, you cannot distinguish between customers who were genuinely influenced by the campaign and those who would have returned organically. A 10-15% holdout is a small cost for reliable measurement. 5. **Sending SMS without verified consent.** TCPA violations carry penalties of $500-$1,500 per message. Verify that every SMS recipient has explicit, documented opt-in consent before enrollment. Do not assume that email consent extends to SMS. 6. **Failing to suppress across channels.** A customer who converts via email on Day 3 should not receive an SMS offer on Day 5 and see retargeting ads for another week. Implement real-time cross-channel suppression triggered by purchase events. 7. **Setting arbitrary lapse thresholds.** Using "90 days" because it sounds right, without analyzing actual repurchase intervals, leads to either premature outreach (annoying active customers) or delayed action (contacting fully disengaged contacts). Let the data define the thresholds. 8. **Overly aggressive frequency.** Sending 6 emails in 10 days to someone who has already stopped engaging is more likely to generate an unsubscribe or spam complaint than a purchase. Space touches appropriately -- minimum 4-5 days between emails. 9. **No sunset logic.** Customers who do not respond to the full win-back sequence should be moved to a suppressed or drastically reduced-frequency list. Continuing to mail non-responders indefinitely destroys deliverability and wastes resources. 10. **Ignoring post-reactivation retention.** Winning a customer back with a 20% discount means nothing if they make one discounted purchase and immediately lapse again. Track second-purchase rates and LTV of reactivated cohorts to measure true campaign value. --- ## Resources - **Output Template:** `references/output-template.md` -- Structured template for documenting your win-back campaign plan. - **Segmentation Guide:** `references/segmentation-guide.md` -- Detailed guide on RFM segmentation for win-back targeting. - **Channel Strategy Guide:** `references/channel-strategy-guide.md` -- Multi-channel strategy playbook for email, SMS, and paid ads. - **Quality Checklist:** `assets/quality-checklist.md` -- 45-item checklist covering every aspect of campaign quality assurance. - [Klaviyo Win-Back Flow Best Practices](https://www.klaviyo.com/blog/winback-email-examples) -- ESP-specific implementation guidance. - [TCPA Compliance Guide](https://www.fcc.gov/consumers/guides/stop-unwanted-robocalls-and-texts) -- FCC guidance on SMS consent requirements. - [Google Ads Customer Match](https://support.google.com/google-ads/answer/6379332) -- Setting up CRM-based audiences for paid remarketing. - [Meta Custom Audiences Documentation](https://www.facebook.com/business/help/744354708981227) -- Building and managing retargeting audiences from customer lists.

path: output-template.md
content: # Win-Back Campaign Output Template

Use this template to document a complete win-back campaign plan. Fill in each section with specifics for your brand and audience.

---

## 1. Campaign Overview

| Field | Value |
|---|---|
| **Brand / Store** | [Brand name] |
| **Campaign Name** | [e.g., "Q2 2026 Win-Back"] |
| **Launch Date** | [Target launch date] |
| **Campaign Duration** | [Total sequence length, e.g., 35 days] |
| **Campaign Owner** | [Name and role] |
| **Estimated Audience Size** | [Total lapsed customers targeted] |
| **Estimated Revenue Target** | [Incremental recovered revenue goal] |
| **Budget** | [Total budget across creative, SMS credits, ad spend] |

---

## 2. Lapse Threshold Definitions

| Tier | Threshold | Days Since Last Purchase | Data Basis |
|---|---|---|---|
| At-Risk | [e.g., 1.25x median] | [e.g., 56 days] | [Source: median repurchase interval of X days] |
| Lapsed | [e.g., 1.5x median] | [e.g., 68 days] | [Organic return rate drops below X% at this point] |
| Deeply Lapsed | [e.g., 2x median] | [e.g., 90+ days] | [Only X% return organically beyond this threshold] |

**Seasonal Adjustments:** [Note any adjustments for seasonal buying patterns, e.g., Q4 gifters get 30-day extension]

**Exclusions:** [List any populations excluded from lapse classification -- subscription customers, wholesale accounts, etc.]

---

## 3. Audience Segmentation

### Segment Definitions

| Segment Name | Recency Range | Frequency | Monetary (AOV/LTV) | Size | Est. Revenue Potential |
|---|---|---|---|---|---|
| [e.g., VIP Lapsed] | [68-90 days] | [3+ orders] | [AOV > $75] | [2,400] | [$198K] |
| [Segment 2] | | | | | |
| [Segment 3] | | | | | |
| [Segment 4] | | | | | |
| [Segment 5] | | | | | |

### Suppression Rules

- [ ] Hard bounces removed
- [ ] Unsubscribed contacts removed
- [ ] Spam complainants removed
- [ ] Legally suppressed contacts removed (GDPR deletion requests, etc.)
- [ ] Invalid/disconnected phone numbers removed from SMS audiences
- [ ] Active subscribers excluded (purchased within lapse threshold)
- [ ] Subscription/auto-replenishment customers excluded
- [ ] Other: [specify]

---

## 4. Sequence Design

### Segment: [Segment Name]

**Treatment tier:** [Premium / Standard / Light]
**Total touches:** [Number]
**Sequence duration:** [Days]

| Touch # | Day | Channel | Subject / Message Theme | Offer | Dynamic Content | Exit Trigger |
|---|---|---|---|---|---|---|
| 1 | 0 | [Email/SMS/Ad] | [Theme summary] | [None / % off / free shipping] | [Product recs, last purchased, etc.] | [Purchase / Click / None] |
| 2 | | | | | | |
| 3 | | | | | | |
| 4 | | | | | | |
| 5 | | | | | | |
| 6 | | | | | | |

**Branching logic:** [Describe any conditional paths -- e.g., "If Touch 1 opened but not clicked, send Touch 2A instead of 2B"]

*Repeat this section for each segment.*

---

## 5. Channel Configuration

### Email

| Setting | Value |
|---|---|
| **ESP Platform** | [Klaviyo / Iterable / Braze / etc.] |
| **From Name** | [e.g., "Sarah at BrandName"] |
| **From Address** | [e.g., [REDACTED_SECRET]] |
| **Reply-To** | [e.g., [REDACTED_SECRET]] |
| **Sending Domain** | [Authenticated domain] |
| **Warm-Up Plan** | [For deeply lapsed: ramp schedule, e.g., 10% Day 1, 25% Day 2, 100% Day 3] |
| **Send-Time Optimization** | [Enabled / Disabled] |

### SMS

| Setting | Value |
|---|---|
| **SMS Platform** | [Postscript / Attentive / Klaviyo SMS / etc.] |
| **Sender ID / Short Code** | [Number or short code] |
| **Quiet Hours** | [e.g., 9pm-9am local time] |
| **Consent Verification** | [How consent was verified -- date, source] |
| **Max SMS per Sequence** | [e.g., 2] |
| **Character Limit Target** | [e.g., 160 chars to avoid multi-segment] |

### Paid Ads

| Setting | Value |
|---|---|
| **Platforms** | [Meta / Google / TikTok / etc.] |
| **Audience Upload Method** | [Manual CSV / API sync / CAPI] |
| **Audience Refresh Cadence** | [Daily / Real-time] |
| **Frequency Cap** | [e.g., 4 impressions/week] |
| **Daily Budget** | [Per platform] |
| **Conversion Exclusion Window** | [e.g., suppress within 4 hours of purchase] |
| **Ad Formats** | [Static image / Carousel / Video / etc.] |

### Cross-Channel Suppression

| Trigger Event | Suppression Action | Latency |
|---|---|---|
| Purchase | Suppress all remaining touches (email, SMS, ads) | [e.g., < 1 hour] |
| Unsubscribe (email) | Remove from email sequence; SMS and ads continue | [Immediate] |
| SMS opt-out | Remove from SMS; email and ads continue | [Immediate] |
| Spam complaint | Suppress all channels | [Immediate] |

---

## 6. Measurement Plan

### Holdout Groups

| Segment | Holdout % | Holdout Size | Assignment Method |
|---|---|---|---|
| [Segment 1] | [10-15%] | [N] | [Random, stratified by RFM score] |
| [Segment 2] | | | |

### KPIs

| KPI | Definition | Target | Measurement Window |
|---|---|---|---|
| **Reactivation Rate** | % of recipients who make a purchase | [e.g., 8%] | [30 days post-last-touch] |
| **Incremental Lift** | Reactivation rate minus holdout return rate | [e.g., 5pp] | [30 days] |
| **Recovered Revenue** | Total revenue from reactivated customers | [e.g., $50K] | [30 days] |
| **Cost per Reactivation** | Total campaign cost / reactivated customers | [e.g., $12] | [Campaign duration] |
| **ROI** | (Incremental revenue - cost) / cost | [e.g., 8x] | [30 days] |
| **Unsubscribe Rate** | % of email recipients who unsubscribe | [< 1%] | [Per touch] |
| **Spam Complaint Rate** | % of delivered emails marked as spam | [< 0.05%] | [Per touch] |
| **Second Purchase Rate** | % of reactivated customers who buy again within 90 days | [e.g., 25%] | [90 days post-reactivation] |

### Reporting

| Report | Frequency | Owner | Distribution |
|---|---|---|---|
| Deliverability monitoring | Daily (first 72 hours) | [Name] | [Slack channel / email] |
| Performance dashboard | Weekly | [Name] | [Team meeting / async] |
| Post-campaign analysis | Once (campaign end + measurement window) | [Name] | [Stakeholder presentation] |

---

## 7. Timeline and Approvals

| Milestone | Target Date | Owner | Status |
|---|---|---|---|
| Segmentation and data pull | [Date] | [Name] | [ ] |
| Creative brief finalized | [Date] | [Name] | [ ] |
| Email templates designed and coded | [Date] | [Name] | [ ] |
| SMS copy approved (legal review) | [Date] | [Name] | [ ] |
| Ad creative produced | [Date] | [Name] | [ ] |
| Flows built and QA tested | [Date] | [Name] | [ ] |
| Holdout groups assigned | [Date] | [Name] | [ ] |
| Audiences uploaded to ad platforms | [Date] | [Name] | [ ] |
| Soft launch (first segment) | [Date] | [Name] | [ ] |
| Full launch | [Date] | [Name] | [ ] |
| Mid-campaign review | [Date] | [Name] | [ ] |
| Post-campaign analysis | [Date] | [Name] | [ ] |

---

## 8. Post-Campaign Results

*Complete this section after the campaign and measurement window conclude.*

### Performance Summary

| Segment | Audience | Reactivated | Rate | Holdout Rate | Incremental Lift | Revenue |
|---|---|---|---|---|---|---|
| [Segment 1] | | | | | | |
| [Segment 2] | | | | | | |
| **Total** | | | | | | |

### Channel Performance

| Channel | Sends/Impressions | Conversions | Conv. Rate | Revenue | Cost | CPA |
|---|---|---|---|---|---|---|
| Email | | | | | | |
| SMS | | | | | | |
| Paid Ads | | | | | | |
| **Total** | | | | | | |

### Key Learnings

1. [Learning 1]
2. [Learning 2]
3. [Learning 3]

### Recommendations for Next Iteration

1. [Recommendation 1]
2. [Recommendation 2]
3. [Recommendation 3]


path: segmentation-guide.md
content: # Recency-Frequency-Monetary Segmentation Guide for Win-Back Campaigns

This guide covers how to apply RFM segmentation specifically to lapsed customer populations for win-back targeting. It focuses on practical implementation rather than theory, with concrete scoring methods, segment definitions, and treatment recommendations.

---

## Why RFM for Win-Back

Win-back campaigns fail most often when they treat all lapsed customers the same. A customer who placed 15 orders over two years with a $120 AOV and lapsed 3 months ago is fundamentally different from a one-time buyer who spent $28 eleven months ago. RFM segmentation separates these populations so you can allocate budget, creative effort, and incentive depth proportionally to expected return.

**The core principle:** Invest the most in winning back customers who are the most recently lapsed and historically most valuable, because they have the highest probability of reactivation and the highest revenue upside.

---

## Scoring Methodology

### Step 1: Define the Scoring Population

Include only customers who meet your lapse threshold (see SKILL.md, Step 1). Do not score active customers -- they are not candidates for win-back.

**Population = all customers where:**
- Days since last purchase >= your "lapsed" threshold
- Customer has not been legally suppressed or hard-bounced
- Customer has at least one valid contact method (email or phone)

### Step 2: Score Each Dimension

Score each dimension on a 1-5 scale using quintile-based distribution. This ensures roughly equal-sized groups within each dimension.

#### Recency (R)

Measures how recently the customer last purchased, relative to other lapsed customers.

| Score | Definition | Example (if lapse threshold = 90 days) |
|---|---|---|
| 5 | Most recently lapsed (just crossed threshold) | 90-110 days ago |
| 4 | Recently lapsed | 111-140 days ago |
| 3 | Moderately lapsed | 141-180 days ago |
| 2 | Significantly lapsed | 181-270 days ago |
| 1 | Deeply lapsed | 271+ days ago |

**Important:** These are relative scores within the lapsed population. An R=5 customer is still lapsed -- they are simply the *most recently* lapsed.

**Implementation note:** Use percentile-based cutoffs from your actual data distribution rather than fixed day ranges. The example above is illustrative.

#### Frequency (F)

Measures total number of completed orders in the customer's lifetime.

| Score | Definition | Typical Thresholds |
|---|---|---|
| 5 | Highest purchase frequency | 8+ orders |
| 4 | High frequency | 5-7 orders |
| 3 | Moderate frequency | 3-4 orders |
| 2 | Low frequency | 2 orders |
| 1 | Single purchase | 1 order |

**Adjustment for tenure:** Consider normalizing frequency by customer tenure (orders per month) to avoid penalizing newer customers. A customer who placed 3 orders in 4 months is higher-frequency than one who placed 4 orders in 3 years.

#### Monetary (M)

Measures total revenue or average order value. Choose the metric that best reflects customer value for your business.

| Score | Definition | Use Total Revenue When... | Use AOV When... |
|---|---|---|---|
| 5 | Highest value | You want to prioritize cumulative spend | You want to identify high-ticket buyers regardless of frequency |
| 4 | High value | Product mix is narrow (similar prices) | Product mix is wide (varying price points) |
| 3 | Moderate value | | |
| 2 | Low value | | |
| 1 | Lowest value | | |

**Recommendation for most ecommerce brands:** Use total revenue as the primary monetary score, but flag customers with high AOV + low frequency separately -- they may be gift buyers or occasion-based purchasers requiring different messaging.

### Step 3: Calculate Composite Scores

Combine R, F, and M scores into a composite. Two approaches:

**Simple concatenation:** Create a 3-digit score (e.g., R5-F4-M5 = "545"). This preserves full detail and allows granular segmentation. Best when you have large enough segments to support many treatment paths.

**Weighted average:** Calculate a single score with weights reflecting your priorities.

Recommended weights for win-back:
- Recency: 40% (most predictive of reactivation probability)
- Frequency: 35% (indicates habit strength and brand affinity)
- Monetary: 25% (indicates revenue upside)

Formula: `Composite = (R * 0.40) + (F * 0.35) + (M * 0.25)`

A customer with R=4, F=5, M=3 scores: (4 * 0.40) + (5 * 0.35) + (3 * 0.25) = 1.6 + 1.75 + 0.75 = **4.10**

---

## Segment Definitions for Win-Back

Map composite scores to actionable segments. The following framework works for most ecommerce brands. Adjust names and thresholds to fit your business.

### Tier 1: Champions at Risk (Composite 4.0-5.0)

- **Profile:** High-frequency, high-value customers who recently crossed the lapse threshold. These are your best customers who stopped buying.
- **Size:** Typically 10-15% of lapsed population.
- **Reactivation probability:** High (15-25% with intervention).
- **Treatment:** Premium 5-6 touch sequence. Personalized outreach. Dedicated loyalty offers. Consider 1:1 outreach from a customer success rep for the highest-value individuals. Do not lead with discounts -- these customers have strong brand affinity and may respond to new products, exclusive access, or emotional appeals.
- **Channel priority:** Email (primary) + SMS (secondary) + Paid Ads (supporting).

### Tier 2: Loyal Lapsed (Composite 3.0-3.9)

- **Profile:** Moderate-to-high frequency customers with decent value who have been lapsed for a moderate period.
- **Size:** Typically 20-30% of lapsed population.
- **Reactivation probability:** Moderate (8-15% with intervention).
- **Treatment:** Standard 4-touch sequence. Category-level personalization. Moderate incentives starting at Touch 3. Test free shipping vs. percentage discount.
- **Channel priority:** Email (primary) + Paid Ads (supporting). SMS only if consent is confirmed and the customer has engaged with SMS previously.

### Tier 3: Occasional Defectors (Composite 2.0-2.9)

- **Profile:** Low-to-moderate frequency, moderate value, or a mix of scores that averages out to the middle.
- **Size:** Typically 25-35% of lapsed population.
- **Reactivation probability:** Low-moderate (4-8% with intervention).
- **Treatment:** Light 2-3 touch email sequence. Broader category recommendations rather than specific product picks. Consider a simple incentive at Touch 2 to create urgency.
- **Channel priority:** Email only. Ad spend is generally not ROI-positive for this tier.

### Tier 4: One-and-Done (Composite 1.0-1.9)

- **Profile:** Single-purchase, low-value, deeply lapsed. These customers may have been deal-seekers, gift buyers, or simply did not connect with the brand.
- **Size:** Typically 25-35% of lapsed population.
- **Reactivation probability:** Low (1-4% with intervention).
- **Treatment:** Minimal -- 1-2 email touches maximum. Test whether any intervention is ROI-positive vs. holdout. If not, suppress and reallocate budget to higher tiers. Generic "discover what's new" messaging rather than personalized outreach.
- **Channel priority:** Email only, lowest send priority.

### Tier 5: Sunset / Suppress (Below minimum threshold or non-responsive to prior win-back)

- **Profile:** Customers who have been lapsed beyond your maximum window (e.g., 365+ days) or who have already received a full win-back sequence without responding.
- **Treatment:** One final sunset email offering the choice to stay on the list. Non-responders are moved to a permanent suppression list. Do not invest further.

---

## Special Segment Handling

### Seasonal Buyers

Customers whose purchase history shows a clear seasonal pattern (e.g., only buys during Q4, only buys in summer) should be flagged and either:
- Excluded from win-back until their expected purchase season approaches.
- Placed in a seasonal-specific win-back flow timed to 2-4 weeks before their historical purchase period.

**Detection:** Look for customers where 80%+ of purchases fall within the same 90-day window across multiple years.

### Discount-Acquired Customers

Customers whose first (and often only) purchase was made using a deep discount (40%+ off, first-order promo) have a significantly lower predicted reactivation rate at full price. Segment these separately and set realistic expectations -- many were never profitable customers.

**Treatment option:** Test a value-framing approach ("Here is what you are missing at full price") against a discount approach. Track whether reactivated discount-acquired customers ever make a full-price purchase.

### High-Monetary, Low-Frequency Outliers

Customers with 1-2 orders but very high AOV (e.g., $500+ in a brand where average is $60) may be gift buyers, interior designers, or bulk purchasers. Their win-back messaging should acknowledge their purchase context rather than using standard "we miss you" language.

---

## Data Requirements

To implement RFM segmentation for win-back, you need at minimum:

| Data Point | Source | Required / Optional |
|---|---|---|
| Customer ID | CRM / Ecommerce platform | Required |
| Email address | CRM / ESP | Required |
| Phone number | CRM / SMS platform | Optional (required for SMS) |
| Date of each order | Ecommerce platform | Required |
| Order count (lifetime) | Ecommerce platform / calculated | Required |
| Total revenue (lifetime) | Ecommerce platform / calculated | Required |
| Average order value | Calculated | Required |
| Last purchased product(s) | Ecommerce platform | Recommended |
| Product categories purchased | Ecommerce platform | Recommended |
| Email engagement (last open/click date) | ESP | Recommended |
| SMS consent status and date | SMS platform | Required for SMS |
| Acquisition source / first-order discount | CRM / attribution | Optional |
| Browse history (last 90 days) | Site analytics / CDP | Optional |

---

## Validation and Refresh

### Initial Validation

After building segments, validate by checking:
- Are segment sizes reasonable? No segment should be less than 500 customers (too small for statistical significance) or more than 50% of the population (too broad to be meaningful).
- Do historical organic return rates decrease as you move from Tier 1 to Tier 4? If not, your scoring weights may need adjustment.
- Does the estimated revenue potential justify the planned investment for each tier?

### Ongoing Refresh

- Re-score the lapsed population weekly or bi-weekly as new customers cross lapse thresholds and existing lapsed customers age.
- Customers who complete the win-back sequence without converting should be moved to Tier 5 (Sunset/Suppress).
- Customers who are reactivated should be removed from lapsed segments immediately and placed into post-purchase retention flows.
- Review and update scoring thresholds quarterly based on changing purchase patterns and business conditions.


path: channel-strategy-guide.md
content: # Multi-Channel Strategy Guide for Win-Back Campaigns

This guide covers how to deploy email, SMS, and paid ads as coordinated channels in a win-back campaign. It addresses channel selection by segment, timing and sequencing across channels, platform-specific best practices, and cross-channel orchestration.

---

## Channel Selection Framework

Not every segment warrants every channel. Use this matrix to determine which channels to activate for each segment tier.

| Segment Tier | Email | SMS | Paid Ads | Rationale |
|---|---|---|---|---|
| Tier 1: Champions at Risk | Yes (5-6 touches) | Yes (1-2 touches) | Yes (retargeting) | Maximum investment justified by high revenue potential and reactivation probability |
| Tier 2: Loyal Lapsed | Yes (3-4 touches) | Conditional (1 touch, only if prior SMS engagement) | Yes (retargeting, lower budget) | Strong ROI potential; SMS only where consent and engagement history support it |
| Tier 3: Occasional Defectors | Yes (2-3 touches) | No | No | Email-only keeps costs low; ad spend unlikely to be ROI-positive |
| Tier 4: One-and-Done | Yes (1-2 touches) | No | No | Minimal investment; test vs. holdout to validate any ROI |
| Tier 5: Sunset | Yes (1 touch -- sunset email) | No | No | Final permission confirmation only |

**Decision rule:** Add a channel only when the incremental cost is justified by the incremental reactivation revenue it is expected to generate. SMS adds approximately $0.02-0.05 per message; paid ads add $0.50-2.00 per reached user. These costs must be weighed against the segment's predicted reactivation rate and AOV.

---

## Email Strategy

### Role in the Win-Back Sequence

Email is the backbone of every win-back campaign. It carries the primary narrative arc, delivers the richest content, and has the lowest marginal cost per send. Every segment receives email; the number of touches and personalization depth vary by tier.

### Best Practices

**Subject lines for lapsed audiences:**
- Avoid generic "We miss you" in every email. Use it once at most.
- Reference specific products or categories: "Your favorite [Product Name] is still here"
- Create curiosity: "A lot has changed since your last visit"
- Urgency without false scarcity: "Your 15% off expires Friday"
- Test emoji vs. no emoji -- lapsed audiences often respond differently than active subscribers.

**Sender and preheader:**
- Use a personal sender name for Tier 1 ("Sarah from [Brand]") and brand name for lower tiers.
- Preheader text should complement, not repeat, the subject line.
- Consider a dedicated sending subdomain for win-back to isolate deliverability impact.

**Content and design:**
- Keep emails concise. Lapsed customers have low engagement intent -- long emails increase the chance they scan and delete.
- Lead with one clear CTA per email. Do not present 5 product categories and 3 offers simultaneously.
- Include dynamic product blocks showing items the customer previously purchased or browsed, or top sellers in their preferred categories.
- Touch 1 should never include a discount. Lead with product value, newness, or emotional connection.
- Progressive disclosure of incentives across the sequence: no offer, then free shipping, then percentage off, then best offer with deadline.

**Deliverability management for lapsed sends:**
- Segment deeply lapsed contacts (6+ months no engagement) from recently lapsed contacts and send separately.
- Ramp sending volume to deeply lapsed segments over 2-3 days: 10% on Day 1, 25% on Day 2, remaining on Day 3.
- Monitor bounce rates, spam complaint rates, and inbox placement rates after each send. Pause if spam complaints exceed 0.08% or bounce rate exceeds 3%.
- Use engagement-based sending: within each batch, prioritize contacts who have opened or clicked any email in the last 180 days.
- Consider re-permission campaigns for contacts with zero engagement in 12+ months before including them in the win-back flow.

**Timing:**
- Send-time optimization (STO) is particularly valuable for win-back, since you may not have recent engagement data to inform timing. Use your ESP's STO feature if available.
- Minimum 4-5 days between email touches. 7 days is safer for lower-tier segments.
- Avoid sending win-back emails during major promotional periods (Black Friday, holiday sales) when inbox competition is highest.

---

## SMS Strategy

### Role in the Win-Back Sequence

SMS serves as a high-attention, time-sensitive complement to email. It is most effective for delivering urgent, concise offers to customers who have previously engaged with SMS. SMS should never be the primary win-back channel -- it is too expensive and too intrusive for broad deployment.

### Best Practices

**Compliance (non-negotiable):**
- Verify explicit SMS opt-in consent for every recipient. Email consent does not equal SMS consent.
- Include opt-out instructions in every message ("Reply STOP to unsubscribe").
- Respect quiet hours: no messages before 9am or after 9pm in the recipient's local time zone. Some jurisdictions have stricter windows.
- Maintain records of consent date, source, and language for every subscriber.
- Under TCPA, penalties for non-compliant SMS messages range from $500 to $1,500 per message. This is not a risk to take casually.

**Message construction:**
- Target 160 characters or fewer to avoid multi-segment messages (which double your cost).
- Lead with the value proposition or offer, not the brand name.
- Include a trackable short link. Use branded short domains where possible (e.g., brand.link/winback).
- Personalize with first name and, if possible, a product reference.
- Create genuine urgency: "48-hour window" or "ends tonight" -- but only if the deadline is real.

**Example messages by touch purpose:**

*Check-in (no offer):*
> Hey [Name], your [Product] restock might be due. Tap to reorder: [link]. Reply STOP to opt out.

*Incentive delivery:*
> [Name], we saved you 15% off your next order. Use code WELCOME15 -- expires in 48hrs: [link]. Reply STOP to unsub.

*Final urgency:*
> Last chance, [Name]. Your 20% off expires at midnight: [link]. Reply STOP to opt out.

**Frequency and placement in sequence:**
- Maximum 2 SMS messages in any win-back sequence, regardless of segment tier.
- Place SMS touches between email touches to create a multi-channel surround effect, not on the same day as an email.
- Best SMS placement is typically mid-sequence (after 1-2 emails have established context) and for the strongest offer.

---

## Paid Ads Strategy

### Role in the Win-Back Sequence

Paid ads (primarily Meta and Google) serve as ambient reinforcement. They keep the brand visible to lapsed customers who may not be opening emails, and they create a multi-touchpoint experience that increases perceived campaign importance. Paid ads rarely drive direct conversions in isolation for win-back -- their value is in supporting email and SMS conversion.

### Platform-Specific Guidance

#### Meta (Facebook / Instagram)

**Audience setup:**
- Upload lapsed customer segments as Custom Audiences via CSV or, preferably, server-side API (Conversions API / CAPI).
- Match rates for email-based audiences typically range from 50-70%. Phone number matching improves rates to 60-80%.
- Create separate ad sets for each win-back segment tier to control budget allocation and messaging.
- Exclude recently converted customers using a dynamic exclusion audience updated daily or via real-time CAPI events.

**Creative recommendations:**
- Use carousel ads showcasing products from the customer's preferred categories.
- Include social proof (review counts, star ratings, UGC photos) -- lapsed customers may need reassurance that the brand is still worth their attention.
- Video ads (15-30 seconds) showing new products or brand story updates outperform static images for win-back on Meta.
- Ad copy should acknowledge the relationship: "It's been a while" or "See what's new" rather than generic prospecting language.

**Budget and bidding:**
- Set frequency caps at 3-5 impressions per user per week. Higher frequency for win-back leads to ad fatigue and negative sentiment.
- Allocate 60-70% of ad budget to Tier 1 and Tier 2 segments.
- Use cost-per-click (CPC) bidding rather than impressions-based bidding to optimize for engagement.
- Typical budget: $0.50-1.50 per reached lapsed customer over the campaign duration.

#### Google Ads

**Customer Match:**
- Upload lapsed customer lists to Google Customer Match for search and display remarketing.
- Match rates are typically lower than Meta (40-60%), depending on whether customers use Gmail.
- Use Customer Match for search campaigns targeting branded and category keywords -- when a lapsed customer searches for your brand or product category, your ad appears with a win-back message.

**Display remarketing:**
- Run display ads across Google Display Network targeting your uploaded customer list.
- Use responsive display ads with multiple headlines and images for automated optimization.
- Set frequency caps at 3 impressions per user per day on display.

**YouTube (optional):**
- For brands with video assets, YouTube retargeting to lapsed customer lists can be effective for brand re-awareness.
- Use non-skippable 15-second ads or skippable 30-second ads with the key message in the first 5 seconds.

### Cross-Platform Coordination

- Align ad creative themes with the current email/SMS touch in the sequence. If Touch 3 is offering free shipping, the ads running during that period should reinforce free shipping.
- Stagger ad activation: start paid ads 2-3 days after the first email touch so customers have already been re-exposed to the brand before seeing ads.
- Pause ads for customers who convert, using platform-specific exclusion audiences updated at least daily.

---

## Cross-Channel Orchestration

### Suppression Logic

Real-time cross-channel suppression is critical to avoid post-conversion annoyance and wasted spend.

| Event | Email Action | SMS Action | Paid Ads Action | Target Latency |
|---|---|---|---|---|
| Purchase | Exit flow immediately | Exit flow immediately | Add to exclusion audience | < 1 hour (email/SMS), < 4 hours (ads) |
| Email unsubscribe | Exit email flow | No change | No change | Immediate |
| SMS opt-out (STOP) | No change | Exit SMS flow | No change | Immediate |
| Spam complaint | Exit email flow | Consider removal | No change | Immediate |
| Hard bounce | Remove from email | No change | No change | Immediate |

### Orchestration Architecture

**Option A: ESP as orchestration layer (simpler)**
- Use your ESP (Klaviyo, Iterable, Braze) as the central orchestration engine.
- ESP triggers email sends directly and fires webhooks/API calls to SMS and ad platforms for audience updates.
- Pros: single workflow view, lower technical complexity.
- Cons: ad platform audience updates may have higher latency (hours vs. minutes).

**Option B: CDP as orchestration layer (more robust)**
- Use a Customer Data Platform (Segment, mParticle, Rudderstack) to manage audience membership and distribute events to all channels.
- CDP receives purchase events in real-time and updates ESP, SMS platform, and ad platform audiences simultaneously.
- Pros: fastest suppression, single source of truth for customer state.
- Cons: requires CDP infrastructure, higher cost, more complex setup.

**Recommendation:** For most ecommerce brands under $50M revenue, Option A is sufficient. Invest in Option B when you have the engineering resources and the campaign scale to justify it.

### Timing Coordination

A typical multi-channel sequence timeline for a Tier 1 segment:

```
Day 0:  Email Touch 1 (no offer)
Day 2:  Paid ads begin (brand awareness creative)
Day 5:  SMS Touch 1 (check-in, no offer)
Day 8:  Email Touch 2 (new arrivals / recommendations)
Day 10: Paid ads rotate to product-focused creative
Day 14: Email Touch 3 (free shipping offer)
Day 17: SMS Touch 2 (15% off, 48hr deadline)
Day 21: Email Touch 4 (best offer, urgency)
Day 24: Paid ads rotate to offer-focused creative
Day 30: Email Touch 5 (final offer + sunset warning)
Day 35: Paid ads end. Sunset email if no conversion.
```

**Key principles:**
- Never send email and SMS on the same day.
- Align ad creative rotation with the current email offer stage.
- Allow at least 48 hours after an SMS touch before sending the next email (give the SMS time to drive its own conversion).
- End paid ads 1-3 days after the final email/SMS touch to capture any delayed responders.

---

## Channel Performance Benchmarks

Use these as starting reference points. Actual performance varies significantly by brand, vertical, and audience quality.

| Metric | Email | SMS | Paid Ads (Meta) | Paid Ads (Google) |
|---|---|---|---|---|
| Open / View Rate | 15-25% (lapsed) | 85-95% | N/A | N/A |
| Click / CTR | 1.5-4% | 8-15% | 0.8-2% | 1-3% (display), 3-8% (search) |
| Conversion Rate | 0.5-2% | 1-4% | 0.3-1% | 0.5-2% (display), 2-5% (search) |
| Cost per Send/Impression | $0.001-0.005 | $0.02-0.05 | $0.01-0.05 (CPM basis) | $0.30-1.50 (CPC) |
| Unsubscribe / Opt-out | 0.5-2% | 1-3% | N/A | N/A |

**Note:** SMS conversion rates appear high because SMS audiences are pre-qualified (opted in, previously engaged). This does not mean SMS is "better" than email -- it reaches a smaller, more engaged subset.


path: quality-checklist.md
content: # Win-Back Campaign Quality Checklist

Complete this checklist before launching any win-back campaign. Every item should be checked and verified. Items marked with [CRITICAL] can cause legal, financial, or deliverability damage if missed.

---

## Segmentation and Data (8 items)

- [ ] Lapse thresholds are based on actual purchase interval data, not arbitrary round numbers
- [ ] RFM scores have been calculated and validated against historical return rates
- [ ] Each segment has a minimum viable size (500+ customers) for statistical significance
- [ ] [CRITICAL] Hard bounces, invalid emails, and role addresses have been removed from the audience
- [ ] [CRITICAL] Legally suppressed contacts (GDPR deletion requests, CAN-SPAM unsubscribes) have been excluded
- [ ] Customers with active subscriptions or auto-replenishment orders have been excluded
- [ ] Segment sizes and estimated revenue potential have been documented and reviewed
- [ ] Seasonal buyer flags have been applied where applicable

## Holdout and Measurement (6 items)

- [ ] Holdout groups have been randomly assigned for each segment (10-15% of population)
- [ ] Holdout assignment is stratified by RFM score to ensure balanced representation
- [ ] Holdout groups are documented and locked -- no contacts will be added or removed mid-campaign
- [ ] Primary KPIs are defined with specific numeric targets
- [ ] Measurement windows are defined (30-day, 60-day, 90-day)
- [ ] Reporting dashboard or template is built and tested with sample data

## Email Configuration (10 items)

- [ ] Email templates have been designed, coded, and tested across major email clients (Gmail, Outlook, Apple Mail, Yahoo)
- [ ] Mobile rendering has been verified on iOS and Android devices
- [ ] Dynamic content blocks (product recommendations, last purchased items) are pulling correct data
- [ ] Personalization tokens have fallback values for missing data (e.g., "there" if first name is empty)
- [ ] Subject lines and preheaders are written for all touches and reviewed for spam trigger words
- [ ] [CRITICAL] Unsubscribe links are functional and process opt-outs within 10 business days (CAN-SPAM requirement)
- [ ] Physical mailing address is included in email footer (CAN-SPAM requirement)
- [ ] From address and reply-to address are monitored -- replies will not go to a dead inbox
- [ ] Sending domain DNS is properly configured (SPF, DKIM, DMARC)
- [ ] [CRITICAL] Warm-up plan is in place for sending to deeply lapsed segments (6+ months no engagement)

## SMS Configuration (7 items)

- [ ] [CRITICAL] SMS opt-in consent has been verified for every recipient -- consent date, source, and language on file
- [ ] [CRITICAL] Opt-out mechanism is included in every SMS message ("Reply STOP to unsubscribe")
- [ ] [CRITICAL] Quiet hours are configured (no sends before 9am or after 9pm recipient local time)
- [ ] Messages are within 160-character target to avoid multi-segment charges
- [ ] Short links are functional, tracked, and use HTTPS
- [ ] Phone numbers have been validated (carrier lookup, disconnected number removal)
- [ ] SMS platform is configured to honor STOP replies immediately and across all future sends

## Paid Ads Configuration (6 items)

- [ ] Custom audiences have been uploaded to ad platforms with correct formatting
- [ ] Audience match rates have been reviewed (flag if below 40% -- may indicate data quality issues)
- [ ] [CRITICAL] Frequency caps are set (recommended: 3-5 impressions per user per week)
- [ ] Conversion exclusion audiences are configured and updating at least daily
- [ ] Ad creative has been reviewed for brand consistency with email/SMS messaging
- [ ] Budget pacing is set to distribute spend evenly across the campaign duration

## Cross-Channel Orchestration (5 items)

- [ ] [CRITICAL] Cross-channel suppression is configured: purchase event triggers exit from all channels
- [ ] Suppression latency has been tested: email and SMS suppress within 1 hour, ads within 4 hours
- [ ] Email and SMS are never scheduled on the same day for the same recipient
- [ ] Ad creative rotation aligns with the current email sequence stage (offer timing matches)
- [ ] UTM parameters are correctly applied to all links across all channels for attribution tracking

## Incentive and Offer Structure (4 items)

- [ ] Discount codes are generated, tested, and have correct expiration dates
- [ ] Discount codes have usage limits to prevent abuse (one per customer)
- [ ] Offer escalation is properly sequenced -- no touch offers a lower discount than a previous touch
- [ ] Free shipping thresholds (if applicable) are clearly communicated and technically functional

## Flow Logic and Automation (5 items)

- [ ] Flow entry criteria correctly identify lapsed customers in each segment
- [ ] Exit criteria are configured: purchase, unsubscribe, bounce, and sequence completion all trigger exit
- [ ] Wait steps between touches have correct durations
- [ ] Branching logic (if any) has been tested with sample contacts through every path
- [ ] [CRITICAL] Flow does not re-enroll customers who have already completed or exited the sequence

## Legal and Compliance (4 items)

- [ ] [CRITICAL] Campaign complies with CAN-SPAM Act requirements (unsubscribe mechanism, physical address, honest subject lines)
- [ ] [CRITICAL] Campaign complies with GDPR requirements for EU contacts (lawful basis for processing, data subject rights honored)
- [ ] [CRITICAL] Campaign complies with TCPA requirements for SMS (prior express written consent for marketing messages)
- [ ] Privacy policy is up to date and accessible from all email footers

## Pre-Launch Verification (5 items)

- [ ] Test sends have been completed for all email touches to internal team members
- [ ] Test SMS messages have been sent and received correctly
- [ ] End-to-end flow has been tested with a small batch of real contacts (seed list or internal accounts)
- [ ] All stakeholders have reviewed and approved the campaign plan, creative, and offers
- [ ] Launch schedule is documented with specific dates, responsible owners, and escalation contacts

---

## Sign-Off

| Role | Name | Approved | Date |
|---|---|---|---|
| Campaign Owner | | [ ] | |
| Email Marketing Lead | | [ ] | |
| Legal / Compliance | | [ ] | |
| Director / VP Marketing | | [ ] | |

**Total items: 60** | **Critical items: 12**

Any item marked [CRITICAL] that cannot be checked must be resolved before launch. No exceptions.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)