Email Marketing14 min read

Email Engagement Metrics for SaaS: The 5 Numbers That Actually Matter

Stop tracking vanity metrics. Focus on CTR, CTOR, conversion rate, and complaint/unsubscribe rates—the metrics that predict revenue and retention. Includes benchmarks, tracking setup, and how to improve each metric.

R

React Emails Pro

March 4, 2026

Most SaaS teams track the wrong email metrics. Open rates look great but don't move the needle. Delivery rates stay high while activation tanks. Click counts climb, but conversions don't follow.

The problem: vanity metrics feel good but don't predict revenue or retention.

The metrics that actually matter for SaaS: click-through rate, click-to-open rate, conversion rate, and complaint/unsubscribe rate. Everything else is context.

Open rate (and why it's broken)

Open rate = (opens ÷ delivered) × 100. Sounds simple. It's not.

iOS 15 killed open rate accuracy

Apple Mail Privacy Protection (MPP) pre-loads emails on the server, triggering "opens" whether the user sees the email or not. For many SaaS products, 40-60% of opens are now phantom opens from iOS users who never looked at the email.

Don't use open rates to trigger workflows or measure engagement after 2021. They're inflated and unreliable.

What open rate still tells you

Open rates are useful for relative comparisons (testing subject lines within the same audience), not absolute benchmarks.

  • Use: Compare subject line variants in an A/B test (same list, same send time).
  • Don't use: Measure engagement health or trigger re-engagement campaigns based on "didn't open."

Benchmark (pre-iOS 15): 15-25% for SaaS transactional emails. Post-iOS 15, add 10-20 points of phantom opens. Meaningless.


Click-through rate (CTR): the real engagement signal

Click-through rate = (unique clicks ÷ delivered) × 100. This is the metric that shows user intent.

Unlike opens, clicks require deliberate action. If someone clicks, they engaged. If they don't, they didn't—regardless of what the open tracker says.

CTR is the best proxy for "did this email work?" It's trackable, reliable, and directly tied to outcomes.

Benchmarks

  • Transactional (password reset, verification): 40-70% (high urgency, clear CTA).
  • Onboarding (welcome, trial nudges): 10-25% (still engaged, motivated).
  • Lifecycle (re-engagement, feature announcements): 2-8% (depends on list quality).
  • Marketing (newsletters, promos): 2-5% (broadcast, lower intent).

How to improve CTR

  • One clear CTA: Multiple CTAs split attention and tank clicks. Pick one action.
  • Outcome-driven copy: "Start your first project" beats "Log in to your account."
  • Visual hierarchy: Make the button impossible to miss.
  • Timing: Send when the user is most likely to act (e.g., onboarding emails within 5 minutes of signup).

Click-to-open rate (CTOR): engagement quality

Click-to-open rate = (unique clicks ÷ unique opens) × 100. This tells you: of the people who opened, how many clicked?

CTOR isolates email content quality from subject line effectiveness. High CTOR = good email. Low CTOR = the email didn't deliver on the promise.

CTOR is less affected by iOS 15 because it compares clicks to opens within the same inflated pool. Still useful for A/B testing content.

Benchmarks

  • Transactional: 60-80% (if they open a password reset, they click).
  • Onboarding: 30-50% (clear value, motivated audience).
  • Lifecycle / marketing: 15-30% (depends on offer relevance).

If CTOR is below 20%, the email content doesn't match the subject line expectation—or there's no clear CTA.


How to improve CTOR

  • Match subject line to content: If the subject promises a feature, the email should deliver that feature link.
  • Front-load the CTA: Don't bury the button. First screen visibility.
  • Remove distractions: Footer links, secondary CTAs, and social icons dilute focus.

Conversion rate: the metric that pays

Conversion rate = (conversions ÷ delivered) × 100. This is the only metric that directly ties email to revenue or product activation.

A conversion is whatever goal matters for that email: completed onboarding, upgraded to paid, reset password successfully, completed purchase.

Track conversion rate per email type, not globally. A password reset with 60% conversion is great. A newsletter with 1% conversion to paid might also be great (if the list is big enough).

Benchmarks (SaaS)

  • Transactional (password reset, verification): 50-80% (most who click, complete).
  • Onboarding (activation nudges): 5-20% (depends on activation friction).
  • Trial-to-paid: 2-10% (highly variable by pricing).
  • Re-engagement: 0.5-3% (cold list, low intent).

How to improve conversion rate

  • Reduce landing page friction: Email → signup form with 10 fields = drop-off. Pre-fill when possible.
  • Match the email promise: If the email says "try for free," the landing page should say the same thing.
  • Track the full funnel: Email click → page load → action complete. Find where users drop.
  • Time-sensitive offers: Trial expiring emails convert better than generic "still time" nudges.

Unsubscribe and complaint rate: the health check

Unsubscribe rate = (unsubscribes ÷ delivered) × 100. Complaint rate = (spam complaints ÷ delivered) × 100.

These metrics tell you if your emails are annoying or unwanted. High rates = deliverability risk.

Keep complaint rate below 0.1% (1 per 1,000 emails). Above that, mailbox providers start flagging your domain. Unsubscribe rate above 0.5% signals relevance issues.

What causes high unsubscribe/complaint rates

  • Sending too frequently: Daily emails to a cold list = instant unsubscribes.
  • Irrelevant content: Blasting the same promo to everyone.
  • No unsubscribe link (or hidden link): Users mark as spam instead.
  • Purchased or scraped lists: People don't remember signing up → spam complaints.

How to reduce unsubscribe/complaint rates

  • Segment by engagement: Don't send re-engagement emails to highly engaged users.
  • Preference center: Let users choose email frequency instead of unsubscribing.
  • Clear unsubscribe link: Make it easy to leave. Paradoxically, this reduces spam complaints.
  • Sunset disengaged users: Stop emailing people who haven't clicked in 6+ months.

Metrics to ignore (or deprioritize)

Delivery rate

Delivery rate = (delivered ÷ sent) × 100. Should be 98-99%+ for any decent ESP. If it's not, you have list hygiene problems (bounces, invalid emails).

Don't obsess over delivery rate unless it drops below 95%. Focus on inbox placement (harder to measure, more important).


Total clicks (vs unique clicks)

Total clicks count every click from the same user. Unique clicks count each user once. Total clicks inflate engagement (one user clicking 5 times looks like 5 engaged users).

Always track unique clicks for engagement metrics. Total clicks are useful for tracking bot/scanner activity.


List growth rate

Growing your list is good. But list size without engagement is vanity. A 10K engaged list beats a 100K cold list every time.

Track engaged list size (clicked in last 90 days), not total subscribers.


How to track these metrics

1. Use ESP built-in analytics

Resend, Postmark, SendGrid, and Mailchimp all track opens, clicks, bounces, and complaints out of the box. Start there.


2. Add custom conversion tracking

ESPs track clicks, but they don't know if the user completed signup or purchased after clicking. You need to track conversions separately.

Add UTM parameters to email links and track conversions in your analytics tool (Mixpanel, Amplitude, PostHog, GA4).


3. Track metrics by cohort, not globally

Global email metrics hide problems. Break metrics down by:

  • Email type: Transactional vs onboarding vs lifecycle.
  • User segment: Trial users vs paid vs churned.
  • Send time: Immediate (password reset) vs scheduled (newsletter).

Example: A 5% CTR might be great for a newsletter but terrible for a trial expiration email.


Sample metric dashboard

Track these weekly (or per-send for high-volume campaigns):

  • CTR (primary): Are users engaging?
  • CTOR: Is the email content working?
  • Conversion rate: Are clicks turning into outcomes?
  • Unsubscribe rate: Is frequency/relevance off?
  • Complaint rate: Are we approaching deliverability risk?

Secondary (context only):

  • Open rate: For subject line A/B tests only.
  • Delivery rate: Should stay above 98%. If it drops, investigate bounces.

Metric targets by email type

Transactional (password reset, verification, receipts)

  • CTR: 40-70%
  • CTOR: 60-80%
  • Conversion: 50-80%
  • Unsubscribe: <0.1% (these shouldn't have unsubscribe links)
  • Complaint: <0.05%

Onboarding (welcome, activation nudges, trial emails)

  • CTR: 10-25%
  • CTOR: 30-50%
  • Conversion: 5-20%
  • Unsubscribe: <0.3%
  • Complaint: <0.1%

Lifecycle (re-engagement, feature announcements)

  • CTR: 2-8%
  • CTOR: 15-30%
  • Conversion: 1-5%
  • Unsubscribe: 0.3-0.5%
  • Complaint: <0.1%

Marketing (newsletters, promotions)

  • CTR: 2-5%
  • CTOR: 15-25%
  • Conversion: 0.5-3%
  • Unsubscribe: 0.3-0.8%
  • Complaint: <0.1%

TL;DR

  • CTR (click-through rate): The best engagement metric. Tracks user intent.
  • CTOR (click-to-open rate): Measures email content quality independent of subject line.
  • Conversion rate: The only metric that ties email to revenue or activation.
  • Unsubscribe/complaint rate: Health check. Keep below 0.5% and 0.1% respectively.
  • Open rate: Broken post-iOS 15. Use for relative A/B tests only.
  • Track by cohort, not globally. Email type, user segment, and timing matter.

Get production-ready email templates with built-in tracking patterns: Transactional templates for Next.js.

Production-ready templates

Pick from 9 template packs built with React Email. One-time purchase, lifetime updates, tested across every major email client.

Browse all templates