Back to all posts

Why Your Klaviyo Campaigns Are Getting Opens But Your Repeat Purchase Revenue Hasn't Moved in Months

Klaviyo Email Marketing Repeat Purchase DTC Shopify CRO

The Metric That Looks Healthy While the Revenue Problem Grows

We pull open Klaviyo accounts for brands doing $2M to $15M and we see the same pattern constantly. Open rates are sitting at 38 to 52 percent. Click rates look acceptable. The team is sending two to three campaigns per week. Everyone in the monthly meeting nods at the dashboard and moves on.

Then we look at repeat purchase rate in Shopify analytics and it hasn't moved in four months. Sometimes it's actually declining while the email metrics look fine.

This is one of the most common and most expensive disconnects we find in DTC email programs. The store is generating activity. It is not generating revenue from that activity. And because the Klaviyo dashboard feels like proof that email is working, nobody investigates the gap.

The problem is not your subject lines. It is not your send frequency. It is the logic underneath your campaigns that determines who gets what and when, and in most accounts we audit, that logic was set up once during the first 90 days and never touched again.

Campaigns Built Around Sending, Not Buying Behavior

Most Klaviyo campaign calendars are built around the brand's schedule, not the customer's purchase cycle.

A supplement brand ships every 30 days on subscription, but their campaign calendar treats all non-subscriber email contacts the same. A one-time buyer who purchased 45 days ago gets the same campaign as someone who bought yesterday. A lapsed customer who hasn't ordered in 6 months gets the same promotional email as someone mid-consideration.

What happens is that the engaged segment, the people who open consistently, tends to skew heavily toward recent buyers and brand fans who already converted. Your open rate looks great because these people open everything. But they already bought. You are measuring engagement from a group that does not need to be convinced anymore, and you are drawing the conclusion that email is working as a repeat purchase driver.

Meanwhile, the mid-funnel segment, people who bought once 60 to 90 days ago and are now in the decision window for a second purchase, is receiving the exact same campaign content. Nothing about the timing, the product angle, or the offer is calibrated to where they are in the buying cycle.

We see this with apparel brands too. A customer who bought a jacket in October gets the same January sale campaign as someone who bought joggers in December. The logic does not account for product category, purchase recency, or what a second order would even look like for that customer.

The Suppression Problem Nobody Is Talking About

Here is where a lot of repeat purchase revenue quietly disappears.

Brands suppress unengaged contacts to protect deliverability, which is correct. But the suppression logic is almost always built on email engagement metrics, not purchase behavior. Someone who opens rarely but buys every time they get a campaign is often getting suppressed because they look unengaged by email standards.

We audited a home goods brand last quarter where 14 percent of their second purchase customer cohort, people who had placed two or more orders in the last 12 months, were sitting in suppressed or low-engagement segments and receiving zero campaign sends. These were paying customers being treated as dead weight on the list because they did not open the onboarding sequence six months ago.

In Klaviyo, you can cross-reference your suppressed or engagement-excluded profiles against Shopify order data. When we do this in audits, we almost always find a meaningful chunk of actual buyers who have been cut out of campaign sends entirely.

The fix is not to blast your full unengaged list. The fix is to build suppression logic that accounts for purchase recency as a separate signal from email engagement. A customer who bought 45 days ago should not be excluded from campaigns regardless of their open history.

Campaign Content That Treats Everyone as a First-Time Buyer

The second structural issue is content, specifically that most campaign content is acquisition-framed even when it is going to existing customers.

We see this everywhere. The campaign leads with a hero image of the product, two lines of copy about what it does, a discount code, and a call to action. That structure makes sense for a prospect who has never bought. It makes almost no sense for a customer who already owns the product and is deciding whether to buy again.

Repeat purchase email content should do completely different work. It should reference the previous purchase implicitly or explicitly. It should speak to what comes next in the product journey. It should surface complementary products based on what they already bought, not what is currently on promotion.

A skincare brand we work with had a 31 percent repeat purchase rate before we restructured their campaign segmentation. Their campaign content was entirely hero product focused. After building three separate content tracks, one for first-time buyers in the 30 to 60 day window, one for customers with two or more orders, and one for lapsed buyers over 90 days, their repeat purchase rate moved to 38 percent in the following two quarters. The send volume barely changed. The segmentation and content logic did.

What to Actually Look At in Klaviyo and Shopify

If your open rates look healthy but repeat purchase revenue is flat, here is where to start.

Pull your placed order metric in Klaviyo by campaign for the last 90 days. Do not look at the revenue attributed number because Klaviyo's attribution window will inflate it. Look at the actual number of orders placed within 24 hours of a campaign click. Then segment that by whether those buyers were first-time or returning customers in Shopify.

In most accounts we audit, 70 to 80 percent of campaign-attributed revenue comes from first-time buyers or highly engaged repeat buyers who would have converted anyway. The campaigns are not meaningfully driving incremental repeat purchases from the middle of the customer base.

Then go into your Shopify customer analytics and find customers who bought once between 45 and 90 days ago. Cross-reference those profile IDs against Klaviyo activity for the same period. Look at what campaigns they received and what the content was. In most cases, the content is not speaking to their situation at all.

This is the audit that reveals the gap between your email program feeling like it is working and your email program actually generating repeat purchase revenue from the customers who are most likely to buy again.

If you want a structured look at where your Klaviyo program is generating real repeat revenue versus just activity, that is exactly the kind of thing we dig into in a conversion audit. The open rate story is almost never the full story.