I switched to beancount after trying several other things (mint, spreadsheets, gnucash), and I like it quite a bit. It's choice to be very strict about things held at cost (like units of stock) is a great differentiation.
It's VERY hard to accidentally miss capital gains, or get cost basis wrong on something, or have something not balance. Much harder than even ledger-cli, let alone the other alternatives. It feels at times like working with a static type system versus a dynamic type system.
And the burden associated with this is not anything more than other tools. Importers have been great. I have 68 asset subaccounts between my spouse and I (if you do double-entry accounting you'll know this isn't actually that many), and I spend about 1-2 hours a month balancing the books, doing reporting, etc.
Finally, it's quite easy to get your transactions into a pandas datatable or similar, allowing you to utilize your programming/datascience skills to do things that just aren't available in other tools. Mint offers nothing here, spreadsheets can do some of it (but the downsides of accuracy), and gnucash requires learning some niche scheme stuff; it feels very "tacked on".
Bear in mind that using SQL in GnuCash may result in data loss:
> Note this feature is considered experimental. It works for most of the common use cases but some corner cases have been reported to result in data loss. [1]
What importers do you mean? Are these importers you've written yourself, or existing importers you were able to reuse? What format are these importers pulling from (PDF statements, CSV, OFX, etc)?
All of my high-volume (in terms of number of transactions) accounts are easily importable. There are a few that don't have great import functionality, but I only have 1-2 transactions on them a month so haven't felt the toil pain to better automate them. 1-2 hours a month of balancing is not worth optimizing down to 0.5-1 hour to me.
OFX is the closest to being universal, although often it is well hidden.
CSV feeds are often surprisingly useless for programmatic / feed use, they're often littered with stupid textual headers and footers and lack important columns - they're designed to be opened in excel and looked at by a human, not parsed and ingested.
There's also the heterogeneity of transactions. Looking at the csv export I've got from my bank, there are three "reference" columns and they play different roles depending on how I'm paying:
- debit card: merchant name + date, card number, blank
- alternative card-based payment system: constant (account number?), merchant, constant
- alternative app-based payment system: constant, merchant, user custom reference
And a data sanitation issue: one of the merchant names has a comma in it, and it's not escaped or quoted in the csv so that record is corrupted.
I've been using beancount for 3+ years and totally agree, the flexibility of it is the real USP.
I've never used any import tools though, I just enter the transactions manually maybe once or twice a week. It's been fine - especially using beancount-mode for emacs, although admittedly it's just my accounts, it might not scale so well for a family.
It's VERY hard to accidentally miss capital gains, or get cost basis wrong on something, or have something not balance. Much harder than even ledger-cli, let alone the other alternatives. It feels at times like working with a static type system versus a dynamic type system.
And the burden associated with this is not anything more than other tools. Importers have been great. I have 68 asset subaccounts between my spouse and I (if you do double-entry accounting you'll know this isn't actually that many), and I spend about 1-2 hours a month balancing the books, doing reporting, etc.
Finally, it's quite easy to get your transactions into a pandas datatable or similar, allowing you to utilize your programming/datascience skills to do things that just aren't available in other tools. Mint offers nothing here, spreadsheets can do some of it (but the downsides of accuracy), and gnucash requires learning some niche scheme stuff; it feels very "tacked on".