Auto-categorization and learning process
I love MD and have been using it for many years. One area I've never understood well is how MD "learns" how to categorize new Transactions automatically. MD assigns some transactions the "correct" category automatically, while others never seem to be "correct".
I've read somewhere that MD learns from the selected category when confirming an incoming Transaction (in the right Confirmation pane). Is this true? Does it learn anywhere else, e.g. if I update/recategorize a transaction in the transaction ledger (not in the Confirmation pane).
Comments are currently closed for this discussion. You can start a new one.
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
1 Posted by Milo C on 24 May, 2024 04:04 PM
I found this post from 2016. It links to the MD User Guide for more details on categorization, but that link is broken.
2 Posted by dw-uk on 24 May, 2024 06:00 PM
I'm a fellow customer, not Support.
Refer to https://infinitekind.tenderapp.com/kb/older-versions/moneydance-201...
for current location. Remember this is for a version from nearly a decade ago, so treat with caution - though the specific background info you seek is probably still valid
3 Posted by Milo C on 24 May, 2024 06:20 PM
Thanks!
Here's what I see on p.38:
That description comes with a screen grab showing the confirmation window. That implies that the learning happens during transaction confirmation. There's no mention of whether learning can occur if a transaction category is modified directly in the ledger, after confirmation. Could anyone weigh in on that? I suppose an argument could be made both for or against that behavior.
And yes, I know those docs are from 2015!
4 Posted by dwg on 24 May, 2024 09:54 PM
The process is based on transactions that are in the register. To be included in the process however downloaded or imported transactions must have been confirmed, if you are manually entering transactions they are always assumed to have been confirmed.
Unconfirmed transactions are never considered since the initial state for them will be to have the default category assigned to them, and even if this is changed the software is not keeping track of this. it is only when a transaction has been confirmed that the software knows the category has been set and it has an indicator that it can use to check on this.
5 Posted by Milo C on 25 May, 2024 12:25 AM
Ah. I always wondered what the purpose of confirming a transaction was.
Do you know if updating a category in a transaction in the register, rather than in the Confirmation pane, has the same effect?
Does the act of confirming a transaction trigger the actual training logic? Or does MD review all previously confirmed transactions with similar descriptions and amounts for the account, when auto-categorizing a new transaction? (i.e. does updating the category of an already confirmed transaction affect the learning?)
And, does the categorization learning happen only as transactions are downloaded from an external source, or dynamically as each new category is assigned to a transaction and confirmed? (meaning, let's say I have several transactions with similar descriptions in the same account. I categorize the first one and confirm it. When I move to the second one, should I expect that it learned from the previous transaction I just confirmed?)
Is there an API I could program to, to access the learning and influence it?
6 Posted by dwg on 25 May, 2024 01:05 AM
If you have confirmed the transaction and then later change the category it takes the later category.
It is not a learning process as such, the confirmation process is effectively setting the values to be used at a later time. So if you like creating the data.
What is suggested is determined at run time when Moneydance looks at the transactions in the register that are confirmed and applies an algorithm to suggest to you the transactions that may be appropriate, it is not saving any associations. The algorithm applies different weightings to different fields, so for example the most important field is the description, it does not matter if you change the contents of this field for example, because the software works off the values the bank assigns to the fields, but it will use changes you make to suggest what value should be saved in the field in the register that you see.
7 Posted by Milo C on 27 May, 2024 07:05 PM
So the confirmation process dynamically analyzes the confirmed transactions in that register to offer similar categories, e.g. using an algorithm that references (original) description and amount?.
Can I offer an example to see if I understand: I have a register that has a large number of Amazon.com transactions in it, and I select all confirmed Amazon.com transactions and bulk-update them to change the category to "Milo Shopping". There are also some transactions in that register from Amazon.com that are not confirmed. If I select one of them, should it now offer "Milo Shopping" as a default category? At the top of the list? (I notice that in the Confirmation pane, many similar transactions may be offered for selection.)
What other fields aside from account, amount and description are considered in the heuristic? Is it possible to influence that? Perhaps via API?
8 Posted by dwg on 27 May, 2024 09:24 PM
The algorithm takes in most Bank provided fields, part of the confirmation process is also the merge function where an exiting transaction is merged with the newly imported transaction, but for this to happen the amounts have to be the same.
If you change all existing confirmed transactions to a different category it would be expected that the software will offer the new category as the suggested for a new transaction.
You cannot change what fields are included in the algorithm or the weighting of each field.
System closed this discussion on 26 Aug, 2024 09:30 PM.