⬆️ ⬇️

Lower bones? Easy

Good afternoon, I am developing a service for demand forecasting based on Microsoft Azure, Spark Apache in an IT company. In the series of articles I will tell you about real business cases from Russian realities that the IT company faces. Basically, articles will be about business: there is a client, there are his tasks, you need to find a way how to solve them and prove to management the adequacy of calculations, then already introduction.



This article is informative: I will not describe in detail the calculation algorithms and our models, however, I will tell the logic on which the entire mathematical part is based.



First business case



The company wants to understand how much loss it has (very cool when the company immediately knows what it wants), and how you can reduce it.

')





The goal is set. Now a little about the company: The federal network of 400 retail stores. The pilot version of the project was agreed to hold with one category of goods - 20 sku, the average shelf life of the product is 15 days.



The structure of the operation is as follows:





It seems simple. It is necessary to understand that optimization can be implemented in business processes (changing the delivery schedule, accounting for traffic jams ...) and IT solution, based on the introduction of new technologies that give a business value. In the latter case, the company does not need to make major changes, such as retraining personnel, changing the structure of work, upgrading infrastructure. In this article I will talk only about the IT solution.



A bit of savings in large companies



For example, a delay of a unit of each sku per day does not seem significant when analyzing a small group — 20 sku. However, let's calculate the monthly net loss:

31 (days) * 400 (stores) * 20 (number of sku) * 1 = 240,000 units.



Let the average purchase price be 30 rubles, that is, 7.2 million rubles a month of net losses. It would seem that only 1 unit of goods per day, one million saves.



At the first stage of the analysis of the company, we will take into account losses of the company and expired goods under the losses. It remains to understand how to count them. In this project, we were very lucky, because the client had statistics on expired goods, otherwise we would have to simulate them artificially.



Let's try to deal with the short sales



Under the short sale, we will consider the situation when OOS (out of stock) is observed, that is, we have to simulate the situation in the spirit of “what would happen if the company had enough residues to satisfy the demand of customers”. In the customer data there are residues in the context of Shop-Sku-Day, which pleases. It is worth noting that balances are considered at the end of the working day.



Considering the above logic, it is necessary to find the days including the goods on the way, in which the remains were zero, and replace the sale on this day with the average for the last week. Note that if there was no sales in fact on such a day, then we consider the average sale for the last 7 days as a short sale, otherwise a short sale = weekly average is a fact of sale.

In fact, sales data tells us about the part of the demand that we managed to meet, but this is not the initial demand of buyers.



Clearing from OOS and some other procedures clearing data, for example, from such a situation: if there is no Coca-Cola on the shelf, then some customers will buy Pepsi; allow you to get real demand from the buyer.



Super! We received the dynamics of sales in the context of Shop-Sku-Day and the real demand from the buyer. The case remains for the small: translate everything into money - multiply the under-sales by the margin, and the delay by the purchase price. I would say that in this company the total losses were 6.6 million rubles a month - approximately 8% of the turnover of this group sku. All calculations were carried out on real customer data, the results are fully consistent with reality. In Russia, unfortunately, very few people pay close attention to loss analysis, which is why losses make up such a large percentage of turnover in many companies.



The first stages are completed. You can report to the management that you have a loss of 6.6 million! What we get a very logical answer - So what? Suggest a solution and justify its economy!







Okay, you need to figure out how to lower the cost. One of our IT solutions to similar tasks is a cloud service for forecasting sales based on Microsoft Azure. This solution does not require significant costs for its implementation and integration into the business. In addition, the service uses cloud technologies, which allows not to load the client’s capacity.



The company predicted sales on the basis of a moving average + safety stock, and the service has more serious forecasting methods (about them later). I note that the company had an average forecasting accuracy of about 50%, and our service on a three-year customer data shows an accuracy of 70%.



The daily accuracy is calculated according to the following formula:



accuracy=1− frac|y− widehaty|max(1,y, widehaty),whereyisafact, widehatyistheforecast





If you need to aggregate, then we consider it as a weighted average.



What is the profit from the forecast?
The logic is as follows: the more accurately we predict, the more optimally we build the system of product orders and the higher the service for the buyer (no empty shelves) and the less overdue products.



The most important part of the project is to show the real profit from our product. I note that, naturally, the accuracy of the forecast provides benefits, however, each company is different. This is due to their business processes, for example, the delivery schedule does not allow to make an order today, the multiplicity of the order - the number of yoghurts should be a multiple of 24, or the minimum order should be 100 pieces. Therefore, it is necessary to model the entire system from the inside: we take the client's delivery schedule, the order conditions, the delivery shoulders and the necessary traffic load. And already in this environment we model losses at different accuracy to show the real business value.



We have to simulate the remains of the client, the delivery of goods, sales, expired products, laying a different accuracy of the forecast.



So, we built a model in which the following prerequisites were laid:





Dependence of losses on forecasting accuracy:







Now it is clear that with an accuracy of about 70%, the savings will be about 1.2 million rubles per month, which is not bad, considering that the pilot version was based on a group of 20 sku.



There is an interesting point: the client has a 12-day insurance reserve, however, having a good forecast, it can be reduced and additional benefits can be obtained. In modeling, all the original data of the system does not change, except for the safety stock, which allows, without reducing the level of service for the buyer, to reduce the cost. Additionally, I note that all the simulated orders are consistent with the client's delivery schedule, and the conditions of the orders are observed, that is, the simulated system fully complies with the company's business processes.



The graph is the best tool to prove:







Now, with an accuracy of 70%, the savings will be 4.6 million rubles a month! This result is obviously very cool. It's amazing how the introduction of a forecasting service can save a client’s money in the amount of 4.6 million rubles a month only by 20 sku!







findings



Thus, with the help of IT solutions, we managed to save the client 4.6 million rubles per month on the pilot version. Now we have taken the development of the remaining product groups for analysis and identification of profit, which will give our cloud forecasting service.



Hope the article was helpful. In the next article will be described in detail about the work of our service.



I will be glad to answer your questions.

Thanks for attention.

Source: https://habr.com/ru/post/339552/



All Articles