I did something!

As if there aren't enough blogs and articles about how to maintain a plain text ledger, I am putting my 2 cents on the table.

Over the years I have used this particular setup to keep track of all my ledger files. I come across people who maintain one HUGE ledger file that dates back many years, I didn't like that idea. From my ledger stats that is going to be a huge file.

  Unique payees:            1406
  Unique accounts:           154
  Number of postings:       3619 (3.9 per day)

How to fix that?

Currently what I do is split my ledger files by yearly quarters. Lets say I am on the fourth quarter of 2019 so I have ledger file named FouthQuarter2019.ledger, this will have all my day to day entries. Then I will also have another file named Life.ledger which will hold all the other ledger files by using include. So the idea here is to split the ledger files in small groups by time and then include the small ones in the main one, so if you want to do reports on the main one with every transaction you have done you can, but I don't really care about last years budget on gas all the time this year.

Here is what I have in the directory 2019

-rw-rw-r-- 1 justin justin 41422 Sep 30 10:10 FirstQuarter2019.ledger
-rw-r--r-- 1 justin justin 15562 Nov 21 12:06 FouthQuarter2019.ledger
-rw-rw-r-- 1 justin justin 22896 Oct 22 10:40 SecondQuarter2019.ledger
-rw-r--r-- 1 justin justin 28236 Oct 24 09:13 ThirdQuarter2019.ledger

And then outside that

drwxrwxr-x  2 justin justin 4096 Nov 21 12:06  2019/
-rw-rw-r--  1 justin justin 3648 Oct  1 16:20  Life.ledger

In the beginning of FouthQuarter2019.ledger I make a new Genesis transaction to add something to my assets.

2019/10/01 * Moving major accounts
    Assets:Bank:StudentAccount              $7790000
    CreditCard                             -$1290.07


But if you simply start another ledger file and include that to in the main file then making a report of the main file would mean double the balance in your asset accounts. Because when you started the new ledger file you made your Genesis transaction again to add something to your assets. So after we include a new sub file we need to negate that from the main file. Like this.

Inside Life.ledger

; Here third quarter of 2019 is the absolute beginning, but IRL its 2017 for me
include 2019/ThirdQuarter2019.ledger

; Balancing transfer from ThirdQuarter2019 to FouthQuarter2019
2019/10/01 * Moving major accounts
    Assets:Bank:StudentAccount              -$7790000
    CreditCard                               $1290.07
include 2019/FouthQuarter2019.ledger

And then we can continue for ever. But eventually Life.ledger will be huge, just like your life. You need to forget about some of it, archive them and then move on…