Skip to Content
Configure offersTrial extension

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

ConditionBlock code
Subscription is not in trialing statusOSStatus-C
Trial ends within 24 hoursCFG-TRIAL-EXTEND-WINDOW
Customer is at or above max_per_customerCFG-TRIAL-EXTEND-BUDGET
Extension would exceed Stripe’s 730-day capCFG-TRIAL-EXTEND-CAP
Offer is disabled in merchant configCFG-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