Tool for generating financial reports. Download statements from your broker or investment accounts, ingest them using investd and generate nice reports.
Check out the sample report generated from sample data at: https://adri0.github.io/investd
investd - A tool for summarizing investments.
License: MIT License
Tool for generating financial reports. Download statements from your broker or investment accounts, ingest them using investd and generate nice reports.
Check out the sample report generated from sample data at: https://adri0.github.io/investd
In my XTB operations history there are partial BUY operations, such as:
OPEN BUY 4/8 @ 5.0140
OPEN BUY 3/8 @ 5.0140
...
It should be easy to allow parsing these.
Currently ingest-sources
generates a new transactions CSV each time it is run containing only transactions found in the sources being ingested. It would be best if we could keep the existing transactions in place as we ingest source files that might not contain existing ones.
When I ran this for the first time, I noticed a weird messsage:
python -m investd download-quotes
2023-01-07 01:14:07,519 - investd.config - INFO - PERSIST_PATH: data/persist - REF_CURRENCY: PLN - REPORTS_PATH: data/reports - SOURCE_BASE_PATH: data/source
[*********************100%***********************] 2 of 2 completed
1 Failed download:
- IBC5.DE: OperationalError('database is locked')
Originally posted by @mkopec87 in #38 (comment)
Need to chose a proper open source license.
Add information about current portfolio value in the overview.
For that it is needed:
It would be nice to avoid using sample_data directory in the unit tests. Instead, it would be ideal in the tests to use only data inside tests/resources
, but I didn't manage to load config variables form .test.env
in the tests.
Not sure if feasible, but in my fork I get failing build for main branch because of not being able to publish the page.
Maybe we can somehow prevent that?
https://github.com/mkopec87/investd/actions/runs/4188445079/jobs/7259585973
Configure Github Actions for doing that.
Revolut changed the format of the exported CSV. Update the source parser to use the latest format.
E.g.:
Currently we need to first run ingest-sources
then report
to generate the most up-to-date report. It would be nice to add some parameter to report
command for also ingesting.
Each source needs some configuration, such as account currency.
For me, communication with yfinance is only working if I update yfinance to latest version.
The portfolio overview report should be able to show the portfolio value at a given date, not only today.
Shouldn't we get 'investd' command added to the path in such case?
I'm not sure what this part does:
entry_points={"investd.__main__": {"main = investd.__main__:cli"}},
Is it for running it like:
python -m investd
?
Maybe we can also add sth like:
setup(
...
entry_points = {
'console_scripts': ['investd=investd.__main__:cli'],
}
...
)
?
In XLSX file I exported, I have headers in Polish, e.g. "Kwota" instead of "Amount".
Side question: any reason to use XLSX export from XTB instead of CSV?
It is necessary to know exchange rates at a certain date for calculating portfolio value.
Include some basic metrics, such as:
It would be nice to be able to get current value of Polish retail bonds in the portfolio.
Some web scraping could do, I already started the research in the topic to find out that:
When the reports command runs, the code of the report notebook is executed by the main application upon importing:
nb_module = load_module(f"{__package__}.{notebook_name}")
Find another way to find the notebook path without importing it.
Currently the persistence layer consists of CSV files.
Currently symbol mapping for fetching quotes from yfinance is a hardcoded dictionary in quotes.py
. Would be nice to have that configurable via some text file.
Add a config file for configuring:
Currently, the package is always in version 0.0.1.
Require and automate versioning of the tool upon merging pull requests in main.
Reports for the portfolio net worth require quotes of each owned asset. For that it is need to query external APIs for obtaining the price of assets.
Some remarks:
The portfolio overview report should be able to show the portfolio value at a given date, not only today.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.