Skip to main content

New: per-batch points expiry, with FIFO/FCFS or FEFO spending

Points can now expire per batch instead of all at once. Each time a customer earns points, that batch is stored with its own expiry date, counted from when it was earned — not from the customer's join date, and not on one shared calendar day.

Written by Vinay Kumar

How it works

  • Earn — every award creates a batch stamped with its own expiry date.

  • Spend — points come out of batches in the order your store chooses (see below).

  • Expire — a daily job retires only the batches that have actually reached their expiry date. The rest of the customer's balance is untouched.

Two spending orders

You can choose how points are spent under Settings → Platform → Points Expiration → Points spending order. This setting affects spending only — expiry always follows each batch's own date, regardless of which order you pick.

  • Oldest earned first (FIFO / FCFS) — the default. Uses the earliest-earned batch first, even if another batch is due to expire sooner.

  • Soonest expiring first (FEFO) — uses the batch with the nearest expiry date first. Ties break to the oldest-earned batch.

Example: A customer has 100 points earned in January (expiring December) and 50 points earned in March (expiring April). They spend 50 points.

  • FIFO takes from the January batch — the April batch may end up expiring unused.

  • FEFO takes from the April batch instead, so nothing expires that could have been spent.

In short: FIFO follows the fairer "first come, first served" order. FEFO wastes fewer points overall.

What merchants see

Every customer page now has a Points batches panel showing:

  • Total still spendable

  • Active batches

  • Next expiry date

  • Every individual batch, with its remaining amount, status, and source

This makes "where did my points go?" a question you can actually answer.

Reminder emails

Warning and last-chance expiry emails now fire per batch, on that batch's own dates, with lead times you can configure per store.

Stores using the fixed-date expiry strategy get a separate Points Reset email, since a reset clears the entire balance at once, while a batch expiry only removes the points that have reached their date.

Rollout

Per-batch expiry is off by default — existing stores are unaffected until they opt in.

When a store switches over, the conversion happens in place: every customer's current balance becomes one opening batch, so nobody gains or loses a point in the process. If you change the expiry window later, it only applies to batches earned after that change — existing batches keep their original expiry date.


Have questions? Reach out to our support team — we're happy to help you decide which spending order is right for your store.

Did this answer your question?