# GnuCash

GnuCash is an accounting program that implements a double-entry bookkeeping system. It was initially aimed at developing capabilities similar to Intuit, Inc.'s Quicken application, but also has features for small business accounting. Recent development has been focused on adapting to modern desktop support-library requirements.
GnuCash is part of the GNU Project, and runs on Linux, GNU, OpenBSD, FreeBSD, Solaris, macOS, and other Unix-like platforms. A Microsoft Windows (2000 or newer) port was made available starting with the 2.2.0 series.
GnuCash includes scripting support via Scheme, mostly used for creating custom reports.

## History

Programming on GnuCash began in 1997, and its first stable release was in 1998. Small Business Accounting was added in 2001. A Mac installer became available in 2004. A Windows port was released in 2007.

## GnuCash for Android and GnuCash Mobile

GnuCash for Android was initially developed as part of a Google Summer of Code Project. This was an expense-tracking companion app for GnuCash, as opposed to a stand-alone accounting package, and is now discontinued. Currently, there are more than 100,000 downloads on the Play Store.
In 2022 a companion version dubbed GnuCash Mobile is also available on the App Store and Play Store and unlike previous iterations was released under the MIT License. GnuCash Mobile is developed using Flutter. Beyond mentoring the original GnuCash for Android developer and providing some publicity there was no connection between Gnucash for Android and the GnuCash project, nor is there any for the current so-called GnuCash Mobile app.

## Backwards compatibility issues

GnuCash maintains the ability to read older data files between major releases, as long as major releases are not skipped. If a user wishes to access historical data saved in old GnuCash files, they must install intermediate versions of GnuCash. For example, upgrading from 2.2 to 4.1 may not be possible; the user should upgrade from 2.2.9 to 2.4.15, then to 2.6.21, then 3.11, then 4.1.
The other alternative is for users to export transactions files to a CSV format prior to upgrading GnuCash. Exporting of the account tree must be done as a separate step.

## Features

* Double-entry bookkeeping
* Scheduled Transactions
* Mortgage and Loan Repayment Assistant
* Small Business Accounting Features
* OFX, QIF Import, CSV Import
* HBCI Support
* Transaction-Import Matching Support
* SQL Support
* VAT/GST tracking and reporting
* Multi-Currency Transaction Handling
* Stock/Mutual Fund Portfolios
* Online Stock and Mutual Fund Quotes
* Built-in and custom reports and charts
* Budget
* Bank and Credit Card reconciliation
* Check printing

### Small business accounting features

* Invoicing and Credit Notes (Credit note functionality was added with version 2.6)
* Accounts Receivable (A/R)
* Accounts Payable (A/P) including bills due reminders
* Employee expense voucher
* Limited Payroll Management through the use of A/Receivable and A/Payable accounts.
* Depreciation
* Mapping to income tax schedules and TXF export for import into tax prep software (US)
* Setting up tax tables and applying sales tax on invoices

## Technical design

GnuCash is written primarily in C, with a small fraction in Scheme. One of the available features is pure fixed-point arithmetic to avoid rounding errors which would arise with floating-point arithmetic. This feature was introduced with version 1.6.

## Users

Users on the GnuCash mailing list have reported using it for the United States 501(c)(3) non-profit organizations successfully. However, the reports need to be exported and edited.
In April 2011, the Minnesota State Bar Association made their GnuCash trust accounting guide freely available in PDF format.

## Download statistics

As of July 2018, SourceForge shows a count of over 6.3 million downloads of the stable releases starting from November 1999 Also, SourceForge shows that current downloads are running at ~7,000 per week. This does not include other software download sites as well as Linux distributions that provide download from their own repositories.

## Project status

Open Hub's analysis based on commits up to May 2018 (noninclusive) concluded that the project has a mature, well-established code base with increasing year-over-year development activity. Moreover, "Over the past twelve months, 51 developers contributed new code to GnuCash. This is one of the largest open-source teams in the world, and is in the top 2% of all project teams on Open Hub."
* Free and open-source software portal