Finance
Automatic Investing
The Setup
- Fidelity Brokerage Account ("brokerage") with margin enabled
- Fidelity Roth IRAs
- Fidelity Solo 401K
- Fidelity Multi-Asset Index Fund (FFNOX)
- iShares Core Aggressive Allocation ETF
How Money Flows
- Every investable dollar is in FFNOX across all non-401k tax advantaged accounts
- Every investable dollar in taxable accounts is invested in AOA
- Automatically contribute to my employer's 401K plan every pay period into whatever fund
Automatic Cash Management
The Setup
- One Fidelity Brokerage Account ("brokerage")
- One Fidelity Cash Management Account ("CMA")
- One Fidelity 2% Cash Back Credit Card
- One Chase Freedom Unlimited Credit Card
- One Amazon Prime Visa
How Money Flows
- Payroll direct deposited into brokerage
- All non-mortgage recurring expenses are paid with the Fidelity card
- All Amazon expenses are paid with the Amazon card
- All other expenses are paid with the Chase card
- Bills autopay from brokerage (credit cards, insurance, billpay to household vendors)
- Debit cards and live paper checks written against CMA
Automatic Finances
My friend Amy Hoy recently tweeted about financial planning and personal finance. This particular tweet stuck out to me:
you'd probably think given my love of money that i'd be all over financial planning, but truly i only enjoy earning it and spending it. saving it feels like… freezing cake. i guess you could do it, but why, you have cake
— Amy Hoy ✨ (@amyhoy) February 19, 2019
In early 2018 I radically simplified my family's personal financial system and made everything as automatic as possible. Amy and Joel Hooks asked me to write up how it works, so this is the start of a series of short posts about how and why I set everything up.
Automatic Insurance
The Setup
- $1.5 million of term life insurance on me
- A smaller amount of term life insurance on my wife
- A private disability insurance policy on me that pays $5,000/mo if I can't program computers anymore, for up to 2 years
- Employer sponsored short and long term disability insurance
- Employer sponsored health insurance
- Auto, home, and umbrella insurance
Program Your Finances: Algorithmic Savings
When I started my first full time job in 2007 I started putting away a little bit of my paycheck every two weeks into savings. For the past two years I haven't been doing that manually. Instead, I've been using Ledger's fantastic automated transactions to put money away without having to think about it, both for long term goals and envelope budgeting.
Program Your Finances: Envelope Budgeting
Note: you can find much more information about ledger on ledger-cli.org, including links to official documentation and other implementations. Also, check out my intro to accounting with Ledger.
A few years ago I heard about YNAB, or You Need A Budget. YNAB is a set of rules and associated software that help people to dig themselves out of financial holes and prosper with a budget. The rules are:
- Give Every Dollar a Job
- Save for a Rainy Day
- Roll With the Punches
- Live on Last Month's Income
YNAB embraces both traditional budgeting, where you have a fixed amount of money every month for a category, as well as "envelope budgeting", where you put a fixed amount every month into a category, but if you don't spend all of that it rolls to the next month.
In this blog post I'm going to talk about how to smoothly implement envelope budgeting in Ledger land.
A Robust Reporting System for Ledger
Note: you can find much more information about ledger on ledger-cli.org, including links to official documentation and other implementations
For the last five years I've kept my personal finances in order using the ledger system, a sophisticated command line program that consumes a lightly formatted text file. It's helped me repay debts and get everything in order, helping me financially absorb an injury last month that would have been extremely detrimental just a few years prior.
The stock ledger program is exclusively command-line oriented. For quick checks and grep
ing over output, this is fine. For some time, though, I've wanted a more graphical, more robust way of looking at my finances. I've also wanted a more familiar query language, since version 2.0's queries were someone limited and version 3.0's query syntax is not very well documented yet. Last year I wrote a simple system that pushed monthly reports out to static HTML files, which got me part of the way there but I really wanted something more flexible. Something where I can just write an arbitrary query and have the output dumped to HTML.
Thus, I present Ledger Web. In Ledger Web, your ledger is kept in a text file, just the same as always, reports are ERB files, and queries are SQL. Ledger Web watches your ledger file and whenever it changes dumps it into a PostgreSQL database table. It's also quite customizable, letting you set hooks both before and after row insertion and before and after ledger file load.
Program Your Finances: Automated Transactions
Note: you can find much more information about ledger on ledger-cli.org, including links to official documentation and other implementations
I've been using Ledger for almost five years now to keep track of my personal finances. For three of those years I've lived with a roommate of one form or another. Part of living with a roommate is splitting up bills. Some people decide to do this by dividing the bills up between roommates. For example, Pete pays the electric and gas bills and Andrew pays the water and the cable. Other roommates decide to nominate one person to have all of the bills in their name and post the amounts due every month for everyone to see. This is what my girlfriend and have been doing and it's been working great. All of the bills are in my name and I give her a summary every month and she hands me a check. Easy peasy.
Of course, being a complete and utter nerd means that I have to make this more complicated than it needs to be in the name of reducing the amount of work I have to do.
Program Your Finances: Vacation Tracking
Note: you can find much more information about ledger on ledger-cli.org, including links to official documentation and other implementations
Recently my girlfriend and I visited the wonderful city of Vancouver, Canada. While out of country we tend to use my Schwab Investor Checking account because it carries no fees whatsoever, including currency conversions, and it refunds all ATM fees. Last year when we went to Ireland we just kept all of the receipts and figured it out when we got back, which was excrutiatingly painful. Lost receipts, invisible cash transactions, ugh. It hurts to even think about it. This year, I decided to cobble together a simple system so we could track on the fly. Read on to see how it came together.
Program your Finances: Reporting for Fun and Profit
Note: you can find much more information about ledger on ledger-cli.org, including links to official documentation and other implementations
Another note: I've written a new version of this that is much more dynamic and flexible named Ledger Web.
Last year I wrote what ended up being the most popular article on this blog ever, Program Your Finances: Command-line Accounting. That post went over how I track and report on my finances using a program called Ledger along with a few helper scripts. Recently I expanded that toolset quite a bit and wanted to show how keeping meticulous track of your finances can give you superpowers. Read on for the gory details.
Program your Finances: Command-line Accounting
Note: you can find much more information about ledger on ledger-cli.org, including links to official documentation and other implementations
About three years ago I was in some serious financial straits. I had just started my first job out of college that I had moved across the country for and had to bootstrap almost my whole life. This meant buying furniture, buying a car, outfitting a kitchen, etc. Every two weeks I would get a salary deposit, and within two weeks it would be almost completely gone from my checking account. I actually bounced a rent check or two in there. After the second time that happened I vowed it wouldn't happen again and started keeping track of every penny that I spent using a program called ledger. This was, in hindsight, exactly what I needed to get myself back on track. Actually seeing money moving in and out of my accounts forced me to modify my behavior. At the time, Mint wasn't around, but I don't think it would have helped nearly as much. Forcing myself to actually type out the transactions was the key to changing behavior.
Ledger is almost the most boring, austere accounting program you could think of. There's no pretty graphs, no online interaction, no GUI of any sort. It's basically a command-line driven calculator with a lot of specializations that make it ideal for tracking finances, which is what makes it so ideal for someone who spends a lot of time inside a text editor. It's very easy to script around and it has a very rich query language that lets you get at the data that you want with a minimum of fuss. It's very much the inspiration for Calorific.