Product, Offering, Package, and Entitlement

6 min

At this point, most of the complex setup is behind you. Now it's time to get familiar with four essential concepts in RevenueCat that you'll need to understand before configuring your monetization strategy: Product, Offering, Package, and Entitlement.

Each of these plays a unique role in how you define, present, and manage your in-app purchases across platforms.

🧩 Product

A Product is an individual in-app purchase item created and managed directly in the store platforms such as the Google Play, Apple App Store, or on the web. This is the base unit of monetization—think monthly subscriptions, lifetime access, or one-time purchases. Each product has its own unique identifier, price, and duration settings defined by the store.

Example: A monthly subscription product like rc_1499_1m configured in App Store Connect.

🎯 Offering

An Offering is a collection of products grouped together to be presented as a paywall experience in your app. Offerings are configured in the RevenueCat dashboard and give you flexibility in managing A/B testing, price experiments, and regional or user-segmented paywalls, all without requiring app updates.

Example: An offering named default might contain several packages like a monthly, annual, and lifetime option shown to users.

📦 Package

A Package acts as a wrapper for equivalent products across different platforms (e.g., iOS, Android, Web). It allows you to present one pricing option (like a monthly subscription) consistently across platforms, while linking it to each store's specific product ID.

Each package has a unique identifier (e.g., monthly, annual) within an offering, and helps RevenueCat resolve the correct product based on the user's platform.

Example: A monthly package might map to com.app.pro_monthly_ios on iOS and com.app.pro_monthly_android on Android.

🏷️ Entitlement

An Entitlement defines what the user gains access to after a successful purchase. It represents the features or content unlocked, and abstracts away the underlying product or package identifiers. Entitlements allow you to manage user access logic (e.g., "has premium access") without hardcoding product IDs into your app.

They are also central to how RevenueCat tracks and restores purchases across devices and platforms.

Example: An entitlement called premium might be granted to users who purchase any product associated with that access level, such as monthly or yearly subscriptions.

Cheat Sheet

Understanding how these four elements work together will make it easier to manage cross-platform subscriptions, experiment with pricing strategies, and deliver a seamless in-app purchase experience.

For easier understanding, you can refer to the visual diagram in the RevenueCat In-App Purchases Cheat Sheet below:

In-App Purchases Cheat Sheet