Hacker News new | ask | show | jobs
by nickjj 1515 days ago
I once wrote about using GnuCash as a freelance solo developer at https://nickjanetakis.com/blog/using-gnucash-as-a-freelancer....

I started using it in 2017 and still use it today. It's still really solid and makes filing quarterly taxes not too painful. In my opinion it's one of the best tools out there if you like your privacy and don't want to link your bank accounts to a third party service.

2 comments

I didn't include this in my original reply but today is May 1st.

Since GnuCash involves manually entering in transactions it's easy to think that'll take a ton of time.

I just timed myself and it took 5 minutes to input everything for April 2022 into GnuCash. This includes all income and expenses (personal and business). I'm not even using GnuCash's automated feature for recurring payments too, so that 5 minutes includes manually inputting various subscription costs (I don't have a lot). This also includes a bunch of business related things (estimated tax information, a few income streams in their own "GnuCash Accounts" and a few expense streams in their own "GnuCash Accounts"). I do this by opening GnuCash and my bank's dashboard side by side and then running through last month's entries.

Most banks support exporting CSVs and I'm 100% certain I could write a Python script to parse this and auto-import things into GnuCash but since the bank item descriptions for the same transactions change over time I don't want to risk it. The 1 hour per year of manually entering numbers (I copy paste the dollar amounts to reduce human error btw) gives me more confidence than writing that script. I also know to make that script robust enough to consider using it for real in a way that wouldn't require manually checking it would be quite involved. As soon as the script's results require manually checking it for accuracy then you might as well have input things manually without the script.

I don't do this much these days, but when I was doing full time freelance, I honestly only did most of my "accounting" a couple times a year. In the first years, I used Quickbooks and paid banks extra for their OFX service. Then I stopped paying for that and switched to Quicken. I could go to the bank and credit card sites, spend a bit of time downloading a CSV for each month, then I would copy/paste into Quicken. So very similiar process to yours, I just had the CSV files from the bank as opposed to the website statement. It was very quick, even doing 6-8 months worth at a time.

Later, switched to beancount, it had a CSV importer and I tweaked some example script to do an "interactive" import. Each transaction would be presented and I could accept it as is, or modify it. If I saw a common issue, I could make a copy of the CSV and do a bulk replace, massage the data up front and quickly import.

I'm not saying you need to switch to CSV since your system is working for you. I'm mainly just agreeing that manual entry from a monthly statement can be pretty quick. But for those that are lazy like me that don't responsible balance the books each month, manually grabbing the CSVs and importing many months of statements in an afternoon can still be pretty quick. I would keep the bank statement PDFS + the "official csv" around as a sort of backup. Someone wanting to try GnuCash or any accounting software can start by downloading their statements/csvs for the last year and start punching their transactions in to get a real feel for how working with it will be.

As an update, I decided to try GnuCash out and enter the last months. It's really nice. The first month is going to take you the longest. But entering these really gets you thinking about where your money goes.

For someone starting out, don't go crazy adding empty accounts. Start with a small set of account like the check register or "common accounts" that have a checkings, savings, and maybe a few expenses. Start transcribing from your main or most active checking account. As you enter, you'll see and "Imbalance-USD" account get created automatically in your "transfer" column. What I found useful is to do a few of these, then switch to the accounts tab and create an account for it. Expenses like "Household", and then you can create somethng below that like Utilities. You can put all your Internet and Electricity expenses under that, of if you desire, go ahead and make sub-accounts like "Expenses:Household:Utilities:Internet". Or drop the "utilities" category altogether and embrace a more flat sty "Expenses:Internet". You can later reorganize/rename these however you want.

But once you get the first month in, you have most of your categories setup. If you start on a second month and get something new, you can let it in imbalance and come back to it a bit later. I love the autocompletion and easy account filtering/search/selection in-line.

I don't know if I do enough nowadays to really need this, but if I did, it's definitely pretty easy to work with.

I agree with the concept of starting small - I didn't. I have various accounts in various banks and now have 26 accounts that need to be balanced, all in order to have live "net worth" visibility. At first I enjoyed doing it to that level, but not anymore. I need to prune the accounts I enter using .csv and just keep track of current accounts, like checking accounts.

That said, GnuCash is definitely worth the effort - GnuCash has continued while some "easier" financial programs have not. I thought about using it after MicroSoft abandoned MS Money with 10 years of my financial data. I looked at GnuCash but it looked too hard and I migrated to MyMoney instead, but after a few years it dropped support. I again looked at GnuCash but again chose not to face learning the "harder" GnuCash and migrated to MoneyDance; after a few years they changed its default to "Save on exit," rather than allowing me to exit to abandon mistakes and start over. This time I migrated to GnuCash in the hope that it will be longer-lived.

I don't know that I need to have all my financial data for 25 years, but if I'd chosen GnuCash from the start I'd still have it. It turns out that the other systems were not easier, if you include having to re-learn so many financial systems and incompletely migrate existing data.

Yeah that's a good way to go about it. If you relate it back to programming, creating accounts are like abstractions. You wouldn't really start off with a bunch of perfectly named accounts until you get a feel for what you're working with.

I started the same way and over time refined them. GnuCash lets you move previous transactions between accounts as needed.

Same here. Compared to the extractive noise of the intuit alternative, GnuCash just works to log transactions and generate statements necessary to file taxes and etc.