Auditing an Email Program That Stopped Working

The symptom is never “email stopped working.” It is quieter than that: the same campaigns go out on the same schedule, the dashboard still shows green checkmarks next to deliverability, and the number next to “email” on the revenue report has just been smaller for a few months running, with nobody able to say exactly when it started.

Mailchimp, Braze and Maileon all publish a version of “how to audit your email marketing,” and all three are useful as checklists. None of them tells you how to attribute the revenue you are trying to protect, none breaks a flow down stage by stage, and none says who should actually do this or what it costs. This is the version built to answer those three.

What actually breaks an email program

An email program breaks in one of four places, and almost never all four at once: the list itself goes stale, deliverability degrades so fewer sends reach the inbox, a flow stops firing or starts firing on the wrong trigger, or the revenue was never being measured correctly in the first place and the “drop” is partly an illusion. Fix the wrong one first and the real cause sits there for another quarter.

Work in this order: revenue measurement, then deliverability, then flows, then list health. Each one can hide or fake the symptom of the one after it — a broken attribution window looks exactly like falling revenue, and a deliverability problem looks exactly like a dead list.

Start with revenue, not opens

Before anything else, confirm the number you are trying to fix is real. Most ESPs report “email-attributed revenue” using a lookback window — Klaviyo’s default, for example, is a five-day window on both email opens and clicks, per its own message attribution documentation. A customer who opens an email on Monday and buys on Friday falls outside that window and the sale is not credited to email at all, even though email prompted it.

Two checks, both doable from your own data:

  • Compare the window, not just the total. If the attribution window changed at any point — yours or a plugin’s default — a “drop” can be partly the window shrinking, not the channel underperforming.
  • Check for double credit with paid. If Meta or Google Ads is also last-click crediting the same purchase, your channels are fighting over the same sale rather than measuring two different ones. This is the same trap covered in full in ecommerce conversion tracking, and it is worth ruling out before you touch a single campaign.

Only once the measurement itself is trusted does “revenue is down” mean anything you can act on.

Check deliverability before you touch a single email

A deliverability problem looks identical to a content problem from inside the ESP: opens and clicks fall, and the easy conclusion is that subject lines got worse. Rule this out first, because fixing copy while mail is landing in spam changes nothing.

Google requires any sender pushing more than 5,000 messages a day to Gmail addresses to authenticate with SPF, DKIM and DMARC, per its own Email sender guidelines — below that volume, SPF or DKIM alone is enough. If your list has grown past that line since the program was first set up, a configuration that used to be compliant may not be anymore.

The ten-minute check: send a test email to a Gmail address you control, open it, and look at “Show original.” SPF, DKIM and DMARC all need to read PASS. Any FAIL or NEUTRAL there outranks every other item on this page until it is fixed.

Walk the flows one at a time

Audit each automated flow on its own, not the account as a whole. A flow that started firing late, firing twice, or not firing at all can sit undetected for months inside an otherwise healthy-looking account, because the broken flow is a small share of total send volume.

FlowWhat actually breaksThe check
Welcome seriesA new signup source (a popup app, a checkout opt-in) was added without being wired into the existing triggerSign up as a new customer through every opt-in point on the site and confirm each one starts the flow
Abandoned cartA theme or checkout update changed how “cart” is detected, so the trigger event stops firingAdd an item to cart, leave, and confirm the flow starts within its intended delay
Post-purchaseA new payment method or checkout step does not fire the same order-confirmation event as the original setupPlace a real or test order through every payment method the store accepts
Win-back / re-engagementThe suppression list or the inactivity window was never updated as the list grew, so it either never fires or fires on nearly everyonePull the segment it targets and sanity-check the count against what you’d expect

Checkout and theme changes are the single most common cause here, because the marketing team and the checkout rarely ship on the same calendar. If a flow’s send volume drops and nobody touched the flow itself, a checkout or theme deploy is the first thing to check, not the last.

How do I know if my list has gone stale?

A list goes stale gradually, which is exactly why it is easy to miss. The honest check is not an industry benchmark — what counts as normal varies too much by vertical and list age to mean anything borrowed from someone else’s account — it is comparing your own account against its own history.

  • Pull your engaged-subscriber share (opened or clicked in the last 90 days, say) for this month and for the same month a year ago. A meaningfully lower share with a similar or larger total list size is the actual signal, not the raw open rate on its own.
  • Check whether sunset or re-engagement logic exists at all. Several of the vendor guides raise the question of when to stop mailing unengaged subscribers without ever answering it — if your account has no answer either, that is itself the finding.
  • Look at complaint and bounce trend lines, not single-send snapshots. One bad send is noise; a rising trend across sends is the list, not the copy.

Who should run this, and what does it cost?

Nobody I found selling this checklist says who should run it. In practice: someone who did not design the current flows is better positioned to find what is wrong with them, because the person who built a trigger is the person least likely to question whether it still fires correctly.

I do not sell a standalone email audit — I run Google Ads, Meta and Shopify SEO for ecommerce brands, and email usually surfaces as part of looking at the whole account rather than as its own line item. If an email program is one symptom among several, see how I structure an audit for the shape and price of the ones I do sell. If email is genuinely the only channel in question, the Klaviyo-specific version of this checklist, the Klaviyo audit goes deeper on that one platform specifically.

Questions people ask

How often should I audit my email marketing?
Run the revenue and deliverability checks whenever revenue moves unexpectedly, and walk every flow individually at least once a year or after any checkout or theme change, since that is the most common point where a flow quietly breaks.
Why does my email-attributed revenue not match what I expect?
Check the attribution window your ESP uses before assuming the channel underperformed. Klaviyo’s own default is a five-day lookback on email opens and clicks, so a sale that lands outside that window is not credited to email at all.
How do I know if my email program has a deliverability problem?
Send a test to a Gmail address you control and check SPF, DKIM and DMARC under “Show original.” All three need to pass. Google requires all three for any sender pushing more than 5,000 messages a day to Gmail addresses.
Which flow usually breaks first after a store makes changes?
Abandoned cart and post-purchase flows are the most common casualties of a checkout or theme update, because the new setup often does not fire the same trigger event the flow was built on.
How long do I have to honor an unsubscribe request?
The FTC’s CAN-SPAM Act requires honoring an opt-out within 10 business days of the request.

Want this run properly?

I am Greg Asuncion, an ecommerce paid media consultant. I run Google Ads, Meta, Amazon and Microsoft for direct‑to‑consumer brands on Shopify — one person, published pricing, and a free audit after a call. Here is how I structure an audit.