I use a phone app (there are many out there) for my needs instead of desktop software, but in my case I log every single bit of income/expense ASAP - if I buy groceries, I pull up the app and categorize it (takes like 20 seconds). Sometimes my bank is kind enough to have their phone app alert me of new changes in account balance, but that's really flaky, so I check the balance on their website/app occasionally as well and log the changes.
Since I log just my own data, the approach scales wonderfully well (since it doesn't need to scale much). If I ever want to have a look at more data, I export the statements from my bank and either just open them up in LibreOffice, or maybe do some light Python code.
I do things like that.
All those accounts can be represented. Many of those things are Scheduled Transactions.
When you Reconcile a statement from a bank or something, it'll even prompt you for recurring interest, in case you don't already have a transaction for that (because, e.g., the interest transaction was already there when you imported the OFX/QFX for that statement).
Investments like stocks and funds are tracked by shares, you can easily enter dividend reinvestment, and you can pull data for the current value in whatever primary currency.
You can also mix many world currencies in the same file, and see the totals according to exchange rates, and you can even define your own units and exchange rates for some purposes (which I've done in the past for metals and cryptocurrencies).
You can enter transactions as you go, and when you periodically Import, any transactions you didn't enter will be added. You can check this when you Reconcile a statement.
In my experience, this is the only reliable way. Most banks also support exporting transaction data as CSV, but the data quality is usually too poor for automatic account assignments.
Once you've entered a transaction once, its autocomplete handles those going forwards so entering a new transaction is as quick as typing the first couple of letters of the shop name, pressing tab a few times, then entering the amount.
Is it? When I last looked at GnuCash (which, admittedly, was like 7 years ago) you could not setup automatic categorization of transactions. You couldn't say, while going through imported transactions, "Every transaction where the payee is utility company should come from the Utilities account". The idea was that GnuCash was using some kind of Bayesian scheme to learn how to categorize your transactions automatically, but you had to input your transactions manually 3 or 4 times before it started working. Which, for me, seemed like a huge waste of time since 90% of my transactions could be automatically categorized by simple keyword matching against the payee or description.
Now I'm thinking if there's an easy way to just give all transactions with metadata to chatgpt and let it tag everything. This would be great!
I’ve had everything balance down to the penny for 20 years now. If you have some attention to detail and make it a habit, it’s not really that difficult or time consuming.
It’s also kind of like paying cash. It makes you more aware of what you are spending.
It's not for everybody, but I want to see every transaction.
I do this by going to the website for the bank account or credit card and looking at the Activity section (or whatever it's called).
I know that I'm weird. This is not for everybody.
But we do not do a lot of micro transactions, so it still works.
Once it doesn't, I'm hoping that the cards and bank accounts we use the most will export the stuff into a format that GnuCash can use.
The key for me and my wife to get it to work was getting into the groove of entering your transactions and reconciling daily. It is a bit obsessive, but we've been able to completely overhaul our finances with it.
Basically every morning I start my day by opening up YNAB and my bank, and for our personal finances, just making sure everything matches. For my business finances, I actually manually input all expenses (from receipts, invoices, etc) then once a week, I will go through and reconcile with online banking (I usually miss a transaction or two).
For unlinked credit, we just create a budget item for that card and we try to budget them out properly, but it isn't as easy, and we lose tracking into the spending.
Process was pretty easy. Some entries manual or automatic during the month. At whatever period you want download OFX/QFX from bank accounts, CC accounts, etc. and import. When you get statements, reconcile those accounts.
Double entry is the only way to really keep track of things and catch errors, but you control granularity so in some sense amount of work. So in your scenarios, you would have expense accounts for interest fees per bank, loans, income accounts for different sources etc. the number of accounts you have is not a reflection of the institutions (eg banks) but the the things you want to keep track of.
If you want things accurate, you pretty much have to add a reconciliation step somewhere, tools like gnucash will let you see what has been reconciled and what hasn’t yet.
GnuCash is made for common people, my wife uses it and loves it.
How much time you need to spend to do a good job can vary widely. It depends on your data sources, your tolerance for error, and how well your use cases match up with your software's assumptions.
Balance that cost against the benefits, which are subjective -- how much do you value easier tax preparation? How much do you value peace of mind from having your financial state clearly articulated? How much do you value understanding your in and outflows, making a budget, monitoring activity for potential fraud?
How can you NOT keep track of “keep track of your credit card(s), bank account(s), possibly your significant other's as well, subscriptions, fees, automated payments, cash in/out, taxes, varying income, investment returns, savings, balances on platforms you may use like wise/revolut (for travel) in different currencies, automated "fees" like interest on savings, loans, which may change every now and then, etc?”.
There’s a lot of people who would absolutely panic at the thought that they have all their money flowing around and they can’t even keep track of it.
Also, there’s an argument that if your finances are so complex that you can’t keep track of it (and youre not wealthy enough to pay someone to keep track of it) maybe that in itself is the problem, and that you need to simplify your finances.
Also, is it really that hard? Is it harder to note that you spent money buying something, or transferred money internationally than to actually spend that money buying the thing or transfer it internationally?
And recurring expenses are fairly easy to keep track of with even the most legacy software solutions.
I use tags to categorize recurring charges and on the 1st of the month I will sit down and pre-enter all of last month's recurring charges into the next month, as well as check the statement to make sure that last month's were really what I expected them to be.
I enter new charges on the day that they happen. It's 5 minutes a day instead of an hr or three at the end of the month.
What I end up with is that I know where everything has been going, and I have a good forecast for where it's going to go in the near future. If I need to answer a question like 'how much of a rent hike can I tolerate' or 'how much car can I afford' I have a good basis for deciding it. I also have a single 'available spending money' number that I can refer to if I need to, but honestly im a casual minimalist and not buying things is a great way to keep your finances afloat with minimal stress.
You can save the mapping of columns <-> GNU Cash fields for each one, and it takes me about 10 minutes for my most heavily used CC account. GNU Cash supports guessing the balancing entry, which speeds things up quite a bit.
The only issue I have is that you can't enter splits from the import dialog, so I leave split transactions unbalanced then go through those manually. My only regular splits are my mortgage payment (Interest, Principle, and Escrow) and deposits (I usually deposit multiple checks at a time, but they show up as a single entry on the CSV I get from my bank).
I dont see any good way to manage this stuff, maybe just by monitoring what goes in and out of a main account. I would love if there was a protocol that all these services supported, but there sure as hell isn't.
At that point, does something like GNU Cash become just another inaccurate representation of in, out and have?
Edit: Maybe you just update it once a month from statements?