Cancellation Saves
How Arcalotl asks why a member is cancelling and offers configured saves.
When a member cancels, Arcalotl asks why first. If that reason maps to a configured save offer, Arcalotl presents the offer before scheduling the cancellation.
How it works
- Member runs
/cancel - Arcalotl asks why they are leaving
- Arcalotl checks the server's cancel-save configuration
- If the reason has a save offer, the member can accept or decline it
- If the member declines, cancellation is scheduled for the end of the billing period
Default offers
| Reason | Offer | Example |
|---|---|---|
| Too expensive | Discount | 25 percent off for 3 months |
| Not using it | Pause | Pause billing for 30 days |
| Missing features | Downgrade | Switch to a configured lower tier |
| Switching | No offer by default | Cancellation continues |
| Other | No offer by default | Cancellation continues |
Discount and downgrade offers require 14 days of tenure by default. Pause offers can be shown earlier because they do not create a discount.
A temporary discount can look like lost revenue at first glance. In retention, the better comparison is usually discounted revenue versus no renewal at all. Arcalotl's defaults are tuned around that math: short discounts, clear pause offers, reason-based routing, tenure gates, and repeat-offer cooldowns. Start with the defaults unless your server has a specific retention strategy that needs different rules.
Accepted offers
- Discount: Arcalotl applies a Stripe coupon and keeps the subscription active.
- Pause: Arcalotl starts the Stripe pause flow and records the subscription as pausing or paused.
- Downgrade: Arcalotl moves the subscription to the configured lower plan.
After a member accepts a save offer, that subscription is not eligible for another save offer for 180 days by default.
Member message copy
This is the exact member-facing copy used by the Discord cancellation flow.
If the member has more than one active subscription:
Cancel Subscription
Select the product you want to cancel.Reason picker:
Cancel Subscription
Select the reason that best fits.Reason options:
| Option | Description |
|---|---|
| Too expensive | The subscription costs more than expected. |
| Not using it | The subscription is not getting enough use. |
| Switching | Another option is a better fit. |
| Missing features | Something needed is missing. |
| Other | A different reason. |
Optional feedback modal:
Cancel Subscription
Any additional feedback? (optional)Discount offer:
Before you go -- how about a discount?
[discount percent]% off for the next [duration] monthsPause offer:
Before you go -- how about a pause?
Pause your subscription for up to [pause days] days. Resume anytime.Downgrade offer:
Before you go -- how about a different plan?
Switch to a more affordable planOffer buttons:
Accept Offer
No Thanks, CancelIf no save offer applies:
Confirm Cancellation
Your subscription will be cancelled at the end of your current billing period. Are you sure?No-offer confirmation buttons:
Yes, Cancel
Never MindWhen an offer is accepted:
Offer Accepted!
Your discount/pause/plan change has been applied. Thank you for staying!When an offer is declined or cancellation is confirmed:
Subscription Cancelled
Your subscription will remain active until the end of your current billing period.When the member dismisses the cancellation:
Cancellation Dismissed
Great! Your subscription remains active.If the offer has expired or was already processed:
Offer Expired
This offer has expired or already been processed.Analytics
The dashboard tracks save rates broken down by cancellation reason, so you can see which offers work best and adjust your retention strategy.
Configuration
Cancel saves are enabled by default. You can configure reason mapping, discount percent, discount duration, pause length, downgrade plan, tenure threshold, and repeat-offer cooldown from Retention Settings.