Skip to main content
Answer

Upgrade/Downgrade Different Subscription plans with different Time Periods

  • October 28, 2025
  • 1 reply
  • 46 views

muhammad-talha-45ddf8
Forum|alt.badge.img

Hi!

I’m currently building an iOS app using React Native and RevenueCat for handling subscriptions.
In App Store Connect, I’ve set up one subscription group that contains the following four auto-renewable subscriptions:

  1. PREMIUM – Monthly

  2. PREMIUM – Weekly

  3. SIGNATURE – Monthly

  4. SIGNATURE – Weekly

I have a few questions regarding how upgrades and downgrades work within this setup, especially when using the Purchases.purchasePackage(pkg) method in RevenueCat.

 

Question 1 – Upgrading Between Monthly Plans

If a user is currently subscribed to SIGNATURE Monthly and decides to upgrade to PREMIUM Monthly (both within the same subscription group and both having the same time duration - 1 month):

  • Will the upgrade take effect immediately, or only after the current billing period ends?

  • Does iOS handle this automatically, or do I need to write any additional code to manage upgrades (similar to Android)?

  • In other words, does RevenueCat automatically trigger the upgrade and reflect the entitlement change right away, or is there any delay?

 

Question 2 – Downgrading Between Monthly Plans

If a user wants to downgrade from PREMIUM Monthly to SIGNATURE Monthly, both having the same billing period, will the change:

  • Take effect immediately, or

  • Only after the current subscription period expires (i.e., at the next renewal date)?

 

Question 3 – Changing Between Different Durations

If a user moves from a Monthly plan (either PREMIUM or SIGNATURE) to a Weekly plan (shorter duration):

  • Will this change be applied immediately, or will it wait until the end of the current monthly period?

  • I want to confirm how iOS handles duration changes (monthly → weekly or vice versa) within the same subscription group via RevenueCat.

Best answer by alejandra-wetsch

Hey ​@muhammad-talha-45ddf8

Thank you for reaching out!

In iOS upgrades, crossgrades, and downgrades are managed automatically by iOS without requiring any code changes. So for each of these scenarios, no code changes are required.

Question 1 – Upgrading Between Monthly Plans

In this case, as you’re cross-grading to a different level but with the same duration, the change will take effect immediately.

Question 2 – Downgrading Between Monthly Plans

In this case, the subscription continues until the next renewal date, after which it is renewed at the lower level and price.

Question 3 – Changing Between Different Durations

In this case, the subscription continues until the next renewal date, after which it is renewed at the lower level and price.

For more details on how this works, I recommend checking the following documentation: 

  • This blog post explains all the different scenarios with helpful diagrams.
  • This documentation gives a summary of how Apple handles upgrades, downgrades, and crossgrades.
  • This Apple documentation explains how to rank products in a subscription group to handle upgrades, downgrades, and crossgrades better.

I hope this helps!

This post has been closed for comments

1 reply

alejandra-wetsch
RevenueCat Staff
Forum|alt.badge.img+6

Hey ​@muhammad-talha-45ddf8

Thank you for reaching out!

In iOS upgrades, crossgrades, and downgrades are managed automatically by iOS without requiring any code changes. So for each of these scenarios, no code changes are required.

Question 1 – Upgrading Between Monthly Plans

In this case, as you’re cross-grading to a different level but with the same duration, the change will take effect immediately.

Question 2 – Downgrading Between Monthly Plans

In this case, the subscription continues until the next renewal date, after which it is renewed at the lower level and price.

Question 3 – Changing Between Different Durations

In this case, the subscription continues until the next renewal date, after which it is renewed at the lower level and price.

For more details on how this works, I recommend checking the following documentation: 

  • This blog post explains all the different scenarios with helpful diagrams.
  • This documentation gives a summary of how Apple handles upgrades, downgrades, and crossgrades.
  • This Apple documentation explains how to rank products in a subscription group to handle upgrades, downgrades, and crossgrades better.

I hope this helps!