E6: Loyalty Program¶
Overview¶
Bounded Context / Service: Loyalty Service, Mobile App
Goal: Track fan attendance, calculate loyalty points, and provide early access to qualifying fans.
Priority: Medium
Primary User Roles¶
- Fan (loyalty member)
- Admin (for configuration)
Scope¶
In-Scope¶
- Loyalty points tracking (1 point per attended paid match)
- 5-year rolling window for points calculation
- Tiered ticket allocation (points-based, e.g., 27+ = 4 tickets)
- Early access window configuration per match
- Hard limit enforcement (4 tickets per match across all phases)
- Points display in app (Ticketing Profile "My Loyalty Status" section)
- Points history page with match-by-match breakdown
- Points notification after match attendance
Out-of-Scope¶
- Loyalty tiers with perks beyond ticket allocation
- Points redemption for merchandise
- Partner loyalty integration
Features¶
| ID | Feature | Size | Description |
|---|---|---|---|
| E6-F1 | Loyalty Points Tracking | S | Track points with 5-year window |
| E6-F2 | Loyalty Early Access Configuration | S | Configure points-to-allocation mapping |
| E6-F3 | Loyalty Points Award After Match | S | Award points on match closure |
Dependencies¶
- Match service for attendance data
- User profile service for OIB validation
- Push notification service
Risks & Open Questions¶
OQ-E6-1: Points-to-Allocation Mapping
What is the exact points-to-allocation mapping table?
Example from doc: "27 points = 4 tickets"
Needed: Complete tier table.
OQ-E6-2: Match Eligibility
Which matches count for loyalty points - all or configurable subset?
Related Documentation¶
- Profile Management Flow - Loyalty Status section
- Loyalty Points History Flow
- Loyalty Early Access Flow
Last Updated: January 2026