-
Notifications
You must be signed in to change notification settings - Fork 31
Home
Full-Fledged Hledger is a tutorial on how to setup up hledger to get:
- data split into files by year
- multi-source CSV imports
- range of auto-generated reports
- single script to update all reports when any source file change
- full freedom to evolve and refactor your journals as you see fit
- and more
A set of sample journals and helper scripts that I use together with hledger for tracking personal finances and budgeting. It should be easily adaptable to other command-line accounting tools (ledger, beancount, ...).
I went through several different approaches over the course of 10 years, and this is the end result of that journey, complete with "how", "why" and lessons learned.
I wanted a setup that would satisfy three major requirements:
-
Tracking expenses should take as little time, effort and manual work as possible.
-
It should be easy to work towards eventual consistency. Large and danting tasks (like "I will process 10 years of paper mortgage statements" or "I want to import 5 years of paypal payments") should not require one big push and perfect planning to finish them. Instead I should be able to do them bit by little bit, leaving things half-done, and picking them up later with little (mental) effort. Eventually my records would be perfect and consistent.
-
Ability to refactor is a must. This is the natural extension of the previous point. I want to be able to go back and change the way I am doing things, with as little effort as possible and without fear of irrevocably breaking things.
I believe that have a setup that allows you to do all that, and more.
It is relatively easy to describe what I am doing, but it is harder to descibe why. The easiest way to to answer all the why questions is to illustrate how one can grow a setup from scratch, gradually introducing problems and solutions.
This repository contains a number of directories (01-getting-started, 02-getting-data-in, ...) that represent evolution of the setup, starting from the bare minimum and adding one new feature at a time. This allows you to choose the starting point that is more suitable for you or compare/diff various setups and see what exactly has been changed at every step : diffs between the steps are in the diffs directory.
If you are fairly experienced with ledger, hledger, beancount or any
other plain-text accounting tool, you might want to quickly check out
key principles and practices to see
how things are laid out and then head directly to the most featureful
(most-highly-numbered) directory and take a look around to see how
everything is done. Run ./export.sh
to generate all reports and see
what is being processed and how. If things dont make sense, start at
the beginning, and proceed in the order displayed on the sidebar.
- Key principles and practices
- Getting started
- Getting data in
- Getting full history of the account
- Adding more accounts
- Creating CSV import rules
- Maintaining CSV rules
- Investments - easy approach
- Mortgages
- Remortgage
- Foreign currency
- Sorting unknowns
- File-specific CSV rules
- Tax returns
- Speeding things up
- Tracking commodity lost manually
- Fetching prices automatically
- ChangeLog