ChurnStop
Features

What ChurnStop does, in six parts.

ChurnStop intercepts WooCommerce Subscriptions cancellations with a conditional save flow built on native WC Subs APIs. Six offer types, A/B testing, analytics that lead with MRR preserved, winback email automation, and FTC click-to-cancel compliance enforced at the code level - not in documentation.

6
Offer types. Discount, pause, skip renewal, tier-down, extend trial, product swap.
1
Required question. Every additional question drops save rate by 6.7% (Churnkey data).
0
Non-compliant configurations ChurnStop will let you save. Validator rejects before write.
14 days
Default rate-limit window. Repeat cancel clicks go direct to one-click cancel.
01

Conditional save flows

Six offer types. Routed automatically by cancel reason. Applied via native WooCommerce Subscriptions APIs, not workarounds.

A single required question - why are you cancelling - routes the customer to the offer most likely to save them. Price-sensitive reasons get a percent-off discount for the next N renewals. Busy-customer reasons get a 30- or 60-day pause. Switcher reasons get a tier-down or price match. Technical issues route to support rather than an offer, per FTC rules. The mapping is editable from the admin UI; the free tier ships a sensible default.

  • Discount: percent off the next 1-12 renewals
  • Pause: subscription on-hold for 15, 30, 60, or 90 days
  • Skip renewal: advance next_payment by one billing interval
  • Tier-down: move the subscription to a cheaper product variant
  • Extend trial: add days to an active trial period
  • Product swap: switch to a different subscription product at the same or lower price
02
Coming soon

A/B testing flows and offers

Test different offer amounts, different question wording, different offer ordering. Hold the winner.

The A/B testing engine will randomly assign cancel attempts to flow variants, record which variant the customer saw, and report which variant beats the others with statistical significance. Minimum recommended sample is 200 attempts per variant; most stores reach that in 2-6 weeks. When a variant wins decisively (>95% confidence), ChurnStop will suggest promoting it to the default flow. Schema tables for variants and assignments ship in the plugin today; the runtime that reads and writes them lands in a future release.

  • Randomized variant assignment at the cancellation-event level
  • Sticky per subscriber: same subscriber always sees the same variant within a test
  • Variant-level save rate, MRR preserved, and revenue-per-attempt
  • Significance calculated automatically; no stats knowledge required
  • Winning variant can be promoted to default or kept as a holdout
03

Save-rate and MRR-preserved analytics

One dashboard. Three numbers at the top.

The dashboard leads with MRR preserved this month - the dollar figure that justifies the subscription. Underneath: save rate as a percentage, cancellation attempts in the period, breakdown by cancel reason, breakdown by offer accepted, week-over-week trend line, and the event log with filter-by-status plus a running MRR-preserved-in-view total. Cohort LTV is in the roadmap for Growth tier; the supporting schema columns (monthly_value_cents, resolved_at) are already captured on every event.

  • MRR preserved this month (the headline dollar figure)
  • Save rate: % of cancel attempts resolved without cancellation
  • Cancel reason mix: which reasons are rising, which are falling
  • Offer performance: which offer type wins by reason bucket
  • Cohort LTV (Growth+): 12-month revenue from each saved customerSoon
  • Event log with status filter and running MRR-preserved-in-view total
04
Coming soon

Winback email automation

For the customers who cancel despite the offer. Send a sequence, not a single email.

Winback will run on Growth and above. When a customer cancels, ChurnStop will queue a configurable sequence - a personal check-in, a product-update nudge, a discount bounce-back - spaced 7, 21, and 60 days after cancellation. Emails will send through your existing transactional provider (Postmark, SES, SendGrid) via a WordPress filter; ChurnStop does not route mail through its own servers. The backend worker for the sequence lands with the paid-tier checkout launch.

  • Three starter templates plus unlimited custom sequences
  • Trigger on cancellation reason or offer type declined
  • Stop-rules: already reactivated, unsubscribed, on a do-not-contact list
  • Per-sequence save rate tracked in the main dashboard
  • Uses your transactional email provider; mail never transits ChurnStop servers
05

FTC click-to-cancel compliance, at the code level

Compliance is enforced in the plugin, not in documentation. Non-compliant configurations refuse to save.

Every save-flow screen keeps a visible one-click cancellation link. The ClickToCancel validator inspects configurations at save time and rejects any flow that would hide the cancel path, add extra steps, or force support contact. Civil penalties for violations are up to $50,120 per consumer; ChurnStop removes the possibility of that liability structurally.

  • One-click cancel link on every flow screen
  • Save-time validator blocks non-compliant configurations
  • Atomic cancellation (no "pending cancellation" billing limbo)
  • Rate-limited offers (at most one flow per 14-day window by default)
  • Audit log of every flow change for compliance review
06

WooCommerce-native, not a bolt-on

Uses WC Subs APIs for coupons, pauses, and renewal shifts. Works with your existing store structure.

ChurnStop does not duplicate WooCommerce Subscriptions logic. Discounts issue actual WC Coupons. Pauses use the native on-hold status and update next_payment via WC Subs date helpers. Tier-downs call the supported subscription-switch APIs. The plugin refuses to modify WC Subs core and falls back cleanly if a required hook is missing.

  • Requires WooCommerce 8.0+ and WooCommerce Subscriptions 4.0+
  • PHP 7.4 minimum, WordPress 6.0 minimum
  • No modifications to WC Subs core or database
  • Custom tables (not post meta) for cancellation events and A/B assignments
  • GPL-2.0-or-later, open source on GitHub
Feature questions

What merchants ask before installing.

Which cancellation offer types does ChurnStop support?

Six offer types, all applied via native WooCommerce Subscriptions APIs: percent-off discount for N renewals, pause the subscription for a fixed number of days, skip the next renewal, tier-down to a cheaper plan, extend an active trial, and product-swap to a different subscription product. The free tier includes discount and pause; Starter and above unlock all six.

How does conditional branching work?

Every cancel attempt begins with a single required question - the cancellation reason. Based on the answer, ChurnStop routes to a different offer: price-sensitive reasons route to a discount, busy-customer reasons route to a pause, technical-issue reasons route to support rather than an offer, switcher reasons route to a price match. Merchants edit the mapping from the admin UI; the free tier ships a sensible default mapping.

Can I A/B test different save flows?

Yes, on Starter and above. The A/B testing engine randomly assigns cancellation attempts to variants of the flow (different offer amounts, different survey wording, different offer order), records outcomes, and surfaces statistical significance when one variant reliably beats the others. Minimum recommended sample per variant is 200 cancellation attempts; most stores hit that in 2-6 weeks.

What does the dashboard actually report?

The admin dashboard shows three numbers at the top of the page: MRR preserved this month (in dollars), save rate as a percentage, and total cancellation attempts. Below that: breakdown by cancellation reason, breakdown by offer accepted, week-over-week trend line, and the top five flows by save rate. Growth tier adds cohort LTV - how much each saved customer is worth over the following 12 months.

Does ChurnStop send any email?

On Starter: no - email is not part of the cancellation save flow. On Growth and above: yes, the winback email automation sends a sequence to customers who cancelled despite the offer. The sequence is configurable from the admin UI; ChurnStop ships three templates (discount bounce-back, product update, personal check-in) and lets you add your own. Winback emails send through your existing transactional email provider via a WordPress filter; they do not route through ChurnStop servers.

Does ChurnStop work with bundled or multi-product subscriptions?

Yes. The cancel flow runs at the subscription level, not the product level. If a single WooCommerce Subscriptions record contains multiple line items, a cancel click triggers one ChurnStop flow that can offer to pause or downgrade the entire subscription. Per-line-item cancellation is supported where WC Subs supports it.

What happens if a customer cancels the same subscription twice in quick succession?

ChurnStop rate-limits save offers per subscriber. By default the flow is shown at most once per 14-day window; repeat cancel clicks inside that window skip the offer and go directly to the one-click cancel confirmation. This prevents the flow from becoming harassment and keeps the plugin click-to-cancel compliant. The window is configurable per store from 0 (every attempt shows the offer) to 90 days.

Is there a webhook or API so I can pipe save events into my own analytics?

Yes. Every cancellation event (reason, offer shown, outcome, monthly value) is available through a WordPress action hook (churnstop_cancellation_recorded) and a REST endpoint (/wp-json/churnstop/v1/events). Most customers pipe these into Segment, Mixpanel, or a custom warehouse. The payload schema is stable and versioned.

Install the free tier. Upgrade when you see MRR preserved.

The free tier on wordpress.org includes the full compliance validator, discount and pause offers, and the save count dashboard. Paid tiers add branching flows, A/B testing, and analytics.