Guide · The Donut Agency

From Beginner To Advanced Segmentation

Four levels of segmenting a DTC list, in the order you should climb them: engagement, purchase history, the nine-box grid, and the product layer on top. This is the how, not the theory.

Everybody should grow their list, and guide one in this series is about how. But a big list is not automatically a good list. If a gamified popup handed you a 20% sign-up rate and none of those people ever buy, you did not build an asset, you signed up for a monthly bill. Klaviyo charges you to store those profiles and Meta already charged you for the traffic that produced them.

A good list is a mix: prospects you acquired recently, one-time customers old and new, repeat customers still buying, and repeat customers who stopped two years ago. It is only a good list if you know which of them you are talking to at any given moment, and that is what segmentation is for.

Most brands are stuck on level one and think they have finished. Here is the whole ladder.

Section 1

A good list is a mix, and sorting it has four levels

Segmentation gets discussed as though it were one thing you either do or do not do. It is four things, stacked, and each level answers a question the level below it cannot.

LevelSorts people byAnswersMost brands
1. EngagementOpens and clicksWho is safe to mail?Live here
2. Purchase historyRecency and frequencyWhat should I say?Talk about it
3. The nine boxesBoth axes at onceWhat does each group get, and how often?Rarely reach
4. Product layerWhat they boughtWhich product do I put in front of them?Almost never

The order matters. Level one is a filter and it never goes away, but on its own it cannot tell you a single thing about what to write. Levels two and three decide the message. Level four decides the product inside the message. Skip ahead and you get a beautifully targeted email sent into a spam folder; stop at level one and you get perfect deliverability on an email that says nothing to anyone.

Ideally every person on your list is a repeat customer who buys every single day. That is not going to happen, and we are trying to be realistic here.

Section 2

Level 1: engagement, and why it is not enough

The beginner move, and everybody does it. If somebody opened or clicked recently, send them the next campaign. Everybody else gets nothing, and the reporting stays beautiful.

The standard shape of this is a set of nested windows, and they are worth naming because the rest of the guide refers back to them. Engaged 30 days is the workhorse. Engaged 90 and 180 are progressively looser rings around it. Prospects usually get tighter windows than customers, because somebody who has never bought has to show more intent to earn the same reach.

None of that is wrong. Section 9 is entirely about why you keep it. But look at what the sort is actually reading.

What an open tells you

That somebody looked at a subject line. Under Apple Mail Privacy Protection it may not even tell you that, because the open can be machine-fired before a human sees anything. It has never once told you whether that person has given you a dollar.

So level one is a safety system. It protects the channel and it decides who is safe to mail. It cannot decide what to say, because the axis it sorts on has nothing to do with the thing you want. The axis that does is purchase behaviour, and that is level two.

Section 3

Level 2: RFM without the mysticism

3.1  What the letters actually mean

People say RFM the way you would name a classified programme. Advanced RFM analysis. We must be data nerds, we have PhDs, we hired a team. It is three words:

LetterMeansThe question
RRecencyHow recently did they buy?
FFrequencyHow many times have they bought?
MMonetaryHow much have they spent?

Monetary is a word that could not be more simple. We all understand what money means, in every language. All RFM does is read past purchase history and sort people into groups, so that each group can get a different message.

Take somebody who has bought three times a year for five years and spent an insane amount with you, and somebody who placed their first order yesterday. Send them the same email and you are failing one of them. The new buyer wants the natural next thing to buy. The five-year buyer has seen the natural next thing forty times and wants to know what is new. Point the new buyer at your bestsellers, not the experimental flavour, because if their second purchase is a disappointment there is no third.

3.2  You can usually drop the M

Monetary correlates well with recency and frequency. On most catalogues it is a third axis that repeats what the first two already said, and it doubles the number of boxes you have to maintain to get there.

It earns its place when your catalogue spans wildly different price points. If you sell both a pen and a tank, then one tank buyer is worth a thousand pen buyers and you cannot treat frequency as a proxy for value. Sun Tzu might disagree. Sun Tzu is not on the call. Whatever you sell probably sits inside one price band, so drop the M and keep the model simple enough that somebody will actually maintain it.

If you do keep monetary, score it on margin

A high-revenue customer who only ever buys the discounted, low-margin SKU is not your best customer. Rank on contribution margin rather than revenue before you call anyone a VIP, or you will build a loyalty programme for the people who cost you the most to serve.

3.3  Score all three axes when you are setting strategy

When you are setting strategy rather than picking an audience for Thursday, score all three axes. Rank customers into quartiles on each, one being best, which self-calibrates to your own distribution instead of borrowing somebody else’s thresholds. That gives up to 64 cells, which nobody can run a calendar off, so people collapse them into named statuses: champions, loyal, high potential, new, at risk, and the ones worth sunsetting.

Section 4

Level 3: nine groups, each getting a different email

4.1  Two axes, nine groups

Drop the monetary axis and you are left with something you can hold in your head. On frequency, people have bought from you zero times, one time, or more than once. On recency, they are recent, at risk, or lapsed. Multiply them and you get nine groups, each of which wants a different email.

Recent
At risk
Lapsed
Repeat2+ orders

Active repeat

Everything. New launches, cross-sell, restock.

Slipping repeat

Educational and promo. Cut the product emails.

Dormant repeat

Go deep. Founder letter, then your biggest offer.

One-timeexactly 1 order

New customer

Bestsellers and the obvious next product.

Stalling 1x

Reduced frequency. Educational and promo.

Dormant 1x

Promo-led. They owe you nothing.

Prospectsnever purchased

Fresh prospect

Full rotation. Everything except the deepest sale.

Cooling prospect

Fewer sends. Educational and promo only.

Dead prospect

Price the carry. Sunset, then suppress.

Recency bands are set from the brand’s own median time between orders, not from 30 and 90 days. See section 4.2.

Figure 1. The nine boxes, with the default content treatment for each. Note what is not symmetrical: dormant repeat customers are worth chasing hard because they proved twice that they like the product, while dormant one-time customers proved nothing and dead prospects are a line item on your Klaviyo invoice.

4.2  Set the bands from your own data

Thirty and ninety days are placeholders, and they are wrong for plenty of brands. Somebody who buys pens may well need pens again in three months. Somebody who bought a tank hopefully does not need another one unless there is a war on.

The band you want is your own median time between orders, and there are two ways people get this wrong. They use the mean, which a handful of enormous gaps drags upward, when they should use the median. And they pool every customer into one number, when the gap from first to second order is almost always longer than second to third, which is longer than third to fourth. Repeat buyers compress their own cadence. One pooled average is wrong for everybody in the file.

Instead ofComputeThen
A 90-day lapse ruleMedian gap, per order countLapse each customer against the interval for the order count they are actually on
An average days-between-ordersMedian, not meanRight-skewed gaps stop inflating the number
A global winback delayProjected next order date per customerFlag overdue, and cap overdue at about 12 months

Past twelve months overdue, somebody is not due. They are gone, and they belong in a reactivation campaign rather than a replenishment nudge.

Short cycle versus long cycle

Socks, underwear, supplements and anything consumable: ninety days of silence is a real signal and a steep reactivation offer is warranted. Bedding, furniture, home goods and considered purchases: ninety days is just Tuesday, and pushing a discount at month three buys a discount for somebody who was going to buy in month five anyway.

4.3  What each of the nine groups gets

There are four content buckets to allocate across the grid: promotional, product, educational and authenticity. Authenticity is the founder letter, the review, the story about why the thing exists.

GroupFrequencyWhat worksWhat to withhold
Fresh prospectsFull rotation, every sendEverything: educational, product, promoYour deepest sitewide sale
Recent customersFull rotationCross-sell, bestsellers, restockThe deep discount they just missed
At risk, any typeCut it backEducational and promoProduct emails they have started tuning out
Dormant prospectsRarely, if at allYour single biggest offerEverything else
Dormant 1xLowPromo-ledSubtlety
Dormant repeatLow but worth itFounder letter, then a deep offerNothing, go as far as the margin allows

The one rule that costs money when you break it: keep recent customers out of your biggest sale. They paid full price a week ago. Show them 40% off the thing sitting in their hallway and you have bought yourself a support ticket and a refund request instead of a second order.

For the at-risk group, do not guess which content works. Klaviyo will break campaign performance down by segment. Look at how that group performs against the others by email type, keep the two that work, and stop sending the rest.

Engaged 7d
every send
Engaged 30d
most sends
Engaged 90d
sale and launch days
Engaged 180d
sale peaks only
Everyone
once a month, real sale only
Figure 2. Engagement rings are cumulative and get re-applied on every send, so the number of sends that reach a ring IS that ring's frequency. That makes depth a frequency decision, not a per-send decision, and it means the highest-leverage lever you have is how much more often customers reach the deep rings than prospects do. These proportions are a shape to calibrate, not numbers to copy.

4.4  Level 4: put the product layer on top

The nine boxes tell you what kind of message somebody gets. They do not tell you which product to put in it. That is the fourth level, and it is what personalisation actually means once you strip the word of its marketing.

Take one box, say lapsed repeat customers, and cut it by a product they have already bought. Now recommend whatever people who bought that product buy next. Not what is bought alongside it in the same basket, which is a different question with a different answer. What comes next in time.

LayerSegmentThe email
No layerLapsed repeat customersOne generic winback to everybody
Category layerLapsed repeat customers who bought product XThe product that usually follows X, with a reason

One layered send replaces what would otherwise be three generic ones, which matters as much for restraint as for relevance: without the layer you either send one vague email or you inundate the same people three times.

This level needs real data

Do not build a past-purchasers-of-X segment on product data nobody has refreshed in six months. And if you have not got the next-purchase path, connect the store and read it rather than guessing which product follows which.

Section 5

You pay every month to store people who never buy

5.1  Count the conversions email actually caused

Lapsed prospects signed up a long time ago and have never bought anything. Before you decide they are worthless, run the numbers, because some of them do convert and the whole argument turns on how many.

The naive version is to count how many buyers last month were lapsed prospects, find some small percentage, and feel reassured. That overstates email’s case badly, because most of those people did not buy because of an email. They saw an ad, or came back on their own, and the email list happened to be holding their address at the time. Those conversions survive suppression untouched.

So the real question is narrower: how many of them clicked an email in the few days before they bought? That click window is what separates conversions your list caused from conversions your list merely witnessed.

5.2  Price both sides

Side of the ledgerHow to get it
Cost per yearBilled profiles in the band × your marginal $/1,000 profiles × 12. Use the real invoice, not the published tier, if the account is big enough to be negotiated.
Contribution per yearOnly the converters who clicked within a few days of buying, times the band's own measured order value, times contribution margin.
Conversion rateMeasured against a matured cohort: profiles old enough to have fully completed the band you are measuring.

Keep the bands where email-attributable contribution clearly beats the carrying cost. Cut the ones where cost beats even a generous reading of attribution. The band in the middle is a judgment call, and deliverability pressure should break the tie toward cutting.

5.3  Cut without a guillotine

  • Start with the free win. Profiles that never subscribed are billed and cannot legally be mailed. Suppressing those costs you nothing at all and is the obvious first move.
  • Send a sunset sequence first. Two or three emails saying plainly that this is the last one unless they do something. Suppress the non-responders, not the whole band on day one.
  • Check they were ever actually mailed. A profile that never received anything did not fail to engage. It was never asked.
  • Suppression is not deletion. History stays, the profile stops being billed, and most platforms will bring somebody back automatically if they purchase.

The deliverability dividend is the part nobody puts in the model. A large disengaged band drags your open and click rates, and those rates are what the inbox providers use to decide where the rest of your list receives you.

Section 6

Give the discount to the people it actually moves

A discount is only worth giving to somebody whose behaviour it changes. Give it to a person who buys from you every month anyway and you have not bought an order, you have bought the same order at a worse price.

At the other end of the grid, somebody who has not bought in two years can take a deep one. You had written that revenue off. Anything you get back is a bonus, like finding money in a coat pocket. You were not expecting it, and you will take it.

GroupOffer postureWhy
Active repeatNone, or non-discount perksThey convert without it. Every point is pure margin given away.
Recent customerNothing deepThey just paid full price. A deep offer now reads as a bill they overpaid.
At riskModest, or none yetTry content before cash. Discount is the last lever, not the first.
Dormant 1xPromotional leadOne order, no proof of a habit. The offer has to do the work.
Dormant repeatAs deep as margin allowsProven buyers. Reacquisition against revenue you already wrote off.

Know your break-even before you set the depth

Break-even ROAS is one divided by your gross margin percentage. The thinner the margin, the more work each discounted order has to do just to get you back to level. Set the ceiling on your reactivation offer from that number, not from what feels generous.

Section 7

Fire the flow the moment somebody changes group

The interesting thing about these groups is that people move between them, and the movement itself is a trigger. Somebody who always bought crosses from active repeat into at risk. That transition is a moment, and you can fire a flow on it, which beats waiting for a monthly campaign to notice.

What you should not do is send one email, get ignored, and treat it as a personal betrayal. I am so offended you did not take my offer, it is me, not you, I am sunsetting. That is money left on the table over a single non-response. Build the follow-up. Two, three, four touches, spaced off the interval you computed in section 4.2 rather than off a round number.

A missing flow loses people one at a time and you never see it happen, which is exactly why the flow layer gets skipped in favour of the campaign calendar somebody has to fill in on Monday.

The first repeat is the whole game

For most brands the order-to-order repeat rate stabilises after the second or third order. Getting somebody from one order to two changes their entire forward trajectory, which makes the new-customer box the highest-leverage square on the grid even though the dormant boxes look more dramatic.

Section 8

Judge a segment on revenue per unsubscribe, not open rate

8.1  Revenue per unsubscribe, not open rate

Every decision in this guide is a trade: reach more people, burn more of them. So read each expansion as an exchange rate. What did the extra reach add in revenue, and how many subscribers did it cost you permanently?

Unsubscribes, not spam complaints, are usually the binding constraint. Complaint rates normally sit far below the level that gets you in trouble, while every unsubscribe is a permanent loss of all future revenue from that person. Include a ring while the revenue it adds beats the forward value of the subscribers it burns.

Two measurement traps worth naming. Opens are inflated by machine fetching and should not decide anything. And order count is not revenue: a group can look dead on orders and be fine on dollars, because the people out at the edges often buy bigger when they do buy. Go to dollars whenever the data lets you.

8.2  Small segments produce noisy numbers

When you slice a list this finely, the outer boxes get small fast. A dormant-repeat segment might be producing single-digit orders a month, and a rate computed on single digits is noise wearing a percentage sign.

Section 9

Protect deliverability when you stop sorting by opens

Here is the problem nobody warns you about when you move from level one to levels two and three. You have just stopped sorting people by whether they engage with email and started sorting them by whether they buy. Those are not the same population.

Some of your best customers never open anything. They buy because they saw an ad, or because they ran out, or because they walked in through search. Under the old system they were quietly filtered out. Under the new one they are in your dormant repeat box and you are about to mail them your deepest offer. Good for revenue, potentially bad for the inbox, because Gmail and Yahoo are watching how the people you mail respond and drawing conclusions about you.

9.1  Why the engaged-30-day segment exists in the first place

The reason so many accounts run everything through Engaged 30 Days is that it holds the open rate up. The working target most operators keep to is somewhere around 40% to 50%, and a segment tight enough to clear that is a segment the inbox providers keep delivering.

One caveat on that number

The open rate you are protecting is itself inflated by machine fetching, so treat it as a relative floor you do not want to fall through rather than a measurement of human attention. What actually moves inbox placement is the ratio of people who do something to people who ignore you, and that ratio gets worse the more dead weight you add to a send.

9.2  Run the exclusion underneath everything

The fix is not to go back to level one. It is to keep level one running as a filter beneath the purchase-based segments. Build the audience once, exclude it from every campaign, and let the nine boxes decide everything else.

Klaviyo now has audience optimization built in, which will restrict the people unlikely to interact in a click and is the fastest way to do this. If you would rather build it yourself, the segment you want is the inverse of an engagement window:

BuildDefinitionUse
Unengaged 30dInverse of Engaged 30 DaysTightest exclusion. Smallest sendable list.
Unengaged 90dReceived at least 10 campaigns in the last 90 days and opened zeroThe usual working exclusion
Never engagedOn the list long enough to have been mailed, never opened or clicked onceSuppression candidates, see section 5

The 10 is arbitrary and you should change it. It has to reflect how much you actually send in ninety days. If you send twice a week, ten campaigns is barely a month of evidence and the segment will be too broad. If you send twice a month, ten campaigns is more than the window holds and the segment will be nearly empty. Raise the number to make the exclusion tighter and your sendable list bigger, lower it to do the opposite.

9.3  Excluding the unengaged costs you a few buyers

You will exclude some people who would have bought. That is the honest trade and it is worth naming rather than pretending the exclusion is free. What you get back is that everybody else, including every customer in every box on the grid, keeps arriving in the inbox instead of the promotions graveyard.

Level one stops being your targeting the moment you reach level two. It becomes your floor. Every purchase-based segment in this guide is sent minus the unengaged, always, no exceptions.

Want this run on your account instead?

Get a free Klaviyo audit. We pull your numbers and show you exactly where the revenue is leaking.

Get the free audit