Skip to content

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