Series

6 pages

Self-Hosted Finances

My financial data scraping system

This article is part of the Self-hosted Finances series.

In my Importing and cleaning my Mint transactions, I worked through loading, cleaning, and solving for transfers. However, Mint and other financial scraping tools are not authoritative and don’t expose everything that the bank itself will provide. For example, Mint and Monarch don’t have detailed enough stock transaction and position data to identify cost basis, tax lots, and positions. Directly going to the bank can give me higher precision time stamps, scans of checks, merchant addresses, and other attributes.

Securing data using Vault in a Home Lab

This article is part of the Self-hosted Finances series.

I have several projects running in my Home Lab that now have to store and use sensitive secrets. In my Self-hosted finances series, I developed software to scrape my own bank statements (more on that coming soon.) In other projects, I store API keys to manage DNS or even my dedicated servers. These applications all run in Kubernetes, which does support Secrets, however, by default, they are not encrypted and are easily accessible to actors that have access to the K8s API.

The confusing world of scraping my own stock portfolio

This article is part of the Self-hosted Finances series.

Over the past few months, as part of my self hosted finances series I’ve been working to extract all of my stock portfolio into some kind of self hosted database. I came across Ghostfolio, which is an open-source (with a paid hosted edition) tool for tracking stock portfolios. It was able to give me a portfolio view across multiple brokerages, automatically fetched stock prices, and gave some basic allocation reporting.

Solving for bank transfers using Pandas

This article is part of the Self-hosted Finances series.

Previously in Part 1, I talked about how to clean-up the transaction data from Mint to remove duplicates and add any missing transactions. Solving for transfers The next phase is to solve for the transfer pairs. A transfer pair is defined with a matching credit and debit transaction on two different accounts. In Firefly, a transfer is treated separately than a credit/debit because it’s excluded from the expense and income reports.