GnuCash: Learning personal financial software
By: Ken Khoo
Tags: Money, Accounting Software, Money Management, Gnucash, Accounting

Use case

My use case requires me to interact with my bank, which does not always offer transcription details. At my place, a US bank offers them as downloadable OFX, QIF, and CSV (Comma Separated Value). For many other banks at my local institution (vendor banks, e.g., Hong Leong, Maybank), the only way to go through the data transcription details was to offer them as downloadable PDF content for my bank data, over the last >10 years as a user to my banking experience. I urged one of the banks to offer them downloadable CSV data in exchange for a mortgage contract. I considered myself fortunate enough.

The idiosyncrasy of scripting interface on a vendor-proprietary software does not look straightforward in my view. That way, I could customize the GUI design down to nitty-gritty details at a whim?? Perhaps I could also go through the data via scripting Javascript code.

Would I need to reverse engineer a proprietary software for something I paid for? It makes no sense. Certainly, customization via a proprietary interface does not seem evident to me. At one time, I was contemplating how I could huddle and jump to get through the hurdles.

Introducing GnuCash

GnuCash can generate over 60 reports of various kinds, bar charts, pie charts, analytical data, assorted variety.

GnuCash developed on GTK+, the code based was developed largely on C for their GUI interface with some minor C++. The ensuing version has been stopped since 2 years ago as of the date that supposes to feature modernistic GUI look-and-feel.

GnuCash experimented Cutecash which was developed based on C++ and Qt4 toolkit, last updated on 2018. I am hoping they could get some traction on this project.

Transactional entry in GnuCash holds encoded in XML format as the default storage. The XML format is convenient for everyone who wishes to edit or make any changes to the data on any editor free from hassle. In my case, I could develop a script to inject additional transactional data into my balance database. Storage interfaces are available as SQL in sqlite3 and MySQL for faster queries.

GnuCash doesn't provide encryption storage directly because GnuCash would not understand encrypted data. We can always keep the data via any encryption utility or store the data on an encrypted volume, on a disk.

Mobile edition made available on Android as a separate project from GnuCash. iQIF on iOS available for $0.99 as an indie project. Separate apps are easily exchangeable in XML format between mobile and computer.

GnuCash is built on GNU philosophy, also available freely at Github.

The philosophy of the GNU Project says that everyone shall have the granted right to use a program, to copy it, and to change it to make it fit his or her needs. The only restriction the GNU General Public License makes, is that NO ONE has the right to take away this freedom from anyone else.

Starting GnuCash first time

When we start GnuCash for the first time, we will be guided by a wizard to set up the initial account types. At the mid steps of the wizard (step 4, "Choose accounts to create"), we will be greeted with over a list of 16 templates, each with pre-configured account types recommended for Simple Checkbook, Car Loan, Childcare expenses to Business Accounts, selectable multiply, or any one of the templates set to create our initial account setup. The setup gives us the hierarchy of account which establish the main group of categories: —

Assets /Current Assets compose savings account and current account. The savings account could earn interest at a rate while the current account does not. The current account at my bank could function to reduce my housing loan while paying as consume.

/Current Assets compose savings account and current account. The savings account could earn interest at a rate while the current account does not. The current account at my bank could function to reduce my housing loan while paying as consume. Liabilities are what we owe to them, banks, or institutions. Credit Card is to track my daily consumption. Loans track interest charges and principal payments to the mortgage. One of my banks allows paying lesser interest charges as consumed, although at the higher interest rate.

are what we owe to them, banks, or institutions. Credit Card is to track my daily consumption. Loans track interest charges and principal payments to the mortgage. One of my banks allows paying lesser interest charges as consumed, although at the higher interest rate. Equity . See the on-going section about this topic.

. See the on-going section about this topic. Income and Expenses are the main groups that allow us to track expenditure spending drilled down to row by row transaction at the date. These data could be generated onto Reports (tally, sheets, charts, and other analytic data) varying by different interval dates, e.g., monthly, quarterly, and yearly.

Assets/Liabilities/Equity are the fundamental accounts in Double-Entry accounting while the other accounts, Income and Expenses, are for tracking expenditures.

GnuCash is ready for the transaction entry after the wizard setup stage, ready for your daily usage. Once the setup is completed, it does not seem obvious to me to re-invoke the step-by-step wizard setup incrementally. GnuCash has to create a new book from scratch. Unlike the setup process whereby the categories were created amass, I will have to define a new expense category one at a time in a step locked fashion. Refining the expense category, evolving as my account goes by. For anything beyond this, we may need some scripting helps some band-aided solution approaches.

Account reconciliation step

Once in a while, we may need to maintain our accounts to keep our accounts up-to-date from time to time. Reconciliation is the way to reflect the current status if they are aligned with the transaction receipts entered onto GnuCash. GnuCash's reconciliation feature provides a workflow to validate if the total amount received agrees with the book.

Given the ending balance on the dialog box (Actions → Reconcile), GnuCash will step you through a wizardry step. The wizard will prompt you to enter the final amount on my wallet, prompting you to agree or disagree with the book. Eventually, the succeeding dialog box will lead us onto Balance (located at the left-most button on the toolbar), advising us to automatically compute the differential amount, inserting a new entry at the reconciliation date. When the book is balanced, the book agreed with the amount received, clicking the Finish on the same toolbar button will mark the flag with "y" ("yes" reconciled) earmarking on all the entries up to the date for reconciliation.

Accounting principals for the norm

In our language, the things you own (Assets) minus the things you owe (Liabilities) equals your net worth (Equity). This is known as a double-entry bookkeeping system that standardizes the accounting process similar to the balance sheet reported in stocks.

For my Assets in GnuCash, I am using it to track my savings account and cash in my pocket, to track my current amount spent. I use it to track my daily expenditure and consumption. My current account was to track my checking account, which allows us to issue checks on my checkbook to pay out monthly tuition fees. Many people have started to accept banking via bank-to-bank transactions to pay out for my quarterly maintenance bills, etc., rendering checkbook to near obsolesces. One of my banks started to support Current accounts to pay for my mortgage without the fuss of checkbooks. This account could allow us to expense as if they were my Savings account for my daily expenditure while paying out for my mortgages at the same time for a fee at a daily rate (chargeable monthly).

Assets/Current Assets/Cash in Wallets: Benny’s Cash.

Assets/Current Assets/Savings Account: XYZ Savings.

Assets/Current Assets/Current Account: XYZ Checking.

For anything that I was liable to be paid, I track them as expenses under Liabilities in GnuCash for anything that incurred charges caused by my credit card usages on both plastic card and Master. Expenses related to shopping, internet subscription, insurance payments, periodical, miscellany expenses are included in this basket.

For large expenditure items, I track them under my mortgages under my Loans folder. These are residential houses, condo units, holiday resorts, etc. I obliged to pay the bankers whom they owe to us for my properties. My loan account expenses are then deducted gradually as principal payments until mortgage settlement, notwithstanding additional service charges and interest payments expenses in tandem.

Liabilities/Credit Card: Silver Card, MasterCard, etc.

Liabilities/Loans: Mortgage Loan (Vehicle Loan, Education Loan)

One peculiarity under the Liabilities umbrella is that there are expressed in negation values.

Less obvious pieces

The following are the weaker links among my buckets in GnuCash accounts.

Assets/Investment/Brokerage Account/Stock.

Assets/Fixed Assets/House, Vehicle, etc.

Stocks would entail us to require a brokerage account to keep my stocks up-to-date. Properties or fixed assets do not seem obvious to me, which requires us a proper valuation of the property at the time.

Stocks

These are the values I can be traded at the securities market, brokerage, realtor agency, etc., in exchange for currency value. One usage would be to track the value of marketable stock under the brokerage account at periodical times. To track my securities, this would entail us to a secured connection via my brokerage connection, which is non-existent or non-available in my country.

Real estate values

One GnuCash usage would be tracking my mortgage value at different periods such as quarterly, impromptu housing valuation when the data is available.

Brickz is one such platform that provides for property prices for a specific property or the entire region in my country. This would require some scripting ability to obtain a tunnel through the internet wall connecting GnuCash not yet to be scripted.

Another alternative would be to search for adjacent properties that match our spec. In my country, two webs are iProperty and PropertyGuru, based on floor space, room size, service residence, freehold, etc. By sampling a few or more sources with varying property specs, we could approximate values comparatively to arrive at some conclusion.

Those were the times when we would have to call out our neighbors in the 90s. Internet changes everything.

Equanimity is everywhere

The least known to me is in the Equity bucket. Equity is the contribution of Assets minus expenses due to Liabilities. Equity is the least known among Assets and Liabilities buckets based on my personal experience in GnuCash. Authors of GnuCash recommends the following category under the Equity bucket: —

Equity/Opening Balance

Equity/Retained Earnings: Dividends received.

One way to account for Equity is to assume that my assets had been liquefying, after deducting for expenses, for tracking purposes even though we do not intend to sell out the asset. We want to approximate the equity as the current selling price minus transaction cost as the on-going concern. In the same manner, stocks in major exchanges should be approximated similarly to brick and mortar assets.

For the actual transaction of the real estate, we would need to broker a deal between seller and buyer that both parties could agree on for a reasonable price. In my country, the buyer side would require to pay a commission to the government and the brokerage’s agency in addition to the purchase price.

These amounts would be the values accounted for as my real estate equity. In the stock scenario, a liquefication event is as easy as selling out some shares, fully or retaining partial ownership of a share. Similar to the balance sheet in the stock exchange, which reports to us the company’s assets, liabilities, and shareholders’ equity at some quarterly, annual intervals at some specific point interval.

Liquidification event is often considered an unusual event, although we are at evaluating the financial status. At the biz level, solvency can meet its long-term debts and financial obligations to ensure on-going operation.

Footnote: GAAP — Accounting for Equity.

Equity (stockholders’ equity, owners’ equity, etc.) is the claim shareholders of a company have on assets once the liabilities have been satisfied.

Look and feel

The largest drawback is that in the GUI department. The GUI looks and feels a little oldish, dated back to the Windows 95 era, possibly developed during the late 90s to 00s. Quicken, Quickbook, Mint, Personal Capital, etc., would have provided a better and contemporary GUI interface.

Multiple panels

Multiple panels paradigm has become the norm based on a list of software sampled above. The apps allow users to develop multiple perspectives on a single cockpit view. GnuCash doesn’t offer multiple pane visualization. Perhaps the closest idea to multiple panel canvas is to provide a listing of accounts.

Collating multiple transactions

Multiple transactions could be collated, grouped, or aggregated further across multiple accounts to examine the transaction details. GnuCash could offer us the ability to drill down to detailed transactions from a canvas visualization, e.g., pie chart, bar chart, line chart, etc., to summarize the detail a step further. The current version of GnuCash stops short at canvas view. For instance, I could now drill down to further than Net Worth, Assets, and Liabilities.

Expenditure forecasting