Fava Investor aims to be a comprehensive set of reports, analyses, and tools for investments, for Beancount and Fava (software for plain text, double entry bookkeeping). It is developed as a collection of modules, with each module offering a Fava plugin, a Beancount library, and a shell command.
- Visual, tree structured asset allocation by class
- Asset allocation by account
- Tax loss harvestor
- Cash drag analysis
- Summarizer
- Gains minimizer
Play with the live demo at pythonanywhere.
Fava Investor ships with ticker-util
, which is a collection of utilities for:
- downloading information from Yahoo for commodities (tickers), and annotating your commodity declarations with metadata
- discovering relationships between tickers in your Beancount file, such as equivalent and substantially identical tickers, and tax loss harvesting partner groups, from a minimal and incomplete specification
- providing ISIN an other ticker identifying information to your importers
For more, install fava_investor via pip, and then see:
ticker-util --help
ticker-util relate --help
pip3 install fava-investor
Or to install the bleeding edge version from git:
pip3 install git+https://github.com/redstreet/fava_investor
See #55 for MacOS installation.
Add this to your beancount source, and start up fava as usual:
2000-01-01 custom "fava-extension" "fava_investor" "{}"
You should now see an 'Investor' link in the sidebar in fava. For more on how to
configure the extension, see the included huge-example.beancount
.
The command line interface (CLI) is accessed using the investor
command, which has
subcommands for each module. Eg:
investor assetalloc-class
investor tlh
investor --help
Both the CLI and the utility (ticker-util
) use click.
See here
to enable shell completion in zsh, bash, or fish, which is highly recommended.
- Monitor the terminal you are running fava from to look for error output from fava_investor
- Include the error messages you see above when opening bug reports or asking for help
Features, fixes, and improvements welcome. Remember:
- Feel free to send send pull requests. Please include unit tests
- For larger changes or changes that might need discussion, please reach out and discuss first to save time (open an issue)
- Please squash your commits (reasonably)
- Use conventional commits for commit messages
Thank you for contributing!