Designing a Recommendation Engine for a Sales Force Automation (SFA) Software Suite


A Case Study

What is the business problem?

Retailers often use vague approximation methods to predict how much product to purchase from a wholesaler. First level approximations often involve counting inventory stock and analyzing historical transaction data. This approximation typically only looks at recent transaction data to give the quantity of each SKU sold by assuming roughly the same sales trends will persist in the near future. Customer trends, in fact, are more complicated than this. Moreover, economic, social, and political changes occur daily that could greatly influence the amount of product a retailer will sell. In a perfect world, retailers would order the exact quantities for each product that they could sell, but our marketplace is far from perfect. Therefore, it would greatly benefit both retailers and wholesale suppliers if retailers could rely on a predictive model to accurately estimate the quantity of each SKU to order.

This model can be used by delivery services to estimate how much of each good to load a delivery van with.

What have we done at Numtra?

Sales force automation (SFA) software automates retail tasks such as customer interaction tracking, sales processing, and inventory control. It is also sometimes used for analysis, as was done here.

A platform-independent pluggable recommendation engine written in R and Java was deployed. The wholesalers were able to access recommendations from the SFA software to predict the correct quantities of various goods with which to stock their delivery vans. The model had an overall accuracy of 92%.

How can Machine Learning help?

Both structured and unstructured data can be fed into a machine learning pipeline to build a predictive model for the delivery service. Geographic data regarding store location, customer demographic data, and social media data that gives insight into political and social trends, are gathered in the form of unstructured data; whereas customer transactions, inventory data, and product details data are gathered in the form of structured data. After the data is transformed, features are engineered and extracted to build a machine learning algorithm.

The steps of the algorithm are three-fold. Firstly, stores are clustered together by type of retail and geographic location. The first layer of the model gives insights into how potential customers might cluster their shopping habits, marketing and promotions offered by the vendor which likely affect sales, and strategy planning vendors might perform in efforts to increase revenue.  The second layer of the model provides product recommendations to the clusters identified in the first. Prices of goods are categorized by buckets, based on market value and insights extracted from the first layer. This layer also provides insight into the delievery time of goods to each cluster of stores. The third layer forecasts new product demand by better understanding the demands of various products. From the last layer, delivery routes are optimized and propositions are given to better manage store inventory. From the final layer of the machine learning pipeline, vendors are able to better predict the quantities of goods they wish to request from the wholesaler and the wholesaler can deliver those goods in an optimal way.