Skip to content

Add smart subscription renewal suggestions based on usage and price comparison #192

@Calebux

Description

@Calebux

Description

SYNCRO should proactively help users save money — not just track what they're spending. Smart suggestions can identify unused subscriptions, overpriced plans, and better alternatives based on what the user has.

Feature Scope

Suggestion Types

1. Unused subscription detection

If a subscription has had no activity logged (no usage events, no gift card redemptions) for 60+ days:

  • Show a "You may not be using this" badge
  • Prompt: "You haven't renewed Adobe CC in 3 months. Are you still using it? [Keep] [Cancel]"

2. Duplicate service detection

If a user has both ChatGPT Plus and Claude Pro (both AI tools):

  • Suggest: "You might be paying twice for similar AI tools. Compare plans →"

3. Annual vs monthly savings

For subscriptions on monthly billing:

  • Calculate annual savings if they switch to yearly billing
  • Show: "Switch Netflix to annual and save $35.88/year"

4. Plan downgrade suggestions

For subscriptions where cheaper tiers exist:

  • "You're on Adobe CC All Apps ($54.99/mo). If you only use Photoshop, the Photography plan is $9.99/mo — save $540/year"

5. Free alternatives

For some paid tools, suggest free alternatives when budget is strained:

  • e.g., Figma Free vs paid, VS Code vs paid editors

Suggestion Engine (Backend)

async function generateSuggestions(userId: string): Promise<Suggestion[]> {
  const subscriptions = await getActiveSubscriptions(userId);
  const suggestions: Suggestion[] = [];

  // Annual billing savings
  for (const sub of subscriptions.filter(s => s.billing_cycle === 'monthly')) {
    const template = TEMPLATES.find(t => t.name.toLowerCase() === sub.name.toLowerCase());
    if (template?.annualPrice) {
      const monthlyCost = sub.price * 12;
      const annualSavings = monthlyCost - template.annualPrice;
      if (annualSavings > 20) {
        suggestions.push({ type: 'switch_to_annual', subscriptionId: sub.id, savingsPerYear: annualSavings });
      }
    }
  }

  return suggestions;
}

UI: Suggestions Panel

New dashboard section "💡 Money-saving opportunities" (dismissable):

  • Each suggestion shown as a card with clear savings amount
  • "Apply" button for actionable suggestions
  • "Dismiss" to hide a suggestion

Acceptance Criteria

  • Suggestion engine generates at least 3 suggestion types
  • Suggestions shown in dashboard panel
  • Annual vs monthly savings calculation implemented
  • Duplicate service detection for same-category subscriptions
  • Suggestions can be dismissed and don't reappear for 30 days
  • Suggestion logic runs in background (nightly cron)

Metadata

Metadata

Assignees

No one assigned

    Labels

    BackendStellar WaveIssues in the Stellar wave programenhancementNew feature or requestfrontendClient/frontend related

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions