I have a data set of a list of invoices each of which have a date. I'm trying to detect when I might consider that a customer has stopped ordering a part.

The way I'm approaching this might be completely wrong. I'm taking the invoices, ordering by date, and then counting the difference between dates of consecutive invoices. I then produce a nice graph and it lets me say something like "95% of all orders were within 15 days of each other". I don't know where to go next :) Is this concept at all related to the Pareto distribution?

Reading up on the Poisson distribution I can take the same data and produce the probability of N invoices per day. I get something like 57% of days have 0 invoices, 23% have 1 invoice, 12% have 2 invoices, etc. At this point I get to the not knowing what I'm doing part :)

The end goal is to be able to notice stopped orders, ideally with some kind of tweakable 'confidence' cutoff. I'm afraid of using the 'confidence' word because I assume to be using it wrong.


  • 1
    $\begingroup$ If you want to get a predictive model that gives some sense of when orders have stopped, you would need data where you identify when orders have stopped in the past, and the prior activity of the people whose ordering stopped, compared to those who didn't stop (and to their own activity earlier still, if possible); that kind of information would allow you to build some kind of a model for what you want. The Poisson is only going to be even a bit useful if you model the change in order rate - but even that doesn't tell you anyone has actually stopped, only that the order rate might be low. $\endgroup$ – Glen_b Jun 11 '13 at 23:06
  • $\begingroup$ If you can't do the 'these people stopped ordering' with your data, you can't really do what you want and instead are going to have to make some kind of a judgement about what order rate corresponds to 'not ordering'. $\endgroup$ – Glen_b Jun 11 '13 at 23:07
  • $\begingroup$ We should have the data, but wouldn't the question then shift to 'how do I identify customer / product orders that have already stopped' or am I missing something? The data is too large to manually categorize, or would I manually categorize a sample and go from there? And thanks for your comment. $\endgroup$ – eyston Jun 12 '13 at 1:05
  • $\begingroup$ The problem is without knowing which orders eventually must be regarded as stopped for a training sample, how can you build a probability model for judging stopping at all? It would be like saying 'how do I work out the probability of drawing a red? By the way, all the red and blue balls have been painted grey'. As I suggested before, you're left instead with imposing some criterion that you think represents it. Of course if you can identify a formal measure of 'stopped' from looking at a sample, then you can build a probability model that will help you predict that. $\endgroup$ – Glen_b Jun 12 '13 at 1:11
  • $\begingroup$ Are "if you can identify a formal measure of 'stopped' from looking at a sample, then you can build a probability model that will help you predict that" and "make some kind of a judgement about what order rate corresponds to 'not ordering'" the same thing? Or is formal different from a judgement call on defining 'not ordering'? $\endgroup$ – eyston Jun 12 '13 at 1:29

Refer to the following paper:

Schmittlein, D.C. and Morrison, D.G. (1985), “Is the customer still active?”, The American. Statistician, Vol. 39, pp. 291-5.

Quote from this paper:

Letting the observation period be one unit of time and assuming Poisson-process purchasing during the customer's active phase, the number of purchases $n$ and the time of the last purchase $t$ contain all of the information. The $p$ level for testing the hypothesis that the customer is still active at the end of the observation period is found to be simply $t^n$.

The authors give several examples, such as a case in which $n=4$ purchases are made during the observation period, with the last purchase made $9/10$ of the way to the end of the observation period. So the $p$ level is $(0.9)^4=0.66$, which is not less than 0.05, so the customer is still active.

| cite | improve this answer | |
  • $\begingroup$ thank you, that paper title sounds pretty spot on. nice reading material for tomorrow :) $\endgroup$ – eyston Jun 12 '13 at 1:05

Well, the first problem here is that IMHO yours are not useful statistical variables as they are now. Consider that orders of a part by a customer (I'm guessing here about your business segment, bear with me) are driven by many correlated variables like:

  • Seasonality
  • Customer needs of that part
  • Market situation

and so on...

In this case many times you first apply different algorithms to make this "noise" disappear , but even in this case what you could assume through a poisson distribution greatly depends on how that distribution fits with your data.

My two cents here: cluster customers depending on orders history (frequency, amount and so on) and next think about the aggregate demand of that part, which is more easily analysed thought standard models.

| cite | improve this answer | |
  • $\begingroup$ I agree that its a gross over simplification. I'm trying to start simple and work up, but maybe the simple will not be useful. I'm open to any papers on clustering. I am pretty naive but like to read. thanks. $\endgroup$ – eyston Jun 12 '13 at 1:07
  • $\begingroup$ Well, you could start with a descriptive, qualitative model as the RFM (en.wikipedia.org/wiki/RFM - citeseerx.ist.psu.edu/viewdoc/…) and next build up on this with more appropriate measure. It always depends on the statistical power you mant to achieve and the stakeholders of (the persons interested in) the data $\endgroup$ – Vincenzo Maggio Jun 12 '13 at 12:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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