Why Your Klaviyo Promotional Emails Are Cannibalizing Revenue From Customers Who Were Already Going to Buy
The Attribution Problem Nobody Talks About in Klaviyo
When a brand sends a 20% off promotional email and revenue spikes that week, the dashboard lights up green. Klaviyo shows attributed revenue, the team celebrates, and the campaign gets repeated next month. This is one of the most common patterns we audit, and it has a serious flaw buried inside it.
The revenue that gets credited to that promotional email often would have happened anyway. The customer was already in a repurchase window. They were already thinking about buying. Your email did not create the demand. It just handed them a discount they did not need to convert.
This is promotional email cannibalization, and it is quietly destroying the margin of brands that believe their email channel is performing well.
What the Data Actually Shows When You Dig Into It
The default Klaviyo attribution window assigns credit to any campaign that was opened or clicked within a set lookback period, typically five days for clicks and one day for opens depending on your settings. This means a customer who opened your campaign and then purchased three days later gets counted as campaign revenue, even if that customer has a 30-day repurchase cycle and was already overdue to reorder.
We run this analysis on almost every audit we do. The methodology is simple. Pull your campaign recipients and cross-reference them against your Shopify repurchase data in Klaviyo or through a tool like Lifetimely or Triple Whale. Separate buyers who were inside their normal repurchase window at the time of the campaign from buyers who were outside it.
What you typically find is that somewhere between 40 and 65 percent of campaign-attributed revenue comes from customers who would have purchased within the next seven days regardless of whether they received a discount. The email compressed the purchase timing slightly and handed away margin in the process.
One home goods brand we audited was sending a monthly 15% off campaign to their entire active list. When we segmented out customers who had a purchase history suggesting they reordered every 30 to 45 days, we found that over half of the monthly campaign revenue came from people in that cohort. The brand was spending promotional budget and discounting margin on customers who were already some of the most reliable buyers in their database.
The Segment You Need to Build Before Your Next Send
The fix is not to stop sending promotional campaigns. The fix is to build a suppression segment that excludes customers who are likely to repurchase without a discount, and to only send those discount offers to customers who actually need the nudge.
In Klaviyo, this looks like a segment built around purchase frequency and recency. If a customer has purchased two or more times and their last purchase falls within their average repurchase interval, they should be suppressed from promotional sends that include a discount. These customers respond to content-based emails, product update emails, and loyalty-focused messaging just as well, without giving up margin.
The customers who should receive your promotional campaigns are the ones sitting outside their normal window. Someone who last purchased 75 days ago when their typical cycle is 45 days is slipping. A discount email to that person has a job to do. The same discount to someone who purchased 20 days ago and typically reorders at day 30 is just erosion.
Building this segment takes about an hour in Klaviyo if your purchase data is structured properly. You need average days between orders by customer, which you can calculate using Klaviyo's predicted next order date property or by pulling order history into a spreadsheet and building the logic manually. Once the segment exists, you apply it as a suppression condition on every promotional campaign before you hit send.
Why This Happens More Often at the $5M to $20M Stage
Smaller brands often have tight enough lists that this effect is manageable. The damage is real but not catastrophic. When brands grow past the $5M mark and their email list hits 50,000 or 100,000 active subscribers, the cannibalization math starts to compound fast.
At that scale, a 15% off campaign to 80,000 people where 50,000 of them were going to buy anyway does not just cost you the margin on 50,000 orders. It trains those customers to expect discounts before they repurchase. Over 12 to 18 months, that conditioning shifts the baseline. Customers start waiting for the email before they buy. Your organic repurchase rate on full-price orders drops. Your email channel looks like it is performing because attributed revenue is high, but your overall margin per retained customer is declining.
We have seen this exact pattern in supplement, skincare, and pet product brands where the email team is hitting monthly revenue targets consistently and the founders cannot figure out why gross margin keeps compressing despite steady topline growth. The email channel is cannibalizing the margin that retention was supposed to protect.
What to Replace the Blanket Discount Campaign With
Once you suppress existing repurchase-window customers from discount campaigns, you need something to send them. This is where brands often freeze because the promotional calendar is built around discounts and there is no content infrastructure behind it.
The simplest replacement is a product education send. For customers inside their repurchase window, an email that shows them how to get better results from the product they already bought performs well. It reinforces the purchase decision, reduces the chance they are quietly dissatisfied, and primes them to reorder without needing a price incentive.
The second option is a loyalty recognition email. Something as simple as acknowledging that a customer has ordered multiple times, with a note about what makes them a valuable part of your community, converts at a higher rate than most teams expect, and it does it at full margin.
The third is a new product or bundle introduction email. If you have adjacent products or bundles that make sense for a repeat buyer, an email timed to the end of their repurchase window that introduces something new gives them a reason to expand their order rather than just reorder the same thing at a discount.
None of these require advanced infrastructure. They require a willingness to stop treating your entire active list as a single segment and start sending based on where each customer actually is in their buying cycle.
If you are not sure whether your Klaviyo campaigns are cannibalizing margin from customers who were already on track to repurchase, that is exactly the kind of thing we look at in a conversion audit. The data is usually sitting in your account already. It just needs to be read correctly.