Why growing sales can still hide a problem
Picture a delivery kitchen in Tashkent or a clothing shop in Samarkand. Instagram ads bring in new people every month, orders keep coming, and the dashboard looks healthy. Yet sales can rest entirely on a steady stream of newcomers while earlier buyers never return. The day you cut the ad budget, revenue drops.
Cohort analysis groups customers by something they share, most often the month of their first purchase. You then track what share of each group bought again one month later, two months later, six months later. Retention becomes visible group by group instead of disappearing into one blended average.
What data you need
Every purchase has to be tied to a specific customer. The minimum is a customer identifier, a purchase date and an amount. In Uzbekistan the identifier is usually a phone number.
If cash sales are not linked to anyone, there is nothing to analyse, so the first job is to capture a contact at every sale. An order phone number is also more reliable than payment data, since one person may pay from different cards or wallets.
- A CRM, or Telegram bot orders where each customer has a profile
- A point-of-sale system where the cashier enters the buyer's phone
- A loyalty programme or customer card
- Click or Payme payment exports, if they include a payer phone number
- Website orders; on marketplaces such as Uzum, first check which buyer data you can actually export
Building the retention table step by step
Rows are cohorts by month of first purchase. Columns are months since that purchase: month 1, 2, 3 and so on. Each cell holds the share of the cohort that bought in that month. For a small business, Excel or Google Sheets is enough.
Start with the last twelve months and monthly cohorts. If your customer base is small, use quarterly cohorts, otherwise a handful of people will make the percentages swing wildly.
- Export all purchases: phone, date, amount
- Find each phone number's first purchase date; that month is the customer's cohort
- For every later purchase, count how many months passed since the first one
- Build a pivot table with cohorts as rows, month number as columns and unique customers as values
- Divide each count by the cohort size to get percentages
How to read the results
Reading a row left to right shows how one cohort fades. A sharp drop after month one points to a product, service or expectation problem, perhaps created by the ad itself. If the curve flattens, you have a core of loyal customers, and the useful question is how large that core is.
Reading a column top to bottom shows how retention at the same age changed between cohorts. If newer cohorts return more often than older ones, whatever you changed in service or marketing is working. If they return less, look at what happened in that period: a promotion, a new channel, a supplier, a staff change.
One caveat: the newest cohorts have not had time to age, so their right-hand cells are empty. That is missing time, not lost customers.
Cohorts by acquisition channel
Month of first purchase is not the only way to split customers. Try the source instead: Instagram, a Telegram channel, Meta ads, Google, OLX, referrals. A channel with cheap leads may bring people who buy once during a discount, while a pricier one brings customers who return regularly. Without this view, budget follows the cheapest lead rather than the most valuable customer.
This only works if the source is saved in your CRM at the first purchase, which is exactly what end-to-end analytics is for.
Decisions the table supports
A retention table is only useful if something changes afterwards. Test each decision on the next cohorts rather than on gut feeling.
- Low retention after the first purchase: check product quality, delivery and how you talk to customers
- A channel brings one-time buyers: rethink spending on it or the offer
- The drop happens at a specific month: send a Telegram or SMS reminder before that point
- Retention improved after a change: lock it in and do not roll it back
- Need to know how much you can spend on acquisition: estimate how many orders a customer places over time
Keeping it running
Update the table monthly. A shift in retention is an early signal that appears before total sales move. Avoid comparing your numbers with someone else's benchmarks: a coffee shop, a training centre and an appliance store have very different natural purchase rhythms. Compare your own cohorts with each other.
If your data is scattered across the till, a Telegram bot, a CRM and ad accounts, it has to be joined first. At markdev we set up end-to-end analytics and reporting so retention by channel is calculated without manual exports. If you would like to discuss your case, get in touch.
FAQ
What is cohort analysis in simple terms?
It compares groups of customers who started buying at the same time, usually in the same month. For each group you measure what share comes back after one month, two months, six months.
Can I do cohort analysis in Excel?
Yes. For a small business, an export of purchases with phone, date and amount plus a pivot table is enough. Larger volumes are easier in BI tools or CRM reports.
What if I do not record customer phone numbers?
Start capturing them at every sale: at the till, in Telegram orders, in a loyalty programme. Without purchases tied to customers, cohorts cannot be built.
How often should I update the table?
Once a month. Retention changes show up before changes in total sales, so the table works as an early warning.
Let’s look at your task for free
Leave your contact — in a 15-minute call we’ll show where leads get lost and what to fix first.