Field notes
Klaviyo Segmentation for DTC: A Behavioral Framework That Prints Revenue
September 13, 2025
Most DTC stores run Klaviyo on a list, not a strategy
Pull any Klaviyo account with more than twelve months of history and you will usually find the same thing: a couple of giant lists, one or two flows doing real work, and a campaign calendar that blasts the same message to everyone who ever typed in an email address. The revenue is real, but it is a fraction of what the tool can produce when segmentation is built as a system rather than a one-off task.
This guide lays out the segmentation framework we use at Pixeltree with DTC clients across supplements, apparel, home goods, and beauty. It is opinionated. It ignores the Klaviyo default segments almost entirely. And it is built around four signals that actually predict future behavior: recency, frequency, product affinity, and engagement.
TL;DR ▸ Stop sending to the master list. Use the RFE (Recency, Frequency, Engagement) grid instead. ▸ Build segments around product affinity so messages reference what people already own. ▸ Keep the active sending pool clean. Move 90-day non-openers to a reactivation track. ▸ Audit segment definitions every quarter. Product mix changes faster than most teams update their filters.
The RFE grid: the base layer every account needs
Recency, Frequency, and Engagement form a 3x3x3 grid that produces twenty-seven cells. You will not activate all of them. You will use roughly eight. The grid exists so that every customer sits in exactly one cell at any moment, which makes campaign targeting a decision about cells rather than a decision about filters.
Recency buckets: 0 to 30 days since last order, 31 to 120 days, 121 days or more. Frequency buckets: one order, two to four orders, five or more orders. Engagement buckets: opened or clicked in last 30 days, 31 to 90 days, 91 days or more.
The cells that matter most for DTC:
| Cell | Definition | Primary use |
|---|---|---|
| Fresh Single Buyer | 0-30 days, 1 order, engaged 0-30 | Post-purchase education, second-order nudge |
| Active Repeat | 0-30 days, 2-4 orders, engaged 0-30 | Product expansion, cross-category |
| Core VIP | any recency, 5+ orders, engaged 0-30 | Early access, loyalty perks |
| Lapsing Repeat | 31-120 days, 2-4 orders, engaged 0-90 | Winback with category-specific offer |
| At-Risk VIP | 121+ days, 5+ orders, engaged 31-90 | High-touch winback, human outreach if possible |
| Cold Single | 121+ days, 1 order, engaged 91+ | Sunset path or final re-permission ask |
The point of the grid is not the cell names. It is that every marketing decision starts with "which cell am I talking to" rather than "who should get this email." Our retention marketing service rebuilds this grid for clients in the first two weeks of onboarding, before touching a single campaign.
Product affinity is the second layer
Recency, frequency, and engagement tell you how active someone is. They do not tell you what to send. For that you need product affinity, which is a segment based on what a customer has purchased, viewed, or clicked in the last N days.
Three affinity segments are non-negotiable for any DTC store with more than a handful of SKUs:
▸ Category Buyers: customers who have purchased from a specific product category in the last 180 days. Use these for category launch campaigns and cross-sell flows. Do not send a new shampoo launch to people who have only ever bought candles. ▸ Replenishable Buyers: customers who bought a consumable SKU where the expected repurchase window has arrived. This feeds the replenishment flow and also drives a category-specific campaign cadence. ▸ Gift Buyers: customers whose shipping address differed from billing or who purchased around a gifting window. They behave differently from self-buyers. Treating them the same is a common mistake.
Affinity segments work best when they are scoped to a recency window. A customer who bought a category two years ago is not the same as one who bought last quarter. Default to 180 days for apparel and home, 90 days for supplements and beauty, 365 days for considered purchases like appliances.
The engagement sanity check
Klaviyo deliverability turns on two things: how many engaged people you send to and how quickly you remove people who have stopped engaging. Both are segment decisions, not sending decisions.
Your active sending pool should be defined once and used everywhere. A reasonable definition: profile has opened or clicked in the last 90 days, OR has placed an order in the last 180 days, OR signed up in the last 14 days. Any campaign that does not start from this pool is making the deliverability problem worse.
Build one segment called "Active Engaged" that enforces this rule. Every campaign should start there, then add filters, never subtract. This is the single change that most moves inbox placement in the first thirty days of working with us on email marketing engagements. For a deeper look at the deliverability consequences, see our email deliverability for Shopify guide.
RFM is a ranking, not a segment
Klaviyo has predictive CLV and historical CLV. Both are useful. Neither should be a standalone segment.
The way to use CLV is as a sort key inside an existing behavioral segment. Take the "Active Repeat" cell. Sort by predictive CLV descending. The top 20 percent of that cell is the group that deserves your most expensive creative, your best early access, and your human CX touches. The bottom 20 percent of the same cell is still worth marketing to, but with lower-cost creative and more promotional framing.
RFM scoring (Recency, Frequency, Monetary) is the same idea expressed as a 1-5-1-5-1-5 score. It is useful as a quick snapshot but becomes a maintenance burden at scale. If you are already running the RFE grid plus affinity, RFM is duplicative. Pick one frame and commit.
The PEAR framework for every campaign decision
PEAR is the four-question filter we run before any campaign brief is approved.
▸ Pool: Is this going to the Active Engaged pool, or do we have a reason to expand? ▸ Expectation: What does this person currently expect from us based on their last three touchpoints? ▸ Affinity: Does the product or category in this campaign match their history, or are we asking them to jump? ▸ Recency: When was the last send to this exact cell, and does another send in this window create fatigue?
Answering PEAR in a Slack thread takes about ninety seconds. It prevents most of the mistakes that show up in campaign reviews: over-sending to fatigued cells, cross-selling into categories customers have never engaged with, and expanding to the full list without a reason.
Sunset and re-permission: the hardest segment to build, the highest ROI
Most brands over-send to disengaged profiles because removing them feels like losing revenue. It is the reverse. Profiles that have not engaged in 120 days suppress deliverability for the profiles that do engage. The math is not close.
Build three sunset segments:
| Stage | Definition | Action |
|---|---|---|
| Watch | 91-120 days no engagement, has ordered | Include in winback flow, reduce campaign sends |
| Sunset Entry | 121-180 days no engagement, any order history | Move out of active pool, enter re-permission flow |
| Suppress | 181+ days no engagement, no orders | Profile suppressed from all sends |
The re-permission flow between Sunset Entry and Suppress is a two-email sequence: one that asks if they still want to hear from the brand, one final offer. The metric that matters is suppression rate, not open rate. Expect 70 to 85 percent to go to suppress. That is the goal.
For the flow mechanics, see our Klaviyo winback flow guide and the broader Klaviyo flows that move revenue breakdown.
Tying segments to LTV
Segments are useful because they predict future revenue. The way to prove that is to tie each segment to observed lifetime value, then use the deltas to reorder where you spend creative time.
Pull cohort LTV by segment every ninety days. You will find that one or two segments drive the majority of revenue. Those are the segments that deserve fresh creative every quarter. The rest can run on recycled high performers. We cover the full LTV calculation in our ecommerce customer lifetime value guide, and our customer experience service connects segment insight back to the support and onboarding surfaces that move LTV upward.
Operational hygiene: naming, documentation, ownership
A segmentation system collapses fast without three operational habits.
▸ Naming: every segment follows the same pattern. Category prefix, definition shorthand, date built. Example: "RFE_ActiveRepeat_2026-02". No ad-hoc names. ▸ Documentation: one Notion or Google Doc that lists every active segment, its definition, its owner, and the last review date. Any segment not in the doc gets archived at quarterly review. ▸ Ownership: one person is responsible for segment health. Not a committee. If no one owns it, no one audits it, and the system drifts.
What to do this week
▸ Export every segment in the account. Any segment not used in a flow or campaign in the last 90 days goes into an archive folder. ▸ Build the single "Active Engaged" segment and make it the start of every campaign from now on. ▸ Stand up the six RFE cells listed in the table above. Name them consistently. ▸ Document each segment in one shared doc with definition, owner, and last review date. ▸ Add predictive CLV as a sort column inside existing cells, not as a new segment. ▸ Schedule a quarterly review on the calendar with the owner's name on it. ▸ Review the email segmentation for DTC primer if this framework is the first formal segmentation pass for the account.
One-page resource
Get the Vendor Recovery Checklist.
The 12 steps every displaced maker should take in the next 30 days. Delivered in your inbox.