Loyalty Member Lifecycle¶
Models the lifecycle of a Loyalty Programme Member from enrolment through active earning and redemption, tier progression, and potential lapse or exit. Covers points management, tier recalculation, and GDPR withdrawal.
Object: loyalty-member ·
States: 7 ·
Transitions: 14
State Diagram¶
flowchart LR
%% ── classDef palette ─────────────────────────────────────
classDef stInit fill:#0d9488,stroke:#0f766e,color:#fff,font-weight:bold
classDef stNorm fill:#3b82f6,stroke:#2563eb,color:#fff
classDef stOk fill:#16a34a,stroke:#15803d,color:#fff,font-weight:bold
classDef stFail fill:#dc2626,stroke:#b91c1c,color:#fff,font-weight:bold
classDef stHold fill:#d97706,stroke:#b45309,color:#fff
%% ── nodes ───────────────────────────────────────────────
enrolled(["Enrolled"])
active["Active"]
tier_upgraded["Tier Upgraded"]
tier_downgraded["Tier Downgraded"]
lapsed["Lapsed"]
suspended>"Suspended"]
withdrawn[["Withdrawn"]]
%% ── transitions ─────────────────────────────────
enrolled -->|"loyalty-points-issued"| active
active -->|"loyalty-points-issued"| active
active -->|"loyalty-points-redeemed"| active
active -->|"loyalty-benefits-calculated"| tier_upgraded
tier_upgraded -->|"loyalty-benefits-calculated"| active
active -->|"loyalty-benefits-calculated"| tier_downgraded
tier_downgraded -->|"loyalty-benefits-calculated"| active
active -->|"loyalty-points-calculated"| lapsed
lapsed -->|"loyalty-points-issued"| active
lapsed -->|"loyalty-points-calculated"| withdrawn
active -->|"customer-updated"| suspended
suspended -->|"customer-updated"| active
active -->|"customer-consent-revoked"| withdrawn
enrolled -->|"customer-consent-revoked"| withdrawn
%% ── class assignments ───────────────────────────
class enrolled stInit
class active,tier_upgraded,tier_downgraded,lapsed stNorm
class suspended stHold
class withdrawn stOk
States¶
| State | Label | Description | Initial | Terminal |
|---|---|---|---|---|
enrolled |
Enrolled | Customer joined the loyalty programme. Account created. Welcome points issued. Tier assigned (base). | ✓ | |
active |
Active | Member transacting within the programme. Earning and/or redeeming points. Tier current. | ||
tier-upgraded |
Tier Upgraded | Member reached spend/points threshold for higher tier. Enhanced benefits unlocked. | ||
tier-downgraded |
Tier Downgraded | Member fell below tier retention threshold at anniversary review. Benefits reduced. | ||
lapsed |
Lapsed | No qualifying activity within lapse window. Points at risk of expiry. Re-engagement comms triggered. | ||
suspended |
Suspended | Account suspended due to suspected fraud or terms violation. Points frozen. | ||
withdrawn |
Withdrawn | Member voluntarily withdrew from programme OR GDPR erasure processed. Points forfeited. | ✓ |
Transitions¶
| From | To | Trigger | Guards |
|---|---|---|---|
enrolled |
active |
loyalty-points-issued |
First qualifying transaction after enrolment |
active |
active |
loyalty-points-issued |
Qualifying purchase in participating channel |
active |
active |
loyalty-points-redeemed |
Sufficient points balance; Redemption within programme rules |
active |
tier-upgraded |
loyalty-benefits-calculated |
Cumulative spend or points exceed next tier threshold within qualification period |
tier-upgraded |
active |
loyalty-benefits-calculated |
Tier benefits applied and member notified |
active |
tier-downgraded |
loyalty-benefits-calculated |
Annual review: spend below tier retention threshold |
tier-downgraded |
active |
loyalty-benefits-calculated |
Lower tier benefits applied and member notified |
active |
lapsed |
loyalty-points-calculated |
No qualifying activity within lapse window (configurable, typically 12–24 months) |
lapsed |
active |
loyalty-points-issued |
Qualifying transaction or campaign response within re-engagement window |
lapsed |
withdrawn |
loyalty-points-calculated |
Re-engagement window elapsed; Points expired per programme rules |
active |
suspended |
customer-updated |
Fraud investigation initiated |
suspended |
active |
customer-updated |
Investigation cleared, no violation confirmed |
active |
withdrawn |
customer-consent-revoked |
Member opts out of programme OR GDPR erasure request |
enrolled |
withdrawn |
customer-consent-revoked |
Member withdraws before first earn |