https://github.com/ggravlingen/pypmanager
Summarize transactions in mutual funds into a simple portfolio report.
https://github.com/ggravlingen/pypmanager
avanza finance lysa portfolio portfolio-management report
Last synced: 2 months ago
JSON representation
Summarize transactions in mutual funds into a simple portfolio report.
- Host: GitHub
- URL: https://github.com/ggravlingen/pypmanager
- Owner: ggravlingen
- License: apache-2.0
- Created: 2023-04-16T16:50:54.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-28T18:00:09.000Z (2 months ago)
- Last Synced: 2025-04-28T18:24:13.283Z (2 months ago)
- Topics: avanza, finance, lysa, portfolio, portfolio-management, report
- Language: Python
- Homepage:
- Size: 3.15 MB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Local Portfolio Manager
[](https://coveralls.io/github/ggravlingen/pypmanager?branch=main)
Summarize transactions in securities into a portfolio report tool.
Supports loading CSV files exported from:
- Avanza (Sweden)
- Lysa (Sweden)
- Pareto Securities (Sweden and Norway)
- Your broker (feel free to add a PR)
- A generic format for all other brokers (feel free to add yours)Available features:
- Holdings overview: a table of your current holdings, and the market value of the positions.
- A transaction list: merge data from multiple sources into one transaction list.
- A transaction chart: show historical price data along with markers for purchases and divestments.
- Profit- and loss statement: show the historical result from your transactions.## What exactly is this?
It's a web app running on your computer.
## But why
I've been looking for a library where I can download a set of transactions from my broker and pension fund manager use the merged data for analysis. When I couldn't find one, I decided to build it instead.
## Cloud storage? No.
Your data is stored locally. The only thing cloud is that the library allows you to fetch market data from the Internet.
## Screenshots from app
Click the images to view a larger version.
### Portfolio overview

### Transaction list

### Income statement

## Installing
Choose one of the options below. I'm personally using (1).
### (1) Running in VS Code
- Clone the library from GitHub: `git clone https://github.com/ggravlingen/pypmanager.git`
- Install [Docker Desktop](https://www.docker.com/products/docker-desktop/) on your computer.
- Install [VSCode](https://code.visualstudio.com/download) from Microsoft.
- Install the [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension.
- Open the library in VSCode and choose the option to open the folder in a container.
- Run the install script by typing `./scipt/install.sh`.
- Start the server in VSCode by clicking `Run and Debug` and then `Pypmanager server`.
- Browse to the transaction list on `http://localhost:8001/#/transaction`.### (2) Building a Docker image from the source and Running as a stand-alone Docker service
- Build the Docker image file: `docker build . --tag pypmanager:latest`.
- Spin up a container and mount your data folders: `docker run -p 8001:8001 -v ./data:/code/app/data pypmanager:latest`.
- Browse to the transaction list on `http://localhost:8001/#/transaction`.### (3) Running a pre-build docker
- Fetch the docker image `docker pull ghcr.io/ggravlingen/pypmanager:2024.12.4`, where `2024.12.4` is the version you want to install.
- Spin up a container and mount your data folders: `docker run -p 8001:8001 -v ./data:/code/app/data pypmanager:2024.12.4`.
- Browse to the transaction list on `http://localhost:8001/#/transaction`.## How do add transactions
Your own data goes into the folder `data/transactions`. If you make contributions to this library, _no_ files from the `data` folder should be committed to the library as it contains your own, private, data.
## Market data (end-of-day prices on funds and equities)
This library is capable of calculating the current value of your portfolio. For this, we need end-of-day prices on funds and equities (market data).
I have provided a few data sources built-in. Download this data using `make load-data`.
Configuration is done by appending `pypmanager/configuration/market_data.yaml` with the securities you want to download data for.
Currently, there is support for loading data from the following sites:
- Morningstar
- The Financial Times
- Svenska HandelsbankenPlease feel free to subsmit your own data source.