from Hacker News

Simple Personal Finance Tracking with GnuCash

by igpay on 5/19/20, 5:20 PM with 319 comments

  • by rcMgD2BwE72F on 5/19/20, 5:37 PM

    I've used GnuCash for years before switching to beancount (https://bitbucket.org/blais/beancount/ with smart_importer: https://github.com/beancount/smart_importer) and fava (https://github.com/beancount/fava/). Much easier to work on your journals (ledger, trades, prices...) since they are just text files. Really great if you're using the beancount package for Sublime: https://packagecontrol.io/packages/Beancount.

    More importantly, the importers (for all my banks and financial services) let me import and reconcile all transactions, but also archive all documents (including PDF, text files, etc) in one, well organized directory: each file is saved into a folder that corresponds to my account structure such as Asset:Current:Cash, Liability:Mortgage, Income:Salary, Expenses:Health:Dentist. It's great to rely on fava (example: https://fava.pythonanywhere.com/example-beancount-file/incom...) to check your accounting (with all files listed in the journal by date, with tags and links and other neat features) and still be able to browse documents in your file browser.

  • by cascom on 5/19/20, 8:06 PM

    I’ve been using Gnucash for my personal finances for a several years now, and really love it - it’s not dead simple, and requires an understanding of double entry bookkeeping, but where it really shines is flexibility. A couple of examples are as follows:

    1. Expenses in the future - If I book a bunch of plane tickets for later in the year today, I can book those expenses in those months in which I’m traveling (pre-paid asset until then) there-by seeing when I’m incurring those expenses vs. the cash flow of those expenses.

    2. Corporate expenses - I can book expenses that I will be re-imbursed for as receivables and not have them run through my “income statement” (nothing like putting some business class plane tickets on your personal card to make things look weird)

    3. Loans - whether it’s an auto loan on your car or simply a loan to a friend it’s great to be able to see your entire balance sheet (and remember that some items are outstanding!)

    4.variable granularity - decide how detailed you want to get for some accounts you may decide you don’t need that much detail (because you track it some other way - like your 401k) and you can just track your total balance at month end (+/- deposits)

    5. Track illiquid investments in your net worth (not saying the marks are right, but at least you have a placeholder value for them on your balance sheet (your home - private company stock etc.)

    6. Privacy - it’s your data - no sharing it with anyone else

  • by elric on 5/19/20, 5:49 PM

    "Simple" is not an adjective I'd associate with GnuCash. Maybe it is if you're coming from a background in accounting or have a penchant for numbers. It's pretty complicated, and I wouldn't recommend it to someone who just wanted to keep an eye on their budget. A simple spreadsheet will suffice. Or any number of more user friendly tools.

    That being said, GnuCash is a powerful double entry book keeping system which can almost certainly handle all your bookkeeping needs. But simple, it is not.

  • by cproctor on 5/19/20, 7:29 PM

    My partner and I have been tracking all our spending for the last five years with hledger (ledger reimplemented in haskell) and some custom import and management scripts inspired by "Full-fledged hledger" [1]. More recently we added Plaid [2] for auto-importing from financial accounts. I love having a plain-text history and being able to ask complex queries.

    One unexpectedly-sweet benefit is that your spending is a high-granularity record of where you have been and what you have been doing, encoding some signals you might not have thought to write in a diary. Things like "that was when we were saving for our down payment" or "I was going to coffee shops every day trying to finish my dissertation" or "that was when we had a pandemic." I enjoy looking back through our ledger the same way I enjoy going way back in my gmail history.

    [1] https://github.com/adept/full-fledged-hledger [2] https://plaid.com/

  • by every on 5/19/20, 6:20 PM

    I've been playing around with ledger[1] recently. On one level, it is the simplest of tools requiring only a command line and a text editor. But once you wade into the documentation[2] you will begin to see it quite differently. Its capabilities are staggering...

    [1] https://www.ledger-cli.org/index.html

    [2] https://www.ledger-cli.org/3.0/doc/ledger3.html

  • by komali2 on 5/19/20, 7:40 PM

    It's kinda fun to idly scroll through gnu's list of free software

    https://directory.fsf.org/wiki/GNU

    As far as I can tell, everything there was made simply because somebody out there thought it's important for a Free version of said software to exist. That's pretty cool. There's gnucash of course, but also a gnutrition calorie/macro/micro tracker, a flight simulator, some sort of comic saving software... the list goes on. Fun!

  • by chad_strategic on 5/19/20, 8:02 PM

    I tried GnuCash and generally liked it. However, it was a little more complicated than I wanted. In addition, I wanted to be able to access via the web, when I was away from my computer. (cause at the time, I thought it was only available locally)

    I also wanted my life partner (my lovely wife) to participate. This was going to be the hard part. Behavior modification. So I built a very simple "tracker".(php/codeigniter/mysql) Date, description, category, spender, cost, that could be accessed anywhere.

    I asked my wife to start tracking spending. As we had just bought a new house and 1 1/2 year old. She was extremely resistant to the idea. Six months after using the "tracker" she told me that she didn't plan on doing it more than 2 days before she gave up. However since starting it 3 years ago she and I have increased our "frugalness" and really looked where we should spend money (vacations, artisan food and not items to impress other people… such as fancy cars.)

    I think part of the trick is not necessarily import or export or "api"ing data. The trick is doing a manual entry for each transaction. Kind of like a spending journal, food journal or just a journal. There still seems to be power in manually entering a transaction, although it might not be by pen and paper.

  • by raz32dust on 5/19/20, 8:46 PM

    I've been using YNAB. I want to switch out because YNAB is too expensive. What I miss with open source alternatives is the mobile app. I don't like to link my bank accounts, so I enter expenses manually whenever I buy anything. The mobile app is critical for that to work.
  • by alexmingoia on 5/20/20, 2:35 AM

    I will never understand why people spend time on expense tracking spreadsheets and apps.

    I mean, you’re the one spending money you already know what you spent it on... Your bank already has a history of transactions if you want to look at it.

    Put 30% of your income in a savings account, the money for necessary bills in another account with auto-billing, and the rest for spending in a spending account.

    I see so many people categorizing everything with spreadsheets and budget apps and I just ask myself... why? If you set aside savings and necessary expenses what’s the point of categorizing your spending?

  • by cosmie on 5/19/20, 8:54 PM

    Firefly[1][2] is also a really useful personal finance app.

    It's more akin to a self-hosted version of Mint. Combined with the Plaid connector[3], I find it the easiest to use for my workflow. And despite the instructions, you don't need a paid dev account. The free Plaid account will let you access up to 100 live financial institutions.

    [1] https://github.com/firefly-iii/firefly-iii

    [2] Live demo: https://demo.firefly-iii.org/

    [3] https://gitlab.com/GeorgeHahn/firefly-plaid-connector

  • by woodruffw on 5/19/20, 11:01 PM

    I might be the edge case, but I don't actually find double-entry bookkeeping all that useful as a consumer trying to track my expenses.

    Instead, I tend to think of my budget as having cycles (monthly, currently), with a net "debit" or "credit" for different aspects of my life. I'm required to credit myself a certain amount in savings every month, and I'm allowed to debit a certain proportions of my income every month for different categories.

    I end up tracking this with a set of plain text expense ledgers and a small Rust program: https://github.com/woodruffw/pledger

  • by fossuser on 5/19/20, 5:53 PM

    I'd be curious if anyone has used this and also used YNAB (and can compare them).

    I'd put YNAB along with 1Password (and probably Fastmail) in the class of best single purpose pieces of software that I pay for.

  • by brnt on 5/19/20, 5:40 PM

    Hold up. Did Gnucash get better reporting or did he make his own? Last time I used Gnucash, which admittedly was 10 years ago, but for a business, I found reporting and the lack of budgeting lacking. The latter could be solved by envelopes (but I find hacky), but the former only by learning Guile, something I was and am not up to. Alternatives like Money dance have a more complete solution, certainly for personal use, in my view.

    I guess I'm asking what happened in the past decade to Gnucash ;) 2014 is the last time I really used it, and reporting had then not really changed.

  • by fensterblick on 5/19/20, 5:56 PM

    I want to like GnuCash but I just can't. I have found the UI to be confusing. I still use a freeware, abandoned version of Microsoft Money: https://www.microsoft.com/en-us/download/details.aspx?id=207...

    The UI is still excellent. It is the only reason I have Windows installed on a spare computer. Despite never being updated, the principals of personal finance haven't changed that much.

  • by spodek on 5/19/20, 5:54 PM

    I tracked my finances for a while with GnuCash and found myself in the category he describes here:

    > If you’re happy with just knowing that your credit card balance is less than a certain amount each month, that’s great! You don’t need GnuCash.

    I'm curious what fraction of people track personal finances versus those who don't. I don't know if I'm in a big majority, small majority, big minority, small minority, or what.

    Do you track your personal finances? If so, in how much detail? Maybe it would make an interesting Ask HN.

  • by neogodless on 5/19/20, 5:49 PM

    > We don’t care about how much money we’ve spent at Amazon

    That's like, your opinion man. While I'm sure that's one perfectly valid approach, I find a lot of value in knowing where my money has gone beyond categories.

    To make it more concrete, how much I spend at Amazon my Rewards Visa determines whether the 2% bump in rewards is worth the cost of Prime. (I know - most people find enough value in the videos or not thinking about shipping. But I find that I simply spend more at Amazon when I have Prime, so I avoid having it!)

    To counter myself, my own software is probably too granular and I waste time on those little details of where I've spent money. I could stand to simplify a bit.

  • by vitoc on 5/20/20, 10:10 AM

    I used GnuCash for a few years too, then switched to something else because:

    1) I couldn't make transaction importing work for the statements that I want 2) I couldn't get to the report that igpay got (this was many years back) for some reason, I also wanted more custom reports and it seemed really complicated to create one 3) I wanted a tool that was more malleable. Although GnuCash is completely open source, the codebase does not look too approachable for me

    After trying a few other approaches (including spreadsheets), I settled with Ledger CLI. I also built importing tools over 3 years of coding on weekends and finally got a complete set of features and financial institutions that I want :) Started with the reporting / analytics part recently... You can check it out here:

    https://prudent.me

    Any feedback will be very appreciated :)

  • by lifeisstillgood on 5/19/20, 10:46 PM

    Aaaaaaaaarrrrrrrgggggggghhhhh!

    I just want a bank account and to have that bank record my spending and let me download it, securely, and automatically.

    I mean the European Union has taken years to force, yes force banks to do this, and it is basically still broken.

    I don't want to spend this much effort on something so obviously solvable. It just offends me. Yes that is the right word.

    And, finally, none of this matters if I have trouble with the real problem - sticking to a budget. Solving that one is what I want personal finance apps to help me with. Keeping track of my finances should be a solved problem, locked in a box and forgotten about.

  • by ISL on 5/19/20, 5:48 PM

    Does GnuCash integrate well with exports from credit-card companies or banks? It seems like the big blocker is the time spent logging transactions.
  • by johanlarsson on 5/19/20, 8:57 PM

    A macOS and iOS alternative: https://hochgatterer.me/finances/macos/

    > No data is stored on servers, except when you enable Cloud Sync to keep your data up-to-date on all your devices. In this case the data is stored encrypted on iCloud.

  • by dang on 5/19/20, 10:10 PM

  • by slavoingilizov on 5/20/20, 11:34 AM

    I've tried many different apps over the years. I was in the "manual entry is better" camp until I stopped due to friction several months later. The only app I've used which I haven't given up on is Emma (https://emma-app.com/). On it since beta and been doing that for more than 1year. It automatically pulls all your accounts, categorises spend and gives you analysis on what you can do to improve.

    Many others promise that, but fail to deliver. Emma works for me, consistently. At the end of the day each of us manage our finances differently and the workflows have to be personalised. It's about finding the one that makes sense to you rather than "the best".

  • by mattbillenstein on 5/19/20, 7:38 PM

    This all seems too complex for most people. I use Google Sheets, I import a year-to-date csv from my bank and credit card every month, categorize each transaction, then use QUERY to aggregate expenses by category. This data I feed into a rough budgeting sheet which I use for expense trimming. This monthly maintenance takes maybe 30 minutes.

    And I have another sheet to compute net worth - retirement and brokerage accounts hold funds for which I can get a price using the GOOGLEFINANCE function, so the numbers change over time and I know pretty much down to the penny what my net worth is after I sorta manually enter in a couple bank balances.

  • by BrandonBradley on 5/19/20, 5:57 PM

    Until the open source options have direct download options that 'just work', Quicken is the best.

    I've tried GnuCash and Skrooge, can't ever get the direct downloads to work for more than two months without breaking.

  • by TheApexTheater on 5/19/20, 8:34 PM

    Like many people here, I tried GnuCash. I enjoyed it, but when I would import data from my bank, it would crash. That, and not having any real way of categorizing my expenditures was annoying. The other thing that annoyed me was not being able to select multiple items

    I recently moved to KMyMoney and everything just clicked. I found the interface to be nicer, especially combining the filter functionality with the ability to select multiple things and tag them appropriately.

    I appreciate the article trying to explain Double-Entry bookkeeping, and I would suggest people look into KMM as an alternative to GnuCash.

  • by clircle on 5/19/20, 7:25 PM

    I was an avid GnuCash user for a year or two in grad school, keeping track of my finances using GnuCash Mobile on my android phone. Then I bought a new phone and exported my finances database. When I loaded it into my new phone, I found the xml had been corrupted.

    That was a sad day because I'd like to use an offline finance tracker on my phone.

    BTW GnuCashMobile is not GnuCash, it's some third party android app.

  • by andriosr on 5/20/20, 11:44 AM

    I love the ideas from Ledger and GnuCash, so much that I even created a product inspired on them. I actually think many companies will benefit a lot from having such a simple way to control money movements, instead of having to use something like an ERP system.

    The product is https://decimals.app, and the way I thought about bringing the simplicity to it was to wrap the API behind decimals and currency libraries already in use. If you want it for personal use, let me know, but it's something closer to LedgerCLI at this point, as it doesn't come with reports and other things from GnuCash.

    I can sync all your data to an S3 bucket, so you would have all the data in the json format on your AWS account. As I use DynamoDB, it would be pretty straight forward to do. So, let me know what you thing and if you are interested in using a lib or REST API to create entries to a ledger, hit me up.

  • by briocheco on 5/19/20, 8:29 PM

    I needed a way to track my kids' allowance, so I built this https://play.google.com/store/apps/details?id=com.fivesaver - very simple and very free. Hopefully, not too massive-aggressive self promotion:)
  • by quietbritishjim on 5/20/20, 9:21 AM

    I was a bit flummoxed right at the first example. You bought something at a bakery, so the balance in your credit card increased? It's right there in the increased column. Surely it decreased to a larger negative number? (Credit card accounts are almost always negative, although mine occasionally goes slightly positive when I pay it off and round up to the next pound.)

    And why are the columns different to the example shown later for the checking account (or current account, as we say here in the UK)? You've got "increase" and "decrease" vs "deposit" and "withdrawal". Obviously you're likely to use your credit card and checking account in substantially different ways, but surely the fundamentals of transferring money in and out is similar enough that they ought to look the same in your finance software?

  • by mcguire on 5/19/20, 8:20 PM

    "For my stocks and non-money assets, I opt not to track them super closely in order to avoid having to update the values of each stock every time."

    GnuCash's Price Editor can fetch values automatically. It used to be able to use Yahoo finance, but they cut that off a while back. There is a replacement, but I cannot remember what it is at the moment (and am on the work laptop).

    GnuCash is actually pretty easy to use, once you get used to the double-entry system and how it handles some things. I have a moderately complex situation (and it's been stupid complex in the past), and I don't spend more than a few minutes a month on it (unless I'm trading stocks; it can take more time to set up each stock's account for proper tracking).

  • by pstrateman on 5/19/20, 8:14 PM

    Importing records in GnuCash is a pain.

    Credit card payments end up with two records of the payment, one from the credit card and another from your bank.

    There's no way to merge records in GnuCash, ideally you would be able to mark them as the same record, but keep them both to keep the import logic happy.

  • by balnaphone on 5/19/20, 8:24 PM

    In the first pie chart [0], am I the only one having a hard time with colours in the legend? For example, the second colour in the legend is #ff851b [1], but that doesn't appear in the pie chart. Going by the amount (33.69%), it must be the segment with colour #ffa85f [2].

    [0] https://www.csun.io/images/gnucash/expenses_piechart.png

    [1] https://www.color-hex.com/color/ff851b

    [2] https://www.color-hex.com/color/ffa85f

  • by darcys22 on 5/19/20, 9:52 PM

    To all the people who are running ledger with bash scripts and piping thru sed & awk I’ve been working on another open source alternative.

    https://godbledger.com/

    I’ve always thought that having the data recorded in a single text file made the software only suitable for extremely small financial accounts. So I’ve put a SQL database that you have control over as the place where the data is saved (using a similar schema to what GNUCash does). Also added GRPC endpoints so scripts can talk to it easily.

    It’s still early stage but plan is to make a bunch of front ends so that every financial task within a business can talk to the same backend (bank reconciliations, payroll etc)

  • by kumaranvpl on 5/20/20, 10:56 AM

    I have been using Monefy pro[0] android app for past 4 or 5 years to keep track of my expenses. I log in all my expenses and income in appropriate category. The main free version should be enough for most people but the pro version grants the ability to add custom categories. All the data is stored locally and it has the ability to export our expenses as csv to make reports. Also, Optional google drive and dropbox backup support is included.

    P.S. I am not associated with this app. I am just a happy customer.

    [0] - https://play.google.com/store/apps/details?id=com.monefy.app...

  • by cjlovett on 5/20/20, 2:54 AM

    Yep, this is the same reason I've been using https://github.com/clovett/myMoney.Net for the last 20 years and I have to say the data I have now is invaluable. But I have noticed a lot of banks are shutting down their OFX gateways which is disturbing. I think Intuit is moving them all to online backend closed systems which sucks. We should start a citizen initiated referendum to stop that trend and force banks to remain open, letting consumers download their data!!
  • by unhammer on 5/20/20, 8:06 AM

    We've been using GnuCash for my gf's photo business for years now, it's powerful enough to give everything to do her taxes, but (unlike plain text accounting) very usable for a non-programmer.

    Invoicing though, she's still been doing with a different program since the ones in GnuCash are hard to get good-looking. I was about to ask for tips here, but then I see there's a whole bunch of stuff out there we could try first: https://github.com/search?q=gnucash+invoice :)

  • by 8589934591 on 5/20/20, 5:54 PM

    This looks really promising. My current challenge is that I use Ubuntu and my wife uses windows. We definitely need something cross platform. This in turn should help us to share data (version control maybe?) between ourselves, and input the data as and when we feel like it? I work in software dev but my wife doesn't. A simpler layman tech/commands is what she prefers.

    Are there others who have faced this issue similar to mine? Did you use GnuCash or something else? I'm more of CLI but she's more GUI. So...

  • by monkeydust on 5/19/20, 8:55 PM

    I kinda want to try it but just not convinced I will see a good return on my time esp with manual entry. I wish some of these features were baked into my main bank account though.
  • by downerending on 5/19/20, 10:31 PM

    Related: Does anyone know of free-ish software to do cash-flow/retirement projections, etc.? For example, I'd input some guesses about income, 401ks, Soc Sec, rent, major necessary expenditures, rates of return and inflation, etc., and have it output balances for several decades. Extra credit for multiple runs with random variation on assumptions.

    I could write this myself, and have done a trivial one in the past. Is there anything better?

  • by clum on 5/19/20, 10:53 PM

    I've been using GnuCash for years. It has a great many fantastic features and it has some annoying quirks for sure. I haven't found anything to replace it, but if I could I would. One of the most annoying things: Export account names with Umlauts -> Import them again. Now they are all broken. I have to manually fix the csv file to prevent that and there's never been a fix/devs don't see this as an issue.
  • by koevet on 5/20/20, 6:36 AM

    In the last 6 months I have built a set of Python scripts around Beancounter, that import and categorize and archive various bank and CC statements into the ledger.

    Paired with Fava budgeting capabilities, my personal finance tracking is almost frictionless. It takes literally 5 minutes to go through 5 accounts.

    Since I live in Germany, I still have to use cash, which is a bit a pain to track.

    For that, I use an Android app that writes data directly into the Beancount ledger.

  • by misterspaceman on 5/20/20, 4:49 AM

    I really like the system described in this video; it's kind of a mix between double-entry and envelope accounting. It's what finally helped me get my budgeting under control. https://youtu.be/eIcsMHL0NJ0

    In the video, the guy recommends MoneyDance, but the same system would probably work in GnuCash too.

  • by arunaugustine on 5/20/20, 6:11 AM

    The article mentions Gnucash iOS app but the links in the official wiki was a dead end. Can someone point me to the correct link please?
  • by tshanmu on 5/20/20, 3:50 PM

    the comments thread on this is much more valuable to me than the article itself (not to say the article is not valuable) :)
  • by voska on 5/20/20, 10:54 AM

    After have using GnuCash, Mint, and about 100 other finance tracking apps, I'm convinced that Tiller Money is the best. Highly recommend checking it out.

    https://www.tillerhq.com

    Easy to set up and requires the least amount of ongoing work to accurately categorize transactions.

  • by mulmen on 5/20/20, 8:31 AM

    I love the introduction to this post. It reads like an absurd GNU infomercial. Someone is dissatisfied with their current software? There must be a better way!

    I imagine Richard Stallman himself rappelling down a sold rock face to spread the good word of GNU.

  • by lbotos on 5/19/20, 9:55 PM

    Is anyone regularly or reliably getting bank/credit card data via OFX? I've considered switching from Personal Capital to these libre/open solutions, but I'd love to automate the data gathering.
  • by suyash on 5/19/20, 7:43 PM

    Most banking services - at least mine already provides reports and graphs along with simple budgeting features for free with online banking. I prefer to use that, as that is where most of the data lives anyways.
  • by tmerse on 5/19/20, 8:53 PM

    The last time I used GnuCash, it was not able to import it's own export. Does anyone know if this has been fixed?
  • by S-E-P on 5/20/20, 3:47 AM

    I have a slight question, why is the install binary 150+ MB?

    How many libraries you got?

  • by m0zg on 5/19/20, 9:31 PM

    No sync with banks - a complete non-starter for most people. Even if you enthusiastically start using something like this, in a month or two it'll get super old.
  • by spurdoman77 on 5/19/20, 7:12 PM

    I never understood the point of these personal finance apps. When I run out of money I just withdraw a some more out of our familys multimillion trust fund.
  • by candiddevmike on 5/19/20, 8:22 PM

    Shameless plug, our product, Domestica, is better for personal finance tracking as it uses the envelope model of categorization. It also includes to do lists, meal planning and more--in the cloud or self hosted.

    https://about.domestica.app