|||

Changing From Hledger to Beancount

And why it doesn’t matter which PTA app you choose

TL;DR: Keeping records in plain text makes it easy to leverage the features of a variety of apps, on the same data. Beancount is better than hledger at tracking investments.

Three weeks ago I changed from hledger to Beancount for my Plain Text Accounting (PTA) financial records. I’ve finally realised that the latter is better suited to the way my finances are structured. To all the people recommending Fava for Beancount to me over the past couple of years, you were right! It’s wonderful.

I have my non-negotiable plain text data input, and I have a pretty and practical user interface!

(If PTA and Fava are new to you, it’s a way of tracking finances with an easy to use graphical interface, run from transactions entered in human readable text.)

The best thing about this change is how simple it was. All I had to do was export my hledger file into Beancount format and it was ready to go!

Here’s the Terminal export command: hledger -f myfile.journal print -o myfile.beancount

Beginning on a firm foundation

I’d like to go on record saying I’m truly glad I started this journey with hledger rather than Beancount, as it gave me a deeper understanding of what goes on under the hood of the GUI of prettier apps. I left it most reluctantly. The clincher was the way Beancount handles lots for tracking investments.

PTA truly has increased my financial intelligence. The auto-didact in me almost gave up several times because the learning curve was so steep, but that had more to do with gaps in my accounting knowledge than any difficulty with PTA apps.

I’ve recently learned how to structure my text file to mimic the envelope budgeting method, without plugins. I’ve followed these instructions to divide the funds in one bank account into multiple budget categories. Each pay day the new funds are added to those categories, known in budgeting-speak as sinking funds.

Lessons from the past

If present me could visit past me with advice at the beginning of this journey, she would say that the most important thing is to learn the principles of double entry accounting and get your data recorded accurately. Be consistent with the PTA format you choose, knowing that it can be converted later.

She would also say—

  • Set aside time to update records daily
  • While bulk import of data is possible, manual data entry is the best way to become more aware of and intentional with your spending
  • Always enter transactions in order of date!
  • Take the time to make your PTA data file exactly reflect each bank transaction
  • There’s no need to use a text expander to enter long account names; apps like VS Code are great at completing the names (e.g. :1 successfully expands to Assets:UP:1-Float)
  • When money transferred from one account appears in the target account on a different date, use an Assets:Transit account to hold money until it clears
  • Create separate files for different financial institutions can make it easier to identify errors in data entry. Use an Assets:Transit account to move money between institutions, making note of the destination

Present me would also tell past me that eventual consistency is okay, too!


💬 I love to hear from readers! Comment via email · Mastodon · Bluesky

If you get value from my work I invite you to share this post with someone you think will like it, or to make a contribution to my support jar. Every gift helps to keep me an independent creator and is greatly appreciated. You may also like to check out the free resources on my productivity themed Gumroad store.

Follow my RSS feed, or sign up to receive posts in your inbox  

 

Up next Folders or Tags or Index Pages? They’re Tools, Not a Debate Please Leave Me Alone, I’m Deliberately Distracted
Latest posts Please Leave Me Alone, I’m Deliberately Distracted Changing From Hledger to Beancount Folders or Tags or Index Pages? They’re Tools, Not a Debate Browser Switching Time! Bye-Bye Arc, Hello Vivaldi You Don’t Need Any of the 6 Drafts App Alternatives I’ve Been Playing With Lately Done-for-You Markdown Dates for Organising an OBTF Calendar Headers for 2025 OBTF - Sunday Start Calendar Headers for 2025 OBTF - Monday Start Using todo.txt in Obsidian (Or Wherever You Like), Part 2 Using todo.txt in Obsidian (Or Wherever You Like), Part 1 2 Proprietary Apps Designed to Set Your Data Free Daily Notes Don’t Need to Live in Separate Files There’s only One Right Way to Type the Date Why Do New Year’s Resolutions? Every Day is Already a Fresh Start This is Why To Do Apps Fail and What I’m Using Instead Paper, or Paperless? Yes Please Kindness, Hope, and a Christmas Carol from Me to You Eventually Consistent: a PKM Allegory on Taking Imperfect Action Now PTPL 132 · Happy To Do Lists · Better Queries in Obsidian · Trip Template · Avoiding App Lock-in Classifying Notes in an OBTF, Inspired By the Dash-Plus System 2025 Markdown Calendars If You’re Keeping Tasks in Your Calendar, I Hope You Know What You’re Doing No and Low-Clutter Gifts for Apple, PKM, and Analog Enthusiasts PTPL 129 · Live Out of Your Notes the Way Tom Lives Out of His Car Inktober 2024 PTPL 128 · Keep Your Content Separate From the Container in Which It Lives PTPL 127 · On Backing Up Paper, and Static Websites for Tiny Archives Efficient App Agnostic Tasks in a Single Plain Text File (Obsidian Optional) PTPL 126 · What the Dash-Plus System Looks Like in My OBTF and Analog Notes Word Puzzles (that aren’t Wordle) PTPL 125 · Choosing Between Digital and Analog, and a Plain Text Accounting Update
... ... ... ...