Time Between Purchases

This guide will help you understand

What is a time between purchases analysis and why is it beneficial

This report will help you understand how often your customers make purchases. You can use this insight to communicate with them at the right time in order to push them to purchase again. If you know the time when your customers are more prone to make another purchase, you can target them with email campaigns or special offers and thus effectively plan your marketing campaigns.
For example, if you know that your customers usually make their 3rd purchase between 1 and 4 months after their 2nd one, you can communicate to your customers who have had 2 purchases during this time period. This is the time to win them back.

Concerning the ideal number of days between purchases, it varies across industries. You cannot expect the same gap between purchases if you are selling seasonal equipment, like skis, compared to an online drugstore. In general, from a benchmarking perspective, you should always compare your business to other similar businesses to determine whether you are doing well, or you need to boost your customer retention.

How to read the data from the report


The conclusion from this specific report may be:

  • Most of your repeated customers purchase 30 days - 4 months after their previous purchase.
  • You can go even deeper and personalize even more. Example: Avoid sending communication to your one-time buyers in the 2nd, 3rd and 4th week after their purchase.
  • If you don’t reactivate your active customers within a year of their purchase, you’ll basically lose them.

How to create the report in Bloomreach Engagement


In order to create this report, you need to be able to comfortably work with Reports, Segmentations and Expressions in Bloomreach Engagement.

First of all, create an expression for the time between the purchase of a customer - and their previous purchase.
To create a new expression, go to Data & AssetsData manager > DefinitionsNew definition > Expression.
Select Expression for event and select purchase.
Afterwards, create the expression as shown in the picture below. Create a running aggregate last(purchase.timestamp) and subtract it from timestamp. The division by 86400 will ensure that the output number is the day count. Name the expression and save it.


Secondly, create an event segmentation using the expression you’ve just created. Start from the smallest time difference and work your way up. Set the time limits according to your preferences or as suggested in screenshots below.


Last 7 days (first segment)


More than a year ago (last segment)

Create the final report copying the screenshot below. Use the event segmentation you have just created in rows. For the columns, create a running aggregate showing the number of purchases as shown in the picture below the one displaying the full report. Then just use a simple count of purchases in the metrics.

1053 1073

For the metric count(purchase), this is the way to set the correct form of value displayed.


If your purchase event is called differently than purchase, go ahead and adjust the event in the report, event segmentation & expression.

In the future, an advanced tip is to break down data according to a different attribute. Don’t choose the number of previous purchases. You can select gender, age, order value, shipping city, total customer value and many more. You can modify this report so it serves you as well as possible.