Skip to content
Digital Marketing

How I Measure Email Marketing ROI (and When to Ditch a Campaign)

· · 10 min read
Email Marketing ROI

When I first started running email campaigns, I had no real system for tracking performance. If the open rate looked “decent,” I called it a win and moved on to the next send. That approach felt fine at the time. It was also quietly costing me money every single month, and I had no idea because I wasn’t looking at the number that actually mattered.

The moment that changed everything was running two campaigns back to back, one that looked great on paper and one that looked mediocre by every metric I was tracking at the time. The “better” campaign, high opens, strong clicks, actually lost money once I factored in what it cost to produce and send. The “weaker” one, with unremarkable open and click numbers, quietly brought in solid returns. That gap between what looked good and what actually worked is what pushed me to start tracking ROI properly instead of chasing vanity metrics. Here’s the process I’ve built and refined after testing hundreds of campaigns since then.

Why tracking ROI changed everything about how I work

For a long time, I relied on gut feeling to decide whether a campaign had worked. That’s a dangerous habit, because you genuinely cannot scale what you don’t measure, and gut feeling is influenced by whatever metric happens to be sitting in front of you at the moment, usually opens, since that’s the number every email platform surfaces first.

Once I actually started calculating ROI properly, I discovered something uncomfortable: some of my best-performing campaigns by opens or clicks were among the least profitable ones I ran. A campaign with a flashy subject line and a huge open rate can still lose money if the offer inside doesn’t convert, or if the cost of producing it, copywriting, design, the tool subscription itself, outweighs what it actually brings in. So now, every time I send a sequence, I don’t just ask how many people opened it. I ask whether this specific email made money or quietly wasted it. That single reframing changed how I plan campaigns from the first draft onward, not just how I report on them afterward.

I also started tracking this earlier in the funnel than most marketers bother to. Even at the cold email stage, before a subscriber has bought anything, I look at reply rate and meeting-booked rate rather than just opens, because those earlier signals predict downstream ROI far better than a raw open number ever will.

The formula I actually use, and why it’s simpler than people expect

ROI = (Revenue − Cost) ÷ Cost × 100

It’s a simple formula, but it’s genuinely powerful once you commit to using it consistently instead of only pulling it out when a campaign clearly succeeded. Say I make $4,000 from a campaign and spend $400 total across tools, copywriting time, and design. That’s ($4,000 − $400) ÷ $400 = 900% ROI. That single number tells me instantly whether the campaign is worth repeating, worth scaling, or worth quietly retiring.

The part people usually get wrong is the cost side of the equation. Most marketers only count the obvious line items, the email tool subscription, maybe a freelancer’s invoice, and forget to include their own time, the cost of the list-building that got those subscribers there in the first place, or the design assets that get reused across multiple sends. I now track cost at the campaign level rather than amortizing everything into one flat monthly number, because that’s the only way to see which specific campaigns are actually carrying the account and which ones are riding on the coattails of a strong list. I share a deeper breakdown of how this formula fits into the full campaign process, from setup through optimization, in our complete guide to email marketing.

Step 1: Measure the right metrics, not the ones that feel good

I stopped obsessing over vanity metrics a long time ago. Here’s what I actually track on every campaign now:

  • Click-through rate (CTR): This tells me about real engagement rather than a maybe-inflated open number. Opens can be triggered by image pre-loading and privacy proxies without a human ever actually reading the email; clicks require someone to take an action.
  • Conversion rate: This shows how many people actually took the next meaningful step, bought something, booked a call, signed up for a trial, rather than just clicking through and bouncing off the landing page.
  • Revenue per email (RPE): Total revenue divided by total emails sent. This is my favorite single metric because it normalizes for list size and lets me compare a campaign sent to 500 people against one sent to 50,000 on a level playing field.
  • Unsubscribe rate: If this spikes on a specific send, something’s off, either the frequency crept up without me noticing, or the targeting missed and the content landed on the wrong segment.

Once I started building reports around these four numbers instead of leading with opens, I could actually tell which campaigns moved the needle and which ones were just generating noise that looked impressive in a screenshot but didn’t translate into revenue.

Step 2: Track real conversions, not just traffic that feels exciting

Early in my career, I made the classic mistake of celebrating traffic spikes. A campaign would drive a big jump in site visits, I’d feel good about it, and then I’d check the actual sales numbers a few days later and find them flat. Traffic without conversion is just noise wearing a good outfit.

Now I connect my email platform with Google Analytics and my CRM so I can see exactly how emails influence purchases, not just clicks. My setup uses UTM parameters on every single link in every campaign, something like utm_source=email&utm_campaign=launch1, so I can trace a purchase all the way back to the specific email and even the specific link inside it that drove the sale. I track purchases through thank-you page events rather than relying purely on last-click attribution inside the email platform itself, and I tag subscribers based on what they click so I can build behavioral segments over time instead of guessing at interests from demographic data alone.

This level of tracking sounds like a lot of setup, and it is the first time you build it. But it pays for itself the first time it catches a campaign that looked like a winner on the surface but was actually driving curiosity clicks with no revenue behind them. If you’ve never connected your tools this way, I break down the full process in email automation tools that actually work, after testing 15+ platforms.

Step 3: Decide when to kill a campaign, and actually follow through

Here’s the uncomfortable truth: not every campaign deserves to keep running. I used to keep underperforming campaigns alive because I didn’t want to admit one of my ideas hadn’t worked, which is a very human instinct and a very expensive one to indulge. Now I use data to make that call quickly instead of letting ego drag it out for another month.

My ditch-or-keep checklist looks like this: if CTR sits under 3% after two sends, I rewrite the offer or pause it entirely rather than sending it a third time hoping for a different result. If conversion rate stays under 1% even after testing several subject lines, I kill it outright, because at that point the problem usually isn’t the subject line, it’s a mismatch between the offer and the audience. And if unsubscribes or spam complaints rise above 0.5% on any single send, I stop immediately and investigate before sending anything else to that segment, because a spike like that is often an early warning sign for a deliverability problem that will hurt every future campaign if left unaddressed.

Bad campaigns don’t just fail to make money on their own. They actively drag down deliverability and burn long-term engagement with subscribers who might have converted on a later, better send if they hadn’t been annoyed first. Once I learned to cut losses early instead of hoping a weak campaign would turn around, my overall account ROI improved noticeably within a single quarter.

Step 4: Optimize instead of overhauling everything at once

Sometimes a campaign isn’t actually bad, it just needs a small, specific fix rather than a full rebuild. I’ve saved dozens of campaigns over the years with adjustments this simple: changing the subject line to something more personal and specific instead of generic, reordering the content so the call-to-action appears sooner instead of buried after three paragraphs of setup, swapping a hard “Buy now” for a softer “See how it works” when the audience clearly wasn’t ready to purchase yet, and testing different send times, my own best-performing sends consistently land on midweek mornings rather than the Friday afternoon slot a lot of marketers default to.

I always test one change at a time rather than rewriting the whole email and hoping something in the pile of changes worked. Even small, isolated adjustments can create surprisingly large shifts in ROI, and testing one variable at a time is the only way to actually know which change was responsible for the improvement rather than guessing after the fact. If you want to see how I structure these tests specifically, check the best practices that actually increased my email open rates by 40%.

Step 5: Connect ROI with deliverability, because they’re the same problem wearing different clothes

This one genuinely surprised me the first time I noticed it. When I improved deliverability on an account, ROI followed right along with it, even though I hadn’t changed a single offer or price point. The mechanism turned out to be straightforward once I understood it: more people were actually seeing the emails in the first place. After I fixed a shaky domain authentication setup and cleaned out a stale portion of the list, every downstream metric moved together, engagement, conversions, and revenue all climbed in the same window.

That’s when I fully internalized that ROI and deliverability aren’t two separate problems to manage, they’re inseparable. A perfectly written, perfectly targeted campaign generates zero ROI if it never lands in the inbox to begin with. If you haven’t audited your own inbox placement recently, start with how I fixed my deliverability issues and got to 98% inbox placement, because that fix alone tends to move ROI more than almost any copywriting tweak I’ve tested.

Step 6: Report and review on a fixed monthly cadence, not whenever you remember

At the end of each month, I review a consistent set of numbers: my top three performing campaigns by ROI, the three worst performers and a short note on why each one failed, average revenue per email across the full month, and list growth against churn. This habit forces data-driven decisions instead of emotional ones, especially in months where a campaign I was personally excited about underperformed and I had to admit that on paper rather than quietly ignoring it.

I keep a simple spreadsheet to track results, nothing fancy, though you can automate most of this reporting through HubSpot or ConvertKit’s built-in dashboards if you’d rather not maintain a manual sheet. What matters more than the tool is the discipline of actually sitting down monthly and looking honestly at the worst performers, not just celebrating the wins.

Where I typically see my numbers land in 2026

Here’s what I typically see across my own campaigns at this point, after years of refining the process above: average ROI sits between 800 and 1,200%, average open rate lands around 38 to 42%, average CTR runs 15 to 22%, and average unsubscribe rate stays under 0.3%. These aren’t generic industry benchmarks pulled from a report somewhere, they’re my actual numbers, built up campaign by campaign from a process that started with almost no tracking at all and now touches every send before it goes out.

I’d caution pretty strongly against treating these as a target to hit immediately if you’re just getting started on this process. They’re the result of years of compounding small fixes, better segmentation, cleaner lists, tighter offers, not a benchmark you should expect to match out of the gate. What matters more than matching my specific numbers is building the habit of tracking your own consistently enough, month after month, that you have a real baseline to improve against instead of a guess.

A mistake I see other WooCommerce stores make constantly

The single most common ROI mistake I run into when reviewing accounts for other store owners isn’t in the tracking setup, it’s in the attribution window. Most email platforms default to a 24-hour or 7-day attribution window for measuring whether a click led to a sale, which massively undercounts real revenue for anything other than a genuine impulse buy. If someone clicks an email about a product on a Tuesday, thinks about it for two weeks, and then buys it directly by typing your URL from memory, most default reporting will never connect that sale back to the email that started the whole thing.

I extended my own attribution window to 30 days once I noticed this gap, and the reported ROI on several evergreen campaigns jumped substantially, not because the campaigns suddenly got better, but because I was finally measuring the revenue they were already generating instead of missing most of it. This matters even more for higher-consideration purchases, anything over roughly $75 to $100, where almost nobody buys on the first click regardless of how good the offer is.

The fix is usually a setting buried a few menus deep in your email platform or your analytics integration, not a major technical overhaul. But it’s worth checking specifically, because I’ve seen store owners conclude an entire campaign type “doesn’t work” based on a reporting window that was simply too short to capture how their actual customers behave.

Final thoughts

Email ROI isn’t about luck or having a massive list. It’s about strategy, consistency, and being honest with yourself about what the numbers are actually telling you, even when that means admitting a campaign you liked didn’t work. When you treat your emails like experiments and measure every meaningful variable instead of just the ones that make you feel good, you stop guessing and start genuinely improving. That’s the real difference between hoping your next campaign works and knowing exactly why the last one did or didn’t, and it’s a difference that compounds every single month you stick with it.

If you’re ready to connect ROI tracking with your broader strategy, read the ultimate guide to email marketing next. And if you want to push your ROI even higher from here, check the future of email marketing, covering AI, personalization, and interactive campaigns, because that’s genuinely where the next level of optimization begins once the fundamentals in this piece are locked in.


Interesting Reads

Steps to Creating a Customer Journey Map

The Evolution of the Customer Journey Map

Components of a Customer Journey Map