Best Practices
Learn from successful loyalty programs. These best practices will help you maximize engagement, retention, and ROI.
Points Strategy
Setting Point Values
❌ Don't: Make points feel worthless
- 1 point = $0.001 (too small, feels meaningless)
- 10,000 points for a $10 reward (too many zeros)
✅ Do: Make points feel valuable but achievable
- 1 point = $0.01 (1 point per dollar spent)
- 1,000 points = $10 reward (clear, simple math)
Rule of Thumb: Aim for 1-2% value ratio. If customers spend $100, they should earn $1-2 worth of points.
Point Calculation Examples
// ✅ Good: Simple and clear
const points = Math.floor(orderTotal); // $125.50 → 125 points
// ✅ Good: Percentage-based with minimum
const points = Math.max(10, Math.floor(orderTotal * 0.01)); // At least 10 points
// ❌ Bad: Too complex
const points = Math.floor(
(orderTotal * 0.01) +
(orderTotal > 100 ? 50 : 0) +
(isWeekend ? orderTotal * 0.005 : 0) +
(customerTier === 'gold' ? orderTotal * 0.01 : 0)
); // Hard to understand, hard to explain
Preventing Point Inflation
Problem: Too many points = devalued currency
Solutions:
-
Set expiration dates
# Points expire after 12 months of inactivity
POST /api/v1/settings/points
{
"expiration_days": 365,
"expiration_type": "rolling" # Resets with any activity
} -
Limit earning opportunities
- Don't award points for every tiny action
- Focus on meaningful behaviors (purchases, referrals, reviews)
-
Regular audits
- Review point balances quarterly
- Adjust earning rates if redemption is too low
Tier Structure
How Many Tiers?
❌ Don't: Create too many tiers
- Bronze, Silver, Gold, Platinum, Diamond, Titanium, Ultimate...
- Customers get confused, progress feels slow
✅ Do: Use 3-4 tiers maximum
- Bronze (entry level)
- Silver (engaged customers)
- Gold (loyal customers)
- Platinum (VIP - optional)
Setting Thresholds
Rule: Each tier should be 2-3x the previous threshold.
Example:
Bronze: 0 points (everyone starts here)
Silver: 1,000 points (2-3 months of regular purchases)
Gold: 5,000 points (6-12 months of regular purchases)
Platinum: 15,000 points (1-2 years, top 5% of customers)
Why this works:
- Progress feels achievable (not years away)
- Each tier feels meaningful
- Top tier remains exclusive
Tier Benefits
❌ Don't: Vague benefits
- "Exclusive access" (to what?)
- "Special perks" (what perks?)
✅ Do: Specific, valuable benefits
- "2x points on all purchases"
- "Free shipping on orders $25+"
- "Early access to new products (24 hours before public)"
- "Dedicated support line"
Multiplier Values
Guideline: Each tier should earn 20-50% faster than the previous.
Bronze: 1.0x (base rate)
Silver: 1.25x (25% bonus)
Gold: 1.5x (50% bonus)
Platinum: 2.0x (100% bonus - double points)
Why not higher? Too aggressive multipliers can:
- Devalue your currency
- Create unfair advantage
- Reduce profitability
Rewards Catalog
Reward Types to Offer
1. Digital Rewards (Best for most businesses)
- ✅ Instant delivery
- ✅ No fulfillment costs
- ✅ High perceived value
- Examples: Discount codes, gift cards, free shipping
2. Physical Rewards (For high-value programs)
- ✅ Tangible, memorable
- ❌ Fulfillment complexity
- ❌ Shipping costs
- Examples: Branded merchandise, product samples
3. Experience Rewards (For premium brands)
- ✅ Creates memories
- ✅ High perceived value
- ❌ Limited availability
- Examples: VIP events, early access, exclusive content
Pricing Rewards
Rule: Reward value should be 10-20% of points cost.
Example:
- Customer earns 1,000 points ($10 value)
- Reward costs 1,000 points
- Reward value: $10-20
Why this ratio?
- Makes rewards feel valuable
- Maintains profitability
- Encourages point accumulation
Reward Inventory
❌ Don't: Run out of popular rewards
- Customers get frustrated
- Program loses credibility
✅ Do:
- Monitor redemption rates
- Restock popular items
- Set alerts for low inventory
- Have backup rewards ready
# Set up inventory alerts
POST /api/v1/rewards/{reward_id}
{
"stock_quantity": 100,
"low_stock_threshold": 20 # Alert when below 20
}
Reward Variety
Offer rewards at different point levels:
Entry Level (500-1,000 points):
- $5 gift card
- Free shipping
- 10% discount code
Mid Level (2,000-5,000 points):
- $25 gift card
- Free product
- Exclusive access
Premium Level (10,000+ points):
- $100 gift card
- VIP experience
- Annual subscription
Why: Gives customers goals at every stage.
Event Automation
When to Use Events vs Direct Points
Use Events When:
- ✅ Points depend on transaction details (amount, items, etc.)
- ✅ You want automatic calculation
- ✅ Rules might change over time
- ✅ You need analytics on specific actions
Use Direct Points When:
- ✅ One-off manual awards (customer service)
- ✅ Fixed bonuses (signup, birthday)
- ✅ External integrations that don't fit event model
- ✅ Adjustments and corrections
Event Naming Conventions
❌ Don't: Unclear names
action1,action2purchase_v2,purchase_new
✅ Do: Clear, consistent names
purchasesignupreview_submittedreferral_completed
Event Properties
Include relevant data:
// ✅ Good: Rich context
await loyali.events.create({
customer_id: customer.id,
event_type: "purchase",
properties: {
amount: 125.50,
currency: "USD",
order_id: "order_12345",
items: [
{ sku: "PROD-001", quantity: 2, price: 50.00 },
{ sku: "PROD-002", quantity: 1, price: 25.50 }
],
payment_method: "credit_card",
shipping_method: "express"
},
reference: "order_12345"
});
// ❌ Bad: Missing context
await loyali.events.create({
customer_id: customer.id,
event_type: "purchase",
properties: {
amount: 125.50
}
});
Why: Rich properties enable:
- Better analytics
- More flexible rules
- Future feature development
Customer Communication
When to Notify Customers
Critical Moments:
- Points earned - Immediate notification
- Tier upgrade - Congratulations message
- Points expiring soon - Warning (30 days, 7 days, 1 day)
- Reward redeemed - Confirmation
- Reward available - New reward in catalog
Notification Channels
Email:
- Tier upgrades
- Points expiring warnings
- New rewards available
- Monthly summary
Push/In-App:
- Points earned (immediate)
- Reward redemption confirmation
- Achievement unlocked
SMS (for high-value actions):
- Tier upgrade to Gold/Platinum
- Large point awards (500+)
- Exclusive reward availability
Message Tone
❌ Don't: Generic, corporate
"You have earned 50 points. Thank you for your purchase."
✅ Do: Personal, exciting
"🎉 You just earned 50 points! You're 950 points away from Silver tier. Keep going!"
Program Launch
Pre-Launch Checklist
- ✅ Set up tiers (3-4 tiers with clear thresholds)
- ✅ Create initial rewards (at least 5-10 options)
- ✅ Configure point rules (1-2% value ratio)
- ✅ Test the flow (create test customer, award points, redeem reward)
- ✅ Set up webhooks (for notifications and integrations)
- ✅ Prepare marketing materials (explain program to customers)
- ✅ Train customer service (how to help customers with points)
Launch Strategy
Phase 1: Soft Launch (Week 1)
- Invite 10-20% of customers
- Monitor for issues
- Gather feedback
Phase 2: Gradual Rollout (Weeks 2-3)
- Expand to 50% of customers
- Fix any issues
- Optimize messaging
Phase 3: Full Launch (Week 4+)
- All customers eligible
- Marketing campaign
- Monitor metrics closely
Grand Opening Bonus
Award bonus points to early adopters:
// First 1,000 customers get bonus
if (customer.signup_date < launchDate + 7days) {
await loyali.points.transaction({
customer_id: customer.id,
amount: 500, // Welcome bonus
type: "earn",
description: "Grand opening bonus"
});
}
Analytics & Optimization
Key Metrics to Track
Engagement Metrics:
- Active members (earned points in last 30 days)
- Points earned per customer
- Redemption rate (% of points redeemed)
- Average time to first redemption
Business Metrics:
- Repeat purchase rate
- Average order value
- Customer lifetime value
- Program ROI
Tier Metrics:
- % of customers in each tier
- Average time to tier upgrade
- Tier upgrade rate
- Tier retention rate
Regular Reviews
Monthly:
- Review redemption rates
- Check reward inventory
- Analyze tier distribution
- Review customer feedback
Quarterly:
- Adjust point values if needed
- Add/remove rewards
- Optimize tier thresholds
- Calculate program ROI
Annually:
- Major program refresh
- New tier structure (if needed)
- New reward categories
- Program anniversary campaign
Common Mistakes to Avoid
1. Over-Complicating the Program
Problem: Too many rules, tiers, and conditions confuse customers.
Solution: Keep it simple. Start with basic points and 2-3 tiers. Add complexity later if needed.
2. Setting Unrealistic Thresholds
Problem: Customers need to spend $10,000 to reach Silver tier.
Solution: Make progress feel achievable. Most customers should reach Silver within 2-3 months.
3. Ignoring Redemption Rates
Problem: Customers earn points but never redeem (points liability grows).
Solution:
- Make rewards attractive
- Send reminders about expiring points
- Offer limited-time rewards
4. Not Communicating Value
Problem: Customers don't understand the program.
Solution:
- Clear, simple explanation
- Show progress to next tier
- Highlight benefits of current tier
- Regular communication
5. Forgetting About Existing Customers
Problem: Only new customers get points, existing customers feel left out.
Solution:
- Grandfather existing customers into program
- Award retroactive points for past purchases
- Give existing customers head start
ROI Calculation
Simple ROI Formula
ROI = (Additional Revenue - Program Costs) / Program Costs × 100
Example:
- Program costs: $5,000/month
- Additional revenue: $15,000/month
- ROI = ($15,000 - $5,000) / $5,000 × 100 = 200%
What Counts as Additional Revenue?
- ✅ Increased repeat purchases
- ✅ Higher average order value
- ✅ Reduced churn (retained customers)
- ✅ Referral signups
- ✅ Upsells to higher tiers
Program Costs
- Points liability (unredeemed points)
- Reward fulfillment costs
- Platform fees (Loyali subscription)
- Marketing/communication costs
- Customer service time
Next Steps
- Review your current program and identify areas for improvement
- Review your metrics in the Dashboard to see what's working
- Test new strategies based on these best practices
- Contact support if you need help optimizing