So I’m considering just using excel to keep track of all my expenses and income, but is there a better solution? What do you use to track how you spend money? I want something from which I can freely export the data if need be so excel is tempting.
So I’m considering just using excel to keep track of all my expenses and income, but is there a better solution? What do you use to track how you spend money? I want something from which I can freely export the data if need be so excel is tempting.
I use GnuCash, because it’s the only FOSS accounting package I’ve found that sensibly handles transactions that involve more than two accounts (aka “splits”) at a time. There’s a bit of a learning curve if you’re new to double-entry accounting, but it does support CSV import, can manually reconcile its records to whatever statement period you want, and can export to graphs or spreadsheets as needed. While highly capable, it can be used for simple cash-flow management as well.
It is, however, strictly a desktop app, and is wholly a separate endeavour to *GnuCash for Android". That said, one reason that I’ve continued to use GnuCash for the better part of a decade is because the UI basically doesn’t change. There’s not much room for enshittification when it’s all GTK-based. Anything else I want from this program, I can do using Python by crunching the data exported as a CSV file.
EDIT: to put into concrete terms why multi-split transactions are useful, I will offer two examples. The first is about granularity of expenses, such as a day at the thrift store. If I’ve acquired some home decor, a vintage shirt, and a trinket for my bicycle, then I would want to record the transaction as such:
This does take extra effort to break down into each expense category, but how granular you make your expenses is up to you. Certainly, some transactions wholly fall into one expense category (eg McDonalds as Expenses:Dining) and so there’s no big effort there.
The second example is about multiple money flows as part of the same logical action. Suppose that I treat my credit card as though it’s a debit card – to live within my means – and every time that I use the credit card, I move an equal amount of money from my checking account into my savings account, precisely to pay off the credit card bill at month’s end. This is how the transaction might look:
When it comes time to reconcile (aka “balance my checkbook”), I can do that for each account, one at a time. So my checking account statement is reconciled to Assets:Checking, my savings account to Assets:Savings, and my American Express credit card statement reconciled to Liabilities:Credit Card:American Express. These can happen on their own cadence, since while the bank accounts might end on a calendar month, credit cards often use their own statement dates.
This seems like a lot of data entry, but seeing as GnuCash helpfully finds and clones fields when manually entering a new transaction, it’s almost like a copy/paste followed by a bit of cleanup. In my regular workflow, my typical transactions have two splits. The most irregular transaction I’ve ever created had 28 splits, because it involved donations to multiple charitable causes, split across cash, checks, credit cards, and US Treasury bonds (which paid interest upon withdrawal, and so had to be accounted as well).