GnuCash and End of Year

Lots of people want to start a new GnuCash file for a new year. Well, here’s how it is done.


GnuCash is a free accounting package based on double-entry bookkeeping.

It supports multiple accounting files (so you can have multiple businesses) but you can also have a separate file for each financial year of the business.

If you do use a new file for each year, each year you need to create a new file with the same account structure (Chart of Accounts) and with a new set of opening balances. The way to do this is not as obvious as it should be.

The Hard Way

Use “File”, “Save As” from your current year’s file to create a new file with a new name. Open the new file. Delete all the transactions.

This isn’t as easy as it could be because you can’t select multiple transactions: Open the first account. Select the first transaction. Click the “Delete” button. You are now on the next transaction. Click the Delete button again. Repeat this for every transaction in the account. Open the next account. Delete all transactions just like you did with the first account. Repeat this for every account.

If you have lots of transactions and lots of accounts this can take some time. At least a couple of hours in my case.

The Seemingly Easy Way

GnuCash has a menu option “Tools”, “Close Book”.

This is well-intentioned but doesn’t remove any transactions. It adds two more. I shouldn’t have been surprised. It does say this in the manual or guide.

What it actually does is add one transaction to all of your Income accounts transferring the money to another account (such as Equity:Opening Balances) and one transaction transferring all of your expenses to another account (often the same one: Equity:Opening Balances). Each transaction is split across all of the Income or Expense accounts and the total is balanced by a matching amount in the nominated transfer account (Equity:Opening Balances).

It is a neat solution from an accountant’s point of view. No information is lost. The Income and Expense accounts are all zero-ed ready for the new year and the opening balances have been tweaked to reflect the new starting position.

However, for those of us that don’t think like an accountant, it is a pain in the neck. We’d reconciled all of last year’s transactions. We’ve been through that pain, and we never want to have to re-reconcile those transactions ever again. We don’t want them there to edit by mistake (and mess up the starting balances). We want a clean slate. We wanted an empty file and a new start for a new year. It would also have been nice to have had new opening balances for each of the asset and liability accounts. Their balances are correct but not because of a fresh opening balance transaction. They are correct because every transaction in every asset and liability account is still there.

If you do “Tools”, “Close Book” and want to reverse it, that’s pretty easy. Go to the “Equity:Opening Balances” account (or whichever you specified) and delete the two transactions. That will undo all of the splits entered into all of the Income and Expense accounts.

Anyway, this menu tool does a very good job for accountants and does it very well and eligently; but it isn’t what most of us are looking for.

The Solution

Anyone who has been using GnuCash for a while has probably already said, “What on earth are you doing?”
It is actually incredibly easy. Provided you know how. It is one of those “You have to be there to be able to get there” things.
It is probably even documented somewhere and I just didn’t notice it.
Maybe it is self evident and so obvious that no-one would even think of explaining it.

You create a new file by “File”, “Export”, “Accounts”.
Choose the directory where you want the new file and give it a name that matches your convention for business and year.
Now, pretend you haven’t created an export of some information from your existing account file. Pretend it is a new account file just like your current one. Use “File”, “Open” and select the export file. It opens. You can add transactions to it. It has your existing accounts. There are no transaction in it (until you add one). All of the Income and Expense balances are zero. So are the Asset, Liability and Equity accounts; but it is a much better starting point.

Add the opening balances of your Asset and Liability accounts and you are up and running.

19 thoughts on “GnuCash and End of Year”

  1. Thanks so much for posting this solution. Was trying to figure out the best way to close my books for July! Loved the fact that I did not have to recreate the myriad of accounts… again!

  2. Thanks. Very necessary information – that’s why I searched Google for an answer after not finding it in the documentation either. I’ve been using the same file for years and seems to me things would be a little easier if I could start another file.

    1. Hi Roberts,

      I followed the like however, it would have been better with actual instructions. I’ll try Youtube.. Thanks to Gssezisoft for this post, as it’s been very helpful.

    1. You can always open the old file and run reports out of it.
      The only time you’d have trouble would be if you needed to run a report across multiple financial years. If you need to do that then you won’t be able to limit a file to one year. It will need to accumulate.

  3. Many thanks! Your page was the happy ending to our frustrating search for just this information.

  4. This was extraordinarily helpful. I have to echo the comments above — this is exactly what I was looking for after searching online for a solution to starting a new fiscal year using GnuCash. I’ve just started using GnuCash this year, and was wondering how I would transition from one fiscal year to another, without carrying over unneeded transactions, or having to delete a lot of old transactions. Thank you for the elegant solution.

  5. Hi, I see this is a fairly old thread so maybe not active. You have pretty much given me the answer I was looking for (thanks!). I’ve exported the account structure and opened the ‘new ‘ file, all good, structure and accounts intact. The part I am stuck on is giving each account an opening balance (ie. the balance as it is today, as you would if you were creating a new file) I’m probably missing something obvious, but any help gratefully received. Cheers!

    1. The trick with double entry accounting is that every transaction has a from and a to account. This makes giving something a starting balance seemingly difficult. The solution comes from realizing that there are five account types instead of the four we normally think about. We normally think in terms of Income and Expenses, and Assets and Liabilities. But the fifth type is Proprietorship and the basic rule of accounting is that Assets – Liabilities = Proprietorship.

      You enter a transaction for each Asset and Liability account that starts with a non-zero balance, with your proprietorship account as the other account for the transaction. That way your Asset and Liability balances get set up and the proprietorship balance is also at the correct starting point. I hope this helps.

      1. Hi Greg,
        Thanks for your comment, I am sorry to say I don’t completely understand. Are you saying that you should open a top level account call Proprietorship and then use this how in Practice. In GnuCash you need an Opening Balance for against your business bank account’s reconciliations. Therefore, I am not clear how a further Proprietorship Account resolves the Balance Sheet. Forgive me, I am a bookkeeping novice. I am going to try Gssezisoft’s approach. Just one of my problems but a big one, that I’m hoping to fix.

Leave a Reply

Your email address will not be published. Required fields are marked *