Do free trial days roll over or reset when creating subsequent reoccurring charge subscriptions?

Topic summary

Main issue: How Shopify app free trial days behave when a merchant changes paid plan tiers mid-trial, and how to ensure trials are only granted once.

Context: A public Shopify app offers Free/Low/Mid/High tiers with extended free trials for paid plans. If a merchant starts a 30-day trial on a paid plan and upgrades on day 10, they want the remaining 20 days to carry over—not reset.

Key questions:

  • Using appSubscriptionCreate with trialDays=30 on the second subscription: does it reset the trial to 30 days (allowing unlimited free days via plan switching)?
  • Using appSubscriptionCreate without trialDays on the second subscription: does the new plan inherit the unused trial days, or does billing start immediately?
  • Is it the app’s responsibility to track first activation and set trialDays to the remaining amount on subsequent subscriptions?
  • Is there a GraphQL field to retrieve the remaining free trial days of the current subscription?

Status: Request for clarification; no confirmed answer yet.

Summarized with AI on February 6. AI used: gpt-5.

We’re building a public Shopify app that has several pricing plans including Free / Low / Mid / High tiers. We want to offer extended free trials to any paid plans. But only once in the the app’s lifetime.

For example, a merchant starts a paid plan with 30 days free trial. On day 10, they decide to upgrade to the next level pricing plan. We want them to now have 20 days of free trial left on the new plan.

For the initial subscription, we can use appSubscriptionCreate with a trialDays value of 30 days.

For the second subscription, if we use appSubscriptionCreate with trialDays of 30 for the new plan, does that start the free trial clock once again at 0 and they now have 30 days of free usage? This wouldn’t work for us, as merchants could keep switching plans for infinite free trial days.

Or, if we use appSubscriptionCreate with no trialDays input, will the new plan inherit the unused free trial days from the previous subscription? Or, will this kill their free trial days and start billing immediately?

Or, is it up to us to maintain a record of when the first plan was created, and calculate the number of remaining free trial days when creating the second subscription? EG, we have to set trialDays to 20 in the second subscription of the example above.

Finally, is there a way to easily retrieve the remaining free trial days of the current subscription through GraphQL?

Many thanks for any confirmation.