Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Just a thought: Use modern AI for reconciling transactions? #417

Open
bjendres opened this issue Mar 19, 2024 · 3 comments
Open

Just a thought: Use modern AI for reconciling transactions? #417

bjendres opened this issue Mar 19, 2024 · 3 comments

Comments

@bjendres
Copy link
Member

In theory it should make sense to use a modern AI model to further automate your CiviBanking configuration.

Here are some general thoughts about this:

  1. It would have to use a private, secure, local model, since CiviBanking processes loads of personalised and financial data
  2. The input data is well defined by the fields in the bank transaction entity, and so is the outcome.
  3. If you've been using CIviBanking for a while, you already have the perfect training data for that model: all your past reconciliation decisions (automatic/manual) are still recorded in the old bank transaction entities. Alternatively you could have a 'passive' mode, so it would learn while you do the conventional reconciliation.
  4. Analogously to the coded/configured matchers, the module could create suggestions, or automatically reconcile if it's sufficiently confident.

Discuss! :-)

@jensschuppe
Copy link
Collaborator

AI as decision-maker in financially sensitive processes? Big 👎 - especially in an open source product, where functionality has to be comprehensible and reproducible, which every AI model will by definition fail to comply with.

Also, I would not second the statement that CiviBanking input data is well-defined, as there is mostly only one data field containing anything (transaction purpose). So suggestions made by an AI-based matcher are biased in the sense of pretending certainty. How would a suggestion's probability be defined when the model can only output one result per run? Would you run the model multiple times and only use identical results?

If introducing an experimental AI-based matcher, automated processing should be disabled.

I think the probability model CiviBanking is currently using is something completely different than a stochastic model AI is built with, because it is equipped with tight railings due to distinct configuration. This will not be met with an AI model which changes decision paths while learning.

Regarding the needs funding label: I doubt it'll be worth the effort that needs to be put into developing and training the model as scenarios CiviBanking can be used for can be quite different from one another, so you'd have to build "legacy" configuration anyway. There's no saving time, let alone energy consumption for running the model.

TL;DR: Might be a nice toy to play with but I doubt it'll be good enough to rely on for such important processes.

@bjendres
Copy link
Member Author

These are all valid points, but you seem be working under the assumption that the human "processor" doesn't make any mistakes - that is specifically not true if they have to go through hundreds of transactions at a time manually.

But I agree that this, should it ever happen, should be a niche thing for specific scenarios and not the standard setup, probably for large volumes that cannot be easily captured by a handful of rules.

@jensschuppe
Copy link
Collaborator

No, I do not assume humans do not make mistakes. It is about responsibility in case of errors. Also, a human might be able to remember circumstances when something seems weird after a wrong decision. An AI cannot provide that contextual memory. Also, the model would not be able to learn from such mistakes as there is no feedback for manual corrections (by humans).

I might be the devil's advocate here, but AI does not seem to be the right tool for decision-making at all. It might provide more aspects for an analysis, as it knows about known data, but it does not have implicit knowledge like humans do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants