Consider replacing Payee matching with a more robust 'if-this-then-that' workflow rules engine
The current Payee matching is limited in a way that it only allows to do one thing: assign a default category. Moreover, one can only assign a default category by matching the Payee only [1].
This is very limited and doesn't allow following exemplary scenarios:
- Matching the Payee name and the Memo.
- some of my banks' scheduled automatic credit-card payment transfers contain the last 4 digits of card paid to in the Memo field
- I have previously brought this up on the -dev mailing-list.
- Matching the account
- I assign "Interest Payment" transactions to different income categories, depending on whether the source account is Checking, Saving, a CD, etc.
- Automatically creating a transaction once another is detected
- I have no way of downloading a breakdown of my salary and contributions, but since it doesn't change month-to-month, I could generate the transactions automatically once the salary transfer is detected
- Assigning a category by matching Payee field but not rewriting the Payee field, which is currently impossible.
- Automatically triggering a warning, e.g.:
- when a positive transaction is added to a specified account that must only have charges
- when upon saving the book, a specified account has a non-zero balance (e.g. a "Resolved temporary charges" account)
By extension, this would also include rewriting of the Scheduling functionality into the engine, since the time passing is naturally one of the triggers. Also, I think it could be made a plugin, not core functionality, effectively reducing the complexity of the importing logic. It would need to be a core functionality, and part of the plugin API.
It's my personal opinion, but I think everyone will agree that this type of workflow is more natural to human brain and is already widely recognizable, used by popular products like Apple Shortcuts, IFTTT, or "Scenes" functionality on any of the smart home platforms (Google Home, SmartThings, Apple Home).
Some existing, commercial finance software also uses this approach, providing a very powerful yet simple to use tool: https://lunchmoney.app/features/rules
[1] OFX importer comes with its own, additional matching mechanism. It can match against both Payee and Memo fields, but the mere fact it has its own mechanism makes it even more confusing.