See how to export data from ChurnIQ.
The Subscription Report exports a row for every subscription in Cleeng, including its lifecycle status, revenue, payment details, and churn information.
Each column has a source name (used when no formatting is applied during scheduled export) and a display name (used in the formatted version). The names below are the display names.
Fields
| Field | Type | Description | Is Filter |
| Subscription ID | bigint | A unique identifier of a subscription (recurring offer purchased by a specific customer) at Cleeng. | Yes |
| Customer ID | bigint | Customer identification in Cleeng. A unique reference ID for each customer that has a Cleeng account. | Yes |
| First name | varchar(255) | Customer first name. Source: Cleeng Capture. | Yes |
| Last name | varchar(255) | Customer last name. Source: Cleeng Capture. | Yes |
| varchar(128) | Customer email. | Yes | |
| Country | varchar(3) | Country setting of a customer. The initial country setting is automatically selected based on their IP detection. | Yes |
| Account activation date | date (YYYY-MM-DD) | Date of the account activation. | Yes |
| Last login date | date (YYYY-MM-DD) | Date of the customer's last login. | Yes |
| Offer title | varchar(255) | The title of the subscription offer. | Yes |
| Offer ID | varchar(16) | Cleeng's offer identifier of the subscription. The structure is as follows: the first letter defines the type of offer. It is followed by 9 numbers, underscore, and country code, e.g. S123456789_PL. | Yes |
| Offer group ID | varchar(16) | The identifier of the whole group of offers in case there are multilingual offers dedicated for particular countries. | Yes |
| Offer price | decimal(35,6) | Value of the offer price without tax in 'offer currency'. | Yes |
| Offer currency | varchar(3) | The currency in which the offer is set by the broadcaster. | Yes |
| Offer period | varchar(10) | Subscription renewal period (e.g. monthly, 3-months, 6-months). | Yes |
| Subscription status | string | Current status of the subscription. Binary variable: active or churned. | Yes |
| Payment method | varchar(30) | The method used by a customer to make a purchase: Mastercard, Visa, AMEX, iDEAL, sms, ivr, direct banking, etc. | Yes |
| Last transaction date | date (YYYY-MM-DD HH:MM:SS) | Day on which the last transaction related to the subscription was completed. | Yes |
| No. of transactions | int | Number of transactions completed for the particular subscription. | Yes |
| Subscription lifetime revenue | decimal(36,6) | Overall net revenue from the particular subscription in the broadcaster's currency. | Yes |
| Campaign | varchar(255) | The campaign attributed to the last transaction. | Yes |
| Campaign (last transaction) | varchar(255) | The coupon code used in the last transaction. | Yes |
| Subscription start date | datetime (YYYY-MM-DD HH:MM:SS) | Date with the precise time at which the subscription started. | Yes |
| Cancellation date | date (YYYY-MM-DD) | Date on which the customer cancelled a subscription. | Yes |
| Cancellation reason | varchar(140) | Reason for the subscription cancellation, if provided by the customer at the moment of cancellation. Cancellation reason is a free text field in our APIs, so it's up to the broadcaster how it's configured on the front end (for better data consistency we recommend configuring a dropdown list of predefined values). | Yes |
| Churn reason | varchar(140) | Reason for the subscription churn or cancellation, if provided. See possible values below. | Yes |
| Expiry date | date (YYYY-MM-DD) | Date on which the subscription expired or will expire. | Yes |
| Marketing terms | varchar(10) | Customer consent to marketing terms. Takes one of three values: accepted, declined, or not specified when the customer does not provide an answer. | Yes |
| Acquisition channel | varchar(20) | Store or method through which the subscription was bought (Apple, Android, Web). | Yes |
| Latest subscription | int | Binary variable: 1 if the subscription is the latest for a particular customer, 0 if not. It's a subscription that, regardless of its current status, has the most recent start date. | Yes |
| Latest timestamp in subscription history | datetime (YYYY-MM-DD HH:MM:SS) | Date and time of the latest event for a particular subscription, e.g. renewed. Can be used to find the last updated subscriptions. | Yes |
| Ssoh Latest Timestamp Formatted | datetime (DD/MM/YY HH:MM) | Date and time (including seconds) of the latest event for a particular subscription, e.g. renewed. Can be used to find the last updated subscriptions. | Yes |
| Customer External ID | varchar(255) | External Customer unique identifier, if populated in the payment process. | Yes |
| Subscription lifetime (days) | number | Number of days the particular subscription is/was active. | Yes |
| External properties | varchar(16777216) | External properties in JSON that the broadcaster has set for the subscription. | Yes |
| Is In Grace Period | varchar(3) | Indicates whether the subscription is currently in a grace period, a temporary state in which the subscription remains active after the end date, typically due to failed payment attempts. Possible values: Yes (the subscription is in a grace period) or No (the subscription is not in a grace period). | Yes |
| Subscription Creation Type | varchar(20) | Describes how the subscription was originally created. Applies to every subscription, no matter where it started. See possible values below. | Yes |
| Previous Subscription ID | number | Shows the ID of the subscription that came before this one, when applicable. This field will only be filled in for Transfer and will show the ID of the original subscription. It will be left empty for Standard, Revival, and Import subscriptions. | Yes |
Churn reason: possible values
- Customer churn: The subscriber voluntarily cancelled their subscription. The subscription stopped renewing at the end of the billing period and was terminated.
- Payment failed: The subscription was terminated after unsuccessful payment collection. This includes card expiry, insufficient funds, or other payment gateway failures not recovered during the dunning/retry period.
-
Broadcaster churn: The subscription was cancelled or terminated by you (the publisher), not by the subscriber. Common scenarios: manual cancellation by your customer care team on a subscriber's behalf, account cleanup operations, or operational corrections such as duplicate subscription removal. Additionally:
- Default app store behavior (missing reason): If the system cannot retrieve a proper cancellation reason from an external app store during the termination process, it defaults to broadcaster churn (publisherRequested). For example, if a termination request to Android fails, or if the cancelReason received from Android is NULL or is matched to "Replaced" or "Developer Canceled".
- External service status mapping: When an external platform's subscription status cannot be matched 1:1 with our internal churn reasons, it is categorised as broadcaster churn (for example, Roku onHoldInitiated notification).
- Transfer: The subscription was terminated because it was reassigned to a different customer account. This occurs in StoreKit 2 integrations when a subscriber accesses your service via a different account while holding a valid Apple receipt. A new subscription is created on the new account; the old one is terminated with this reason. See also: Unidentified User (SK2).
- Policy violation: The subscription was terminated due to fraud, account abuse, or terms of service breach. Tracked separately from Broadcaster churn to allow clean filtering in retention analytics.
Subscription Creation Type: possible values
- Standard: A regular new purchase.
- Transfer: The subscription was moved from another customer's account. For example, this is used when transferring an Externally-Managed Subscription to a different user's account.
- Revival: The subscription was reactivated after previously being terminated. It's important to differentiate this from a "winback," as a revival reactivates a previously churned subscription under the same subscription ID. For more details, see Revive Externally-Managed Subscription.
- Import: The subscription was added during a data migration, without a payment transaction.
The Transfer and Revival creation types are only applicable to non-web subscriptions. See the Multi-Channel Billing documentation for more details.
Dimensions and Events
The Subscription Report provides detailed insights into subscriber activity, helping you analyse subscription status changes, revenue trends, churn behavior, and campaign performance. This data is structured into dimensions (static attributes) and events (actions that occur during the subscription lifecycle).
By understanding these metrics, you can:
- Track how users start, renew, or cancel subscriptions.
- Identify revenue trends based on lifetime value and transaction history.
- Analyse churn patterns and campaign effectiveness.