Skip to main content

Rolling (Activity-Based) VIP Tier Recalculation

VIP tiers are now recalculated against a moving window of activity instead of a hard reset — customers hold, upgrade, or downgrade based on trailing engagement.

Written by Sam

Casa Loyalty now recalculates a customer's VIP tier against a moving window of activity, instead of hard-resetting them to the bottom tier on a calendar deadline. Rolling is a new fourth Tiers Reset Settings option, alongside Lifetime, One Year, and N Years — bringing Casa to parity with LoyaltyLion, Yotpo, Rivo, and Smile.io, which all treat rolling windows as the default tier model.

How it works

On the VIP program page, choose a window of 3–36 months (or a custom value, default 12). Each customer is re-scored on their trailing activity within that window and placed on whichever tier they currently qualify for — held, upgraded, or downgraded — rather than being dumped at the floor.

What gets scored

Rolling scores the right metric for your program type:

  • Points-basis programs sum qualifying VIP earn activity within the window — not the ever-growing cumulative points total.

  • Spend-basis programs use order spend within the window.

Upgrades and downgrades work like normal tier changes

Recalculation re-runs the existing tier engine, so an upgrade still grants tier rewards and a downgrade still revokes them through the same paths you already rely on. There's no separate hard-reset demotion path to worry about.

Mass-downgrade safe

Turning Rolling on — or shortening an existing window — never downgrades anyone based on partial-window data. An enable/shorten floor holds every customer at their current tier until a full window has actually elapsed. This floor is enforced everywhere, not just on the nightly sweep:

  • The nightly sweep

  • Activation recalculation

  • Order, refund, and cancellation webhooks

Changing settings later is non-destructive

  • Lengthening the window re-derives each customer's next recalculation date from their own anchor.

  • Shortening the window moves the floor forward instead of demoting anyone immediately.

  • Switching to Lifetime pauses recalculation entirely.

  • Both cases recompute immediately at save time.

Manual pins and locks always win

A rolling recalculation never moves a pinned or locked customer. If a downgrade would otherwise cross a pinned tier, it's clamped at the pin instead.

Under the hood

Rolling recalculation runs once per window (not nightly) inside the existing 02:00 UTC VIP scheduler — no new cron job is added. The app and worker engines are kept in lockstep.

Where it shows up

The recalculation date and the recomputed tier are storefront-consistent, surfacing on:

  • The account page

  • The widget

  • The metafield

Displayed progress never reads below the tier a customer currently holds.

Localization

Fully localized across all 25 admin/VIP locales, including a rolling-specific description in the activation modal.

Quick recap

Where to find it: VIP program > Tiers Reset Settings > select Rolling.

Did this answer your question?