◈Home ▸Blog ◇Contact
Home/Blog/Put the Cart Discount in Email One or Email T…
ArticleEcommerceabandoned cartdiscountingretention

Put the Cart Discount in Email One or Email Three

10 min readBy Miloš Mitrović

Put the discount in email three, not email one, for any store whose customers buy more than once. An email-one code lifts recovered orders by a point or two and then charges you on every order that buyer places afterwards, because the fastest way to teach somebody a habit is to reward it the first time they try it. The exception is a genuinely one-and-done category with thick margin, where the training cost never arrives because the customer never comes back. Below is the arithmetic on what the lift is worth, the cohort measurement that tells you whether you have trained your list, and how to run the test without causing the damage you are testing for.

Key takeaways

  • Moving a 10 percent code from email three to email one usually buys one or two extra recovered orders per 100 abandoners, and pays the discount on every recovery rather than only the incremental ones.
  • The training effect appears on the second order, so measure discount share and days to reorder for the recovered cohort, not cart flow conversion rate.
  • Attributed revenue flatters the discount variant because discount subject lines earn clicks, so a no-discount holdout is the only clean read.
  • Test with unique single-use codes, a 48 hour expiry and zero-order profiles only, so a losing variant cannot be redeemed twice or shared.
  • Email one belongs to the objection that stopped the checkout (shipping cost, delivery date, returns), which is where most abandonment actually comes from.

What an email-one discount actually buys

It buys a small increase in recovered orders and a large increase in how many of those recoveries carry a discount. The second number is the one that moves money. When the code sits in email three, only the abandoners who stayed cold for two or three days ever see it. When it sits in email one, every recovery redeems, including the ones who were coming back anyway.

Work it through on 100 abandoned checkouts, $100 average order value, 60 percent gross margin, 10 percent off:

VariantRecovered ordersOrders carrying a codeGross margin
No code in the flow80$480
Code in email three94$500
Code in email one1010$500

The two discount variants land in the same place, and the email-one version got there by conceding margin on five orders that did not need it. Raise the code to 15 percent and the ranking inverts: email one returns $450 against $480 for email three. Abandonment runs near 70 percent of all carts across Baymard's aggregated studies (Baymard cart abandonment rate), so the population you are discounting into is most of your traffic, and a few points of margin spread across it is a line item your finance lead will find.

How buyers learn to wait for the code

They learn from repetition, not from a single email. A cart discount becomes a habit when three conditions hold at once: the trigger is predictable (add items, leave), the delay is short enough to notice (under an hour), and the reward is identical every time. Customers on their third or fourth order work this out without intending to, and the behaviour shows up as a rising share of sessions that reach checkout, stall, and convert only after the email lands.

Two things accelerate it. Reusable codes reach coupon aggregator sites and browser extensions within weeks, so the discount ends up in front of people who never abandoned anything. And price is already the dominant reason carts die, so you are reinforcing a tendency your buyers arrive with: Baymard's checkout research puts extra costs at checkout (shipping, tax, fees) as the most cited reason for abandoning, at 48 percent of respondents (Baymard checkout usability research). A dependable cart code is, functionally, a lower price available to anyone patient enough to wait an hour.

The cohort test that shows whether you trained them

Look at the second order, not the recovered one. Build two cohorts from a single month of first-time buyers: those whose first order came through the cart flow with a code redeemed, and those whose first order carried no discount at all. Track both for 180 days, or two repurchase intervals if that is longer:

  • Repeat rate at 90 and 180 days.
  • Share of second orders carrying any discount code.
  • Median days to second order.
  • Average order value on the second order.
  • Share of second orders preceded by a Started Checkout with no Placed Order inside two hours.

The signature of a trained cohort is specific: repeat rate holds or even improves slightly, days to second order holds, and discount share on the second order runs 15 to 30 points above the control. That combination means you did not lose the customer, you simply agreed to sell to them cheaper from now on. The last metric is the leading indicator, because deliberate abandonment looks like a checkout start, a pause, then an order placed inside the flow window.

Pull this from order data rather than flow reporting. Flow reports describe the message, not the customer's next twelve months. Export Placed Order events with their discount properties through the API (Klaviyo API overview) or query the store's order table directly, and join on customer, never on email send.

Why attributed revenue overstates the discount email

Because attribution credits the last message a profile engaged with, and discount emails get engaged with more. Conversion attribution assigns an order to the most recent message the profile opened or clicked inside the attribution window, so a subject line carrying a percentage harvests clicks from people already on their way back to buy. Run email one with a code against email one without, read the result on attributed revenue, and the discount wins by a margin that is partly borrowed from orders it did not cause.

The correction is a holdout that receives no cart flow at all, sized at 5 to 10 percent of abandoners and held for a full quarter. Compare total store revenue per abandoner across the holdout and each variant, sourced from the ecommerce platform rather than the sending tool. If those two systems have never been reconciled in your account, do that first (reconciling Klaviyo revenue with Shopify numbers), because a test read across two systems that disagree by 20 percent proves nothing either way.

How to test the timing without teaching the behaviour

Constrain exposure, reuse and population, so a losing variant cannot quietly become permanent. Five rules worth holding to on any discount timing test:

  1. Unique single-use codes. Generate one per profile instead of a shared code. Shopify supports both code-based and automatic discounts, and only the per-code path gives you redemption data you can join back to a customer (Shopify discounts documentation).
  2. Short expiry. 48 hours. A code that expires cannot be banked for the next cart, and the deadline gives the email an honest reason to exist.
  3. Zero-order profiles only. Repeat buyers are the population you can damage, so keep them out of the test and give them a reorder path instead.
  4. Exposure cap. 25 to 30 percent of eligible abandoners into the email-one variant. Enough to reach a readable result inside a quarter, small enough that a bad outcome never reaches your best customers.
  5. Two repurchase cycles of runtime. The cart flow result is readable in three weeks. The training cost is not readable until the cohort has had a fair chance to place a second order.

Size the test on recovered orders, not on sends. A flow recovering 80 orders a month needs several months to detect a two point absolute difference in recovery rate, so run those numbers before you start rather than after (Evan Miller's sample size calculator). If the answer is longer than a quarter, test discount depth instead of timing, because depth moves a bigger number on the same traffic. The mechanics of building this inside the flow are covered separately (testing abandoned cart discount timing in Klaviyo), as is the wider question of when an email test result means anything at all (A/B tests that mean something).

What belongs in email one instead

The objection that stopped the checkout. Since extra costs are the single most cited abandonment reason, the highest-value thing email one can carry is cost certainty, not a concession. In practice that means:

  • The exact amount remaining to reach free shipping, calculated from the abandoned cart total rather than stated as a generic threshold.
  • A delivery date estimate, not a shipping speed label.
  • Returns window and who pays for the return label.
  • Payment options, including instalment providers, if your average order value sits above $120.
  • Stock position on the abandoned item, stated only when it is true.
  • Reviews for the specific items in the cart, not site-wide ratings.

All of that requires the email to know what was in the cart, which pushes you toward the checkout-level trigger rather than the browse-level one (added to cart vs checkout started) and toward templates that render each item with its own objection handled (product-aware abandoned cart emails).

When email one discounting is defensible

When the training cost can never be collected, because the customer will not be back. Four situations qualify:

  • Repeat rate below roughly 15 percent at twelve months with no credible plan to change it: mattresses, luggage, engagement rings, one-off gifting.
  • Gross margin above 70 percent, where ten points off still leaves the incremental order far ahead of no order.
  • A considered purchase with a long decision window, where the cart behaves more like a quote and the discount is simply the negotiation you were going to have anyway.
  • Clearance or end-of-life ranges, where margin is already conceded and unit movement is the objective.

Two situations look like exceptions and are not. The first is a new store that needs volume: your founding cohort is the most valuable group of customers you will ever acquire, and the price expectation you set with them persists for years. The second is a flow with a weak recovery rate. A recovery rate under about 5 percent is almost always a trigger, timing or deliverability problem, and an early discount will hide it rather than fix it.

Trade-offs and what I would ship

The ladder I default to: email one at 45 to 60 minutes with cart contents, shipping threshold and delivery estimate and no code; email two at 24 hours with item-level reviews and an honest stock position; email three at 48 to 72 hours with a unique 10 percent code expiring in 48 hours, restricted to profiles with zero prior orders. Repeat buyers get a two-email version with no code and a one-click path back to the cart.

Be clear about what that costs you. You will recover slightly fewer carts this month. Your cart flow's attributed revenue will look worse than a competitor's who discounts in email one, and sooner or later somebody will put those two numbers side by side in a deck. The defence is the cohort data, which is why it is worth building before anybody asks. On thin margins, points are usually the better instrument than a percentage off, because they defer the cost to a purchase that has not happened yet (loyalty points vs a discount on thin margins).

One result would change my recommendation for your account specifically: if after two repurchase cycles your discounted cohort shows second-order discount share within 5 points of control, with repeat rate equal or better, the training effect is not happening in your store and you should take the extra orders. That is a measurable claim, and it is cheaper to measure than to argue about.

Sources

M
Miloš Mitrović
Email Marketing for Ecommerce

Have a question or a project?

Whether it is about this post or a system you want built, I'm happy to talk.

Get in touch

404

Post not found. It may have been moved or the link is incorrect.

← Back to the blog
Summarize with AI
ChatGPT, Perplexity, and Grok open with the prompt ready to run. Claude, Gemini, and Copilot open a chat with the prompt copied; press Ctrl+V (Cmd+V on Mac) to paste. The full text is included, so it works even without web access.