GnuCash for Personal Finance: Transactions and Taxes

This is second in the series of posts describing how I use GnuCash to manage my finances. In the previous post I had discussed how I organize my accounts in GnuCash. In this post I’ll describe how I record transactions and use GnuCash to help with computation of taxes and filing of tax returns.

DISCLAIMER: This is for informational purposes only and cannot be considered as legal advice. I cannot be held liable for the outcome of any action taken as a result of reading the information contained here. Please contact a chartered accountant to audit your tax payments.

Recording Transactions

Since GnuCash is a double-entry bookkeeping software, every transaction must have an entry in at least 2 accounts. If a transaction has entries in more than 2 accounts, it is called a split transaction. Let us look at a few investment instruments and how transactions related to them can be recorded.

Note: I have set the date format to ISO in my GnuCash preferences.

Fixed Deposit

Let us consider a fixed deposit account opened for holding a portion of emergency fund with the below assumptions.

To record the transactions for the deposit described above, find the account named Fixed Deposit in the accounts list. Double-click the row and enter the transactions as shown below.

Fixed Deposit

The initial deposit comes from Principal:Emergency Fund. This account is of type Equity and as described in the previous post, represents the capital invested. The interest comes from Income:Deposit Interest, which is an Income account representing the returns earned. Finally the total amount is sent to the Savings Bank Account.

Now we need to give the government its cut in the returns. Let us assume that we need to pay tax at the rate of 30% of the interest and further a cess of 4% on the tax, i.e. ₹218.40. To account for this, open the account named Savings Bank Account and enter the transaction shown in the second row below.

Savings Bank Account

The tax is sent to Expenses:Tax:Deposit Interest, which is an Expense account representing costs incurred during the course of investment. By accounting for both income and expense under Deposit Interest we can quickly verify that the right amount of taxes have been paid at any point in time. TDS by the bank and tax paid on accrued interest from fixed deposits can also be recorded in a similar fashion.

Mutual Fund

Now let us consider investments made in Franklin Savings Fund towards retirement corpus with the below assumptions.

These can be recorded as shown below in the Portfolios:Retirement:Debt Funds:Franklin Savings account. You only need to enter the Shares and Price columns. Buy and Sell column will be calculated by GnuCash. Note that the value of Shares column must be negative for redemptions.

Mutual Fund Transactions

I prefer holding the redemption proceeds in an account named Cash under the corresponding goal as the money is still earmarked for it.

Calculating Capital Gains

The returns made from mutual fund investments are called capital gains and are taxed according to the following rules in India.

Note: A cess at the rate of 4% of the tax needs to be paid in addition to the capital gains tax described above.

To calculate capital gains we need to know the NAV at which each redeemed unit was purchased. FIFO accounting is used for this, i.e. units that are purchased first must be redeemed first. GnuCash provides a feature called lots to help with this. The set of units purchased together is called a Lot and GnuCash can identify the lot each unit belongs to at the time of redemption.

To do this, open the Portfolios:Retirement:Debt Funds:Franklin Savings account and select View Lots… under the Actions menu. Click on the Scrub Account button to make GnuCash identify the lots as shown below.

Lots

As you can see, GnuCash has identified 2 lots based on the 2 purchase transactions and has computed the gains earned on each of them separately. If you go back to the transactions screen, you’ll notice that the redemption has been broken into 2 different transactions corresponding to the lots. Additionally, the gains earned are also entered as 2 new transactions with Orphaned Gains-INR as the source. This is a hidden account that is used as the default source for capital gains.

Orphaned Gains

Since Orphaned Gains-INR holds no meaning for us, let us assign the capital gains of ₹5,000 to the appropriate Income account, i.e. Income:Capital Gains:Debt Short-Term. If it was an equity-oriented fund, the choice would be Income:Capital Gains:Equity Short-Term or Income:Capital Gains:Equity Long-Term depending upon the duration of holding.

Accounting for long-term capital gains from debt funds is tricky due to the more complex tax rules. The government allows you to adjust the cost of your investment for inflation. This is called indexation. The income tax department publishes the cost inflation index every year and this must be used to calculate indexation. Since we purchased the long-term units in FY 2015-16 and sold them in 2018-19, the applicable values are 254 and 280. So the indexed cost of our units will become:

280 / 254 * 10,000 = 11,023.62

This means that we do not need to pay tax on ₹1,023.62 of our gains and the remaining amount of ₹8,976.38 will be taxed at the rate of 20% since the units were held for more then 3 years. To account for these two different parts of the gain, right click the Realized Gain/Loss transaction of value ₹10,000 and select Split Transaction. Enter the details of the gains in two parts as shown below.

Split Transactions

You can also use the capital gains statement provided by your fund house to find indexed cost of units and taxable gain. If you are doing that, you may want to account for cost indexation in aggregate instead of each individual lot. You can then simply change the gains source to Income:Capital Gains:Debt Long-Term without splitting the transactions, as you did for the short-term gain and leave the value at ₹10,000. To adjust for indexation you can then enter a transaction in Income:Capital Gains:Debt Long-Term account as shown below.

Indexation Adjustment

While I do not know whether transferring funds between two Income funds is acceptable in accounting, it solves the problem just fine.

We can now account for the taxes to be paid on the short and long term gains in Portfolios:Retirement:Cash account as shown below. As in the case of fixed deposit, categorizing the gains and taxes accurately will allow us to quickly verify our tax payments at any point in time.

Redemption Tax

Filing Tax Returns

The government expects you to pay capital gains tax in the same quarter as you earn them. To verify this, you’re required to specify how much gain was made in each quarter when filing tax return. This is one area where even the capital gains statement provided by fund houses is not good enough.

The standard reports that GnuCash can generate will handle this trivially. Select Reports > Income & Expense > Income Statement from menu. Select Report Options under Edit menu and go to the General page. Select the Start Date and End Date for the quarter you want. In the below example, I have generated the statement for second quarter of FY 2018-19.

Income Statement

From the income statement, we can quickly verify the tax computation for each type of capital gain and enter the value from Revenues column in the ITR form. We can then repeat it for each quarter of the year to report quarterly gains.

In the next post I’ll show how GnuCash can be configured to fetch mutual fund NAVs from the Internet to get real-time valuation of your portfolio.

26 Jul, 2018 gnucash / personal-finance / accounting / mutual-fund