Predicting customer activity with machine learning

There are a hell of a lot of businesses who are feeling the pinch these days. And whilst future trading prospects seem to be more positive, how can businesses be better placed to weather a storm?
We’ve been thinking about this a lot with the clients we work with. And if, like us, you’ve notice that no day goes by without the mention of machine learning, AI and predictive analytics, we’ve looked into how this emerging technology could help better predict customer activity by conducting our own internal experiment.
Forecasting is a very difficult thing to do with any degree of certainty, but it is critical throughout your business. Anyone who has a greater grasp of what is going to happen is always going to be ahead of the curve, whether that is at an organisation level, a function level or at a customer level.
So, our experiment started with one question: which customers are going to trade next month?

The plan

We used 2 calendar years’ worth of data. To begin with, we only drew on aggregated monthly sales figures, and ignored line level transactions or any category information — though this is something we’re working on.
We trained the ‘machine’ on 99% of the data, leaving the other 1% to benchmark against. The initial result was 94% accuracy, compared to the benchmark.

What does this mean?

I think 94% is fairly good for a start. Once we bear in mind other variables that would affect monthly numbers and trading, 6% deviation doesn’t sound too bad. Immediate questions are around what is in that 6% and how can we validate the 94%?
So let’s look at a customer example below (which has been anonymised for obvious reasons):
In the above chart the side axis represents sales and the bottom axis is months, running from January 2016 to November 2017. The green bar shows customer sales; they spent £11,000 in January 2016 and £10,000 one month later.
The blue bar is the predicted sales figure we calculated- a month prior. In January 2016 we predicted a fall in sales to just over £10,000. Then in February we predicted a fall in sales to just over £6000…and actual spend in March was just under £6000.
The model is running to a resolution of £500, so we are allowing for +/- £500 each month. Against a customer that will spend an average of £6000, that gives a fairly comfortable level of forecast. What is fascinating and where this really comes to life is that we are predicting customer level trading. This brings the world of analytics so much closer to the transaction, but also to the trading reality of customers.
This predictive modelling will hopefully help us answer business critical questions like:
  • Is this customer going to trade next month?
  • When are they likely to trade?
  • How much are they going to spend?
  • Is that as much as we would like?
The idea being that if we can predict this at a customer level we can reconcile quickly what actually happens - and intervene if it doesn’t. Being able to report on this on a daily basis on a simple dashboard allows our customer-facing colleagues to take immediate action or gather feedback. Being able to track this via CRM (either through manual intervention or automated communications) will optimise the customer relationships, which should lead to increased customer satisfaction and more leverage for us to influence share of wallet and profitability. Something we all need right now.