1. 6

Plain Text Accounting started with Ledger-CLI and has grown into an ecosystem of tools centered around its data format, a textual thing that is easily readible for accountants and easily parsed for programmers to query. There are a variety of tools, techniques, and communities around PTA and this site is a great resource for learning more about how this ecosystem can help your organize your finances!


  2. 2

    As somebody who’s never really gotten into tracking things more carefully than a tool like Mint or its ilk would allow, what are some of the usual reasons somebody would decide to start using these tools, or I guess more broadly performing this level of accounting for one’s self/household?

    Off the top of my head and drawing a little on the FAQ in the linked page, it seems like some concerns might be privacy, needing better insight into flows to assist in doing taxes which seems like it might be especially relevant for people who are running businesses, open source… but I imagine there’s more.

    It’s always seemed like a neat idea that I might try and track and analyze these things using tools such as these, but then I stall for lack of understanding of what I gain by it.

    1. 4

      For me, one of the strongest reasons to use these PTA tools is simply a benefit of open source in general: the absence of vendor lock-in and the ability to fix problems I encounter.

      Another strong reason is the data format: it’s just text, as opposed to GnuCash or others that use complex persistence formats. Why keep the data in a binary database format, structured document (e.g. XML), or object format (e.g. JSON, YAML) when you can write a parser that builds that database from a completely human-manageable, accountant-friendly format in milliseconds? This plain text format also lends itself to consumption by standard text-oriented tooling: grep, awk, sed, etc. It lends itself also to versioning: git and friends are meant for text. Try to version XML well and you’ll solve a billion dollar problem (I know, I’ve been dealing with XML ~daily professionally for ~10 years now).

      Querying that generated database with ledger-likes’ query language is pretty straightforward. I’ve got a set of ~10 queries saved that spit out the data I need for my IRS 1040. Assuming I’ve make no clerical errors throughout the year – something that balance assertions are meant to catch – my tax preparation time is measured in minutes now.

      I use ledger for a non-profit’s finances, too. Our finances are open within the organization and we intend to publish them entirely just like an OSS project within the next year or so. Someone else filing an expense report or filling in for me if I take a break is literally a patch submission (pull request) away. I’m working on some command line donor tracking tooling that uses ledger as the recorder of finances tied to a YAML file that contains all of our donor information. Again, why have binary database formats or constantly online services when I can build and save queries that can run offline? Information security win: my donor database is as secure as my personal computer and my code hosting service.

      The one thing I find negatively tedious is simply keeping up. I’d been strictly manual for all entry of data. It would take about 6 hours per month. I’m really far behind now so I’m going to investigate automation, at least the conversion of QFX exports from my banks to ledger format, and a manual pass to correct payee names. I’d have to do that manually with Mint anyway – its renaming never worked well enough for me for the several years I used it – so I don’t mind it and might even be able to automate that some day.