context: I have a task to identify the prospects who have high or medium likelihood of making their first purchase after they signed up for 30 days, so that our marketing teams can take actions for these two groups. Prospects here are defined as customers who signed up with us but haven't made any purchase yet.

data: have four years data on when customers signed up and made purchases and also prospects who don't have purchase data. The business team definitely is interested in predicting latest year prospects' conversion likelihood within 30 days they sign up.

my thinking: got inspiration from this article that the target could be the gap between sign-up date and first-purchase date and if the gaps are larger than 30 then target is 0, otherwise 0. This then became a typical classification problem at customer level.

question: but in the mentioned article above, the author separated data into two time frames - "last purchase date" for each customer during 01–12–2009 to 30–08–2011 and "first purchase date" during 01–09–2011 to 30–11–2011, which helps to show if customers would make next purchase in next quarter. The reasons I assume the author separated two time frame datasets are 1) the business requests for "next quarter" 2) customers could make several purchases in any time period, it's clean to scope out the time frame to define which purchase date points the model is built on.

I'm a bit unclear on if my case needs to include this time frame consideration or not. My current understanding is no: 1) if separating the data into 2 time frames, customers who signed up in the first time frame data might end up making second/third/..purchase in the second time frame data, so it's no longer on predicting their first purchase 2) my target is defined as next 30 days, so it's relative term compared to "quarter" in the article. But I'm not very confident on those understandings. would appreciate it if any one could give me any direction on this problem.


1 Answer 1


In the article you cited, the author first used cluster analysis to classify the most recent vs. most inactive customers. This was then followed by running both a logistic regression and XGBClassifier with a view to determining whether a customer will make their next purchase in less than 90 days after their last (in which case, a value of 1 was set). For a purchase made after 90 days, a value of 0 was set.

In your case, you are saying that prospects have signed up but haven't actually made purchases yet. This is distinct from the case in the article you cited - whereby the goal was to determine whether a customer would make a purchase within 90 days from their last purchase.

In the event that you wish to formulate this as a classification problem - but using a 30-day cutoff instead - you firstly need to determine appropriate explanatory variables that will be used in the analysis. For instance, do you have data on customers that are signing up? e.g. age, gender, product preferences? The goal in this case would be to predict whether a customer would make a purchase within 30 days given similar attributes to those customers who already made a purchase within 30 days of signing up.

In the absence of this, you could also choose to take a more macro-based view of the problem and formulate as a time series. For instance, if you have four years of data on customers who signed up and made purchases - it would be possible to analyse both seasonal and trend factors of this time series, and then use a forecasting model such as ARIMA to predict customer purchases over a given period.

  • $\begingroup$ thank you Michael for the confirmation of distinction between my case and the case in the article. also appreciate it you shared extra knowledge on building the model. I have information at customer level like the ones you mentioned, so based on your comment, the classification model could work to predict at customer level. In terms of time series, can it predict at customer level? and can these two models be combined together? I'm not familiar with time series, will definitely look into this, as I found real-world cases are often time-related. Thanks! $\endgroup$
    – Iris
    Jan 8 at 13:19
  • $\begingroup$ does adding date related variables make the model time series? because there are few interesting date variables that could be included in the model, for example, customers' sign up date, latest sample collection date. For prospects and converted customers in the same period, could be useful to use date as one of predictors. $\endgroup$
    – Iris
    Jan 8 at 13:35
  • $\begingroup$ Yes, if the dataset comes with time stamps, then it is a time series model. In this regard, a time series approach might be best - running a logistic regression using other time series variables as one of the predictors does not seem feasible and results are likely to be skewed by autocorrelation. You could run an autocorrelation function in the first instance to see how many lags show the strongest correlation and also whether there are seasonal trends present. $\endgroup$ Jan 8 at 15:56
  • $\begingroup$ Thank you very much Michael for the clear explanation and quick response! $\endgroup$
    – Iris
    Jan 9 at 2:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.