As discussed in #436 and #503, it would be great to have intelligent suggestions for account names when doing imports. (I hope you don't mind that I am bringing this old issue up again?).
Implementation originally was originally planned in #503:
intelligent account suggestions for fava's import process were discussed by @aumayr in #503, but the merge request was closed and the feature thus postponed.
@aumayr commented on Feb 20, 2017 in #503:
Updated TODO-List:
- [ ] Support for bean-file
- [ ] "Intelligent" way to suggest accounts, etc. (like discussed in #436)
- [x] Support for more types of entries (balance and note seem important)
- [ ] Tests
@aumayr commented on Apr 6, 2017 in #503:
Only four points remain, which can be implemented after the PR is merged:
- Figure out (and integrate) the duplicate-entry-detection-mechanism by bean-extract. For me, it never recognises an entry as duplicate. If duplicates are recognised, mark them in the Ingest-UI as "duplicate".
- Add bean-file functionality.
- The Ingest-UI is slow for >50 entries.
- Add example code for how to implement an importer and configure Fava to use it. This should also contain a blueprint for a best-practice importer.
Links to related implementations:
Some more infos and links to existing implementations in other tools (that can maybe be reused?) can be found in #436:
@johannesjh commented on Jan 16, 2017 in #436:
Are you aware of existing implementations? There even exists one tool written in Python.
in the meantime, I found these additional tools, also see this list: http://plaintextaccounting.org/#data-importconversion
Technical design:
Does the current implementation of the import process save enough data so that a machine learning algorithm can learn from previous imports? Conceptually, this data would consist of mappings from original source data (e.g., a line from CSV file) to output (corresponding beancount transactions).
What would be a suitable place to store this data? I found the recommendation that importers should generate a __source__
metadata field for each transaction. But the data could also be stored in a separate file.
Interaction design, to be discussed:
Given a user started an import process by clicking "extract" next to a file that has been identified (or in the future: uploaded), when the user then looks at the extracted data... Where in the UI should the intelligent account suggestions be displayed? Some ideas:
- fava could automatically suggest postings that balance all unbalanced transactions generated by the importer. (unless importers are expected to only generate balanced transactions?)
- the dropdown list for manually selecting an account could be sorted by relevance based on the smart suggestions.
discussion feature