I started 2021 by moving my finances from YNAB to hledger. The main motivation for this move was data portability, preference to open-source software and privacy.
I’ve been using YNAB for years and I think the YNAB method is
solid. I wanted to continue using the method but with open-source software
based on plain-text journal files. Examples include ledger,
hledger and beancount. I picked
hledger because of
its focus on robustness.
There are several examples of YNAB-like budgeting in
Michael’s envelope budgeting journal, Freedom to Play — Envelope
Budgeting with ledger, and Program Your Finances: Envelope
Budgeting by Peter Keen. I decided to follow barrucadu’s Personal
Finance memo because it covered variety of use cases and matched my
way of thinking.
I started to prepare for the transition in mid December 2020. I took all my
transactions in YNAB for that month and added them to
hledger so that I
could learn how each type of transaction (cash, credit, mortage) is recorded.
I then continued to record each transaction to both systems until the end of
the year. At this stage I only recorded my checking account’s transactions to
keep things simple.
At the end of December 2020, I took the balances of each of my accounts and
used them as the opening balances in
hledger. I reviewed my categories in
YNAB and added the most relevant as sub-accounts. From January 2021, I
have done all my weekly reviews in
With the move to
hledger I decided to increase data granularity. I now list
everything in the journal file including stocks, loans and petty cash. For
income, I record the pre-tax amount and then create breakdown transactions so
that I can track how much taxes I’ve paid during the year.
hledger for a month, I have noticed that it’s much faster to get
information “out” compared to YNAB: the information density of
output is higher, fuzzy searching of accounts and transactions makes it review
easier and, I feel that by using
hledger I have more tools available at my
The only annoyance I have is the additional transactions records required to support the YNAB method. I haven’t figured out a good way to integrate upcoming / periodic transactions to my workflow either.