Hacker News new | past | comments | ask | show | jobs | submit login
[dupe] GnuCash – Open-source personal and small-business accounting software (gnucash.org)
331 points by neya on July 18, 2022 | hide | past | favorite | 151 comments



This comes up on the homepage consistently about every 6 months or so. I am not sure why.

Every time it does, it's obvious it has devoted fans and bitter enemies. The biggest problem with it as far as I can tell is the requirement for manual entry.

Given Europe and the UK have had Open Banking for years now, and a universe of apps automatically pulling, categorising and reporting transactions (including many incumbent banking apps) - I'm curios if this is a US-only phenomenon - why would people use decade-old software instead of the latest in banking technology? Any users from Europe or UK?

Previous threads:

- https://news.ycombinator.com/item?id=31219754

- https://news.ycombinator.com/item?id=20109545

- https://news.ycombinator.com/item?id=23237445


> The biggest problem with it as far as I can tell is the requirement for manual entry.

GnuCash isn't restricted to manual entry. It supports OFX [1], which you can set up to automatically pull transaction data from your bank.

[1] https://en.wikipedia.org/wiki/Open_Financial_Exchange


When I tried GnuCash, I was bitten by the fact that, although it supports OFX, many OFX servers don't support it. I found in some cases the server expected the client to support QFX, Quick's extension of OFX. In other cases, these servers seemed explicitly only to support Quicken as a client, e.g. by expecting requests to their servers would be proxied through Quicken and arise form Intuit IP addresses.


I understand, but that's still somewhat manual (compared to an API and a client pulling data from it without user involvement)


For a small business, is that a bad thing? It helps to spend 2 minutes reviewing the numbers.


Not at all. For a small business, closing the monthly books is already a manual effort, so initiating an OFX transfer is trivial compared to everything else.

More importantly, can it invoice customers via email with a template?


Apparently it cannot. But you can export to PDF and then send using an old fashioned email client.


To use these APIs in Europe you need a license, and I'm not willing to pull my banking data via third parties. Never mention the apps which want me to give them my full credentials.

I would be willing to use a script which I can audit and run myself, but nobody offers that for my bank.


There's Ponto :)

https://myponto.com/en

Disclaimer: I work for them. What I'm saying here is 100% personal and does not reflect the views of my employer, yada yada...

To be honest, we're doing an excellent job of protecting our customers' data. It's one of our core concern, and I have absolutely zero issue putting my own data in there.

We do _NOT_ store your credentials or even receive them at any point. Quite frankly, we don't want them. Any authorisation you would give us automatically expires after some time anyway, enforced by the banks.

The primary offer of Ponto is one API to interact with all your own bank accounts. No license needed, we handle all of that. We also provide a unified interface to all the banks.

The API is well thought out. All of our managers are highly skilled devs, so they understand what it takes to build good software (= time).

Check it out, we have a great support directly via Slack. I'm not answering that myself, but the guys who do it are super dedicated and will go a long way to help you.

Honestly I can't say enough good things about this product and our team! A product you can rely on, long term.


Belgian law seems pretty data hoarding heavy. Even things like activity logs will be kept around for 10 years after contract termination, per your Privacy terms.

Fintech might be overall more security focused in their software development practices, but 10 years is still a very long time to entrust someone with your data.


So, related to the topic at hand, if I use Ponto, can I connect Gnucash to it then so it fetches all information automatically?


Probably, yes :) But you'd have to find/build the integration.


Haha, anything is possible if I build it myself!

So the answer is a clear no then, please be up front about it instead :)


I was merely responding to the parent comment saying that you need a license, which is not the case with this API.


Sure, that I understand, I'm just saying that you failed to actually reply to me (or your reply was ambiguous at best)

The topic is GnuCash, parent said "The biggest problem with it as far as I can tell is the requirement for manual entry" whereas someone replied "To use these APIs in Europe you need a license" and you said "There's Ponto", and I asked you if I can use Ponto to connect to GnuCash.

I think it's understandable to think that if someone is suggesting Ponto (in a submission about GnuCash), then you should reasonably be able to use Ponto to connect to GnuCash, since that's the entire point of this submission. Otherwise your comment just reads as trying to shoehorn in your own product wherever it's only slightly related to the topic at hand.


AFAIK, none of this is true. Banks are required by law to provide open APIs with solid authentication mechanisms, apps usually access them via aggregators and never request your banking credentials.


The aggregators are third parties I mentioned. You can't easily obtain a license to use those APIs yourself, even if only to access your own data.

The apps which don't have a deal with these aggregators request you to provide credentials (now fortunately most of them are defunct due to MFA)


Understandably because you are dealing with a heavily regulated industry but I do agree it would be nice to be able to use the APIs for your own data somehow.

Aggregators to require you to provide credentials are just web-scraping the websites or have reverse engineered the banks (internal) APIs.


For some APIs you can get the access yourself. For example, here is the API for account and transaction information at ABN AMRO (3rd largest bank in the Netherlands): https://developer.abnamro.com/api-products/business-account-...

I'll concede that it's only for business accounts. But, that includes small single owner businesses and I've been considering to switch to ABN to automate the accounting of my small side business.

The PSD2 APIs (also for consumers) indeed need a PSD2 license and an EIDAS certificate.

Technically, for consumer data, I think you could use GDPR to request a computer-readable extract of your transaction data. However, I think most banks would then redirect you to some CSV/MT940 export option in the web interface that is hard to automate.


Yes, but no. The law is PSD2, but there are so many requirements that it's impossible for a private person to access it. First of all you need to generate a certificate which needs to be signed by a financial authority. Then you use client-based certificates to connect to these APIs. [1]

[1] https://support.n26.com/en-eu/security/open-banking-psd2/psd...


Yes, here is one example from German Commerzbank: https://developer.commerzbank.com/

I have been playing with the idea to use its API for my personal finance but the API with MFA is not so simple. At least not simple enough for me to spend much time for writing a customized interface. So I am still using their web interface which works well for my personal needs.


I was excited when my bank first announced Open Banking; I could use it to replace my embarrassing, then Selenium based mess with something more sane. Then Open Banking went into production and I learned I need a business entity and a whole host of other bs to make use of it without relying on some third party bottom feeder.

I don't know what I was thinking. This is Europe and there is very little chance a good idea won't be ruined with some sort of bureaucracy, licensing requirements, utterly vapid credentialism, or as a last resort, some other form of obtuse gatekeeping.


Also all these APIs are read write, aren't they? I really wish there was an easy read-only API that i could use for all kinds of hacky integrations


No, they generally have different scopes. You do not need to request a scope which can initiate transfers.


> Given Europe and the UK have had Open Banking for years now, and a universe of apps automatically pulling, categorising and reporting transactions (including many incumbent banking apps) - I'm curios if this is a US-only phenomenon - why would people use decade-old software instead of the latest in banking technology? Any users from Europe or UK?

Maybe the situation is better on the continent, but from living in Ireland and the UK I don't believe this is a solved problem here. Open Banking allows third parties to connect with your bank accounts with your consent but I'm not aware of any (reputable) service that simply gives you an API into your own bank accounts. Would be happy to be corrected on that.

That said, I wouldn't call the entry process entirely manual. GnuCash supports importing transactions in a broad range of formats, including OFX, QIF and CSV with user-defined rules. Yes, you still need to log into your bank/credit card/etc and download statements for import, but personally I don't mind doing that. My workflow is that I spend about half an hour every week logging my transactions in GnuCash. Sometimes I skip a week or two. Yesterday I had to enter a full month of transactions and it took me about an hour (complicated by the fact that I had lots of business expenses).


This open banking regulation actually makes it pretty hard for banks to provide you with easy to use APIs. You'll always need to do interactive authentication and these sessions have to be expired all the time.

I wrote a pretty simple budget webapp before the regulation took effect but was forced to stop after.

It's kinda good because it reduces the risk startups take security on the light shoulder like I did with my self hosted app, but it's obviously annoying as a user.


German reporting in. The situation is dire. I can download a CSV and there is one app that can pull transactions nightly - but I have to re-authorise it every couple of weeks which takes about 5 minutes.

We must never loose hope.


I live in france and my bank lets me download all (or a custom range of) my accounting history and my credit card history as either OFX, QIF or CSV. That's pretty neat and i can import it into Gnu Cash right away.


This is common in the US, too. I've been doing it for a long time. My current credit union offers some online customization of that, too.


Starling gives you API access to your own account. I use it to do a semi-automatic ingest into beancount.


theres some third parties that give you an API directly I believe. Firefly III lists salt edge and nordigen.

https://docs.firefly-iii.org/data-importer/


> The biggest problem with it as far as I can tell is the requirement for manual entry.

That's a problem? I'm still using YNAB Classic, and prefer manually entering my transaction data over my time using Mint years ago (which imported my accounts). IMO, it has made me more conscious of my spending.


There's also a heavily worked-on upgrade to the importer. Just saying the developers are users too, and want an easier time for data entry.

https://github.com/Gnucash/gnucash/pull/1371


I think this time it is because someone posted a tool for converting exports from a Singaporean bank into a format that can be read by gnu cash.

There’s a karma train on HN that you can collect when a related post can be made.


I have a fully working setup. In order to be useful for my personal budget management though I need some program to scan receipts and invoices via camera or pdf, to be honest.

Nonetheless. I am from germany and I successfully integrated sync with multiple bank accounts via aquafinance. I can pull down and automatically categorize transactions and even issue transfers.

There are more reasons i did not fully commit yet:

I have no automatic backup configured. I do not have an designated desktop-pc yet. Having all this important data on a mobile device is insecure imo. I have no _real_ usecase to apply double-checked accounting (hopefully this is the correct term).

Nonetheless, it's great. If one had a tax-guy I guess it is even more beneficial.


I want to note that there are no licenses fees or paid software in use.


What is aquafinance? Can you say which banks work for you?


Sorry for the late reply. I missspelled the library. Probably there is also a missunderstanding due to "lost in translation".

Here is the link: https://aquamaniac.de/rdm/

I integrated all my accounts of Kreissparkasse and DKB. Works flawlessly. I also tried all alternatives to connect to these institutions. I wouls recommed this setup.


Do you have suggestions for similar software that uses the EU/UK Open Banking APIs? Would really be interested.


> The biggest problem with it as far as I can tell is the requirement for manual entry.

Gnucash support automated importing from a whole bunch of sources like CSV and OFX/QFX.

Open banking is a great initiative but I currently haven't found any product or tool that actually lets me use it that can actually successfully connect to my accounts.

Also, what differentiates GnuCash from many other tools is that it is full double entry accounting, which gives far more security in terms of knowing that you are not misreporting or missing anything.


Why not import from CSVs? I use hledger and I import CSVs all the time to do my transactions. Without it, I think it would be impossible for me to stay on top of my finances. GNUCash does support CSV imports IIRC.


Frankly this seem like a big deal when I first started using GnuCash after using Quicken for many years. But after a while it doesn't bother me that much. The process also is not entirely manual. The banks export their transactions in certain formats and looks like GnuCash supports all of them.

So really the difference is between having Qucken log in to my bank directly vs me logging in and just downloading a file with transactions.


Love to find some nice and well working open-source solution for categorising transactions. Each bank appears to categorise differently


If GNU is involved it’s going to be a polarizing discussion.


Could you provide explanation on why GNU is polarizing?


GNU are pretty hard libertarians. I think libertarianism has become a lot less fashionable during the 2010s, and many people I think started to see it as actively deranged over the last 5 years or so, with more moderate liberal ideas of free speech and responsibility to others around you being more mainstream now.

GNU are also very hard on principals. Again, I think society started leaning quite a bit more pragmatic over the past 10 years.

In the tech industry you can see this trend for example GCC to LLVM, LibreOffice to just using Google Docs, GPL to MIT, etc.


Interesting. GNU to me has always seemed socialist if anything. It requires sharing derived code for free.

MIT by contrast lets you do whatever you want, and that seems more like the libertarian approach to me.


> It requires sharing derived code for free.

It requires you share the code with your users/the people you distributed derived works to for no additional cost. You can still charge money for the software, but you can't charge an additional fee for access to the code. You also give them the right to share it how they seem fit, so they could share it (the code, not necessarily trademarked things like names or artwork/assets) for free, share derived software including the code for a free or a fee, or not share any derived work at all.

You can read more here: https://www.gnu.org/licenses/gpl-faq.html


Both "socialist" and "libertarian" have definitions that not just changes within a country, but basically every country has its own understanding of the terms (just like what people in the US would consider "far-left" is basically "center" politics in many places in Europe).

Labeling something "socialist" or "libertarian" in a diverse place like HN probably harms more than it does good, as everyone will read it differently and have different takeways.


To use entirely different terminology, I think people are just way more laissez-faire about software issues these days. Realistically, most software runs as a service now, and people are generally I think more happy to be more pragmatic rather than idealistic. I think GNU was generally aligned to the mainstream 'tech hacker' outlook in 2002, but it isn't in 2022.


The resistance to surveillance, the kind of 'prepping' mentality of running everything yourself, never using third-party services, and sticking with older working ideas over trying new things, those are much more libertarian than socialist, going off literal definitions of individual liberty over collective society.


> sticking with older working ideas over trying new things

Socialism had plenty of that going around, sticking with older working ideas.[1][2] But I hear you.

[1] https://en.wikipedia.org/wiki/Trabant_601

[2] https://en.wikipedia.org/wiki/GAZ-3102


https://www.gnu.org/philosophy/third-party-ideas.en.html

"The Free Software Movement does not endorse Libertarianism".


If you write a list of philosophical ideas that are relevant to you that mentions libertarianism more than other philosophies, and you find that you have to explicitly say you don't endorse libertarianism, then that's a good indication that many people see you as a libertarian.


I've been using Gnucash since 2020 to manage personal expenses and income, and it has made the world of a difference. In particular, I find the income statement feature very powerful when I'm doing an end-of-year review of my spending.

In terms of time commitment, about 20 mins every two weeks seems to be enough for logging all my transactions into Gnucash - I have 3 bank accounts, 1 investment account and 1 retirement account.


I really like GnuCash but I've struggled with the data entry portion. Most of my transactions are on credit cards, so at the end of every month I'll import maybe 100 transactions in CSV. That import form does not let me bulk change how certain transactions should be imported so for instance if I have 10 transactions in a row that should be deposited to Expenses:Groceries that's 10 clicks.

Another pet peeve is the time order. A lot of times I'll have have a credit and debit on the same day, but the order I enter these depends on the order I'm going through my accounts. Since GnuCash only lets you put a date, it'll look like the account was overdrawn when it's simply mis-ordering the transactions. The only way I know to fix is to re-enter both transactions.



It orders transactions by (1) Transaction Date (2) Split Action (3) Transaction Num (4) Entry Date (5) Description


See my other reply re imports. I say dont bother and instead do it by hand as it speeds up over time.

Yes the same-day ordering is visually quite annoying, although the final end-of-day/end-of-statement balance is really the only value that matters.


> Since GnuCash only lets you put a date

!


That's interesting, my experience was different from yours. While it is indeed very useful to see all my spending, I found it took way too much of my time to maintain it.

This was partially because the UI has a lot of issues (especially the bank statement importing - if you don't do everything just right, you have to redo it from scratch, and it is very easy to make it fail), and partially because the ability to automatically assign transactions to categories was too limited (it expects the reference to match exactly, but in many cases it doesn't, so I would have to spend a lot of time manually assigning things to categories, again from a really bad UI).

I have to add, this was 5-6 years ago, so it's possible that the UI has improved since then.


I gave up early on with importing bank statements. Instead I just manually create each gnucash entry for each transaction on my online bank statement. If the final gnucash account balance matches my actual bank balance then I know I did it correctly. If it does not balance, I persist in finding the mistyped entry.

This method relies on balancing to the cent each time, since I use my actual bank balance as the target.

It is indeed tedious at first, however I find that 1) manually entering transactions helps me spot problem payments quickly (comprimised credit card, overcharges on direct debits etc.) and 2) the predictive auto-complete feature speeds entries up over time, as most entries are assigned to either a a)groceries, b)eating-out or c)bills expense account. You just press 'Tab' when the correct suggestion pops-up after entring the first few letter, and the line entry gets auto-filled. I still usually need to change the numerical value, but the correct expense account and transaction detail are prepopulated correctly most of the time.

Overall I would recommend giving it another chance.


I use hledger and while I also use my actual bank balances as targets (and often I do get obsessive, to the point of chasing down cents), I think it would be impossible for me to do it without importing my bank statements.

It's not the transactions themselves that I find tedious, it's all the ways I split them. My partner and I split many transactions together and we often travel with friends so I charge friends over Zelle/Venmo for transactions we had while out. Importing transactions from my banks makes it significantly easier to reconcile all of these, especially when I'm on a vacation. Ease of writing importers was a huge driving factor when I switched to hledger from GNUCash.

It's amazing discipline that you enter these manually. I remember that GNUCash has decent autocomplete which certainly helps. I don't think I'd be able to keep up with my finances myself if I had to input it all myself. I personally have anywhere from 50-100 transactions a month.


If you don’t mind my asking, how many transactions go through your account a month?


Roughly 100 transactions per month I would say. On average 2 card based transactions per day --> 60 transactions per month. Then bills, incidentals and direct debits make up the remaining 40.


I use HomeBank [1] because I find the UI a lot simpler than GnuCash and importing mostly just works, with pretty good automatic category assignment that lets you use regular expressions.

The only quirk is that one of my accounts uses a non-standard ordering for its csv file which needs fixing before HomeBank will accept it since the import UI is limited.

I also find that it is useful to track the database file under git.

[1] http://homebank.free.fr/


Yup, this is what I ended up using for some time. Though, and YMMV, after doing this in a dedicated way for 2-3 years, I ended up stopping entirely. Probably because more than anything, all the pretty graphs and tracking was mildly interesting -- but it mostly just taught me that I spend reasonably and don't have much of a need to track every little transaction.


Do you analyze all smaller spendings, like groceries, all credit card and cash purchases?

I'm using CC for almost everything but there is still a lot that I miss because of random cash spendings.


Cash is a tricky one. Generally I keep cash spends to a minimum. Any small cash withdrawls from my account are generally expense straight into Expenses:Cash Misc. and I don't bother tracking the inidividal cash payments.

However if it is a large cash amount (e.g. rent payment) then I will transfer from Asset:Bank to Asset:Cash before entering into Expenses:Rent.


Have you tried any of the plain text accounting packages?

I'm really interested in lived experience of using Gnucash vs, say Beancount or HLedger.


No unfortunately, I've only used Gnucash.

One of the main reasons I stick with Gnucash is the monolithic file format. If one day I need an accountant to review my finances, or if I suffer an audit by the tax man, I can send on the single .gnucash file with all my data. While Gnucash's UI is not the greatest, an accountant/auditor can easily install Gnucash and generate reports with only basic knowledge.

Another nice feature is the file linkage features, where I can directly link my payslip pdf files to the gnucash entries. I have folder structure on my GDrive with all of my stored bills, payslips etc. If required, I can zip up my Gnucash file and corresponding documents folder and the reviewer can instantly access important financial documentation from within the Gnucash application. Gnucash uses relative file paths for sourcing linked documents - all a reviewer has to do is specify the head directory and all the linked documents will open as usual. Correct me if I'm wrong, but I dont think this is a feature in the text-only approaches.


> Correct me if I'm wrong, but I dont think this is a feature in the text-only approaches.

I unless I'm missing something, all those features are available to me now.

> If one day I need an accountant to review my finances, or if I suffer an audit by the tax man, I can send on the single .gnucash file with all my data.

I can do the same with a git repo, or a zipfile.

> an accountant/auditor can easily install Gnucash and generate reports with only basic knowledge.

I'm not sure I understand the advantage here. A professional could install beancount too, and run the same scripts I do. My real life experience is they don't actually want this level of depth.

> Another nice feature is the file linkage features, where I can directly link my payslip pdf files to the gnucash entries. I have folder structure on my GDrive with all of my stored bills, payslips etc.

You can link to external documents in Beancount and possibly the others and it's kept in the same archival system:

https://beancount.github.io/docs/beancount_language_syntax.h...

It looks like I'm not missing out?


Maybe I can answer this a bit for you. I used GNUCash for a while and then switched over to hledger.

1. I personally prefer graphical tools, especially when looking at a sea of numbers. I gravitated to GNUCash because, even if the tool felt crufty, it was still a lot easier to read/get started with than hledger.

2. I used GNUCash for a long time. GNUCash has a very cool autocomplete feature that actually makes it quite easy to enter in recurring transactions. Things like regular bills, income debits, etc are all trivially autocompletable.

3. GNUCash makes it really easy to generate reports. While hledger certainly is infinitely scriptable/manipulable, GNUCash has a much easier out-of-the-box experience to use.

The main thing that made me switch to hledger was the ease of autogenerating transactions into a plain-text format. My partner and I split many expenses and we often travel with friends so I split many things many ways. I also fund my parents to some extent and so I buy gifts/split transactions with my parents. GNUCash made recurring transactions easy but made it a lot harder to generate split transactions according to fixed splits that I regularly engage with my friends/family in.

With hledger I have a system of taking CSVs, classifying transactions using a stack of Python scripts and using them to generate hledger importable files. I go by hand and annotate transactions that my scripts couldn't classify/split, and then I import it into my main hledger file. I store all my inputs and intermediate imports in a git repository along with my main ledger file for auditability and to look at annotations. The ease of automation just can't be beat with PTA but it's definitely harder to use if you don't have a preference for TUI work.


I have. All of the plain text accounting packages are optimizing to solve the exact wrong problem. The reality is that even if you are using a commercial package, it's generally not hard to get a CSV (or something like it) OUT of the software. What you actually need for a sufficiently complex financial life is input validation, and that's exactly the problem that plain text accounting software punts on.

Gnucash has a lot of cruft and definitely feels like it was written in 2003, but it does address this issue and provides the basic input validation you need to minimize errors.

The other issue with plain text accounting software is most of it only flags errors after you 'compile' your books (or, more properly, run them through some sort of command-line tool), which is far too late to make data entry convenient. (Some of them have web-based tools, like beancounts "fava" package, that act more like Gnucash...but at that point the term "plain text accounting" loses all meaning IMO, you're just using another client, so why not use a better one?


> What you actually need for a sufficiently complex financial life is input validation, and that's exactly the problem that plain text accounting software punts on.

Which input validation do you get in gnucash that you don't get in e.g. hledger? Asking as a hledger user. So far I mostly have assertions every month about account balances, and of course hledger checks itself that transactions are balanced. I avoid duplicating accounts (say expenses:something:stuff and expenses:other_thing:stuff) using autocompletion.


If you don't mind me asking, what method or software were you using using prior to Gnucash?


I never did any personal bookkeeping before I used GnuCash. I was however self-learning basic accounting for my startup at the time where we use the cloud-based software package Sage Accounting. After a few months of using Sage I was interested in applying similar methods to my personal finances and discovered Gnucash along the way.

Edit: phrasing


Personal Finance links I've assembled:

Free/open:

- Gnucash -- solid app: https://www.gnucash.org/

- Beancount -- Text based: https://beancount.github.io/docs/index.html

- Fava -- Web interface for Beancount: https://beancount.github.io/fava/

- Plain Text Accounting -- there are several apps with a similar approach: https://plaintextaccounting.org/

Others/Paid:

- You Need a Budget -- Popular a couple years back: https://www.youneedabudget.com/

- Moneydance -- https://moneydance.com/

- Lunch Money -- https://lunchmoney.app/


I've been using YNAB for years now looked at the competitors from time to time.

While their pricing has increased quite a bit (by now also for long time users coming from YNAB 4), for me it is worth every penny and better than anything else out there. I can't recommend it enough and I don't even get paid to write this comment.


I think I'd keep paying for YNAB even if the price doubled twice more, it's worth that much to me. I'm not saying other budgeting tools can't compare/complete but for me it works really well and has lead to my saving literal 10's of thousands of dollars over the span of just over 2 years.

Once you get everything dialed in you can almost run on auto-pilot (repeating transactions and goals are your friend). Could I drop YNAB and continue with my better financial behavior? Possibly, probably in the short-term for sure but I know I'd slowly drift until I was back where I was before starting YNAB. The yearly cost ($99/yr) is well worth the cost to keep me on the right track and notice early when I'm slipping.


I've been using Firefly III (https://www.firefly-iii.org/) since it came up on HN a little while ago. It's aimed more at the budgeting/personal finance side of things rather than a full accounting solution. I like that you can enter things like expected bills, so you can get a bit of a look forward, and good breakdowns of your spending over certain time periods.


https://manager.io is also nice, although perhaps targeted more towards small businesses



Thank you for linking this! I just ran the gauntlet comparing all these tools and this is the first that feels sane. YNAB is fine, but they did me dirty in 2008


What happened in 2008? I'm looking at YNAB and would love to know about the bad things that have happened.


I funded their crowdsource and bought 2 more licenses for gifts. Then they moved to a subscription model webapp which nullified the OG licenses.


I've been using Gnucash for tracking my personal finance for years and find it indispensable. I export CSVs of my transactions from my bank and import them into Gnucash. I spend about 20 minutes every couple of months to pull in the latest CSV and manually categorize anything that has not been automatically categorized. For investment accounts I just treat them a single asset and add adjustment transactions to keep the total value up to date.

This small amount of work lets me see down to the cent where I am spending money and track my net worth. It has a bit of a learning curve starting out, but I would really recommend trying it out.


What actual actions did you took based on this analysis ? How much do you estimate it saved you ?


I'm not the guy you're responding to but for me, GnuCash has helped me identify a number of subscriptions I don't use anymore, that I have then cancelled. It also helped me identify a direct debit that I had forgotten to cancel when I moved house. So there have been tangible savings. Of course you could argue that I could have discovered these things just by reviewing my bank statements regularly, but that's most of the work of importing them into GnuCash anyway, and it's easier to spot these things when you are actively categorising your transactions.

It's also just a helpful way to track the growth of your net worth over time when you have multiple accounts, investments, etc. You may or may not take action based on what you find but it's good to know.


I actually do exactly the same thing, and the value for me is that my actual income statement, balance sheet and cash flow are just much more accurate than other methods and therefore improve decision making (e.g. in a previous job I paid for work expenses on my personal card and was reimbursed from work, other solutions would make it look like I had was spending and earning an extra ~$50k-100k/year Vs with gun cash I just booked it all to a balance sheet account, which accurately reflected reality)


I run reports monthly to see where I'm putting my money. I used to follow a strict budget but that was way too rigid for me and would sometimes put me in a rock a hard place. So now I just spend as I'm comfortable and adjust in the future months.

If you own a business or do work on the side where you are 1099'd then it makes it way easier to send your books to your accountant so they aren't asking for information.


The answers to that are always going to be pretty personal. To me the small amount of time it takes is well worth it to have full insight into where money is coming and going.


I was a Gnucash user for a decade before switching to beacount (https://github.com/beancount/beancount). Can't see myself ever going back.


I haven't been active on the beancount mailing list lately, but have been working to meld Fava and Beancount together in a vscode environment using Eclipse Theia, with the long-term goal of making Beancount and plaintext accounting feel more like a packaged, crossplatform app that doesn't require upfront programming experience to at least do manual entries.

This drive sorta came after using Beancount+Fava for a couple years and realizing Im the only one who could understand the accounting system and it'd suck if I needed to share it to family or start an organization with it.

Happy to hear if there's interest in such a thing. I'm the same guy that collaborated on bringing extensions to Fava a few years ago.


Plain-text accounting is great. I choose hledger for the accounts of a small side business that doesn't warrant hiring an accountant.


What are the advantages over beancount? I often consider switching myself because beancount (and PTA generally) looks cool, but I don't really have an actual reason to leave GnuCash.


Fava as a GUI is awesome too https://github.com/beancount/fava/


The problem I have with gnucash is handling over data to an accountant to do yearly tax etc... for a small business.

I have written https://github.com/dorfsmay/gnucash_general_journal and it help somehow but it still is a lot of work for them and can be confusing if they're not willing to spend the time on it + time they spend is money they charge me.

I plan to change this to output to OFX sheets separating the different accounts, hoping it helps.

I'm surprised there are no standard for accounting data and would love to hear from accountants what would help them importing data in their systems.


Assuming you have posted everything to the correct accounts, the Trial Balance should be all they need. (Trial balance is a summary of the total on each account - checking that it sums to 0 is the key advantage of double entry book keeping.) If it doesn't, then perhaps the account structure isn't granular enough?

For the report you use, why don't you send a traditional general ledger and let them pivot it in excel by account (columns) and transaction number (rows)?


Having used gnucash, I find a regular Google sheet with a Google form for entry better.

The main reason is anyone in my household whose spending can then add transactions. Further and more importantly, I can attach receipts to transactions. Given Google forms work on mobile I can literally take a photo and in a few clicks have everything added to my spreadsheet.


I used to do this for the reason you mention (anyone in the household can enter transactions), but since 2020 I’ve moved to gnu cash and the double entry accounting is the main reason. I admit I knew very little about accounting before, and gnu cash forces you to learn the basics of double entry in order to use it, so perhaps I could have done this with the sheet method, but I find it much easier to find errors this way. I “resolved” the problem for other family members by having them give me their receipts (for cash, otherwise I just get the info from the banks) and entering the transactions myself. While it does mean a bit more Work for me, we have better financial planning now so I feel it’s worth the trouble.

Another thing gnu cash helps me solve a lot easier than sheets is handling multiple currencies (I live in a country with its own currency but with part of the economy in USDs, notably cars and real estate, plus I earn in USD and some of my local purchases are done in local currency but using my US card). With gnu cash it’s dead simple to handle transactions and accounts in multiple currencies (I use 3), including having historical values available.

Not saying your method is wrong at all, of course, just wanted to offer the perspective from someone who apparently did the inverse migration you did.


Yeah I agree, I generally like gnucash but the mobile receipt upload is really critical for me.

I do keep track of incomes, expenses, and transfers. A bit complicated setup initially but not bad



I really like Gnucash but I had to give up on it a while back due to limitations that likely will never be resolved. Instead I switched to hledger for the time being(which I may likely be moving away from soon due to the poor support for lots). The main issues revolved around dealing with multiple currencies.

One major limitation is that tracking cryptocurrencies without slow accrual of rounding errors is nigh impossible due to the precision limits set in place by Gnucash.

This of course is on top of the fact that Gnucash refuses to add support for adding additional currencies or commodities which requires tracking them like securities. The solution to this of course is to recompile Gnucash with the internal currency list modified but that breaks compatibility with all other Gnucash compatible apps unless you recompile those as well. And in general either workflow (recompiling or using the securities workflow) is just an unnecessary hassle to deal with when I want to track things other than cryptocurrencies like airline miles, cashback points, etc.

The other major issue I have is that the support for tracking price bases in multiple currencies is really not there yet. I'll likely be moving to another country in the next two years and I will need to be able to track gains across multiple currencies. Ultimately the difference will be small enough that it won't matter much for taxes but nonetheless I'd prefer to be able to maintain consistency in my books to the best of my ability.

I also just find the workflow for tracking unit prices to be clunky and awkward.


>Gnucash refuses to add support for adding additional currencies or commodities which requires tracking them like securities

I found a post on the mailing list which describes this problem (and provides a solution). Can I ask for a reference of the refusal to better understand your concern?


Can you expand on "poor support for lots"?

I maintain a ledger with GNU Ledger; until now, I'd assumed hledger and GNU Ledger were basically at feature parity.

Can you not do something like this in hledger?

20 AAPL {$100.00} @ $151.28 ; [=2022-07-18]



For the curious, I took a fairly detailed look at GnuCash for business accounting a while back: https://lwn.net/Articles/731126/


I tried GnuCash a long time ago but was not happy how convoluted the UI was, maybe have to give it another try.

After that I switched to MoneyMoney [1] which is just awesome to work with. It is mostly focused on the german market and directly supports import from most major german banks, sadly MacOS only.

[1] https://moneymoney-app.com/


There's some criticism of it here that I just found while evaluating if it's any good for personal use. https://www.reddit.com/r/GnuCash/comments/o4s1bx/im_starting...


I think the complaints are fair, but I’d frame them differently.

It serves the power user/technically adept individual user, and the very simple corporate user (e.g. books for an entity that holds an investment property, personal consulting business) quite well, but think commercial software is the much better solution for basic individuals and SMBs+

For individuals with any sort of modest complexity double entry accounting is the only solution and it’s great at that.


Anybody know how to do an equivalent of MS Money cash flow forecasting in Gnucash? I really miss it. It should plot account balance assuming already entered future transactions and repeating transactions happen as scheduled.

Looks like this, and it really helps me plan:

https://preview.redd.it/908a4kg3ww931.jpg?width=879&format=p...

Here is another competitor promising this feature, would be great if Gnucash could do it somehow too:

https://www.kualto.com/blog/microsoft-money-replacement/


Gnucash is wonderful, but since 2006 I've migrated to KMyMoney and never looked back. It also does forecasting.


Same here. KMyMoney's UI conveniences were significantly better than Gnucash when I switched over a decade ago.

(Also somewhat switched to ledger, but I still use KMyMoney for data entry and then run a script to convert the KMyMoney XML to Ledger).


Huh there's a Balance Forecast report which does exactly this. It considers the Scheduled Transactions applicable to your accounts, and shows the forecasted balances.


I haven’t done it, but you should be able to do that in gun cash by just chatting specifics and or grouped accounts from the cash flow statement?


I really miss this aspect of MS Money as well. Thanks for turning me onto Kualto, I'll have to check it out for this feature alone.


I recently adopted Gnucash as an alternative to my old faithful expenses spreadsheet using Gnumeric and I have to say, after grasping the basics it improved my bookkeeping drastically. One very useful and brutally simple feature that I like is the ability to attach files to a transaction. In Brazil we use boletos[1] extensively and Gnucash made my life a heck of a lot easier to keep track of them.

[1] https://en.wikipedia.org/wiki/Boleto (roughly translating, a ticket)


I was a faithful Gnucash user but ever since I switched to an ARM based Mac I haven’t been able to run it natively. Has anyone been able to build it for ARM or know of an available universal binary?


The normal Mac download works just fine for me


That's because it's running on rosetta2. Works fine though. This isn't a resource intensive app


If one isn't tied to open-source only, but hates the QuickBooks hegemony for small biz accounting, we had some good experiences with Wave (https://www.waveapps.com/). Very easy to use, cheap, and if your needs aren't too complex, it's a pretty nice experience. SAAS, closed source, etc, but at least it wasn't QB.


+1 for Wave. Have been using it for my needs over the past 12 months with no major complaints. It appears their business model is based on getting you to accept payment for services through their automated invoicing, which they take a percentage of[1].

1. https://www.waveapps.com/pricing


I work on a web/app-based personal finance tool, and just to clarify a few things regarding data aggregators (third parties that aggregate your financial data into personal finance apps like Plaid, MX, Finicity, etc).

There tends to be two main ways these aggregators interface with banks. The first is via screen-scraping or reverse-engineering internal APIs. The second is via direct integration (ie Oauth-type connections). Understandably, a lot of the HN-crew is skeptical of "handing over" their credentials to third parties, but for Oauth integrations, it's worth noting that:

  - you're redirected to the bank to enter your credentials (ie the third party never gets a chance to see them)

  - often, you get to choose which permissions to allow (ie read vs write, read only, which accounts)

  - the banks have signed off on the integration
So even if you decide you're not comfortable with the screen-scrapes / internal APIs because you don't trust the aggregators, worth considering the direct ones.


Is there a list of which banks support these "Oauth-type connections" somewhere?


Is the MySQL backend option fully functional now? I need to be able to code sql reports for my small business, or it's a no-go for us.


I have no issues with it, though the website still has this warning:

> Note this feature is considered experimental. It works for most of the common use cases but some corner cases have been reported to result in data loss. The GnuCash developers fix each issue as it gets reported. There is however no full test coverage so there may still be scenarios left that result in data loss.


Anyone serious about their business will see this warning as a deal-breaker.

Running a business is hard enough - I cannot imagine debugging my accounting tool.


I should clarify that the warning applies specifically to the SQL storage format. I'm not aware of any data loss issues using the default XML format.

Agree that as a business you would not want to take any chances. For my personal use I use SQL because that means I can use the piecash[1] library to interact with my financial data without relying on the official Python bindings (which aren't great to use).

[1] https://pypi.org/project/piecash/


> Is the MySQL backend option fully functional now?

Out of curiosity, was there anything about it that wasn't working?

When I got married I moved away from GNUCash because the interface was too intimidating...but I had been using the MySQL backend for a few years by then? and I don't recall any issues with it.


The SQLite backend works fine. Could you use that for your reports?


As a big fan of terminal interfaces, text-only formats, and emacs, I really wanted to use and like ledger, but I ultimately decided to use GNUCash instead as I had thousands of receipts to enter manually and doing that in ledger was much more painful than in GNUCash, which could automate a lot of this process with sophisticated autocompletion.


I use Gnucash to do the accounting of two small communities. It does the basics and some reporting for me. I don't need more. It's been around for a while and that gives me trust that it will stay maintained and I won't have to re-learn another app.


I'm surprised never seeing any reference to MoneyManager Ex[1] in these threads. I've been using it for a year, syncing my database with Syncthing (as you do with GNUcash) and it's simply awesome. It's more aimed towards personal finances though, as it uses single-entry accounting.

Still, highly recommend. Open-source, all platforms, polished, active development.

[1] https://moneymanagerex.org/


Not a single screenshot on that website. The github page has some at least: https://github.com/moneymanagerex/moneymanagerex/


I use Gnucash essentially as a manual-entry glorified digital checkbook/register. I used to do it on paper for the longest time- it's how I was taught and my bank took a long time to modernize. I don't know that I still need to continue this habit digitally, but there's still something useful/comforting about keeping my own transaction list to constantly check against my bank's... Gnucash is adequate for doing this for me.


Gnucash was discussed here recently :

https://news.ycombinator.com/item?id=31219754


If only the android app wasn't buggy :( . I can't delete recurring transactions on the mobile app. This wouldn't be a deal breaker if it weren't for the fact that syncing is finicky (you have to use Dropbox/Syncthing), and so having to use my laptop to take some actions is just so much hassle to make sure I don't accidentally lose (some) data.


My biggest problem was with importing CSV from my bank (TD Bank). It got all the debits and credits reversed, so I had to fix them all by hand.

In the end it wasn't worth maintaining -- too much manual down;loading and entry. I need a system that can automatically pull the information from my banks and make it easy for me to massage the data as needed.


Is there somewhere a good list of spending categories to use with it? Every now and then I run into a transaction that I can't quite fit into any category and have to squeeze it into something (un)related.


I think this will depend on your own preferences and use case. The initial default expense accounts in GnuCash are a reasonable starting point, but of course you can add, delete or amend accounts according to your preferences.


I switch from Gnucash to MoneyDance some (15?) years ago. I can't remember why now, but they were very similarly designed if anyone's interested in a paid (and I imagine slightly slicker) version.


I see it's written in Java - is it a self contained app or does it need the Java runtime installing? Managed to go several years without needing to install that and don't intend on installing now.


Could you comment on the reasons for your reluctance to install a Java runtime?


Can also recommend MoneyDance. Transaction entry and reconciliation is pretty slick, plus it's just a java app so you can run it on anything.


KMyMoney was much better when I compared them about 20 years ago! No idea if that is still the case but given there were better alternatives then I would imagine the same is true now.


Tried Gnucash, quickly stopped due to the complexity of getting it all organized. IMO a much better option is something like Lunch Money. Killer UI, and does what it does well.


I’ve found doing bank reconciliations difficult, otherwise it’s a great app.


Anyone knows how I can get OFX out of Apple Card via an API?


At least they offer OFX at all now... in the first few months, IIRC, they only supported PDF statements or something similarly difficult to work with.

I'd love for "shortcuts" to include a statement hook. "Every month, copy most recent apple card statement, email to xyz@domain.tld". But the "wallet" section of the shortcuts app is basically empty.

Until then, I email myself apple card statements at the end of the month, takes maybe 5 minutes but it involves a lot of tapping.


What is wrong with HLedger ? Why would I use this bloated software over it ?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: