Our portfolio

Have a look at our work

Cash demand forecasting

Customer problem

A US state bank is experiencing issues with cash management in its ATMs. This results in an ATM going out of cash on a regular basis or stacking excessive cash in the machine. To overcome the issue, the Bank requires a model that would forecast daily cash demand per ATM.

Datamotus approach

We have done excessive data cleaning and EDA. The goal of the EDA was to reveal the factors affecting cash demand per ATM. Among others, “weekday effect” and “holiday effect” were examined.

Two different approaches were taken for the time series forecasting.

  1. Cluster individual ATMs and make forecasts for the cluster in general rather than individual ATM. Time Series KMeans and Global Alignment Kernel KMeans algorithms were used for clustering.
  2. Forecasting on individual ATM level.

The following forecasting methods were used for both clustered and individual data: ARIMA, ARIMAX, Time series regression, Exponential smoothing, LSTM (deep learning). The forecasting accuracy of all the models was compared and the best option was chosen.

The search for the best forecasting model was done in R, the best one was modeled in Python as a ready to go production code.


The Bank was able to significantly reduce excessive cash in ATMs, decrease the number of cash-outs as well as improve the cash management process.

  • Client: Commercial Bank, USA