19 ms·
GnuCash: Open-source double-entry accounting software
- a254613e 7y agoHaving tried a couple of different accounting/budgeting applications, this is what I always end up coming back to. As it just works when it comes to keeping track of finances. However GnuCash really falls short if you have anything other than default locale settings. Want US language and EU number/date formatting? Syncing that across different OS'? GnuCash will probably struggle with it, you'll need to sometimes set locale, sometimes `LC_MONETARY`, sometimes system regional settings, sometimes all of it, and sometimes it still won't work. I really wish they would move to a more user friendly settings system. Also, the whole UI is extremely ugly, and the reports UI/UX could be better. But at the end of the day as a whole package it's still a lot better than a lot of alternatives, and more importantly it's not cloud based. I hope that one day they'll rework the UI and perhaps adapt reporting, portfolio, etc to be more like something you'd see in banktivity (scroll down for screenshots) https://www.iggsoftware.com/banktivity/ https://www.iggsoftware.com/banktivity/
- mNovak 7y agoYeah, I agree on reporting in particular--would be nice to make them easier to modify
- neilv 7y agoA few years ago, I managed to add a new report to GnuCash (specifically, an invoice format requested by a consulting client), but it was difficult because I couldn't find documentation on the application-specific APIs. The Scheme part itself was easy and a great choice for this.
- watsocd 7y agoI also looked into building a new report and did not succeed because of documentation issues.
- patrick5415 7y agoIf you’re handy python, check out its python api. Another method is to have gnucash store it’s data in a MySQL database, and query that directly. But I agree that having more powerful reporting built would be nice.
- GuiA 7y agoHow coupled is the UI to the “engine”? Are there any alternative frontends to GnuCash?
- egwynn 7y agoNo, they are tightly coupled. Decoupling is part of their roadmap, but doesn’t exist yet.
- 0xfeba 7y agoHave you tried Firefly III?
- juice_bus 7y agoI had issues with the save files corrupting them selves, and it happened so often that I had to stop using it. I suspect it was me inputing an invalid date or something but it was quite frustrating to come back after a day, or week and have progress wiped out. While it was working, i loved it.
- rodolphoarruda 7y agoSomebody should step ahead and create a "cloud version" of it that would allow multiple users to collaborate from their desktop installed GnuCash. It's just an idea from an old user.
- vitoc 7y agoWith Prudent, you can combine multiple ledger journals from different users (maybe share the journal text files via Git) and obtain aggregated financial reports based on the combined ledgers. https://prudent.me https://prudent.me
- bogle 7y agoPrudent is macos only. Unfortunately, like a few others, I'm currently migrating away from Macs.
- rodolphoarruda 7y agoI use Linux, so Prudent is not an option. And even considering its workflow, it would be impossible for my users to adopt it. I have a retail business in which I employ non-tech people. But I appreciate your suggestion anyway. I think Prudent looks very elegant from a UI perspective -- 100x more elegant than GnuCash, for example. And it ended up stimulating me to think about a possible text/command-line based financial solution for SMEs. That would be great in many ways. For example, imagine something like IntelliSense working on top of a workflow. >Create expense of $39.99 paid to Staples on 6/1/2019 >Show me expenses this month Well, I believe design and implementation of such solution would be enormous given all the processes and situations that would have to be covered and forethought, but the end result would give so much agility to end users that I believe it would compensate the effort.
- patrick5415 7y agoGnucash can use a MySQL database. I wonder if your suggestion would be immediately possible by just putting the DB on a server.
- 7y ago
- tarsinge 7y agoSlightly OT but if you want to get a basic understanding of double-entry accounting in a few minutes I found this article really great: https://martin.kleppmann.com/2011/03/07/accounting-for-computer-scientists.html https://martin.kleppmann.com/2011/03/07/accounting-for-compu... (discussed here https://news.ycombinator.com/item?id=2298471 https://news.ycombinator.com/item?id=2298471)
- ms013 7y agoThe NPR planet money podcast also had an interesting episode from 2012 that recently replayed that talked about the origins of the double entry accounting scheme. Pretty interesting history that I didn’t know. https://www.npr.org/2019/05/15/723715402/episode-407-a-mathematician-the-last-supper-and-the-birth-of-accounting https://www.npr.org/2019/05/15/723715402/episode-407-a-mathe...
- chris_wot 7y agoActually, I taught myself bookkeeping and accounting from the following: https://www.accountingcoach.com/accounting-basics/explanation https://www.accountingcoach.com/accounting-basics/explanatio...
- majewsky 7y agoI used the GnuCash manual. It contains an extensive and (IMO) fairly approachable introduction to double-entry accounting.
- Youden 7y agoI've been looking at the various open source accounting options recently and I settled on Beancount: http://furius.ca/beancount/ http://furius.ca/beancount/ ~95% of the reason is the fantastic web interface Fava: https://beancount.github.io/fava/ https://beancount.github.io/fava/ It's a bit annoying that you have to configure it with Python code but once you set it up it's pleasant to use. The pain point for me right now is figuring out the counterparty for transactions (e.g. I can see that money went out of my bank account to pay the grocery store but I need to map that to the "Expenses:Groceries" category). It seems I need to use some kind of smart importer or something. One application I thought got that part quite right was Buchhaltung (which works with Ledger/hledger rather than Beancount): https://github.com/johannesgerer/buchhaltung https://github.com/johannesgerer/buchhaltung. It's matching system made that dead easy. Buchhaltung also comes with an AqBanking integration if you live in a country where banks actually provide useful APIs.
- senorsmile 7y agoThe setup portion can be streamlined using pyenv and pipenv. I've migrated to a few computers over the last several years (3 Linux and 1 Mac), and had beancount and fava running within a minute on each.
- witten 7y agoIt's also not too difficult to throw Fava and Beancount into a Docker container and host it on a web server, if that's your thing.
- bogle 7y agoIndeed, there's a few on Docker Hub, just to make it even easier to get started. https://hub.docker.com/r/yegle/fava/dockerfile https://hub.docker.com/r/yegle/fava/dockerfile
- mNovak 7y agoGnuCash also has AqBank integration, but I haven't tried it. Actually really hadn't heard of it before seeing it there, is it more common elsewhere?
- module0000 7y agoI've been using GnuCash to keep my consulting books for 10+ years now. It does dual entry well, generates pretty invoices, and has never given me any trouble. It's great software. Didn't expect to ever see it on the front page of HN though...
- nickjj 7y agoHere's a big discussion on it when I posted about it last year: https://news.ycombinator.com/item?id=16857884 https://news.ycombinator.com/item?id=16857884
- markstos 7y agoGnuCash has been around for over a decade-- why post it today? This isn't even a link to a recent release announcement with notable new features. The last release was back in March. For personal finance on Linux, you may find Moneydance more user-friendly: http://moneydance.com/ http://moneydance.com/
- tytso 7y ago+1. I use MoneyDance as well; I especially like the Dropbox and Android integration.
- mNovak 7y agoCan you elaborate on the Dropbox bit? Couldn't you just stick the DB files in a sync folder?
- aaronkaplan 7y agoFor the record, it's been around more than two decades.
- dewey 7y agoNot everything posted here has to be strictly news (https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html), as the amount of discussion shows it's something a lot of people find interesting.
- Cmerlyn 7y ago> why post it today? Maybe because the author found out about GnuCash today and wanted to share? https://xkcd.com/1053/ https://xkcd.com/1053/
- vasili111 7y agoOverall it is good software but it needs "Undo/Redo" feature.
- pugworthy 7y agoI'm curious under what situations you'd use Undo/Redo. I would think that anything related to transaction records specifically should not have an "undo" feature, or if it does, it is recorded as part of the transaction. It's a silly scenario perhaps, but I'd not want to pay someone, record the transaction, then "undo" that I had payed them.
- BeetleB 7y agoIt's not that hard to come up with scenarios. 1. Accidentally deleting an old transaction 2. Accidentally modifying the value of an old transaction (and not realizing which transaction) 3. Accidentally overwriting the payee/notes of the transaction. The list could get very long, but basically: "Accidentally" anything. I think it's even more likely if you are dealing with downloaded transactions. It's happened a number of times that I am entering perhaps 10 transactions into it, and I screw something up. My only option is to quit and restart everything.
- groby_b 7y agoIn any decent accounting system, you cannot accidentally modify anything after it's written. It's a log system, you can only append. If gnucash doesn't do that, I'd consider it disqualified for any kind of accounting.
- BeetleB 7y agoNot an accountant, but that would suck more than not having undo. Real accountants may be very diligent. The average user (even tech user) is going to make tons of mistakes while entering data. I've often found when reconciling accounts that I put a transaction in the wrong account and I fix it.
- cocoa19 7y agoOne of the biggest shortcomings is it doesn't download bank information reliably. If you're lucky, your main bank supports OFX and the plugins work for you. It doesn't work for me. I've thought of starting an open source plaid alternative, scraping webpage information, but dealing with sensitive information and the banks changing undocumented interfaces have scared me away.
- e40 7y agoYep, loss of OFX was the impetus for me to finally leave Capital One. They gave me the runaround for a week then admitted they turned off OFX, after trying to blame my software (Moneydance, which I highly recommend).
- aaronkaplan 7y agoWhere did you go? It's hard to find any US bank that supports it any more, let alone one with decent interest rates.
- e40 7y agoUSAA. Chase does, too, though I only use them for credit credit cards. Citi the same. I also know that E*Trade and Schwab do. For USAA you need a military angle to get in. My dad served in the Army, so that was enough. If you have any close relatives that have served, you can get an account.
- bobblywobbles 7y agoI struggle with the same thing. I'm the author of My Budget, and struggle to find OFX credentials to pull transaction details back. Would you consider taking up the open-source plaid alternative? I've talked to someone who shared some great ideas with me how it can work. We can work on it together.
- johnmaguire2013 7y agoCheck out the startup Plaid, their whole business is to be the API for services like Mint and YNAB.
- Wehrdo 7y agoI got my Dad set up using GnuCash several years ago when I transitioned him from using an ancient version of Quicken on Windows 3.1. He's in his 70s and uses it to manage his small business finances. Although the dense menus can make it hard to find what he's looking for (and for me to help him), he's been pretty happy using it for just basic accounting and creating monthly/yearly reports. Good to see that it's still being developed.
- watsocd 7y agoI have been using GnuCash for about three years after Quickbooks Online substantially raised their rates. It's a great free alternative for a one person company. I would not want to use it for personal finances though. As others have said, it can be difficult to navigate.
- mNovak 7y agoLikewise, I use it for small business but don't bother for personal. I agree it's a bit difficult to navigate, though once set up there's not too much navigating new territory.
- nicolaslem 7y agoI do the exact opposite: I keep my personal finances in GnuCash and I absolutely love it. It really changed the way I perceive and spend money. It took me about a day of learning basic accounting and watching Youtube videos before being comfortable with the software. But I do the accounting for my company using a SaaS because it knows everything about local tax laws (deadlines, online filling...).
- Accacin 7y agoI'll offer a different view. I find GNUCash great for my personal finances. It's not too complicated I find, easy to navigate and works on MacOS and Linux (Which I need personally). Before this, I tried a few and all required paying or something like BYOB which I found amazingly complicated and I just couldn't wrap my head around it.
- jotakami 7y agoSwitched to GnuCash about four years ago after Quicken forced me to pay for a new version of their software. I have very complicated personal finances (churning, crypto trading, etc.) and double-entry is the only possible way to keep an accurate account of my cash flow and net worth.
- orthecreedence 7y agoWhat were some of your favorite resources for learning it? I've tried a few times to sit down and learn it, but always ended giving up because some of the things I thought should be easy were just so obtuse.
- 7532yahoogmail 7y agoDo any of these systems allow mass import w/ file attachments eg scanned receipts?
- faitswulff 7y agoDoes anyone know of any free/open source software that calculates compounding interest on accounts?
- stevezsa8 7y agoAny spreadsheet software will do this. =money_in_account*(interest_rate/12) I would advise to start with a spreadsheet and then move to custom accounting software after you are used to keeping track of numbers.
- N_trglctc_joe 7y agoThat formula won't work with compound interest. I'm not sure if most spreadsheet packages have an exponential function, but the formula should be money_in_account * exp( interest_rate/12 )
- faitswulff 7y agoHmm, I suppose spreadsheets would work, but I'd like if there was something with a friendlier interface for seeing how much someone owes me after a certain time, and with partial payments.
- smichael 7y agoThere's http://hackage.haskell.org/package/hledger-interest http://hackage.haskell.org/package/hledger-interest, a hledger addon.
- nerd7473 7y agoI use GNU Cash all the time! It's simple and does what you tell it to :)
- cVwEq 7y agoAfter doing accounting for my business, a medium-sized non-profit, and our personal finances, I keep coming back to Microsoft Excel. Using someone else's accounting software feels like trying to do an Iron Man with a straight jacket. At least with Excel, you can code VBA/C#/formulas/etc. to your heart's content and make it do exactly what you want. That's what I love about it. Want to import bank data? Well, you DO have to export the CSV manually from the bank, but then you can code something to make your financial reporting do exactly what you want. Need graphs or reporting? MS Excel, well, excels at that. Want to munge the data in a special way? Easy to do with formulas, coding, excel builts-ins, or some combination thereof. Want to pre-process data before you suck it into a finances program? Write an external munger that exports to a .txt file, and then link an Excel Data Range to that .txt file. I wonder sometimes if I have blinders on for choosing Excel, but hey, it works. And since I like coding, it actually makes doing finances kinda fun.
- ezconnect 7y agoWhat I also like about Excel is the easy way of making your own Form for entry
- contradictioned 7y agoThis is why I always (sloppily) say, Excel is the scripting language of databases.
- orthecreedence 7y agoYou're brave. I struggled with Excel for a year before giving up and moving to Ledger/SQLite, which was a night and day difference (and I had an easier time scripting). If I was going to use Excel, I'd store the transactions in a real database and export to Excel for reporting.
- hesk 7y agoAh, personal finance tracking. One of the first programs I wrote as a teenager was to track my expenses. It was written in Turbo Pascal and only had room for 10 entries per month. Then I found GnuCash and even later ledger-cli. Unfortunately, I lost about 10 years of my GnuCash files when moving data from one notebook to another. I searched old backups but the data is gone. It would be interesting to run some queries over the data.
- jhoechtl 7y ago> It was written in Turbo Pascal and only had room for 10 entries per month. Sounds like back in the days you were not aware about dynamic allocation and only had record[10] some fond memories
- deleted 7y ago[deleted]
- wiradikusuma 7y agoI've used GnuCash, but the UI is very ugly (programmer design—disclaimer: I'm a programmer) and it doesn't work over the web. At the moment I use waveapps.com. It's not open source, but it's free. From the outside, it looks like it's for businesses, but once you create an account, on the top-left you can toggle between business and personal!
- osrec 7y agoIf you need some good, free bookkeeping software, try https://usebx.com https://usebx.com - it's designed to be clean and simple, and works on any device!
- klingonopera 7y agoIs anyone using this in Germany? Is there anything in the program that can be automated? EDIT: Apart from that, AMA using GnuCash with SKR03.