10 years of personal finances in plain text files

(sgoel.dev)

114 points | by wrxd 2 hours ago

17 comments

  • mtlynch 2 minutes ago
    +1 to OP's book, which is the best beginner guide I've found for understanding Beancount / plaintext accounting.

    I was also confused about double-entry accounting for most of my life until I read the article, "Accounting for Computer Scientists"[0] by Martin Kleppman (author of Designing Data-Intensive Applications). It explains double entry accounting in a surprisingly accessible way be putting it in terms of graph theory. I don't even like graph theory that much or consider myself competent in it, but Kleppman's explanation was extremely effective.

    [0] https://martin.kleppmann.com/2011/03/07/accounting-for-compu...

  • djhworld 1 hour ago
    I've been beancount'ing for years now

    As we've crossed into the new year I've switched to a similar directory setup as the OP with 1 file per year. Previously I just had one file that was from 2022 which ended up being like 2 million lines of text, which was starting to bog down the emacs plugin.

    What I appreciate the most about this approach to personal finances is it just tracks everything. Investments, pensions, RSUs, bank accounts. You could even go as far as accounting for any resource that's modellable, e.g. energy usage in kwh vs. bills. I probably wouldn't go that far though :D

    Also you can build a bunch of tooling around it too, with the advent of LLMs my toolset for beancount management has expanded quite significantly. Most recently I got claude to rewrite my transaction rules engine https://djharper.dev/post/2025/08/19/using-llms-to-turn-scri... into something nicer with a UI. This would have taken days to build in the before times, and I probably would not have bothered because it's overkill for 1 user (me)

    • JulianWasTaken 1 hour ago
      I have my electricity bills tracking into a KWH commodity. It has been... effectively useless :D.
      • quietsegfault 21 minutes ago
        I struggle with tracking the actual cost of my energy usage between changing electric rates, the various solar costs, SRECs, different loans and credits and incentives to be able to make an intelligent decision on what the benefit or cost is of cutting an appliance or adding something new. It’s a lot.
    • avdwio 1 hour ago
      I'm curious about this as I've thought about building personal software to manage my data (such as finances) via LLM, however I'm apprehensive about actually supplying that data to the LLM to help build the tool. Is this what you're doing? Now that I think about it, I could probably 'anonymise' the data with a local model...
      • djhworld 1 hour ago
        Nah not exposing the data to the LLM, just building the tools to help me manage the data, usually python scripts
  • thomascountz 1 hour ago
    I began with PTA recently. I think the barrier to entry is high because you first need to learn double entry bookkeeping (if you haven't already) and then you need to decide between ledger-cli, hledger, or beancount, with the differentiators being on the margins and with some promise of being able to switch later. The choice really comes down to which tool has the documentation/community that makes the most sense to you at the time.

    Then, there's the import workflow: which "accounts" should you start with? How much history do you pull in? How do you set up an automatic importer? Hledger has a DSL. Beancount uses Python. Either way, an OP says, much of your time is spent manually editing text.

    And finally, then what? Can I make a budget now? Will this thing do my taxes? Am I more financially responsible? How do I explain this to my spouse? My pension is kind of like a commodity, but I don't know what the unit price is, and I don't sell units, but what's a virtual PnL and what if I only have a quarterly PDF!?

    It may sound like I'm ranting, but I have found that realizing I don't know the answers to these questions (or even that they exist) is the true benefit of PTA.

    Every year, I'm asked if I want a different pension investment mix or if I want to change my car insurance. Or, I might wonder if I'm getting a good deal on my internet plan or if a new job offer's total comp is actually better. Am I "on track" for "retirement," how long until I have enough for a new roof, am I keeping up with inflation, did I spend too much on gifts this year?

    There's immense privilege in not really needing to know the answers to these questions; getting them "wrong" won't really hurt you. But, being familiar with the routine minutiae of your economy by way of counting every cent, is rewarding, enlightening, and empowering—even if it's also finicky and brittle sometimes.

    I may have to try beancount again. OP's importers look promisingly robust compared to my hledger scripts.

    • djhworld 40 minutes ago
      I think there's definitely something in it around there's a huge learning curve.

      Double entry book keeping isn't that difficult but that's easy to say once you've been doing it a while

      I've been doing PTA since around 2018 and there's definitely lessons I've learned along the way along with plenty of mistakes.

      I think the main benefit for me is just the system gives you a complete picture of your finances. The commercial services you can pay for just give you a view into a certain slice (e.g. open banking in UK/Europe to see your current account(s)) - I think mint.com did something similar in the US but it never came over here, I don't know if it still exists. Maybe that's enough for most people, but for me I want everything, investments, liabilities, assets etc. None of these commercial offerings have that because it's so complex and niche, e.g. your open banking provider won't tell you how your pension is doing.

      It's also just nice to have the provenance of transactions, e.g. if you receive some shares from work, and you sell the shares and the money ends up in your bank account - the incoming transaction will just be the net proceeds but it won't tell you if you paid any tax prior to that - PTA gives you a more of a complete picture that tracks the whole chain of events that led up that transaction into your bank happening. Overkill for most people? Probably.

  • bravura 11 minutes ago
    What's the startup time for using beancount if I've never done it before?

    I just spent a few hours using LLMs (aider, specifically) to reconcile my books for the past year. Worked great, but was slightly fiddly.

  • skobes 1 hour ago
    Shoutout to fava, the beancount GUI frontend:

    https://beancount.github.io/fava/

    I really like its big picture view of the accounts, the search / query interface, and live editing of transactions.

  • yanis_t 1 hour ago
    Plain text files are appreciated.

    I started storing all my notes (500+ by today) in markdown files locally. It's easy to search and navigate with grep and ag/rg. It's easy to edit in Vim or your favorite editor. It's easy to append all sorts of informations. I add some flags and properties in metadata, like last_reviewed, some tags, etc.

    The versioning and sync is solved by git + a private github repo.

  • draven 35 minutes ago
    I started to use PTA several times already, and I always have an issue with the granularity of transactions. For example when I go to the local supermarket, do I track food and hygiene products separately ? Some supermarkets give the subtotal for different categories, some don´t. It could be useful to see where the money goes.

    I'm about to start out again and I chose not to track different categories individually, knowing that I can still add sub-accounts to distinguish between them later (even if I can´t recover the information for older transactions.)

    Now I just need to investigate how to track gains/losses on the ETFs I own but that's common enough that there should be information out there on how to do it.

  • xtiansimon 41 minutes ago
    Very good for a budget. And as a text file, they rot just about the same speed as the media.

    But what about basic Cost Of Goods Eaten?

    I have fading thermal tapes in boxes with grocery store purchases. They get scanned once a year into large PDFs: grocery, home goods, repairs (large purchases are kept separately for easier finding).

    I’m considering if a personal AI subscription to manage the data interrogation is worth the cost (not excited about the $20/mo cost. NPR should get the next $5 of my monthly).

    Now here’s the funny part. The data sits in a box all year or in PDFs for years, and gets little attention. What janky home server AI could I spin up to perform as bad as me (but no worse)? Maybe move the data in those text files and PDFs into SQLite?

    • wongarsu 34 minutes ago
      If you just want to ingest varied data into a consistent format, qwen2.5vl:7b works well (in my use cases better than qwen3vl). The ollama version is quantized, perfectly adequate, and runs on normal consumer hardware (even more so if you don't care about speeds that feel interactive)
  • accountofthaha 38 minutes ago
    Thanks for showing this! I personally have a 4 years old Money Manager EX (MMEX) database, but I am always looking forward to something new, yet nothing for me have worked as good as MMEX. This looks good enough, albeit I need a GUI for this, and the comments might already put me into the right direction.

    I am already used to logging everything manually, so importing isn't needed for me. Also I think having some 'manual labor' in this regard can help with becoming more 'in tune with your finances', to actually learn what is going on, instead of having an app that you check once a month.

  • skwee357 1 hour ago
    I have 14 years of personal (and 2 years of sole proprietorship) finance data in beancount. I tried all the available personal finance apps there are, from cloud/online offerings to offline apps. Eventually, I settled on beancount because it is the most versatile file format. In addition to tracking finances, I can track stocks, unvested RSU grants, vacation hours, and even personal training I have paid for but yet to use.

    It's cumbersome at times, and I do miss the (G)UI of entering transactions, but with (neo)vim I got used to it and I breeze trough my finances in 15-20 minutes once a week.

    • commandersaki 10 minutes ago
      Do you manage your beancount files in version control? Or just keep free floating files around?

      I'm intrigued by this and now thinking I should start doing it. Just start with a clean slate for 2026 and see how I go.

    • altmanaltman 1 hour ago
      it's good (even novel) if you're a dev or are used to working with this kind of interface.

      But for the vast majority of people (even including devs), this will not be ideal at all and most people don't really care about it being in text files.

      What I'm trying to say is that its designed for a very specific niche userbase and I doubt most people will have the same experience as you described after trying every single personal finance app to settle on this.

  • ivanjermakov 1 hour ago
    Having all transactions in bank accounts makes it trivial to regularly export statements and parse them into financial insights.

    I made a tool that parses transactions (of my specific bank) into categories based on tx description and a GUI to analyze them in different time frames.

    Highly recommend.

  • leobg 1 hour ago
    In case the author reads this: Your imprint is incomplete. The legal address is missing. And the blog is missing an imprint altogether.
  • zahlman 1 hour ago
    This seems to be, in effect, advertising for a book about how to use the underlying FOSS software to do this.

    I would be okay with that as a monetization model, except that the book author despite being a self-described FOSS dev doesn't seem to have anything to do with the project (https://github.com/beancount/beancount/graphs/contributors).

    Ah, not quite true. The author fixed a typo in a docstring once (https://github.com/beancount/beancount/commit/8584763b618f76...).

    • mtlynch 7 minutes ago
      Aside from the fact that writing a book about Beancount is a positive contribution, the author maintains a list of Beancount resources[0] and has written several beancount plugins.[1, 2, 3, 4] I have personally benefited from his contributions to the Beancount ecosystem.

      Can you point to some of your contributions to this project?

      [0] https://github.com/siddhantgoel/awesome-beancount

      [1] https://github.com/siddhantgoel/beancount-n26

      [2] https://github.com/siddhantgoel/beancount-ing

      [3] https://github.com/siddhantgoel/beancount-dkb

      [4] https://github.com/siddhantgoel/beancount-commerzbank

    • veltas 1 hour ago
      If you look at their personal profile they've made a lot of content with activity and collaboration outside of the main beancount repo, related to beancount. They definitely meet the criteria for 'FOSS dev' in that it's FOSS, too.
      • zahlman 47 minutes ago
        Thanks. I was not denying the author FOSS creds generally, just expecting actual involvement. It seems this is someone who cares about the project (and I do like the sound of the project).

        I'm just, you know, pretty sensitive to HN submissions trying to sell me something.

    • OJFord 1 hour ago
      And only... what, Italians, can write books on the Romans?
      • zaphirplane 54 minutes ago
        That’s a bad analogy because the qualification is being born in a region not acquiring knowledge thru working. an equivalent would be only electrician can write a book on wiring.
        • rplnt 34 minutes ago
          Do you mean wire and tool manufacturers? Electrician is mostly a user. Or to avoid flawed analogies - should books on Windows, Office, ... be only limited to a small subset of Microsoft employees? I'd assume the book is for users, what does it matter if the author contributed to the project?

          And that's still ignoring that evangelism is also a valuable contribution.

    • fragmede 1 hour ago
      Oh no, someone might make some money off work they did that was related to work a different somebody did! What a travesty! Somebody stop him!

      I know money is the root of all evil and all that, but a total aversion to it isn't a very healthy way of interfacing with it at all.

  • jayfx 1 hour ago
    > 30-45 minutes every single month

    That's 6–9 hours every year!

    5 years: 30–45 hours

    10 years: 60–90 hours

    • tkfoss 1 hour ago
      How many hours a year do you spend to make the money? How many hours is ok to spend then managing that money?
    • fodkodrasz 1 hour ago
      wow, a whole workday a year! People spend more time arguing on the internet in topics of no impact to their lives each year.
      • jayfx 1 hour ago
        I'd still consider that toil (repetitive, manual, automatable work).
        • fodkodrasz 1 hour ago
          the beauty of beancount (and other plain text accounting ledgers) is the ability to automate them. I also have to go over my accounts in my bank app's automatic categorization and revise them every month, as some transactions get mislabeled.
      • fragmede 1 hour ago
        Yeah ok but tabs really are better than spaces!
  • ob2 50 minutes ago
    I can get all my historic accounting records into any of the PTA tools, but then I'm stuck without standard processes for creating invoices, doing deposits, writing off bad debts, depreciation, loan repayments, recurring payments, etc. etc.

    All those require standard entries and processes, which I've yet to find, which means that now I need to become an accountant and write these standard tools.

    None of which generates any income and only creates more work for myself.

    I absolutely hate my current accounting software, but this is not (yet) a viable option as far as I can tell.

    Happy to learn I'm wrong.

  • JulianWasTaken 1 hour ago
    beancount is definitely fun. I also jumped on this bandwagon in 2025 and it's been a great archaeology experiment of digging through old emails and trying to find as much data as I can about what the heck this random checking transaction is from 2012.

    I think a nice thing about beancount is that given how simple it is you can almost even ignore whole parts of it. In my case I chose to write my own importing tooling essentially without learning at all about the built-in one: https://github.com/Julian/alubia. I had no intention to make that approachable for lots of users not named me (in fact none of my actual importers are present) but it's been very fun to watch my ledger get more and more accurate.

  • aradbehdad 47 minutes ago
    [dead]