Introducing seasonal subscriptions to your offer can be a strategic move for your D2C subscriber platform. They can be a great fit when your broadcasting content is tied to specific seasons or events, such as sports leagues, TV show premieres, or holiday specials.
Seasonal subscriptions renew automatically when the next season begins, so you don’t need to acquire the same customers twice (improved subscriber retention and decreased customer churn). You can also provide more accurate revenue projections based on the expected auto-renewals and other customer data available in Cleeng ChurnIQ.
Seasonal subscriptions come with a time-based pricing mechanism, where you can set up different prices: early-bird, low and high season, etc. These can help drive engagement and attract new customers during specific seasons or events.
With Cleeng you can easily deal with the complexity of managing different billing cycles, renewals, and related legal requirements.
Setting Up a Seasonal Subscription
Seasonal subscription setup requires two steps. First, you need to define your seasonal schedule(s). Then you can create a seasonal subscription that’s linked to one of your schedules. Below, you can see how that works step by step.
Step 1: Set up your seasonal schedule
A seasonal schedule is a group of seasons. See below for the exact setup steps.
- Go to the ‘Offers & Coupons’ section in the main navigation.
- Choose ‘Manage seasons’ (upper right side of the panel).
- Click on ‘Add a new seasonal schedule’.
- Provide the schedule name and add seasons with start and end dates and times.
- Season start and end dates don’t need to be the same as the real season (e.g. sports season). Treat these dates as business season, as you might want to sell access to the recordings from an already finished season for example.
- Season end date is a boundary (business) date from which you start selling the next season. Before this date, the existing season is still sold.
- Next season's start date is the renewal date.
- An upcoming season can't start in less than 31 days. The renewal notification emails are sent to the users 30 days before the nearest season start date (the renewal date), because of a legal requirement in some regions.
- If a user purchases an offer between the seasons (after the end date of one season and before the start date of the next season), they will be charged at purchase, and the renewal date will be pushed towards the 2nd upcoming season (so that they are not charged twice for the upcoming season).
- Seasons in one seasonal schedule can’t overlap.
- Seasons must be added in chronological order. You won’t be able to create a season with a start date earlier than the end date of an existing season.
- You can edit current and upcoming seasons. Past seasons and past dates can’t be edited or removed.
-
Promotional prices are blocked once the transaction within this price range is made. Promotional price cannot be deleted once it was used.
- Set up more seasons by clicking on ‘+ Add another’.
- Recommended: Define at least 2 seasons in advance, as the next season’s start date is the renewal date.
- Recommended: Define at least 2 seasons in advance, as the next season’s start date is the renewal date.
- Once your seasonal schedule is ready, click ‘Save’.
You can see an overview of a seasonal schedule in the diagram below:
You can define multiple seasonal schedules, for example, ‘Football League Schedule’, ‘Female Football League Schedule’, ‘U21 Football League Schedule’ etc. And link relevant offers to each schedule.
It’s worth noting that schedules are independent entities that are just linked to offers (but they are not part of an offer). Multiple seasonal subscription offers can be linked to one seasonal schedule. See how it works in the next step.
Step 2: Set up your seasonal subscription offer
- Go to the ‘Offers & Coupons’ section in the main navigation.
- Choose ‘Create offer’ (upper right side of the panel)
- Steps 1 and 2 are the same as for all kinds of subscription offers at Cleeng.
- In step 3 (pricing), choose ‘Seasonal’ as the billing period.
Important: Make sure you have Dunning Action Settings configured for the seasonal billing period and each payment method. Dunning Action Settings must be set up for the recurring billing to function.- If you integrated with Cleeng prior to August 2023 and you're adding the first seasonal subscription offer, you need to configure the Dunning Action Setting for the seasonal billing cycle for each payment method you offer.
- Check with Broadacter Support if you are not 100% sure of your settings.
- Set the default offer price. It’s applied when there is no promotional price set up (see the next steps) and it’s always the renewal price for that offer. Important: Once your subscription offer has active subscribers, it is not possible to change its default offer price (the renewal price). However, you can create different promotional prices for first-time purchases — see point 9 below.
- Provide the free trial settings and geo restrictions if you wish.
- Choose the season schedule you created in step 1 of the tutorial.
- Now you can select different seasons from that schedule and in the next step you will define promotional prices for them. ‘Season timeline’ below shows the time frames of the selected season.
- Define promotional prices:
- Promotional prices enable you to apply time-based pricing models. They can be lower or higher than the default price.
- Keep in mind that you have already defined the default price for that offer. The default price will be applied to all recurring payments (subscription renewals when the new season starts).
- Frequently, you may want to reward loyal users by keeping the recurring price more attractive than other prices during the season. In that case, the default price is equal to the early-bird price, but once the season launches and the demand is higher, a higher price should be defined.
- You can define as many promotional prices as you wish.
- Promotional prices will be applied to that offer only. So if you create another seasonal subscription, these settings will be blank, even if you link both offers to the same seasonal schedule.
- Promotional prices are blocked once the transaction within this price range is made.
- Promotional price cannot be deleted once it was used.
- In the last step, you can add offer localizations.
- Click ‘Finish setup’ and see the summary of the offer you’ve just created.
Subscription Upgrades and Downgrades for Seasonal Subscriptions
For switches including a seasonal subscription (switching from/to a seasonal subscription), the following algorithms will be applied always:
- Upgrades: Immediate and charge with refund
- Downgrades: Deferred
Please note that the above algorithms will override your switch algorithms settings for switches from/to a seasonal subscription.
As for upgrades, it's important to note that proration calculation in the context of seasonal subscriptions is modified. When calculating proration value, season start and end dates are taken into account, and the off-season period is ignored. This means that customers are not refunded when an upgrade happens off season.
Example:
A customer bought a Silver Package subscription to Football League on 15th July 2023 and paid 100 EUR. 2023 season lasted from 1 to 30 August. The next season (2024) will last from 1 to 30 August 2024.
Assuming today is 1st September 2023 and the customer upgrades to Gold Package worth 500 EUR, s/he is charged the full price of 500 EUR and receives no refund. This is because the upgrade is made in-between seasons (in the off-season period).
If the same customer upgraded to Gold Package on 16th August 2023, s/he would pay 500 EUR for the Gold Package, but receive 50 EUR refund for the unused time during 2023 season (as the upgrade is halfway through the season).
Logic Behind Subscription Seasons
The subscription seasons are structured around distinct, recurring periods, and the expiration of a subscription is determined based on when it was purchased relative to these seasonal periods. The subscription always extends until the start of the next upcoming season that has not yet begun. Renewals are intended to occur only when the new season officially starts, allowing smooth transitions between seasons.
Example of Subscription Seasons:
First Season: October 1, 2024 - April 1, 2025
Second Season: October 1, 2025 - April 1, 2026
Third Season: October 1, 2026 - April 1, 2027
Subscription Expiration Logic:
Purchased During Active Season
If a customer purchases the subscription during an ongoing season (e.g., during the first season), the subscription expiration is set to the beginning of the next season (e.g., October 1, 2025). This ensures the customer enjoys the current season fully and is enrolled for the following one.
Purchased During Off-Season
If the customer purchases the subscription after a season ends but before the next season begins (e.g., after April 1, 2025, but before October 1, 2025), the expiration date will be set to the start of the season following the upcoming one (e.g., October 1, 2026). This approach ensures that customers are granted access to the next full season, and their subscription aligns with the beginning of that season.
Editing Seasonal Schedules and Seasons
To update a Seasonal Schedule/Season go to the ‘Offers & Coupons’ section in the main navigation and choose ‘Manage seasons’ (upper right side of the panel). Click on the ‘Edit schedule’ icon next to the schedule you want to change.
- An upcoming season can't start in less than 31 days. The renewal notification emails are sent to the users 30 days before the nearest season start date (the renewal date), because of a legal requirement in some regions.
- You can edit future dates. Past seasons and past dates can’t be edited or removed.
- You can edit seasons, but it’s not possible to remove ongoing and past seasons.
- When you edit a seasonal schedule, changing an upcoming season's start date triggers synchronization. Renewal dates of the existing subscriptions that are affected by the change (see the example below) are synchronized to the new next season start date. The synchronization process will not start for 24 hours after your changes, to give you time to correct any errors or unintended changes. At that point, editing will be disabled for 24 hours. By temporarily blocking the edit function during the renewal date update process, we are avoiding the potential for errors that can occur when numerous edits are made in a short timeframe.
Example:
Let’s imagine we have a seasonal subscription offer: “European Football League” which is linked to the Seasonal Schedule “Champions” with 2 seasons defined originally (“Season 1” and “Season 2”).
See the two cases below to see how renewal dates are affected depending on when the subscription was purchased, and when and what changes were made to the schedule.
CASE 1:
Original Seasonal schedule (start/end dates of seasons) |
Purchase date of a subscription to "European Football League" | Subscription original renewal date | Seasonal schedule edit date | Seasonal schedule change |
Synchronization required? If yes, to what date? |
Season 1: 1-30 Jun Season 2: 1-30 Sep |
1 May | 1 Sep | 5 May |
Season 1: 15-30 Jun |
NO |
Season 2: 15-30 Sep |
YES Renewal date synchronized to 15 Sep |
CASE 2:
Original Seasonal schedule (start/end dates of seasons) |
Purchase date of a subscription to "European Football League" | Subscription original renewal date | Seasonal schedule edit date | Seasonal schedule change |
Synchronization required? If yes, to what date? |
Season 1: 1-30 Jun Season 2: 1-30 Sep |
1 Jul | Undefined (payment already made for the upcoming season - Season 2 and there is no Season 3 defined) | 5 Jul | Season 2: 15-30 Aug | NO |
Season 3 added: 1-30 Nov |
YES Renewal date synchronized to 1 Nov |
Editing Seasonal Subscriptions
To update your seasonal subscription, go to Offers & Coupons in your Cleeng dashboard, choose the offer you want to change, click on the three dots on the right side, and then ‘Edit’ in the menu.
Seasonal Subscriptions and Coupons
You can create coupon campaigns for seasonal subscriptions. Note that 100% discount coupons can be applied to this type of offer for single-use coupons only. See how to set up a coupon campaign.
Examples - offer scenarios
Scenario 1: Standard and Premium Volleyball
You want to create two separate offers, one for standard volleyball and another one for premium volleyball. You want your offers to be recurring ones, so the best model to pick would be a subscription. In the Cleeng dashboard, you also have the possibility to adjust your offer to seasons, which can be especially useful for sports offers. Find out how to set up a seasonal subscription step by step. The pricing and localization are as follows:
Pricing Overview by Region:
-
USA
- Standard: $7.99 USD
- Premium: $9.99 USD (tax included in both prices)
-
EU
- Standard: €7.99 EUR
- Premium: €9.99 EUR
-
Turkey
- Standard: 259.99 TRY
- Premium: 359.99 TRY
-
Rest of World (ROW)
- Standard: $4.99 USD
- Premium: $5.99 USD
Important: Seasonal subscriptions are a unique Cleeng functionality, and IAPs do not support seasonal cycles. Instead of following the predefined seasonal schedule, the lifecycle of the offer will depend on the status provided by the IAP. In other words, Cleeng will synchronize the offer's lifecycle directly with the IAP's subscription status, rather than adhering to the seasonal schedule set for the offer. This could result in different renewal or expiration behaviors compared to regular seasonal offers.
You want to create a seasonal offer, so the first thing you need to do after entering the offer panel is to click on the “manage seasons” button in the right upper corner to create a season.
In the pop-up window you need to choose a “new seasonal schedule”.
Then choose a name for your season and set the time frame by setting the start and end date from the calendar.
Confirm your settings. Your season is created, now you can start creating offers. Go back to the offers dashboard and click the “create offer” button. It will open the popup window with the offer setup.
The first thing you need to do is to choose the subscription from the offer types.
Press on the next button and enter the offer details. Here only the offer name is mandatory. The rest of the details can be filled any time.
Pricing is the section where you need to choose the billing type and the price of your offer. The default price is set in Euro but you can change it in the following steps. In this step, you also need to choose if you want to provide your subscribers with a free trial or allow your offer to be purchased as a gift.
Important: The default currency is assigned to your account. You can change the currency in the Admin panel only when no transactions have been made.
Choose “seasonal” from the billing period menu. Then enter the price, in this case 7,99 Euro.
Next, go to the season setup. Choose the seasonal schedule from the menu, in this case it will be “Standard and Beach volleyball” - the one that was created earlier. Then click on the “manage seasons” button where you can edit the season if necessary, or add another schedule.
If you want, you can also add the timeline for the promotional price of your offer. Choose “next” to finish this setup and go to the localizations section.
In the localizations section you need to add a region and then choose a country from the drop-down menu. If you want to add the price for ROW, just pick a region and then thick “select all” in the drop-down menu. Having it all done click on the “finish setup” button. You will be moved to the list view.
After adding and saving all the localizations you will see the list of localized offers. As you can see, the default currencies were set automatically for each country. Prices contain also the information whether the tax was included or not.
Important: For details on where taxes are included in prices you should refer to the "Tax Calculation Note"
Click on each country to edit the price manually.
Having done that, all you need to do is to confirm the setup. Your offer is now ready!
In-app configuration
The previous example focused on the web, but here we’ll highlight in-app scenarios using Samsung as a basis. Here’s a step-by-step guide for those who also want to provide their offers in applications.
The first thing you need to do is to integrate the Cleeng account with the Samsung store - establish a connection between the two platforms to enable subscription management, in-app purchases, and billing synchronization. See the full tutorial on Samsung integration.
Having it done, you need to provide the app store product ID for Samsung store. Go to the Dashboard to “Offers & Coupons” and Click on "Create an offer" to open the editor.
Then choose “Offer information” and click on the “advanced options” button. Here you have to enter the Samsung product ID and click on the “add” button.
Go to the pricing section and choose the price, billing period and currency. Here you also have to decide if you want to provide your users with a free trial or allow them to purchase the offer as a gift. Add additional geo restrictions and localizations if necessary. Your offer is now available in the Samsung app.
Scenario 2: Standard and beach volleyball subscription
This time we would like to modify the offer a little bit by offering our users access to both beach and regular volleyball. Let's start with creating a seasonal schedule for volleyball seasons.
Remember: The seasons you create do not need to align perfectly with competitive seasons (for sports content). The season end date is simply a boundary date from which you start selling the next season
When the first schedule is done, let’s create a second one for standard volleyball. Just click on the ‘new seasonal schedule’ button.
When you finish setting your seasonal schedules, you will be given a reminder to create ones for the upcoming years. It is always better to do this, and you can adjust the following season’s schedule later if you need to.
Let’s skip this part and click on the button from the bottom menu to create an offer. In this case we will go for a subscription.
Now let’s create a name for our offer and enter it in the title section.
The next step is the pricing section. Here we have to choose “seasonal’ from the rolled-down billing period section and set the price (in euro by default). For this offer we didn’t want to provide a free trial, so we chose “none” in the Free Trial section. Then we selected “beach volleyball + standard volleyball” from the seasons list.
Choosing a seasonal offer gives you a chance to adjust pricing even further and reward those who purchase subscriptions earlier. Enter the name, price, and time range to the given fields. To create another discount range within this offer, click on "add promotion" button.
Having this set, we can switch to localizations. First we need to choose the “add multiple” button. At this point we need to manually add each region and then choose a country from the drop-down menu. If you want to add the price for ROW, just pick a region and then thick “select all” in the drop-down menu. Having it all done click on the “finish setup” button. You will be moved to the list view.
We can see that the prices were added by default, so we need to change them manually.
Just click at the edit button and you will be transferred to the popup window.
Your offer with multiple localizations is now ready.
Tax calculation note
As the merchant of record, we collect taxes in the USA, Canada, the EU, UAE, Switzerland, Japan, Thailand, and the UK. For all other countries, no tax is calculated, as we are not responsible for tax collection outside these regions.
For transactions in the EU, UAE, Switzerland, Japan, Thailand, and the UK, tax is included in the price shown to the end user. Our internal system manages tax calculation for these countries, applying a single VAT rate per country to simplify the process.
In the USA and Canada, tax rates vary by state, county, and city, so Cleeng uses Avalara to calculate taxes based on location. Initially, users see the subscription's net price, with taxes added afterward to show the final amount.
The end-user price may differ from your base price due to regional tax and platform fees, which are added to the subscription amount. Depending on the country, your set price may display with or without tax, but users ultimately see the final price inclusive of any applicable charges.
Seasonal Subscriptions FAQ
What’s the difference between a ‘pass’ and a ‘seasonal subscription’?
Seasonal subscriptions automatically renew at the start date of the new season. Passes expire at the end of the season and they do not renew – the client needs to purchase a new pass for the next season.
Why is my user’s recurring payment date in 2038 (customer details)?
The next payment date is in 2038 when you haven't set the next season’s start date yet. Once you create an upcoming season, the recurring payment date will be replaced with the start date of the new season.
In this situation MediaStore SDK My Account components will not display the exact next payment date, but "at the beginning of next season" text will be displayed instead.
If your integration is based on API, you should ensure similar behavior so as not to confuse customers with 2038 as the next payment date.
Additional information
For more insights on creating different subscription types, consider our guides on Live PPV events and Passes. These guides provide practical, step-by-step instructions to help you diversify your offerings and maximize engagement with your audience.