Trial extension
Trial extension moves a customer’s trial-end date forward by the number of days you configure. The engine only surfaces this offer while the subscription is in trialing status — once they’ve converted to a paying subscription, the offer is hidden.
Configure extension days
Set the number of days in the dashboard. Seven days is a reasonable default; 14 days works better when your trial is already 14 days or longer.
The engine enforces a per-customer limit controlled by max_per_customer in your config. In live mode, customers above that limit are ineligible; test mode relaxes the cap so you can re-run the flow during development.
What happens on Stripe
Unchurn writes a new trial_end on the subscription, measured forward from the existing trial-end date — not from when the customer accepts. The next charge moves out by the same number of days. No charge or credit is issued at extension time.
Stripe rejects trial_end values more than 730 days past billing_cycle_anchor. The engine checks this before surfacing the offer and hides it if the proposed extension would exceed the cap.
When the offer is hidden
| Condition | Block code |
|---|---|
Subscription is not in trialing status | OSStatus-C |
| Trial ends within 24 hours | CFG-TRIAL-EXTEND-WINDOW |
Customer is at or above max_per_customer | CFG-TRIAL-EXTEND-BUDGET |
| Extension would exceed Stripe’s 730-day cap | CFG-TRIAL-EXTEND-CAP |
| Offer is disabled in merchant config | CFG-TRIAL-EXTEND-DISABLED |
Common pitfalls
- Extending cold trials. More days won’t activate a customer who hasn’t used the product. If extension-takers don’t activate at meaningfully higher rates, the offer isn’t doing work.
- Hardcoding the next-charge date in your own copy. The widget shows the new trial-end date on the confirmation screen; you don’t need to compute it.
Where to go next
- Discount — the typical fallback when trial extension is declined.
- The five offers — the strategic overview.
- Supported subscriptions — full eligibility rules.