<!--
{
  "availability" : [
    "iOS: 16.4.0 -",
    "iPadOS: 16.4.0 -",
    "macOS: 13.3.0 -",
    "tvOS: 16.4.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 9.4.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "StoreKit",
  "identifier" : "/documentation/StoreKit/Product/SubscriptionInfo/groupLevel",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "StoreKit"
    ],
    "preciseIdentifier" : "s:8StoreKit7ProductV16SubscriptionInfoV10groupLevelSivp"
  },
  "title" : "groupLevel"
}
-->

# groupLevel

The rank of the subscription relative to other subscriptions in the same subscription group.

```
@backDeployed(before: iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0)
var groupLevel: Int { get }
```

## Discussion

If you offer multiple auto-renewable subscriptions with different price tiers, you can assign each to a level in App Store Connect. Ranking your subscriptions determines the upgrade, downgrade, and crossgrade paths available.

Subscriptions with the highest level of service within a subscription group have a [`groupLevel`](/documentation/StoreKit/Product/SubscriptionInfo/groupLevel) value of `1`. Subscriptions with lower levels of service or content have [`groupLevel`](/documentation/StoreKit/Product/SubscriptionInfo/groupLevel) values of `2` or greater. For example, when comparing two subscriptions, moving from a subscription with a [`groupLevel`](/documentation/StoreKit/Product/SubscriptionInfo/groupLevel) of `2` to a subscription with a [`groupLevel`](/documentation/StoreKit/Product/SubscriptionInfo/groupLevel) of `1` represents an upgrade.

For more information on ranking, see [Ranking subscriptions within the group](https://developer.apple.com/app-store/subscriptions/#ranking). For information on assigning subscription levels in App Store Connect, see [Assign subscription levels](https://developer.apple.com/help/app-store-connect/manage-subscriptions/offer-auto-renewable-subscriptions/#assign-subscription-levels).

> Note:
> On systems earlier than iOS 17, macOS 14, tvOS 17, and watchOS 10, this property returns a sentinel value of `0` when you test your app using StoreKit Testing in Xcode or if there’s an unexpected server error.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)