Analyzing your subscription business with visualizations


Charts are available on paid plans.

RevenueCat charts allow you to understand your user base with key subscription specific metrics, filters, and segments. All charts are generated from the current snapshot of purchase receipts saved in RevenueCat and work independently from any in-app usage.

This means that your charts are always up-to-date, without having to rely on any client-side event logging. However, since receipt files are dynamic, this means even historical data may change from day-to-day if for example a user was refunded. This also means that data in RevenueCat may be different than other systems tracking similar metrics - see the section on Differences In Data for more information.


Charts show production data only

Due to the limitations of the sandbox environments, charts are only displayed for production transaction data.

Data Discrepancies

Reconciling data between multiple sources is a fundamental challenge for all analytics systems. As a consequence, in-app purchase data from Apple, Google, or Stripe may not match what RevenueCat reports in Charts or in Overview. Common reasons for these discrepancies are:

  • You migrated your app to RevenueCat (receipts must be sent through our SDK or API to be counted in Charts)
  • There is a disagreement between the store and RevenueCat over a definition (e.g., Apple uses fiscal months, whereas RevenueCat uses calendar months; Google considers trials to be active subscriptions, whereas RevenueCat does not)
  • RevenueCat makes an estimation in the absence of clear guidance from the store (e.g., currency conversions, taxes, price changes)

When reporting tax information, please use the data provided by the payment processor (i.e., Apple, Google, Stripe), instead of RevenueCat data.

Please see our community post for a more in-depth discussion of data discrepancies.

Recreating Our Charts

Calculating in-app purchase metrics at scale is a complex process: Each of our metrics entail making decisions as to how users are grouped (i.e., cohorts), how users with different subscription histories are compared, etc.

We strive to provide clear and accurate insights into your data, but we cannot guarantee that our Charts definitions will match third-party definitions of similar metrics.


For detailed information on a particular Chart, refer to the following guides:

Filters and Segments

All charts can be filtered, while subscription, revenue, and active trial charts can be filtered and/or segmented.

Filters allow you to limit the charts to only include data that matches one or more attributes. This is useful when you want to check the performance of a specific property, such as a certain country or product identifier.

Segments allow you to break down the chart totals into underlying data segments. This is useful for comparing the performance of specific properties, such as monthly vs. annual subscriptions.

ProjectThe different projects you have access to in RevenueCat. These projects contain your apps across various platforms.
Apple Search Ads Ad GroupIf you're collecting Apple Search Ads Attribution, the specific ad group that drove the install (iOS only).
Apple Search Ads CampaignIf you're collecting Apple Search Ads Attribution, the specific campaign that drove the install (iOS only).
CountryThe device locale that was recorded with the purchase or the last known locale of the customer. May be unknown.
First Purchase MonthThe month that the first purchase (incl. free trials) was recorded for the user (segment option only).
Install MonthThe month that the user was first seen by RevenueCat (segment option only).
OfferingThe offering identifier set in RevenueCat.
Product DurationThe duration of the normal subscription period (not trial or intro period).
ProductThe product identifier set in the store.
StoreThe store that processed the purchase. Either App Store, Play Store, Amazon Appstore, or Stripe.


Filters do not affect 'New Customers' number

Filters and segments do not apply to the 'New Customers' number. It is possible for customers to jump between web, iOS, and Android devices, so these filters only apply to transactions, which always happen through a particular Store.

Exporting Data

The underlying chart data can be exported in .csv format by clicking the Export CSV button.


Saving Charts

Your most frequently used chart configurations can be saved by clicking on the Save button. This will save all settings such as segments, filters, time / period settings, and bar / line view.


Time settings are saved relatively. Meaning if you select "last 7 days", the chart will always show the last 7 days prior to the current day (not the 7 days prior to the date the chart was saved). This does not apply to custom timeframes.

Give it a name and select Save, your chart will be saved on the left-hand side.

618618 464464

Other Options

Date Range

Choose the the date range for the x-axis of the charts.



Choose the time scale for the x-axis of the charts. Use a day timescale to see the most granular level of data and lower resolutions like month to spot longer term trends.



All charts are displayed in UTC time.

Sandbox Data

Due to the limitations of the sandbox environments, charts can only display production transaction data.



Whenever a subscription is refunded, that subscription is counted as active between its start date and the refund date. Any refunded revenue is removed from all revenue-based charts. You can use the Refund Rate chart to gain additional insights into how many of your subscriptions get refunded, and how that refund rate develops over time.

Next Steps

  • Learn how to view the purchase history of a specific user and grant them promotional access via the Customer View