Skip to main content

Manage your investments like a data scientist

Project description

Personal Investments Dashboard

Classes and Streamlit app to manage a diverse investment portfolio in multiple currencies, including crypto and market indexes.

Dashboards reads your ledger and balances from an online Google Spreadsheet (see example), get historical benchmarks and currency convertion tables from multiple configurabe internet sources, and created a rich explorable dashboard.

All or some or each of your investments are internally normalized into a single “fund” with number of shares and share value. From there, multiple visualizations are possible.

Install and Run

Runs on macOS, Windows, Linux or anywhere Python, Pandas and Streamlit can be installed.

Install

After getting Python 3 installed, install also some requirements as:

pip3 install -r requirements.txt --user

Configure

Create investor_ui_config.yaml file copying investor_ui_config.example.yaml and edit to your needs.

Get CryptoCompare (in case of having crypto) API key and update it on investor_ui_config.yaml. More instructions on investor_ui_config.example.yaml.

To get access to your Google Spreadsheets, app will send you to a Google authorization screen. Your Google Sheets data will be saved and cached in the computer this Streamlit app is running.

Not required, but you can use your own Google OAuth app authorization secrets in app-credentials-for-google-sheets.json

Run

After installing your API keys, current configuration on the example file will work out of the box as I left a usable example spreadsheet on the web.

Run it as:

streamlit run investor_ui.py

Access the dashboard on http://localhost:8501

Features

Virtual Funds

Create a unified virtual fund with only some of the investments found in your portfolio spreadsheet.

Your whole porfolio will be used if left balnk. Then you might exclude some to match the particular visualization you are trying to attain.

Currency and Benchmarks

You may track your investments using multiple currencies, inluding crypto. I have investments in USD and BRL. You can create virtual funds that mix different currencies, in this case you must select a currency under which you’ll view that (virtual) fund. Values from your spreadsheet will be converted to the target currency on a daily basis.

Also, you might compare your investment performance with market benchmarks as S&P 500, NASDAQ index etc. Just remember to use a benchmark that matches the current currency, otherwise comparisons won’t make sense.

Period Selector

If you have enough or high frequency data, you can divide time in more granular regular periods. Default is monthy view with an anual summary.

Graphs and Reports

Currently supports 4 graphs, from left to right, top to bottom:

  1. Virtual share value performance compared to a selected benchmark
  2. Periodic (monthly, weekly) gain, along with 12M moving average and moving median
  3. Frequency histogram of percent return rate per period (default is per month)
  4. Fund savings, balance and gains (which is pure balance minus savings)

There is also numerical reports showing:

  1. Performance
    1. Periodic (monthly) rate of return with an macro-period (yearly) accumulated value
    2. Same for selecte benchmark
    3. Excess return over benchmark
    4. Periodic and accumulated gain
  2. Wealth Evolution
    1. Current balance
    2. Balance over savings
    3. Cumulated gains
    4. Cumulated savings
    5. Movements on the periods, which is the sum of money added to and removed from virtual fund

Usage Tips

  1. Select a custom period on the slider
  2. View your main metrics on top of report
  3. To optimize screen usage, on the the top right menu, select Settings and then Wide mode
  4. Hide the left panel to gain even more screen real estate
  5. Use Refresh data buttons to update local cache with latest info from your porfolio spreadsheet, market data or both.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

investorzilla-2.2.tar.gz (77.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

investorzilla-2.2-py3-none-any.whl (70.6 kB view details)

Uploaded Python 3

File details

Details for the file investorzilla-2.2.tar.gz.

File metadata

  • Download URL: investorzilla-2.2.tar.gz
  • Upload date:
  • Size: 77.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for investorzilla-2.2.tar.gz
Algorithm Hash digest
SHA256 674d2df7fa65c3febdd8ad6be3adc536313c5d31616558b9ef591adf848c4361
MD5 29f482010e2cd9c7c1d89ec372f5fd1c
BLAKE2b-256 8d9c011713cc9a2dfdf08fab16e1d6187944665e7a0f32cee09c0e480277b3de

See more details on using hashes here.

File details

Details for the file investorzilla-2.2-py3-none-any.whl.

File metadata

  • Download URL: investorzilla-2.2-py3-none-any.whl
  • Upload date:
  • Size: 70.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for investorzilla-2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 84d1b181dc93441a66bb621f871d24a2511792f31939fa759a338e64549f640c
MD5 ae3435d7f5bbed97f5a2c37465034fb2
BLAKE2b-256 fa49fcf50ea3a9b19dc788aa5da53d918970fda336d1befed98e245a4e265e5c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page