Stop Discounting Customers Who Would Buy Anyway (Klaviyo)

⏱ 9 min read

The most expensive line in many Shopify retention programmes is not ad spend. It is the discount sent to a customer who was already going to buy. The order lands, the report looks fine, and you have quietly handed away margin you never needed to spend. Klaviyo’s own benchmark team flags the mechanism directly: discounts in abandoned cart emails can work against you by training shoppers to wait for the next deal before buying.

That training compounds. Flows already drive 37% of email revenue from roughly 2% of sends, so the automated message a loyal buyer receives carries real weight, and a standing coupon teaches your best customers to delay. This guide shows how to send discounts only to the people who change behaviour because of them, and something more profitable to everyone else.

Marketer reviewing Klaviyo customer segments on a laptop to decide which buyers should receive a discount and which should not

The Real Cost of Discounting Customers Who Would Buy Anyway

Every discount has two kinds of buyer behind it. The first would not have purchased without the offer. The second was always going to buy and pocketed the saving. Total sales during a promotion never separate the two, which is why over-discounting hides in plain sight.

The maths is unforgiving on the second group. On a 60% gross margin product, a 20% discount removes a third of your margin on that order. If even half the buyers in a promotion would have purchased anyway, you have cut margin on every one of them to influence the other half. The customers who buy often and at full price, your highest-value cohort, are exactly the ones a blanket “15% off” email costs you the most to reach.

🎯The principle

The goal is not to kill discounts. It is to stop spending them on people who do not need the push, because a discount to a guaranteed buyer is pure margin transfer with no behaviour change.

Why Shopify Brands Over-Discount in the First Place

Discounts Feel Like the Fastest Lever

Revenue dips, a discount goes out, it works once, and it becomes the default. The problem is that it applies one blunt incentive to a list of very different people. Cart abandonment alone runs at roughly 70% across ecommerce per Baymard Institute’s synthesis of 50+ studies, and a discount is the laziest answer to a problem that is usually about cost transparency and trust, not price.

Most Klaviyo Accounts Treat Everyone the Same

A typical setup runs a few engagement windows, a browse-abandonment flow, and a lapsed-customer offer. It looks clean on a dashboard. But the same coupon reaches a treble-repeat loyalist and a one-time bargain hunter, and the account never separates them. Klaviyo segments update in real time, so this is a choice, not a technical limit.

Few Brands Measure Who Actually Needed the Offer

This is the deepest issue. Most stores never test whether a discount changed behaviour or subsidised a sale that was already coming. Without a control group, over-discounting feels like it is working right up until margin is examined. The fix is a holdout test, covered at the end of this guide.

📊Why this matters

Discount the whole list to rescue revenue and you pay the people who needed no incentive, then train them to expect the next deal. Margin lives in sending the discount only where it changes behaviour, and the only way to know where that is, is to measure it.

Segmentation That Protects Margin: Start With RFM, Don’t Stop There

RFM scores each customer on Recency, Frequency, and Monetary value. Arthur Hughes codified it for database marketing in 1994, and it is still the right base layer because it needs no data scientist: every input comes straight from your Shopify orders table, and quintile scoring (1 to 5 per axis) gives clear named segments like Champions, At Risk, and Hibernating.

But RFM on its own is backward-looking. It tells you what someone did, not what they will do next, and it ignores on-site intent entirely. In 2026 it works best as the floor, with two layers on top:

  • Predictive metrics. Klaviyo’s predictive analytics add Predicted CLV, Churn Risk, and Expected Date of Next Order, all forward-looking and retrained weekly. These forecast value instead of just recording it.
  • Real-time intent. Layer live signals (Viewed Product, Started Checkout, replenishment timing) so a customer crossing from Loyal into At Risk triggers action within hours, not at the next quarterly review. The transition between segments is a stronger signal than the static segment itself.

The practical takeaway: build RFM groups today, then sharpen them with predictive scores and intent triggers as your data matures. Mapped onto offer strategy, that gives four groups.

SegmentSignalSend ThisAvoid
Full-price loyalistsRecent, frequent, high Predicted CLVEarly access, VIP perks, new drops, referral asksStanding discount emails
ConsiderersBrowsing or repeat visits, no purchase yetDepends on the objection, see belowLeading with a coupon by default
Price-sensitive buyersOnly purchase during promotionsFenced, targeted discountsFull-price-only messaging
Dormant customersPast 1.5x their normal repurchase cycleWin-back sequence, incentive only if earlier sends failDeep discount on send one

Full-Price Loyalists

These are your Champions in RFM terms, and usually your highest Predicted CLV. A discount here is pure cannibalisation: you pay to win a sale you had already won. Reward them with exclusivity, first access, and review or referral requests. A rare perk is fine; a permanent coupon trains your most profitable cohort to wait.

Considerers (And Why That Label Hides Four Different Problems)

“Considerer” is not one objection, it is at least four, and each needs a different response. Treating them as a single audience for one generic email is why this segment underperforms. The real objection is usually one of these:

The Real ObjectionSignal You Can DetectWhat Actually Moves Them
Price feels too highRepeated visits to the same product, no add-to-cartPayment options, value framing, bundle that lowers per-unit cost
Wrong variant or fitViews multiple variants, size-guide clicksFit guide, fit-focused reviews, easy exchange policy
Doesn’t trust the brand yetFirst session, no prior ordersReviews, UGC, guarantees, returns clarity
Just researching the marketBroad browsing, low session depthEducation, comparisons, no hard push

A shopper who lingers on one product page and clicks the size guide does not need 10% off. They need to know it runs true to size. Unexpected costs (48%), forced account creation (24%), and trust gaps (17%) are the documented top reasons carts get abandoned, per Baymard, and none of them is solved by a discount.

Price-Sensitive Buyers

This is where discounts earn their place. These customers buy on promotion and rarely otherwise, so a fenced, targeted offer does real work. Keep it limited to this group so it does not leak to everyone else through a public code.

Dormant Customers

Customers past 1.5x their average days-between-orders. Do not use Klaviyo’s 180-day default: if your natural cycle is 50 days, start win-back at 50 to 80 days, because waiting 180 means most are already gone. Win-back is cheaper than acquisition since they already trust you. Open without a discount, reference their last purchase, and add an incentive only if earlier sends get no response.

Four Shopify customer segments sorted by recency, frequency and predicted value, showing which group should receive a discount and which should not
💡Practical tip

Decide the offer per segment before you write the email. If full-price loyalists are about to receive the same coupon as bargain hunters, that is the leak. Fix it before you hit send, not after the margin report.

What to Send Instead of a Discount

For every segment except price-sensitive buyers, a discount is rarely the strongest move. Stronger options:

  • Product education. Show customers how to get a better result from what they bought. This lifts satisfaction and repeat rate without touching price.
  • Social proof sequences. Reviews, results, and real customer stories answer the trust objection that price never solves.
  • Personalised recommendations. Use category and purchase history to surface the logical next product. Klaviyo reports revenue per personalised session more than doubled from $1.12 to $2.64 between December 2025 and March 2026, with flat pageviews, so relevance converts faster than reach.
  • Bundles. A well-built bundle raises average order value and protects margin better than a flat percentage off, because customers read it as added value rather than a price cut.

When a Discount Actually Makes Sense

Discounts are a tool, not a sin. They are the right call for:

  1. Clearing slow or seasonal inventory.
  2. Reactivating dormant segments after non-discount sends have failed.
  3. Genuinely price-sensitive buyers who only convert on promotion.
  4. Time-boxed seasonal events where the discount is the campaign, not a patch for a soft week.

The rule of thumb: reserve deeper promotions for hibernating and lost customers, and lead with value for everyone who already buys at full price.

How to Set This Up in Klaviyo

Build the core groups directly in Klaviyo’s segment builder using synced Shopify data. The advanced segmentation reference covers the conditions in depth. Useful starting definitions:

  • Full-price loyalists: Placed Order at least 3 times over all time, plus a trailing-365-day revenue threshold that fits your store.
  • First-time buyers: Placed Order equals 1 over all time.
  • Dormant: Placed Order at least once over all time, and Placed Order zero times in a window set to roughly 1.5x your average repurchase cycle.
  • Browse intent: Viewed Product in the last 7 days, with Started Checkout and Placed Order both zero in the same window.
⚠️Two limits worth knowing before you rely on Klaviyo

Predictive analytics only unlocks with at least 500 customers who placed an order, 180+ days of order history with recent orders, and some customers with 3+ orders. Separately, Klaviyo cannot natively build a segment of customers who never used a discount. You can target who used a code, but not the inverse. Workaround: export discount users and all purchasers, then exclude the first from the second in a spreadsheet to isolate true full-price buyers.

How to Prove a Discount Actually Worked (Holdout Testing in Klaviyo)

This is the step almost no one runs, and it separates a discount strategy from a discount habit. A promotion that “converted thousands of orders” tells you nothing about how many would have happened anyway. A holdout test fixes that: withhold the offer from a randomised slice of the eligible audience, then compare their purchase rate against the group that received it. The gap is your true incremental lift.

How you run it in Klaviyo depends on whether you are testing flows or campaigns, and the distinction trips up most teams:

What You’re TestingThe Right Tool in KlaviyoNotes
All marketing (flows + campaigns)Global Holdout Group, in ExperimentsSuppresses a % of profiles from everything; reports lift after ~3 months. Requires 400,000+ profiles
A single campaignManual split: send to 90%, withhold 10%Export both cohorts, compare conversion rate, RPR and AOV. No built-in campaign holdout exists
A specific flow or tacticConditional split with random sample + customer tagsTag profiles into control vs variant via an operational flow, then use flow filters to include or exclude each group
Cross-channel / precise liftDedicated tool (e.g. Intelligems, Attribution)Use when you need clean incrementality beyond what Klaviyo’s native splits give you

The key point: Klaviyo has a true built-in holdout for flows and global marketing, but not for individual campaigns. For a one-off promotion you either build the 90/10 split by hand or reach for a third-party tool. Whichever route, exclude orders already credited to other flows so you are not double-counting.

🎯Key detail

Run one holdout on a segment you suspect is over-discounted. If the held-out group buys at nearly the same rate as the discounted group, the discount mostly subsidised sales you already had, and that segment should come off the offer. That single test turns this whole article from theory into a number.

Not sure where to start? Skalum can help.

📧

Klaviyo Shopify Setup

Welcome flows, segmentation, and the Klaviyo–Shopify integration set up cleanly from day one.

Set up my flows →
✉️

Klaviyo Email Marketing Agency

Full flow strategy, buyer/non-buyer splits, and retention built around your Shopify data.

Build my flows →
🚀

Shopify Marketing Agency

Email performs better when it is tied to SEO, CRO, and paid growth instead of treated as a silo.

See how we work →
FAQ

Frequently Asked Questions

Build an RFM segment of recent, frequent, high-spend buyers and exclude them from discount campaigns. Send them early access, VIP perks, and referral asks instead. These customers already buy at full price, so a coupon mostly cannibalises a sale you had already won.

RFM scores customers on recency, frequency, and monetary value using past purchases. Intent-based segmentation adds live signals like recent browsing, checkout starts, or replenishment timing. Using both gives a sharper view of who needs a push and who does not, so you target offers more precisely.

Not directly. Klaviyo can segment people who used specific discount codes, but there is no native condition for customers who never used one. The workaround is to export your discount users and all purchasers separately, then exclude the first list from the second to find your true full-price buyers.

For most segments, product education, social proof and reviews, personalised recommendations, and bundles outperform a flat discount. They address trust and fit objections, raise average order value, and protect margin. Reserve actual discounts for price-sensitive buyers and dormant customers who have not responded to non-discount sends.

Discounts work for clearing slow or seasonal inventory, reactivating dormant segments after other sends fail, genuinely price-sensitive buyers who only convert on promotion, and time-boxed seasonal events. The guiding rule is to reserve deeper promotions for lapsed customers and lead with value for full-price buyers.

Klaviyo provides Predicted CLV, Churn Risk, Expected Date of Next Order, and Average Time Between Orders. The models retrain weekly. They become available once you have at least 500 customers who placed an order, 180 days of order history with recent activity, and some customers with three or more orders.

Run a holdout test. Withhold the offer from a randomised slice of the eligible audience and compare their purchase rate against the group that received it. The gap is your true incremental lift. If both groups buy at a similar rate, the discount mostly subsidised sales you already had.

Yes. Repeated, predictable discounting conditions your highest-value buyers to delay purchases until the next promotion. Over time this erodes both margin and the perceived value of the brand. Suppressing full-price buyers from discount-heavy sends protects against this pattern.