3 ms·
It's fun to see a plaintext accounting view as the example... I just switched from QuickBooks to Beancount+Fava for my sole proprietorship, and couldn't be hap
by epistasis 6mo ago
It's fun to see a plaintext accounting view as the example...
I just switched from QuickBooks to Beancount+Fava for my sole proprietorship, and couldn't be happier. I've added a text-based simple invoice system, a text-based vehicle mileage tracker, and have validators that ensure that every expense with a tax status has a document attached to it.
It's far easier and faster to use than QuickBooks, I don't have to put up with ads, and with git + RFC3161 attestation of commits, I can prove I made additions when I said I made them, and there's no accidental erasures from lazy text edits, and it's a simple command to see exactly when each entry was made.
All based on plain text at the core, but I've now added Fava extensions so that I can do it all in the browser when I want. If there was a TUI fava with graphs, great, but the web isn't so bad either. Now, let's see what my accountant thinks of this...
- aejm 6mo agoThis is really good inspiration for some of my plain text accounting projects! Could you please go into more detail about your RFC3161 attestation of commits? I'm assuming you're signing your commits with a gpg key to assert that it was in fact you who made the commit. Do you use an external timstamping service and an external ca authority, or do you build your own chains of trust? If you were asked to attest your accounting commits, what would that look like to the auditor?
- epistasis 6mo agoThe time stamp stuff is mostly a lark, because the bank statements and receipts are probably all that really matters, but it was fun! I use freetsa.org and OpenSSL on the git commit hash to tie that commit to a particular point in time. I also added the Bitcoin based opentimestamps-client time stamping, but even fewer auditors would believe that it's of any value... Edit: I only timestamp after account reconciliation right now, and will do it when I close the books for a year. The files for attestation get attached to the commit with a git note, and get added to a directory for easier browsing. An LLM can write scripts for this, probably from just copying and pasting this comment as direction. I installed them as git subcommands. Other CAs offer for-fee time stamp attestation, and I hear it may hold value in the EU, but here in the US it's only for fun, and for very small values of fun!
- aejm 6mo agoThank you for taking the time to reply! Agreed, it does seem like any auditor would be able to verify all this information from other sources, but I really like the idea of having multiple independent levels of attestation for my organizations important financial and legal documents.
- jjice 6mo agoI love this kind of thing so much. One thing I try to keep in mind when doing my own simple file formats is knowing what I would have to do to convert it to a more common format, if I need to for any reason. Knowing I have an "escape plan" if I need to get them to a different format for someone makes me feel good about it. In your case, I bet you could easily convert it to a CSV that your accountant could tolerate.
- epistasis 6mo agoThat escape plan was my entire motivation. When I first started using QuickBooks I did a data export and it seemed like maybe it had everything. After a year with a disastrous UI change, spammy ads everywhere throughout the UI and by email for a product a pay a ton of money, I started to investigate alternatives and realized that QuickBooks export missed most of the work I had been putting into my books (receipts, invoices, and reconciliation). And once I knew that I couldn't use it as a primary data store anymore. Now that I control my data, all forms of transformation are almost trivial, as you say!
- rmunn 6mo agoThanks for mentioning Beancount; I didn't know about it before. I'm American but have a job in a different country, so I deal with two currencies routinely, and haven't found a good way of handling multiple currencies in Gnucash. So my wife and I have been keeping our records in text files. I'll look into what it would take to switch over to Beancount; I bet I could write a conversion script (or get an LLM to write most of it for me, even) that would do 95% of the work since we've been pretty consistent in our format, and throw up warning messages about any entries that it couldn't parse (we haven't necessarily been 100% consistent). I just might join you in Beancount + Fava land.
- robcohen 6mo agoHey I'm working on a rust implementation of Beancount, if you get a chance check it out. https://rustledger.github.io https://rustledger.github.io . I'm also hoping to put together a standards body that can formalize plain-text accounting standards too so others can more easily implement their own systems that conform to the standard.
- epistasis 6mo agoOne small warning about Beancount: v3 is a huge change from v2, and a lot of the documentation on the web is in v2 and it's not clearly demarcated that it doesn't apply anymore. I'd recommend looking up information with an LLM, and not trusting web pages. This is the first time I've made such an unusual suggestion, but LLMs are actua really good at information retrieval and translation. The Beancount community has a bit of cleaning up to do before web searches can be trusted again. That said, Fava is such a huge step up from the hledger web ui that it's totally worth it, especially since I want quick and easy attachment of documents and viewing of documents. It's super easy to convert between hledger/ledger and beancount formats, so it's fairly easy to switch to the other if you already have your data in such clear and clean formats.