Given 10 years history of past balances of deposit accounts in a commercial bank, I need to calculate what part of those deposits were core, month by month.

This is my thinking: for each account/month take the minimum balance of that month. Then add up all the minimum balances for the month, and that will be the bank core deposit amount. Does this approach have any problems? Is there a better way to calculate this?

  • $\begingroup$ What do you mean core? Are you trying to calculate something like the average deposit for each account? $\endgroup$ Feb 7, 2022 at 14:58
  • $\begingroup$ No, core means deposits that are not withdrawn, deposits that the bank can count on to use the funds for investment, as they most likely will stay in the bank deposit accounts in the future. I need to calculate core deposits in the past first, then I will predict what are future core deposits (machine learning excercise) $\endgroup$
    – ps0604
    Feb 7, 2022 at 17:07
  • $\begingroup$ Can you give some insight into the purpose of the calculation/model? Is it used for eg. prediction or something else? $\endgroup$
    – Pleb
    Feb 13, 2022 at 17:07
  • $\begingroup$ Yes, it’s used to train a machine learning regressor to predict future core deposits based on macroeconomic variables $\endgroup$
    – ps0604
    Feb 13, 2022 at 19:52

1 Answer 1


As with any model, you'd need to make some assumptions and see how factoring in these assumptions play out. You're trying to model the core deposits so it would make sense to consider these account by account since how each client uses their account will vary.

If core means deposits that are not withdrawn then I don't see an issue with considering the minimum balance of that month. To formalize, for each account, you can have

core_deposit = running_min(account_balance, 3 months)

for example.

Other things you can try are the average balance over the past X months +- rollin standard deviation of balance changes.

I haven't seen how much the data varies but also try median balance +- mean absolute deviation to reduce the effect of outliers.

Each of these methods will produce an answer, but what's important is how we evaluate that answer. Perhaps we can phrase this as an ML question.

So you have your data set which is essentially a time series for each account. For each account, for each point in time, calculate the MINIMUM amount in the account over the next, say, 6 months, that quantity will be the target quantity you want to train your machine learning model to learn. If we are successful in building such a model, your model should spit out a quantity which the client should at least have in his account over the next 6 months.

Next part, feature engineering, this is where you can be creative in developing features like calculate how often balance changes, magnitude of changes, average change if deposit/spend, etc.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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