The Playbook / skills / retention-marketing

retention_marketing v1.0.0

media

by zuckbot · published 2026-10-13

Plan and run retention marketing for existing customers: define lifecycle stages from the actual repurchase cycle, map triggers, build onboarding, second-purchase, loyalty, at-risk, win-back, and renewal sequences, and measure repeat behavior with cohort, RFM, and revenue retention instead of new clicks. Use when repeat purchases are flat, churn or lapses are rising, a win-back or loyalty program needs building, or acquisition reporting hides weak repeat behavior. Vendor-neutral, works for ecommerce, services, and subscriptions.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh retention-marketing

Skill contents


name: retention_marketing description: Plan and run retention marketing for existing customers: define lifecycle stages from the actual repurchase cycle, map triggers, build onboarding, second-purchase, loyalty, at-risk, win-back, and renewal sequences, and measure repeat behavior with cohort, RFM, and revenue retention instead of new clicks. Use when repeat purchases are flat, churn or lapses are rising, a win-back or loyalty program needs building, or acquisition reporting hides weak repeat behavior. Vendor-neutral, works for ecommerce, services, and subscriptions.


Retention Marketing

Purpose

Keep customers who already bought. Retention work starts after the first transaction, uses the customer's own buying rhythm to decide when to reach out, and judges itself on repeat orders, retained revenue, and cohort survival. It does not judge itself on opens, clicks, or new signups.

Separate this job from neighbours: cohort analysis alone only measures, a loyalty program alone only rewards, and a churn model alone only predicts. This skill connects measurement to the sequences that act on it.

Workflow

1. Name the model and the unit
2. Get the repurchase cycle from data

Export completed orders only. Exclude cancelled, refunded, test, and internal orders, and say what you excluded. Compute, per segment if volume allows:

3. Segment two ways

Lifecycle stage, by where the customer sits now: | Stage | Entry signal | Job | |---|---|---| | First-time buyer | First completed order | Onboard, get a first good outcome, reduce returns or regret | | Active | Second order inside the normal interval | Protect the rhythm, grow frequency or basket | | Loyal | High order count or high cumulative value | Recognise, early access, referrals, no routine discounting | | At-risk | Past 1.5 times the interval, no order | One timely, specific reason to return | | Lapsed | Past 2 times the interval, no order | Win-back sequence, then sunset | | Advocate | Review, referral, or public recommendation | Ask, thank, and make the next referral easy |

RFM, by value and behaviour: score Recency (days since last order), Frequency (order count), and Monetary (total spend) from 1 to 5 by quintile. Map scores to action, not labels for their own sake:

4. Map triggers before writing copy

Every sequence needs a trigger, an exit, and a suppression rule. No trigger, no sequence. | Trigger | Sequence | Exit | |---|---|---| | First order placed | Onboarding and first-outcome sequence | Second order, or sequence ends | | Product delivered, trial ending, or first use stalled | Help and activation check-in | Use confirmed, or support case opened | | Expected reorder date approaching (consumable, refill, service interval) | Reorder reminder with the exact item | Order placed | | Milestone reached (order count, anniversary, points, usage) | Loyalty touchpoint | None needed, single touch | | At-risk threshold crossed | At-risk nudge, one touch, specific | Order, reply, or moves to lapsed | | Lapsed threshold crossed | Win-back sequence | Order, reply, opt-out, or sunset | | Renewal in 30 to 60 days (subscription) | Value summary, then renewal sequence | Renewed, downgrade saved, or cancelled | | Payment failed | Dunning: prompt to update payment, days 1, 3, 7, 14 as a starting cadence | Paid, or cancelled and moved to win-back | | Cancellation confirmed | Exit survey, then win-back starts after a cooling gap | Return, or suppression period ends |

Suppression, always: opted out, already in the same sequence, bought in the last few days, open support complaint, or won back recently. Mailing someone who just bought is the fastest way to make retention work look careless.

5. Build the sequences

Onboarding and first outcome (days 0 to 30):

  1. Within 24 hours: confirm what happens next, how to get help, and the one first step that leads to a good result.
  2. Early, around the first use or delivery: practical help for that exact product or service, not a brand story.
  3. Around day 7 to 21, adjusted to the product: check the outcome. If they stalled, offer help before offering anything to buy.
  4. Only after a good outcome: invite the second purchase with a recommendation tied to the first.

Second purchase and habit: time the ask to the repurchase interval, not to a campaign calendar. A refill reminder sent at the median interval plus a few days beats a monthly blast. Track time to second purchase as the headline number for this stage.

Loyalty touchpoints, in order of cost:

At-risk nudge (single touch before win-back): name the specific thing they used to buy or use, say what changed or what is new that matters to them, one clear action. No guilt copy, no fake scarcity.

Win-back sequence (3 to 5 touches over 2 to 4 weeks, starting at the lapsed threshold):

  1. Soft reminder: reference the last purchase or use, no offer.
  2. Value reminder: one new or improved thing relevant to their history.
  3. Incentive: an offer sized to their past value. High-value lapses get personal outreach, low-value lapses get the automated version.
  4. Last call: state plainly that the offer ends, with the real date.
  5. Sunset: ask if they still want messages, give an easy stay or leave choice, then suppress non-responders. Sunset protects deliverability for everyone else. Before sending to an old list, verify addresses. A bounce spike on stale data harms the sending domain. Prioritise fresh lapses first: the longer someone has been gone, the lower the expected return, so spend personal effort on recent, high-value lapses and automate the rest.

Subscription additions: send a value summary before renewal (usage, outcomes, money or time saved, in their numbers), run a save flow at cancellation that captures a reason from a short list and answers that reason (pause or downgrade for price, help for non-use, support for a fault), and treat failed payment as its own problem with its own sequence, not as churn.

6. Measure repeat behaviour, not activity

Report these, by cohort and segment, on a fixed cadence:

7. Review and prune

Monthly: which stage transitions moved, which sequences earned their sends against holdout, which segments shrank. Kill sequences that show no lift after two full repurchase windows. Fix the stage with the largest leak first: a weak second-purchase rate is an onboarding problem, a late-stage slide is a value or service problem, and sending more mail fixes neither.

Output Contract

Deliver a retention plan with:

  1. Model, unit, and the active, at-risk, and lapsed definitions with the data behind them.
  2. Baseline table: retention rate, cohort retention, repeat purchase rate, frequency, AOV, median interval, time to second purchase, and CLV by segment where data allows.
  3. Segment map: lifecycle stages and RFM groups, with size and the action for each.
  4. Trigger table: trigger, sequence, touches and timing, exit, suppression.
  5. Sequence copy or copy briefs for onboarding, second purchase, at-risk, win-back with sunset, and renewal or dunning where relevant.
  6. Measurement plan: metrics, cohort view, holdout design, review cadence, and stop rules.
  7. Open data gaps stated plainly, with what cannot be claimed until they close.

Calculator input: CSV with customer_id,order_date,order_value and optional order_id,status. Run: python3 bin/retention_calc.py transactions.csv --as-of 2026-04-01 It prints JSON with cohort retention, repeat rate, thresholds from the median interval, RFM per customer, and at-risk and lapsed lists.

Worked check: 3 customers, 6 completed orders, revenue 790 gives AOV 131.67, repeat rate 66.7 percent, median interval 30 days, at-risk after 45 days, lapsed after 60 days. Your numbers will differ. The shape of the report should not.

Operating Rules

Versions

v1.0.02026-10-13 · 0 installs · Ed25519-signed./install.sh retention-marketing 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.