Expiry Groups
The expiry groups system helps manage the lifecycle of subscriptions and track renewal performance across different subscription types and customer segments.
Expiry Groups are used to track and manage subscriptions that expire at the same time. There are two types:
- Issue-based Groups
- Organized around a specific Journal issue number
- Contains subscriptions that expire with that issue
- Month-based Groups (for monthlies on TSJ)
- Organized around a specific month
- Contains monthly subscriptions
They drive our renewal statistics reports, support our system of synchronised payments, and allow us to track a subscription through its lifetime.
Key Features:
- Status Tracking
- Monitors renewals, cancellations, merges, and editing of subscription expiry by customer service from wp-admin or circulation management
- Tracks different types of renewals (normal, merge, resubscribe)
- Renewal Statistics
- Tracks renewal rates by:
- Product SKU
- B2C vs Concierge
- Premium vs Standard
- Gift vs Regular
- Manual vs Auto-renew
- Tracks renewal rates by:
- Batch Management
- Groups subscriptions for bulk processing
- Enables coordinated renewal campaigns
- Simplifies reporting and tracking
How it Works:
When a subscription is purchased, e.g. starting on issue 31 and expiring with issue 34, it’s given an entry in Expiry Group 34, with the status pending-renewal
. When that subscription is renewed:
- The status of the entry in Expiry Group 34 is updated to
renewed
- A new entry is created for the subscription in Expiry Group 38 with the status
pending-renewal
This continues throughout the life of the subscription, allowing us to accurately generate renewal statistics for a given expiry group, and to track the history of the subscription.
The expiry group entries track all changes to a subscription that affect its expiry, e.g. if a subscription expiry issue is changed by Customer Service, if a subscription is merged, if the member upgrades to a new subsription or cancels their subscription.
An entry for a subscrition in an expiry group can have the following statuses:
cancelled
: Subscription has been cancelledmerged
: Subscription has been merged into another subscriptionrenewed
: Subscription has been renewedawaiting-renewal
: Subscription is pending renewaladjusted
: Subscription expiry has been modified by Customer Serviceexpired
: Subscription has reached its expiry daterenewed-by-resubscribe
: Subscription renewed after expirypending-cancellation
: Subscription marked for cancellationextended-by-merge
: Subscription extended due to merge
Key Components:
TSJ_Expiry_Group Class
- Models a collection of subscriptions expiring together
- Stores:
- Type (issue/month)
- Issue ID/Month
- Absolute issue number
- List of group entries
TSJ_Expiry_Group_Entry Class
- Models individual subscription records within a group
- Tracks:
- Subscription ID
- Entry date
- Status (awaiting-renewal, renewed, merged, cancelled, etc)
- Next expiry group ID (after renewal)
- Whether it’s a first renewal
- New subscription ID (for merges)