Skip to content

Feature: Add subscription trial tracking with automatic expiry alerts #166

@Calebux

Description

@Calebux

Description

Many subscriptions start as free trials that auto-convert to paid plans. SYNCRO shows a "trial" badge on subscription cards but has no dedicated trial tracking system — no separate reminder flow, no trial-specific alerts, and no easy way to cancel before being charged.

Feature Scope

Trial-Specific Fields

Add to subscriptions table:

ALTER TABLE subscriptions 
  ADD COLUMN is_trial BOOLEAN DEFAULT FALSE,
  ADD COLUMN trial_ends_at TIMESTAMPTZ,
  ADD COLUMN trial_converts_to_price DECIMAL(10,2),
  ADD COLUMN credit_card_required BOOLEAN DEFAULT FALSE;

Trial Reminder Logic

Trials need more aggressive reminders than regular renewals:

const TRIAL_REMINDER_WINDOWS = [7, 3, 1, 0]; // days before trial ends
// Day 0 reminder: "Your trial ends TODAY at midnight"

For credit-card-required trials (where they'll auto-charge):

  • Additional early warning at 14 days
  • Cancellation guide linked in every reminder
  • Final reminder morning of trial end

Trial Dashboard Section

Separate card section: "Active Trials"

  • Sorted by days remaining (most urgent first)
  • Red countdown timer: "Expires in 2 days"
  • "Cancel Trial" button (with guide)
  • "Convert to Paid" button (confirms they want to keep it)

Trial Conversion Tracking

When a trial converts to paid, log the event:

  • Was the conversion intentional (user clicked "Keep") or automatic?
  • Did the user receive and act on reminders?
  • Track "saved by SYNCRO" metric (trials cancelled before auto-charge)

Email Template

Specific trial reminder email template:

Subject: ⚠️ Your Adobe trial ends in 3 days — don't get charged!

Your FREE trial is ending soon.
Adobe Creative Cloud trial expires: March 15, 2025 (3 days)
If you don't cancel: You'll be charged $54.99/month starting March 16.

[Cancel Trial Now →]   [Keep My Subscription →]

Acceptance Criteria

  • Trial fields added to subscriptions table
  • Trial reminder schedule more aggressive than regular renewals (14, 7, 3, 1, 0 days)
  • Trial section on dashboard sorted by urgency
  • Trial-specific email template with cancellation CTA
  • "Convert to paid" flow marks trial as active subscription
  • "Saved by SYNCRO" metric tracked and shown in analytics

Metadata

Metadata

Assignees

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