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:

  1. Issue-based Groups
    • Organized around a specific Journal issue number
    • Contains subscriptions that expire with that issue
  2. 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:

  1. 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)
  2. Renewal Statistics
    • Tracks renewal rates by:
      • Product SKU
      • B2C vs Concierge
      • Premium vs Standard
      • Gift vs Regular
      • Manual vs Auto-renew
  3. 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:

  1. The status of the entry in Expiry Group 34 is updated to renewed
  2. 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 cancelled
  • merged: Subscription has been merged into another subscription
  • renewed: Subscription has been renewed
  • awaiting-renewal: Subscription is pending renewal
  • adjusted: Subscription expiry has been modified by Customer Service
  • expired: Subscription has reached its expiry date
  • renewed-by-resubscribe: Subscription renewed after expiry
  • pending-cancellation: Subscription marked for cancellation
  • extended-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)