skills/finsilabs/awesome-ecommerce-skills/loyalty-program-optimization

loyalty-program-optimization

Installation
SKILL.md

Loyalty Program Optimization

Overview

A well-designed loyalty program increases repeat purchase rate by 20–40% and CLV by giving customers a compelling reason to consolidate their spending with your brand. Dedicated loyalty apps handle the entire points engine, tier management, redemption mechanics, and customer-facing portal without custom code. The strategic decisions — which tiers to create, what benefits to offer, and how to avoid training customers to wait for redemptions — are where the real work is.

When to Use This Skill

  • When launching a new loyalty program from scratch
  • When an existing points program has low redemption rates or member engagement
  • When wanting to add tiered VIP benefits to an existing points program
  • When diagnosing whether your loyalty program is driving incremental revenue or just rewarding purchases that would have happened anyway

Core Instructions

Step 1: Choose the right loyalty platform

Platform Best For Shopify WooCommerce BigCommerce Price
Smile.io Simplicity, quick setup App Store Plugin App Marketplace Free tier; $49/mo for tiers
Yotpo Loyalty Brands already using Yotpo Reviews/SMS App Store Limited App Marketplace $199+/mo
LoyaltyLion Advanced program design, custom rules App Store Plugin App Marketplace $399+/mo
Stamped Loyalty Brands using Stamped Reviews App Store $119+/mo
YITH WooCommerce Points and Rewards WooCommerce only Plugin $149/yr

Recommend Smile.io for most stores — it has the best balance of features and simplicity, works on all major platforms, and has a free tier to start.

Step 2: Design your program structure

Before installing anything, define:

Points earn rate:

  • 1 point per $1 spent (= 1% cashback equivalent at 100 points = $1)
  • Adjust based on your margins — consumer goods (30%+ margin): 1 point per $1 is fine; lower margin products: 0.5 points per $1

Tier thresholds (use annual spend):

Tier Annual Spend Benefits
Member $0+ 1x points earn
Silver $500+ 1.5x points, free standard shipping
Gold $1,500+ 2x points, free expedited shipping, early access to sales
Platinum $5,000+ 3x points, members-only products, priority support

Redemption rate: 100 points = $1 discount (set a minimum of 500 points to redeem)

Non-purchase earn actions (makes program stickier at no revenue cost):

  • Account sign-up: 100 points
  • Leave a review: 50 points
  • Refer a friend: 200 points (if they purchase)
  • Birthday month bonus: 2x points on all purchases

Step 3: Set up your loyalty program


Shopify with Smile.io

  1. Install Smile.io from the Shopify App Store
  2. Go to Smile.io → Points → Ways to Earn and configure:
    • "Place an order": points per dollar (set your earn rate)
    • "Create an account": 100 points
    • "Happy birthday": 2x points in birthday month
    • "Write a review": 50 points (connects to Judge.me or Stamped Reviews)
    • "Refer a friend": 200 points per successful referral
  3. Go to Smile.io → Points → Ways to Redeem and configure:
    • "Discount on order": 100 points = $1 off
    • Set minimum order value for redemption ($30 recommended)
  4. Go to Smile.io → VIP → Create Program and set up your tiers:
    • Enter the tier names, point thresholds, and benefits (free shipping, multipliers, etc.)
  5. Go to Smile.io → Rewards Panel to customize the widget that appears on your storefront
  6. Connect Smile.io to Klaviyo under Smile.io → Integrations — this enables sending points balance in Klaviyo emails

WooCommerce with YITH WooCommerce Points and Rewards

  1. Install YITH WooCommerce Points and Rewards from the WordPress plugin directory ($149/yr)
  2. Go to YITH → Points and Rewards → Points → Earn Points and configure:
    • Points per currency unit: 1 point per $1
    • Registration bonus: 100 points
    • Review bonus: 50 points
  3. Go to YITH → Points and Rewards → Redemption and set:
    • Points per currency: 100 points = $1 off
    • Maximum discount allowed: 20% of cart value (prevents 100% discount gaming)
  4. For tiers: install YITH WooCommerce Membership to create VIP tiers based on spend level

Alternative: Use Gratisfaction plugin (more feature-rich, $99/yr) which includes gamification, social sharing rewards, and birthday bonuses.


BigCommerce with Smile.io

  1. Install Smile.io from the BigCommerce App Marketplace
  2. Configuration is identical to the Shopify setup described above
  3. Smile.io integrates with BigCommerce's native coupon system for redemption

Custom / Headless

Use a loyalty API platform like Voucherify or Loyaltycrm.com rather than building from scratch. These provide:

  • Points ledger and transaction API
  • Tier management
  • Redemption code generation
  • Webhooks for earn/redeem events

If you must build custom:

// Core points earn function — call this from your order webhook
async function earnPoints(params: {
  customerId: string;
  orderId: string;
  orderValue: number; // subtotal, not including tax/shipping
  reason: 'purchase' | 'review' | 'referral' | 'signup';
}) {
  const customer = await db.customers.findById(params.customerId);
  const tier = customer.loyaltyTier; // 'member', 'silver', 'gold', 'platinum'
  const multiplier = { member: 1.0, silver: 1.5, gold: 2.0, platinum: 3.0 }[tier];

  const basePoints = Math.floor(params.orderValue * 1); // 1 point per $1
  const pointsToAward = Math.floor(basePoints * multiplier);

  await db.loyaltyTransactions.create({
    customerId: params.customerId,
    orderId: params.orderId,
    type: 'earn',
    points: pointsToAward,
    reason: params.reason,
  });

  await db.customers.increment(params.customerId, { loyaltyPoints: pointsToAward });
}

Step 4: Connect loyalty to email marketing

The highest-ROI loyalty email is the points balance email — it drives repurchases by reminding customers they have value waiting.

In Klaviyo (connected to Smile.io):

  1. Add points balance to every post-purchase email: You earned {{ event.SmilePointsEarned }} points. Balance: {{ profile.SmilePointsBalance }} points
  2. Create a flow triggered by: Smile.io Points Balance ThresholdBalance reaches 500 points
  3. Email: "You have enough points to redeem for $5 off your next order"
  4. Create a flow triggered by: Approaching Tier Upgrade100 points away from Silver
  5. Email: "You're almost Silver! Spend $X more to unlock free shipping"

Points expiry email:

  1. Create a flow triggered by 30 days before point expiry
  2. Email: "Your 320 points ($3.20) expire in 30 days — use them before they're gone"
  3. This is one of the highest-converting loyalty emails

Step 5: Measure program performance

Metric Healthy Target Where to Find
Member enrollment rate > 30% of customers enrolled Smile.io → Dashboard
Points redemption rate > 20% of earned points redeemed Smile.io → Analytics
Revenue from loyalty members vs. non-members Members should be 2-3x higher Compare order value in Shopify/Analytics
Repeat purchase rate for enrolled vs. non-enrolled Members should be 20%+ higher Shopify Customer Cohorts or Smile.io analytics

If redemption rate is below 15%, the redemption threshold is too high or customers are unaware of their balance. Lower the minimum redemption threshold or add a points balance widget to the account page.

Best Practices

  • Announce points balance in every post-purchase email — "You earned 45 points — you now have 320 points ($3.20 to redeem)" drives engagement; most loyalty apps include this via email integration
  • Use annual spend for tier qualification, not current balance — rewards consistent spend, not balance gaming
  • Add non-purchase earning actions — reviews, referrals, and social shares make the program stickier without pure revenue cost
  • Create "double points" events — point multiplier promotions drive purchase without the perceived cheapness of a discount code
  • Set a minimum redemption threshold ($5 minimum / 500 points) — prevents micro-redemptions that create operational overhead
  • Email members 30 days before points expire — expiry warning emails are among the highest-converting loyalty emails

Common Pitfalls

Problem Solution
Low redemption rate (< 20%) Lower the minimum redemption threshold; add a points balance widget to the account page; include balance in order confirmation emails
Tier status not downgrading Configure annual re-qualification in your loyalty app settings; communicate downgrade 30 days in advance
Members gaming the system with micro-purchases Set minimum order value for earning points ($15+) in app settings
Points not reversing on refunds Configure refund rules in your loyalty app — Smile.io has this under Settings → Points → Refund Policy
Loyalty program costs more than it generates Track incremental revenue: compare AOV and purchase frequency of loyalty members vs. non-members using a matched control group

Related Skills

  • @customer-retention-engine
  • @lifecycle-marketing-automation
  • @referral-viral-loops
  • @email-marketing-automation
  • @review-generation-engine
Weekly Installs
11
GitHub Stars
14
First Seen
Mar 16, 2026
Installed on
kimi-cli10
amp10
cline10
github-copilot10
codex10
opencode10