What is Points Expiry? #
Points expiry makes earned points expire after a set number of days. Points are tracked in batches, one for each earning event, and each batch has its own expiry date and remaining amount.
When a customer spends points, Pointics uses the oldest and soonest-expiring batches first.
Expiry is off by default. Turning it on affects points earned from that moment onward. Points already earned keep the expiry date they were originally given.
Why Do You Need It? #
- Control long-term point liability: Expiry limits how long unused points remain available.
- Encourage customers to return: Combined with reminder emails, expiry can motivate customers to spend points before they disappear.
- Remove only what has actually expired: Pointics tracks each earning batch separately, so only the points that have reached their expiry date are removed.
Prerequisites #
- An Administrator account.
- WordPress scheduled tasks must be running because expiry is processed during a daily check.
- Optionally, enable the Points Expiring Reminder automation.
Where to Find It #
| Audience | Location |
|---|---|
| Configuration | Expiry settings |
| Customer View | My Account → Points & Rewards → Expiring Points |
| Administrator View | Expiry transactions appear in Transactions with the type Expire |
The General and Branding sections of the Settings screen do not currently display the expiry options. Ask your developer or contact support to enable and configure expiry.
Step-by-Step Instructions #
Step 1: Choose an Expiry Mode #
| Mode | Meaning |
|---|---|
| Off | Points do not expire. This is the default. |
| Rolling | Each batch of points expires a set number of days after it was earned. |
| First In, First Out | The oldest points are used first when a customer spends points. |
Step 2: Set the Expiry Window #
Set the number of days that earned points remain valid. The default is 365 days, and the minimum is 1 day.
Step 3: Confirm Scheduled Tasks Are Running #
Point expiry is processed during a daily scheduled check. If WordPress scheduled tasks are disabled or not running correctly, points will not expire.
Step 4: Optionally Override Expiry Per Rule #
An individual earning rule can have its own expiry window. When configured, that rule-specific value overrides the program-wide expiry setting for the points it awards.
Step 5: Turn On the Reminder Email #
Check the Points Expiring Reminder flow in Automations. It warns customers 7 days before their points expire.
Step 6: Show Customers What Is Expiring #
Customers can open My Account → Points & Rewards → Expiring Points to see their point batches and expiry details.
| Column | Shows |
|---|---|
| Event | What originally awarded the points |
| Points Earned | The original number of points awarded |
| Points Used | How many points have already been spent from the batch |
| Remaining | The number of points still available |
| Earned Date | When the points were originally earned |
| Expiration Date | When the points expire, or Never, with the number of days remaining where applicable |
| Status | Active, Expiring Soon, or Expired |
The Filter by Expiry Window control provides these options:
- All Points
- Next 30 Days
- Next 60 Days
- Next 90 Days
Key Functionality #
What Each Status Means #
| Status | When It Applies |
|---|---|
| Active | Points remain in the batch and either have no expiry date or expire more than 30 days from now. |
| Expiring Soon | Points remain in the batch and will expire within 30 days. |
| Expired | The expiry date has passed, or all points in the batch have already been spent. |
A fully spent batch appears as Expired because there are no remaining points for the customer to use.
Fixed Behaviour #
| Behaviour | Value |
|---|---|
| Expiring Soon Window | 30 days |
| Reminder Sent | 7 days before expiry |
| Expiry Check | Daily |
How Points Age and Expire #
Point expiry follows this process:
- A customer earns points.
- Pointics checks whether point expiry is enabled.
- If expiry is off, the points receive no expiry date and are shown as Never.
- If expiry is enabled, Pointics assigns an expiry date to the new point batch.
- The batch remains Active while it has points remaining and is more than 30 days from expiry.
- When the batch moves within 30 days of its expiry date, its status changes to Expiring Soon.
- The customer can receive an expiry reminder 7 days before the expiry date.
- If the customer spends points before expiry, Pointics uses the oldest and soonest-expiring batches first.
- If a batch is completely spent, there is nothing left to expire.
- If points remain when the expiry date arrives, the daily expiry check removes them.
- The customer’s balance is updated and an expiry transaction is recorded.
Settings #
| Setting | Description | Default | Minimum |
|---|---|---|---|
| Expiry Mode | Off, Rolling, or First In, First Out | Off | Not applicable |
| Expiry Days | Number of days points remain valid | 365 | 1 |
| Per-Rule Expiry | Optional expiry override for one earning rule | None | Not applicable |
Validation Rules #
- The expiry window must be at least 1 day.
- A value of zero is refused rather than silently disabling expiry.
- The customer expiry filter accepts values from 1 to 365 days.
- Expiry dates are stored in universal time, so server timezone differences do not change the actual expiry moment.
- Two expiry checks cannot run at the same time.
- A refund only removes points the customer still has available. Points already spent cannot be taken back.
Limitations #
- Expiry only runs during the daily scheduled check. If WordPress scheduled tasks are disabled, points do not expire.
- The expiry process runs in batches with a time limit. A large backlog can take several daily runs to clear.
- Changing the expiry window does not update points that were already earned. Existing batches keep their original expiry dates.
- Turning expiry off does not restore points that have already expired.
- The expiry options are not currently displayed on the Settings screen in the free version.
- The Expiring Soon window is fixed at 30 days.
- The reminder lead time is fixed at 7 days.
- Customers can see their own expiring points, but administrators do not have a separate per-customer expiry screen. Use Transactions instead.
Troubleshooting #
| Problem | Solution |
|---|---|
| Points never expire | Check that expiry is enabled, the expiry window is at least 1 day, and WordPress scheduled tasks are running. |
| Expiry is enabled but older points still show “Never” | Existing points keep the expiry date they were given when earned. Only new point batches use the updated expiry configuration. |
| A large backlog is expiring slowly | The expiry check processes points in time-limited batches and continues during later daily runs. |
| Expiry reminders never arrive | The reminder uses a separate scheduled process and requires an active automation flow. See Automations. |
| A customer received a reminder but the points did not expire yet | The reminder is sent 7 days before expiry. The points expire on their actual expiry date. |
| A batch shows “Expired” but still has points remaining | Check the server clock. If the issue continues, contact support. |
| A fully spent batch shows “Expired” | This is expected because no points remain in the batch. |
| The balance dropped but there is no Expire transaction | Check for a Reversal transaction caused by a refund. |
| “No points expire in this window.” | No matching points exist for the selected expiry filter. Switch to All Points or choose a wider range. |
| “You have not earned any points yet.” | The customer has never earned Pointics points. |
| “Could not load your expiring points.” | A temporary loading error occurred. Reload the page. |
| Setting the expiry window to 0 was rejected | The minimum expiry window is 1 day. |
Notes #
- Every earning event creates its own point batch with its own expiry date and remaining amount.
- This batch-based system makes both point expiry and oldest-points-first spending possible.
- Points held for a pending redemption are not affected by expiry until the redemption is settled or released.