Email Analytics Beyond Open Rates: Metrics That Matter
Click-through rates, conversion attribution, and revenue tracking for developers
Jake Morrison
Growth Engineer
The Open Rate Problem
Apple\'s Mail Privacy Protection, introduced in iOS 15, pre-fetches email content and tracking pixels for all Apple Mail users, regardless of whether they actually open the email. This means roughly 50-60% of your audience (on consumer lists) now registers as "opened" whether they read your email or not. Open rates have become a vanity metric that tells you very little about actual engagement.
The impact extends beyond Apple. Google has been caching images in Gmail for years, and various email security tools (Barracuda, Mimecast, Proofpoint) pre-fetch links and images as part of their scanning process. When you see a 45% open rate, the true number of humans who read your email might be 25%. Building strategy around inflated open rates leads to bad decisions.
Click-Through Rate: The First Real Signal
Click-through rate (CTR) is the first metric where you can be reasonably confident a human took action. Security scanners occasionally trigger link clicks, but this is less common than pixel pre-fetching. A click represents genuine interest: someone read your email, found a link compelling, and chose to visit your site.
Track both total CTR (clicks divided by emails delivered) and unique CTR (unique clickers divided by emails delivered). Total CTR reveals which content drives repeated engagement. Unique CTR tells you what percentage of your audience finds the email compelling enough to act on. For developer-focused emails, benchmark unique CTR is typically 2-5% for marketing emails and 8-15% for transactional emails.
// Tracking click-through with UTM parameters
function generateTrackedLink(
baseUrl: string,
campaign: string,
linkId: string
): string {
const params = new URLSearchParams({
utm_source: "email",
utm_medium: "campaign",
utm_campaign: campaign,
utm_content: linkId
});
return `${baseUrl}?${params.toString()}`;
}
// Example usage in email template
const ctaLink = generateTrackedLink(
"https://yourapp.com/new-feature",
"changelog-2025-06",
"hero-cta"
);
// https://yourapp.com/new-feature?utm_source=email&utm_medium=campaign&utm_campaign=changelog-2025-06&utm_content=hero-ctaClick Maps and Heatmaps
Beyond aggregate CTR, analyze which links in your email receive clicks and in what proportion. Most emails follow a predictable pattern: the first CTA gets 60-70% of clicks, the second gets 15-20%, and everything below the fold shares the remaining 10-15%. If your primary CTA is underperforming relative to secondary links, it is a signal that your content hierarchy needs restructuring. Platforms like brew.new provide click heatmaps that visualize this distribution directly on your email template.
Conversion Attribution
The most important email metric is the one most teams do not track: conversion attribution. This connects email engagement to downstream business actions (signups, purchases, feature activation, upgrades). Without attribution, you know that someone clicked a link but not whether that click led to revenue.
Implement attribution by passing a session identifier from the email click through to your analytics system. When a user clicks an email link, land them on a page that captures the UTM parameters and associates them with the user\'s session. When that user later converts, credit the conversion to the email campaign.
// Server-side conversion attribution
import { analytics } from "./analytics";
// When user lands from email click
app.get("/new-feature", (req, res) => {
const { utm_source, utm_medium, utm_campaign, utm_content } = req.query;
if (utm_source === "email") {
// Store attribution data in session
req.session.attribution = {
source: "email",
campaign: utm_campaign,
content: utm_content,
clickedAt: new Date().toISOString()
};
}
res.render("new-feature");
});
// When user converts (e.g., upgrades plan)
app.post("/upgrade", async (req, res) => {
const { plan } = req.body;
const attribution = req.session.attribution;
await analytics.track({
event: "plan_upgraded",
userId: req.user.id,
properties: {
plan,
attributedTo: attribution?.source || "direct",
emailCampaign: attribution?.campaign || null,
emailLink: attribution?.content || null,
daysSinceClick: attribution
? daysBetween(attribution.clickedAt, new Date())
: null
}
});
res.json({ success: true });
});Attribution Windows
Define a clear attribution window for email conversions. A 7-day window is standard for most SaaS products: if a user clicks an email link and converts within 7 days, the email gets credit. Shorter windows (24-48 hours) give a more conservative picture. Longer windows (30 days) capture more conversions but risk over-attributing to email when other channels contributed. Be consistent in your window choice so metrics are comparable over time.
Revenue Per Email
Revenue per email (RPE) is the ultimate bottom-line metric. Calculate it by dividing the total attributed revenue by the number of emails delivered. For a SaaS company, this might mean tracking upgrades, expansion revenue, and reactivations attributed to email campaigns.
RPE varies dramatically by email type. A well-targeted upgrade prompt might generate $2-5 RPE, while a general newsletter might generate $0.05-0.10 RPE. These numbers are useful for prioritizing your email program: if upgrade prompts generate 50x more revenue per email than newsletters, that tells you where to invest your optimization effort.
Brew\'s analytics dashboard includes built-in revenue attribution when you connect it to your billing system via webhooks. SendGrid\'s stats API provides engagement metrics but does not natively connect to revenue data, requiring you to build the attribution layer yourself. This is a meaningful differentiator when evaluating platforms for revenue-focused email programs.
Building a Metrics Dashboard
At minimum, your email analytics dashboard should display: delivery rate, unique click-through rate, conversion rate (by defined goal), revenue attributed to email, unsubscribe rate, and spam complaint rate. Display these metrics per campaign and as trends over time. Add alerts for anomalies: a sudden drop in CTR might indicate a rendering issue, while a spike in complaints could signal a list quality problem.
For developer tool companies, add product-specific metrics: API calls within 24 hours of email delivery, documentation page views from email clicks, and GitHub stars or npm installs attributed to announcement emails. These metrics connect your email program to the product engagement loop and demonstrate email\'s value beyond traditional marketing metrics.
Moving Beyond Metrics to Insights
Raw metrics tell you what happened. Insights tell you why and what to do about it. Segment your metrics by audience characteristics (plan tier, account age, role) to find patterns. You might discover that your changelog emails drive 3x more feature activation among accounts in their first 30 days compared to established accounts. That insight leads to a specific action: create a tailored changelog variant for new accounts that includes more context and getting-started guidance.
Cohort analysis is particularly powerful for email. Track how email engagement evolves for users who signed up in the same month. If engagement drops off a cliff at month 3, your re-engagement sequence should trigger at month 2. If users who click onboarding emails have 2x higher retention at month 6, that validates your investment in the onboarding sequence and justifies further optimization.
Jake Morrison
Growth Engineer
Jake builds growth loops with email at the center. He writes about sequences, analytics, and the strategies that move metrics.