Marketing

Retention marketing for ecommerce: how to keep customers buying

Retention marketing for ecommerce: retention rate and churn formulas, cohort tables, RFM segments, post-purchase flows and EU consent rules.

The CloudCart team17 min read
A hand placing a second identical cardboard parcel on top of the first on a light table, next to a phone showing an abstract timeline of dots
In this article · 12 sections
  1. What is retention marketing?
  2. Retention or acquisition: what a new order costs compared with a repeat order
  3. Retention rate, returning customers and churn: the formulas
  4. Cohort analysis: how to see whether customers come back
  5. Retention segments in CloudCart: lifecycle stages and RFM
  6. Post-purchase flow: the first 60 days decide the second order
  7. Frequency by data: when to use email, SMS or Viber
  8. Win-back: how to bring back a customer who stopped buying
  9. Subscriptions and loyalty: retention built into the product
  10. A 90-day customer retention strategy, step by step
  11. The most common retention marketing mistakes
  12. Frequently asked questions

Retention marketing is the work of getting a customer who bought once to order again: behaviour-based segments, post-purchase emails, replenishment reminders and win-back flows for people who went quiet. It pays because winning a new customer costs 5 to 25 times more than keeping an existing one (Harvard Business Review, 2014). You measure it with the returning customer rate, the retention rate and churn.

This guide gives the formulas, a cohort table you can copy, the segments and flows to build in the CloudCart admin, and the EU consent rules that decide who may receive them. It is written for stores selling anywhere in the EU, in one country or across borders. Rewards, VIP tiers and cashback are covered separately in the guide to loyalty programs and repeat purchases. The numbers in the examples are illustrations.

What is retention marketing?

Retention marketing is everything a store does after the first order so that there is a second, a third and a tenth. It is also called customer retention or lifecycle marketing.

Its four parts:

  • Measurement. How many customers come back, and when.
  • Segments. Customers split by behaviour: one-time buyers, regulars, at risk, lapsed.
  • Automated messages. After delivery, when the product runs out, when the customer is late for the next order.
  • A reason to stay. A subscription, good service, a loyalty reward.

The economics favour retention. A Harvard Business Review article cites research by Bain & Company: increasing customer retention by 5% raises profits by 25% to 95%.

Retention or acquisition: what a new order costs compared with a repeat order

A repeat order from an existing customer earns more than a first order from a new one, because it carries no ad cost. Example: average order €45, margin 40%, ad spend €12 per new order.

LineNew order from an adRepeat order from an email with a 10% code
Average order€45.00€45.00
Gross profit at 40% margin€18.00€18.00
Ad cost for the order-€12.00€0.00
10% discount€0.00-€4.50
Left from the order€6.00€13.50

If the customer orders after an email with no code, €18 stays with you, three times the new order. So send the first email without a discount and give a code only to people who did not react.

The rule of thumb: what you pay to acquire a customer (CAC) should be lower than the profit that customer brings over the whole relationship (profit LTV). Both numbers are explained in the guide to ecommerce KPIs, LTV and CAC.

Retention rate, returning customers and churn: the formulas

Retention rate is the share of customers from one period who buy again in the next. For an online store the most useful formula is: customers from the previous period who ordered again in this period, divided by all customers from the previous period, times 100. Example: 92 of 400 customers from July to September order again between October and December, so the retention rate is 23%.

The classic formula ((E - N) / S) × 100 comes from subscription businesses; in a store the order-based formula is more accurate.

MetricFormulaWhere you see it in CloudCart
Returning customer rateCustomers with at least one earlier order / all customers who ordered in the periodAnalytics → Total Customers: the "New" and "Returning" series
Repeat purchase rateCustomers with 2 or more orders / all customers over the whole historySegment "Order → Count > 1" (the "Returning customers" template) against a segment "Count > 0"; or an AI assistant
Retention rate for a periodCustomers from the previous period who ordered again / customers from the previous periodOrder export or an AI assistant
Churn rateCustomers with no order for more than X days / all customers with at least one orderAutomated segment "last order more than X days ago"
Average time between ordersAverage days between first and second, second and third orderAn AI assistant reading the order history
Customer value for the periodRevenue / unique customers in the periodAnalytics → Customer Value

Churn in ecommerce is a matter of definition, because a customer never formally cancels their purchases. Set X at two to three average intervals between orders. With an interval of 48 days, a customer with no order for over 120 days is at risk, and over 180 days is lapsed.

If you run a separate store for each country, with its own language and currency, calculate these numbers per store. Buying cycles and basket sizes differ between markets, and one shared churn threshold would mark a whole country as lapsed too early or too late.

Important: in the Total Customers box, guest orders count neither as "New" nor as "Returning", so with many guest checkouts the returning customer rate looks lower than it is. Which order statuses count is set in the Analytics dashboard settings.

Cohort analysis: how to see whether customers come back

A cohort is a group of customers whose first order fell in the same month. Cohort analysis shows what share of each group orders again in month 1, 2 and 3 after the first purchase, so the effect of a change in your store shows up in new customers without older ones blurring the number.

Example for a cosmetics store (illustration):

Month of first orderNew customersMonth 1Month 2Month 3
July2109%6%5%
August18010%7%6%
September (new post-purchase flow)24015%10%…
October26016%……

The "Month 1" column shows the effect of the post-purchase emails: from September the share of returning customers is 15 to 16% instead of 9 to 10%. If a cohort drops sharply, look for the cause in that month: a new ad channel, a big sale, a delivery problem.

Three ways to build the cohort table

  1. With an AI assistant. Connect Claude Code, ChatGPT/Codex, Gemini CLI or Cursor to the store with a read-only PAT token (Settings → PAT tokens) and write: "Build a cohort table of customers by month of first order for the last 12 months: number of new customers and the share who ordered again in month 1, 2 and 3. Count paid, completed and fulfilled orders."
  2. With an order export. Orders → Export downloads the orders matching the current filter as a CSV file, one row per product in the order. From the customer email and the order date you build a pivot table in Excel or Google Sheets.
  3. In Google Analytics 4. Explore → Cohort exploration groups users by a first action, for example their first transaction, and shows who returns with a new action, by day, week or month (Google Analytics Help). GA4 builds cohorts from device data and cookies, and visitors who decline analytics cookies under EU consent rules are missing, so use it for the trend rather than exact numbers.

Retention segments in CloudCart: lifecycle stages and RFM

Retention segments split customers by lifecycle stage: new, second-time buyer, regular, at risk and lapsed. In CloudCart segments live in Marketing → Segments and are built from more than 60 conditions joined with "AND".

StageSegment conditions (example)GoalMessage
New customerOrders = 1, last order within the last 30 daysSecond orderThe post-purchase flow
One-time buyer at riskOrders = 1, last order more than 60 days agoSecond order before they forget the storeBestsellers and complementary products; a code only if there is no reaction
RegularOrders more than 2, last order within the last 90 daysMore orders and a bigger basketNew arrivals, early access, a subscription
Regular at riskOrders more than 2, last order more than 120 days agoStop them from lapsingA personal email asking whether anything is missing
LapsedLast order more than 180 days agoWin back or clean the listWin-back flow, then less often

A one-off segment is a snapshot at the moment you create it. An automated segment updates itself, so only an automated segment can start a flow on the day a customer moves into a new stage. The type cannot be changed after creation.

  1. Open Marketing → Segments → Create segment. Choose "New segment from scratch" and then "Automated". How many automated segments you can have depends on your plan and is shown on the same card.
  2. Add the conditions. For example "Order → Count = 1" and "Last order more than 60 days ago". All conditions must be met at once. For "or", create two segments.
  3. Or describe the segment in words. "Generate with AI" turns a sentence into conditions but creates a one-off segment, so copy the conditions into an automated one.

RFM analysis: CloudCart's ready-made groups

RFM analysis (Recency, Frequency, Monetary) ranks customers by how recently, how often and how much they buy. In CloudCart every subscriber is placed automatically in one of 17 RFM groups: 16 by behaviour, for example Champ, Active Loyal, Loyal, Potential, Occasional, New, Churned Loyal and Churned, plus "Without RFM Analysis" for people with no history. The groups are recalculated every 12 hours. The RFM group is a segment condition, so a campaign can go exactly to "Churned Loyal": former regulars who have stopped buying. RFM analysis for subscribers is included in the CC Pro and CC Master plans (pricing). How to score customers yourself and attach LTV to each segment is shown in the guide to RFM analysis for ecommerce.

The difference between a segment and a customer group is explained in the loyalty program guide, and customer profiles in the guide to customers and CRM in CloudCart.

Post-purchase flow: the first 60 days decide the second order

The post-purchase flow decides whether a new customer orders a second time. Its timing follows the moment the customer actually uses the product and needs the next one.

WhenMessageWhy
ImmediatelyOrder confirmation and tracking numberSystem email; trust that the parcel is on its way
1 to 2 days after deliveryHow to use the product: a tip, sizing, careFewer returns within the 14-day EU withdrawal period and a better first impression
5 to 7 days after deliveryReview requestA review ties the customer to the store and sells to the next one
10 to 21 daysA complementary productA second, smaller order with a logical reason
Product lifespan minus 7 daysReplenishment reminderA cream that lasts 45 days, coffee for 30 days, pet food for 4 weeks
2 average intervals without an orderThe customer enters the "at risk" segmentThe win-back flow starts

In CloudCart the flow is one automated campaign: Marketing → Campaigns → Create campaign → "Automated". The trigger is "Enters segment", and the segment is "Orders = 1, last order within the last 30 days". Each step has a delay and a channel: email, SMS, Viber or Web Push. An automated campaign has up to 5 steps. The "Makes an order" exit removes a customer who ordered through a link in the emails.

If you sell in several countries, build the flow in each store in its own language. A replenishment reminder in the wrong language reads like spam.

Cross-sell in CloudCart suggests complementary products in the cart and after the order. Email copy is covered in the guide to email marketing for an online store.

Frequency by data: when to use email, SMS or Viber

How often you message each subscriber is decided by their behaviour: those who open and click get more, those who stay silent get less and through a different channel.

In CloudCart segments, conditions for open rate, click rate and last activity split subscribers into active and inactive. In a campaign you add a "Condition" block after any step with "Email was opened" or "Link was clicked", a waiting time and two branches. Each branch continues, adds a tag or removes the subscriber. For example, people who opened the email leave with the tag "active", and those who did not continue to a short SMS or Viber message.

Subscriber behaviourSegment (example)Frequency and channel
Opens and clicksClick rate above average, active in the last 30 daysA weekly newsletter and all automated flows by email
Opens, does not clickOpen rate above 0, click rate 0Less often, with one product and one button
Does not open emailEmail not opened within the condition's waiting timeOne short SMS or Viber message, only for an important reason
Inactive for over 180 daysLast activity more than 180 days agoWin-back flow, then one email a month or a pause

SMS and Viber are paid with credits against each channel's limit and are not part of the monthly plan price, so keep them for subscribers who do not open email. Viber matters most in markets where shoppers already chat in it, such as Bulgaria and other Balkan countries; elsewhere in Europe SMS is the usual second channel. Channels, limits and SMS pricing are covered in the guide to SMS, Viber and Web Push campaigns.

A campaign step with more unsubscribes than orders in its statistics comes too early or too often.

Important: under Article 13 of the ePrivacy Directive (Directive 2002/58/EC, transposed by the member states from 31 October 2003), marketing by email and SMS needs prior consent. The exception, often called soft opt-in, covers your own similar products sent to your own customer, if they could object easily at the time of the order and can do so in every message. Each country writes this into its own law, so check yours. Under Article 21 of the GDPR (Regulation (EU) 2016/679, applicable from 25 May 2018), once a person objects to direct marketing their data may no longer be used for it. An unsubscribed person gets nothing on any channel.

Win-back: how to bring back a customer who stopped buying

A win-back campaign starts on the day the customer crosses your "lapsed" threshold. An automated segment "last order more than X days ago" and a campaign triggered by "Enters segment" send the email on exactly the first day of inactivity. Turn on "Repeat campaign" so a customer who lapses again re-enters the flow.

The flow has three steps: an email with new arrivals and no discount, a personal code (the variable {$generate_discount_code:10%} creates one code per recipient) only for those who did not open, and an exit from the flow. The copy for a "We miss you" sequence is in the guide to winning back old customers.

You can reach people who ignore email with ads: export the segment as a CSV from the segment list and upload it to Google Ads as a customer list. Customer Match shows ads to uploaded customers who are signed in to Google; membership expires after 540 days, and the list is not used with manual bidding (Google Ads Help). For users in the European Economic Area, Google requires consent under its EU user consent policy, so upload only people who agreed to marketing.

Subscriptions and loyalty: retention built into the product

For products that run out on a schedule, a subscription makes the repeat order happen by itself: the customer chooses "every month" once, and the store creates an order and charges the saved card on each date. In CloudCart this is the Subscriptions app (Apps → Subscriptions), with a plan, period and discount options, and the customer's right to skip or pause a delivery.

Step-by-step setup is in the guide to subscription boxes and memberships in CloudCart.

A 90-day customer retention strategy, step by step

  1. Week 1: the baseline. Note the returning customer rate from Analytics → Total Customers for the last 3 months and Customer Value. Use the AI assistant to calculate the quarterly retention rate and the average time between orders.
  2. Week 2: define churn. Choose X = two to three average intervals. Create the automated segments for the five stages in the table.
  3. Week 3: the post-purchase flow. An automated campaign triggered by "Enters segment" for new customers: a tip, a review request, a complementary product, a reminder based on the product lifespan.
  4. Week 4: accounts and subscribers. Give guests a reason to create an account, for example a discount for registered customers only, and invite them through a subscriber pop-up form with clear consent.
  5. Month 2: win-back. A campaign for the "lapsed" segment with an email without a code and the "Email was opened" condition. Only those who did not open get the personal code.
  6. Month 3: frequency by data. Split the newsletter into active and inactive subscribers; use SMS or Viber only for those who do not open email.
  7. Day 90: compare. The "Month 1" column of the new cohort, the retention rate against the baseline and the revenue of each step.

The most common retention marketing mistakes

  • A discount in the first email. Customers learn that if they wait, a code arrives.
  • One churn threshold for every product. 90 days without an order is an alarm for coffee and normal for shoes.
  • A one-off segment behind an automated flow. Templates and "Generate with AI" create one-off segments, which never add new people.
  • One frequency for everyone. Inactive subscribers unsubscribe, active ones lose reasons to buy. Split by opens and clicks.
  • One flow for every country. Different languages and buying cycles need their own segments and messages in each store.

Frequently asked questions

Retention marketing is everything a store does after the first order to get the next ones: behaviour-based segments, post-purchase emails, replenishment reminders, win-back flows for inactive customers, subscriptions and loyalty rewards.

For an online store: customers from the previous period who ordered again in the current one, divided by all customers from the previous period, times 100. Example: 92 of 400 customers from the previous quarter order again, so the retention rate is 23%.

Churn rate is the share of customers who have not ordered for more than a set number of days, out of all customers with at least one order. Set the threshold at two to three average intervals between orders, for example 120 to 180 days with an interval of 48 days.

RFM analysis ranks customers by how recently (Recency), how often (Frequency) and how much (Monetary) they buy. In CloudCart every subscriber is placed automatically in one of 17 RFM groups, such as Champ, Loyal and Churned. RFM analysis is included in CC Pro and CC Master.

Under Article 13(2) of the ePrivacy Directive you may email your own customers about your own similar products, if they could object easily at no cost when they ordered and can do so in every message. National laws apply the rule with small differences. Everything else needs prior consent.

Email is the main channel. SMS and Viber are paid with credits per message and reach people who do not open their inbox; Viber is strongest in the Balkans. In CloudCart the "Email was opened" condition in a campaign sends SMS or Viber only to those who did not open.

Have a question about segments or campaigns in your store? Write to us at support@cloudcart.com.

Sources

  1. Harvard Business Review articlehbr.org
  2. Google Analytics Helpsupport.google.com
  3. ePrivacy Directiveeur-lex.europa.eu
  4. Article 21 of the GDPReur-lex.europa.eu
  5. Google Ads Helpsupport.google.com
The CloudCart teamChecked against the platform documentation. Questions: support@cloudcart.com

Build your online store

The first 3 months on every plan are €1/month. Questions: support@cloudcart.com

Create a store for €1