What book-keeping practice is best to keep each year's transactions balanced within that year?

This question seeks specifically an answer that benefits from the consensus of the accumulated wisdom of book-keeping. I seek to know in which accounts I should record opening and closing transactions for each year, to keep the books flexible in the way described below.

I am familiar with double-entry book-keeping concepts, and am using that system for my personal finances. Now I want to introduce transactions that give me the option of examining a range of past transactions, chosen at the time I do some report, stopping an arbitrary number of years in the past, and having the included years balance to zero as normal.

So I would like to have each financial year's ledger be self-contained: zero in all accounts at the start, then the initial transactions set opening balances brought forward from the previous year, and the final transactions close accounts back to zero.

What I have in mind would look something like this:

FY 2009–2010
[initial balances zero]

2009-07-01 Opening balance
    [some set of transactions that move quantities to how they
    actually were on this date]

2009-07-04 Cheese

2009-08-12 Loan repayment

[… more normal transactions …]

2010-06-30 Closing balance
    [some set of transactions that move quantities to leave all
    accounts zero except for Equity]

FY 2010–2011
[initial balances zero]

2010-07-01 Opening balance

[… more normal transactions …]

2011-06-30 Closing balance

With each year's books tracked that way, I can allow my reporting program to just focus on the data for the years I'm interested in for any given purpose. Knowing that each year begins from a clean slate means that I don't need to point my accounting program at the entire lot, just those I want a report of.

So that's why I am mulling how to get those opening and closing transactions right, and which accounts should be involved.

But maybe I've misunderstood what's feasible for book-keeping. Is there a better way to keep the books manageable without needing to always consider every account from the beginning of time?

  • 1
    Is this a GNUCash issue or accounting practice issue?
    – base64
    Jan 14, 2016 at 9:35
  • I think this answer is going to get closed b/c accounting is off-topic on this site, but I would say that doing what you say you want to do is not proper accounting practice at all. You'll need more help than you can get in this format to understand why though.
    – user32479
    Jan 14, 2016 at 14:27
  • 4
    I've edited the question to make clear this is about the accounting practices for personal finance book-keeping; at time of writing, personal finance (and sole proprietor) book-keeping is explicitly on-topic for this site.
    – bignose
    Jan 15, 2016 at 0:46
  • Not really enough for an answer, but the most practical solution is probably to make a transfer to/from an equity account that results in the account balance becoming zero. I believe this is what companies normally do when "closing the books".
    – user
    Jan 15, 2016 at 10:28

2 Answers 2


I'm not sure there's a good reason to do a "closing the books" ceremony for personal finance accounting. (And you're not only wanting to do that, but have a fiscal year that's different from the calendar year? Yikes!) My understanding is that usually this process is done for businesses to be able to account for what their "Retained Earnings" and such are for investors and tax purposes; generally individuals wouldn't think of their finances in those terms.

It's certainly not impossible, though. Gnucash, for example, implements a "Closing Books" feature, which is designed to create transactions for each Income and Expenses account into an end-of-year Equity Retained Earnings account. It doesn't do any sort of closing out of Assets or Liabilities, however. (And I'm not sure how that would make any sense, as you'd transfer it from your Asset to the End-of-year closing account, and then transfer it back as an Opening Balance for the next year?)

If you want to keep each year completely separate, the page about Closing Books in the Gnucash Wiki mentions that one can create a separate Gnucash file per year by exporting the account tree from your existing file, then importing that tree and the balances into a new file. I expect that it makes it much more challenging to run reports across multiple years of data, though.

While your question doesn't seem to be specific to Gnucash (I just mention it because it's the accounting tool I'm most familiar with), I'd expect that any accounting program would have similar functionality.

I would, however, like to point out this section from the Gnucash manual:

Note that closing the books in GnuCash is unnecessary. You do not need to zero out your income and expense accounts at the end of each financial period. GnuCash’s built-in reports automatically handle concepts like retained earnings between two different financial periods.

In fact, closing the books reduces the usefulness of the standard reports because the reports don’t currently understand closing transactions. So from their point of view it simply looks like the net income or expense in each account for a given period was simply zero.

And that's largely why I'm just not sure what your goals are. If you want to look at your transactions for a certain time, to "just focus on the range of years I'm interested in for any given purpose" as you say, then just go ahead and run the report you care about with those years as the dates. The idea of "closing books" comes from a time when you'd want to take your pile of paper ledgers and go put them in storage once you didn't need to refer to them regularly. Computers now have no challenges storing "every account from the beginning of time" at all, and you can filter out that data to focus on whatever you're looking for easily. If you don't want to look at the old data, just don't include them in your reports. I'm pretty sure that's the "better way to keep the books manageable".


This is an answer to the original question even though it is in relation to suggestions from the previous answer.

The question, I believe, boils down to 'Do I keep all my accounting records in a single bucket or split it into separate accounting periods?' (I use 'accounting period' instead of 'financial year' since it does not necessarily last a year.)

I am sure that there are several good reasons for closing the books at the end of a financial period. Many relate to corporate finance which is off-topic here but there are some aspects of small business and self-employed finance which cannot be separated from personal accounting. My reasoning follows:

  1. IT Technical.

a. Every file on every computer is liable to deliberate or accidental corruption. The larger the file, the greater the risk (and it is not proportional, i.e. a file twice the size of another will have more than twice the risk). GnuCash, as far as I can see, among other accounting programs, keeps the entire data for the current period in a single file. a very small amount of damage is likely to render the entire file unreadable. Backup does not prevent damage though, in some circumstances, it can go a long way to recovering from it.

b. Unless your backup system only stores parts of files (segments, block, clusters) that have changed, any file that has been changed by a very small amount will need to be copied to the backup datastore. That will increase the time taken for every backup and the size of the backup store. The extra time need applies to files which have changed since the last backup - if a file has not change length or amended date since the last relevant backup, it will be ignored. If four years accounts are kept as separate files, only the last one will be backed up after a change. If the four years are kept in a single file, that file will be backed up in its entirety every time a change is made.

  1. Legal and Accounting considerations. Obviously, corporate or smaller business considerations are off-topic, but there are circumstances where they impact on personal accounts.

In UK anyone whose income derives from direct employment has tax deducted from income payments according to a formula which usually ensures that, at the end of the tax year (6 April - 5 April), the correct tax is paid (Pay as you earn - PAYE). This scheme also works well for people with more than one employer and income from bank and investment.

If income is from other sources, alone or alongside employment, Her Majesty's revenue and Taxation Department (HMRC) will require a declaration of income earned and tax to be paid on all income.

Any such income must be capable of proof and such proof would normally mean that the accounting procedures included the isolation of each accounting period from earlier ones to ensure that the income was attributed to the correct tax year.

I contend, therefore, that the ability to make a transition from one accounting period to another with running balances preserved along with cumulative income and expenditure and essential feature. There are procedures to make GnuCash do this, but they have one significant omission (and if anyone can tell me how to bypass this I would be grateful to hear from them) and that is the inability to carry forward the scheduled transactions which, though they may change value from period to period, will usually retain the same frequency.

If I can find another open source accounts app which does this and meets all my other requirements, I am likely to move to it very quickly.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .