VIP programs and loyalty system through the platform
Introduction
The loyalty system and VIP programs keep the most active players and increase lifetime value (LTV). At the platform level, a multi-layered model of accumulating points, automatic transitions between statuses, personalized awards and reporting is implemented. All elements are controlled by the promo engine and PMS microservices.
1. Loyalty system architecture
1. Loyalty Service
Stores level configuration ('Bronze', 'Silver', 'Gold', 'Platinum') with turnover thresholds and bonus privileges.
API: `/loyalty/{playerId}`, `/loyalty/points/add`, `/loyalty/status/update`.
2. Event Bus
Kafka события: `BetPlaced`, `WinCredited`, `DepositMade`, `BonusRedeemed`.
Loyalty Service consumer aggregates turnover and awards points.
3. PMS integration
After a player status change, the PMS is notified via webhook to update segmentation and access rights.
2. Points Model
1. Turnover-based scores
For each 1 EUR rate equivalent, 1 Point (configurable) is charged.
2. Odds by game
Slots: × 1, board games: × 0. 5, live casino: × 1. 5, exclusive: × 2.
3. Promotional multipliers
As part of the campaigns ('DoublePointsWeek'), the promo engine sets a temporary 'multiplier'.
3. VIP Levels and Privileges
Automatic upgrade when the threshold is reached and downgrade via rolling 30-day turnover.
Personal offers: special freespins, exclusive tournaments, accelerated withdrawals.
4. Triggers and workflow
1. Event-driven processing
For each 'BetPlaced' event, Loyalty Service recalculates cumulative turnovers and points.
2. Workflow for statuses
The service supports state machine:
The loyalty system and VIP programs keep the most active players and increase lifetime value (LTV). At the platform level, a multi-layered model of accumulating points, automatic transitions between statuses, personalized awards and reporting is implemented. All elements are controlled by the promo engine and PMS microservices.
1. Loyalty system architecture
1. Loyalty Service
Stores level configuration ('Bronze', 'Silver', 'Gold', 'Platinum') with turnover thresholds and bonus privileges.
API: `/loyalty/{playerId}`, `/loyalty/points/add`, `/loyalty/status/update`.
2. Event Bus
Kafka события: `BetPlaced`, `WinCredited`, `DepositMade`, `BonusRedeemed`.
Loyalty Service consumer aggregates turnover and awards points.
3. PMS integration
After a player status change, the PMS is notified via webhook to update segmentation and access rights.
2. Points Model
1. Turnover-based scores
For each 1 EUR rate equivalent, 1 Point (configurable) is charged.
2. Odds by game
Slots: × 1, board games: × 0. 5, live casino: × 1. 5, exclusive: × 2.
3. Promotional multipliers
As part of the campaigns ('DoublePointsWeek'), the promo engine sets a temporary 'multiplier'.
3. VIP Levels and Privileges
Level | Threshold turnover (EUR) | Bonus multiplier | Mini cashback | Personal manager |
---|---|---|---|---|
Bronze | 0–9 999 | ×1 | 0 % | — |
Silver | 10 000–49 999 | ×1. 1 | 1 % | — |
Gold | 50 000–199 999 | ×1. 25 | 2% | Email Support |
Platinum | ≥ 200 000 | ×1. 5 | 3% | Personal Manager |
Automatic upgrade when the threshold is reached and downgrade via rolling 30-day turnover.
Personal offers: special freespins, exclusive tournaments, accelerated withdrawals.
4. Triggers and workflow
1. Event-driven processing
For each 'BetPlaced' event, Loyalty Service recalculates cumulative turnovers and points.
2. Workflow for statuses
The service supports state machine:
- ``` if cumulative_turnover ≥ level. threshold and current_level < level:
- transition to next_level if rolling_30d_turnover < prev_level. threshold:
- transition down
- ```
- 3. Notifications to player
When changing the level, the promo engine sends email/SMS/push through the Notification Service.
5. Expense accounting and points redemption
Points conversion → bonuses
Scale: 1000 Points = 10 EUR free play.
Points are blocked when a redemption request is created, written off after confirmation of use.
Validity period
Points expire after 12 months of inactivity (rolling expiry), automatic deduction via Cron-job.
6. Integration with promo engine and GMS
Linking campaigns
VIP triggers ('OnLevelUp') run campaigns in the Campaign Engine.
Set up RTP adjustments
For Platinum players in GMS, you can set a higher RTP minimum through the feature flag.
7. Analytics and Reporting
1. Loyalty Service Metrics
`points_accrued_total`, `points_redeemed_total`, `level_up_events`, `avg_points_per_user`.
2. Dashboard at Grafana/BI
Level hopper, retention by VIP status, impact on ARPU.
3. Data export
CSV files with accrual and redemption details for financial analysis.
8. Security and access control
RBAC
Differentiation of rights to configure levels and view VIP data: roles' loyalty _ admin ',' marketing _ manager '.
Audit Trail
Log of all operations: changing thresholds, manual score adjustments, forced statuses.
9. Scalability and fault tolerance
Stateless Loyalty Service
Horizontal scaling via Kubernetes HPA by lag-y in Kafka.
Replica-sharing Redis
Cache cumulative\_ turnover and current\_ level, replication and Sentinel for HA.
Circuit Breaker
Protection against failures in Event Bus: fallback to the last saved values.
Conclusion
The platform implementation of VIP programs and loyalty systems combines event-driven architecture, state machine for levels, integration with the promo engine and GMS, as well as detailed accounting of savings and repayments. This approach gives flexible configuration of privileges, transparent monitoring and retention of the most valuable players.