Need help?
<- Back

Comments (101)

  • elric
    My less obsessive personal finance workflow: I have a spreadsheet. I update it by hand once a month, and have been doing so for ~20 years. Takes about 5 minutes. I only track the categories I care about. Those have varied a bit over time, but have always included staples like power, heating, water, ISP, rent/mortgage, insurance, savings, etc. I don't track things like groceries or restaurants or anything else that I consider to be part of "living life".Two main goals: track how my expenses evolve over time, and stay on top of how much money I need to reserve for the coming year to pay those bills. Anything that's leftover is spending money. Which I dutifully spend.
  • mtlynch
    +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 by 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...
  • binarin
    I've tried to track personal finances several times, but it only started to work when I've discovered the idea (from https://github.com/adept/full-fledged-hledger) that you need to treat the whole PTA story more like a project compilation:- Everything is managed by build system that is able to track dependencies- Inputs from financial institutions are kept in the repo as is- Those inputs are converted by your scripts to .csv files that are readable by PTA import engine- There are rules files that describe how to convert .csv lines to PTA entries- Generated files are included from per-year PTA journals (and you can put any manual transactions in here also)The benefit is that you can change any part of this pipeline, and just re-generate the changed parts:- improve the program that converts to .csv - raw data immediately gets better across the whole repo- add/customize import rules - better classification is immediately applied to all of the past dataAnd with this approach you can start small (like, a single month of data from your primary bank), and refine the thing in steps, like adding more historical data or adding more data sources (examples being not only bank statements, but even things like itemized Amazon orders and Paypal slips).
  • bregma
    I started decades ago using Quicken. Then had to re-enter all my data when a new version came out and support for the old version was EOLed. So I switched to GNU Cash and re-entered everything again. Then there were migration issues with GNU Cash.Finally I discovered PTA. I chose hledger (because of possible performance issues with beancount). I learned double-entry bookkeeping (it's pretty simple, honestly). I write Python scripts to import investment statements sent in PDF format (broker does not support transaction downloads) and pay stubs (payroll company does not do transaction downloads) and CSV imports for bank and credit card statements which lets me autocategorize most transactions. Turns out it's exactly what I wanted all this time I just didn't know it.I spend about an hour each month updating accounts. I generate investment reports, budget reports, and tax summaries. It's all there, except tracking the ACB of my investments (which I probably could do except a simple spreadsheet is less effort). Everything I need for my coming retirement this year.And because it's plain text I will never have to lose everything when data formats change due to new upstream releases. And because it's plain text I can use git to track changes and recover and do better off-site backups.I guess the downside is it doesn't work on your phone and you have to know what you're doing. But if information like how much money you have and where you're spending it is actually important, it's the right tool for the job.
  • djhworld
    I've been beancount'ing for years nowAs 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 :DAlso 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)
  • ekjhgkejhgk
    A lot of people in this thread comingling "plain text" with "double entry".Beancount is both, but you can do either one or the other or both. In particular, you DONT need to learn double entry to do plain text accounting. Of course, you SHOULD learn double entry accounting because it's a great tool for organizing knowledge.Whether plain text is beneficial for accounting is less clear cut in my mind. I think plain text is backlash against the over-reliance on "services", "clouds", and "lock in", but I think it's misguided. If you're concerned with someone locking you in, it's perfectly concievable to do double entry accounting which lives only on your computer and manipulated with software that is under your control (read: free software).So in summary, my opinon is:- accounting: important- double entry: important- avoid clouds and ventor lock in: important- avoid proprietary file formats: important- plain text: unimportant(I use GnuCash. It's not without its flaws, but it's great if you agree with the above views)
  • thomascountz
    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.
  • sxg
    This sounds super cool and useful to me, but how does this work with a partner who's non-technical? Managing personal finances is something that we do together and having a nice clean UI that makes sense to her is important. Is there a way to achieve that with beancount? Currently we're using YNAB, which is mostly great although sometimes unstable and limited in ways.
  • skobes
    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.
  • fastasucan
    I found that doing anything too detailed was too big of a chore for what I got out, and that I didnt get much from doing budgeting.I ended up just logging my total holding of cash and stocks spread over my different bank accounts and my investment portfolio. Doing it every few months helped me make sure that my overall holdings went up. As long as I pay off my bills and then save enough to see my holdings rise I am happy. However I can see that having a more detailed overview over your spending might help you cut down even more.
  • yanis_t
    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.
  • mpol
    Way too complicated for me :)I just have 1 text file with monthly data. Each month is on a separate line, with only 5 columns (expanded below). 1.date 2.saldo 3.savings 4.delta 5.special income / outcome (heading line) 1 31 january 2026 2 500 3 2500 4 -80 5 dinner -50, concert - 30, sales +80, trousers -80, etcetera Where the date is the last day of the month that I need to make (the next day there is income, for me it's 19th, not 31th). Saldo is my bank account that day. Savings are, well, savings in a separate account. delta is the sum of special income and outcome. row 5 is all special income and expenses. Groceries are not listed, I need them every month anyway.
  • hasperdi
    In 2025 I started managing my small business finances using hledger (started with beancount, but got confused with missing packages in the new version). I use Claude Code to help me enter transactions eg from pdf receipts and to ensure the books are balanced. It's quite a pleasant experience I must say, as I find accounting tedious / not my cup of tea
  • dueyfinster
    I'm a big fan of plain text accounting also. Like the author - I started 10 years ago (mine from 2015). I use hledger mainly and also wrote converters for bank I use (xlsx to csv).It's crazy to see just how much money I've paid Netflix since 2015 (and I'm a sub since 2011). Or Starbucks (which I rarely go to). But it's very powerful. One thing I've long wanted is better visualizations.
  • bspammer
    I go a step further than this, which is to make the beancount files 100% generated by a program - no manual edits allowed at all. I have a version-controlled directory with the raw data (csvs, pdfs, weird text formats) from a bunch of different sources (bank accounts, payslips, pension funds, mortgage statements, and stock market price data). The process is then just an ETL pipeline to an intermediate data structure. That data structure can be serialized to beancount format, hledger format, whatever. I've even had it output prometheus metrics so I can create nice dashboards in grafana.I dump more raw data in every month, handle the 1-2 new edge cases in code, and voila: a complete, accurate, queryable, debuggable, visualizable, and fully reproducible history of my finances.
  • bronco21016
    I was really into this idea a few years ago. Even started logging.However, I just cannot bring myself to constantly pull the transactions down manually from multiple banks.Many suggest automating. How is this working in practice? Are there providers like Plaid you can use? Build web scrapers? Build PDF statement parsers?I ended up just paying YNAB the $130/year or whatever they’re at now. High wife approval factor and everything just connects. They also have an API. In theory I could just constantly backup YNAB with PTA by pulling down transactions from the API.
  • robcohen
    I just made the jump to PTA and it is really, incredibly slick. Finally escaped the financial system's grip on my data. Look into SimpleFIN to get data feeds, but I also used LLMs and browsermcp to download all my statements from all of my banks.Really awesome to have control finally. I am very interested in extending PTA to be more like blockchain ledgers, with signing for every transaction and decentralizing the ledger. still mulling through how this would work, but it would essentially be KERI based.
  • draven
    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.
  • bravura
    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.
  • runjake
    For others who don't know what Beancount is (the link on his site is 404). It's a Python library to work with money.https://github.com/beancount/beancount/blob/master/README.rs...
  • skwee357
    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.
  • idahoduncan
    Looks like it's four years for me with beancount. $ git log --oneline --reverse | head -n1 5f72575 Initial commit: January 2022 My importers take care of reconciling the common transactions, like train fares and groceries, which means my monthly session takes under an hour. The slow bits are exporting CSV statements from my banks, and reconciling transactions from amazon and the local pet supply store (is it useful in practice to track litter and treats separately? probably not).I'm also yet to migrate to beancount v3.
  • fluffyllemon
    Do folks any recommendations for automation around banking? We use a sort of "envelope system" across many accounts, and it would be helpful to have some timing to help automatically move and rebalance funds across the accounts.My bank has some very limited options to move specific amounts of money on a weekly schedule, but I'm looking for something more powerful then that.Should I look at like ~Stripe~ Plaid or something? Or are there more pre built tools?
  • eviks
    > Imagine one account for categorizing supermarket spending, one for tracking your income, one for your Netflix subscription, and so on.Why would you go that unintuitive route instead of simply having a category "Supermarket" (with your most common supermarkets autocategorized by name) and payee "Netflix"?
  • xtiansimon
    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?
  • accountofthaha
    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.
  • subtle-byte
    Few years ago I created simple web application to track spendings https://receipt.ifels.dev (code: https://github.com/subtle-byte/receipts) It stores all info in your browser and allows to export it as json.
  • sghiassy
    I have 13 years of personal finances tracked in Quickbooks.Intuit sucks as a company, but I can hack my way around their requirements for upgrades
  • kayo_20211030
    I don't want to cause a scene, but if you're not running your own business, why would you do this? There are commercial services out there that take next to no time every month.Anathema?Yes, I know the data live in a data-center/cloud. But, don't the content of all those statements, payments and bills live there too. Yes, I know the service might go away tomorrow. But, couldn't one find the new-new service and import it all again from the banks, cc companies, utility companies etc.?I like text accounting. It's useful. It has a niche. But, is this the best use of your time every month?Tastes differ, but 30-45 minutes a month to hand-key data (or write the scripts that avoid that) isn't my taste.
  • ivanjermakov
    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.
  • nelup20
    For anyone else wondering which PTA solution to try/choose, I found this summary: https://plaintextaccounting.org/FAQ#which-pta-app-should-i-c...I think I'll finally give PTA and beancount a go this year. I'm tired of changing and re-learning tools due to enshittifcation, so I heavily prefer those that use open formats / plaintext. I use Obsidian for my notes, specifically because it's just Markdown files. Since I realized that I don't even really use most of Obsidian's features, I might just switch to a regular editor + a markdown viewer.
  • amelius
    Anyone here using LLMs to do personal accounting?
  • jayfx
    > 30-45 minutes every single monthThat's 6–9 hours every year!5 years: 30–45 hours10 years: 60–90 hours
  • mayukh
    This would be so valuable as a service.
  • leobg
    In case the author reads this: Your imprint is incomplete. The legal address is missing. And the blog is missing an imprint altogether.
  • ob2
    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.
  • globular-toast
    I've been doing it since 2011 with ledger, so over 14 years! It's quite cool to see my finances over that time and reflect on it. I made a machine learning thing years ago to read my bank statements and categorise them into my accounts. I also have a few scripts for plotting it all with matplotlib, including an overall wealth plot which shows key life/world events for context. Can share these if there's any interest.I'm now considering combining by finances with my partner. It would make a lot of things easier. We'd get paid into a joint account and then pay ourselves into individual "spending accounts" according to our budget. Anyone have any experience with this kind of thing?
  • JulianWasTaken
    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
    [dead]
  • zahlman
    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...).