Ok, I think I finally have a good handle on the whole debit/credit
issue and how to solve it. I apologize for the length of this message,
but I want the issues and the solution to be clear. Despite the
length of the explanation, the solution is actually quite simple.

First, I want to give a quick summary of the discussions of the past
weeks so you know where I'm coming from.  As far as accounting goes,
I'm not asserting "how things are", but "how I understand them to be."
No doubt, you will correct any errors :) For fuller and better
explanations, you can consult the many good posts that have been made
by various people.

In the traditional accounting perspective, a 'debit' represents an
increase in assets, like deposits to your bank accounts, acquisitions
of property, etc., and a decrease in liabilities (credit card debt,
loans, etc.). A 'credit' represents the opposite, i.e., a decrease in
assets and an increase in liabilities.

Also in traditional accounting, debits and credits are recorded in
columns where debits are on the left and credits are on the right.

Ok.

Now, internally, GnuCash has no concept of debits and credits per se,
it just has splits, and splits have either a positive or a negative
sign on their amount. So, the question is, do you record debits as
positive quantities and credits as negative quantities, or vice-versa?

The GnuCash reporting and, until recently, asset & profit calculation
functions have assumed that we store 'increases in assets' as positive
quantities. Thus, using the assumptions made from the reporting
perspective, an accountant would say that we store 'debits' as
positive quantities and 'credits' as negative quantities.

However.

If you open up a checking register, the 'deposits' column is on the
right and the 'payments' column is on the left. If you follow the
labels on the columns, you will be entering 'increases in assets' on
the right and 'decreases in assets' on the left, which is 'backwards'
from the traditional perspective. Since almost all people who use
GnuCash are not accountants, most users enter their quantities based
on the column headings, they don't really care that the columns are
'reversed', and the signs on reported amounts come out 'right'.

But.

If you are familiar with the traditional accounting perspective, and
you open up a register and start entering 'increases in assets' on the
left and 'decreases in assets' on the right, your reported balances in
the register, your assets in the main window, and the quantities in
reports will all have the 'wrong sign', because of the assumptions
I explained above. Using this model, GnuCash is storing debits as
negative quantities and credits as positive quantities. Phew!

I want to note that there must only be a very small number of people
using the 'traditional' method with GnuCash, otherwise we would have
gotten more complaints about the wrong signs :)


I want to explain my solution to this, but first here are the goals
for the solution:

1. Non-accountant users should be able to use GnuCash without
   understanding or caring about the debit/credit, left/right
   distinction.

2. Accounting-savvy users should be able to use GnuCash in the
   way they are familiar with, i.e., the one explained in the
   first few paragraphs above.

3. Internally, GnuCash should track 'increases in assets' and 'decreases in
   assets' consistently, regardless of whether the user is accounting-savvy
   or not. This is necessary for several reasons.

   3.1 Regular users who want to switch to the traditional accounting
       style should be able to do so by only changing the GUI, not the
       internal data.

   3.2 Both kinds of users should be able to share data files seamlessly
       without getting confusing sign and column-position changes.

   3.3 The internal model should be as simple as possible to make things
       easier to think about from a development and maintenance point of
       view.

4. We should change current reports as little as possible and as few
   people as possible should be affected by the change.

Our temporary solution to this problem is that you can elect to have
'debit' accounts sign-reversed, so that if you are entering debits
and credits in the traditional way, you get the correct sign on your
balances. However, this violates goal #3 in a big way, as some users
use negative values as 'asset increases' and others use positive
values.


Here is what I propose:

1. We always track 'increases in assets' as positive and 'decreases in assets'
   as negative, because that is what the vast majority of current GnuCash
   users do and the way the report calculations are structured. (Goals 3 & 4).

2. We display debits (positive quantities, asset increases) on the left and
   credits (negative quantities, asset decreases) on the right.

   For accounting-savvy users, all columns will get labeled as debit and
   credit. For regular users, we will use the original labels, at least
   for the more common accounts, but some of them will be in different
   columns, i.e., deposits will be on the left and payments on the right.

   This satisfies Goals 1 & 2, but violates Goal 4, since past users will
   now see quantities in different columns. If this is a problem, we can
   make the column ordering an option as well.

3. Using the above method, there will no longer be a need to sign-reverse
   debit accounts. There will still be options to reverse either income &
   expense or all credit accounts. If you want to see all accounts with
   positive signs, you'll select 'sign-reverse credit accounts', and if
   you want to see 'positive == good, negative == bad', you will select
   'sign-reverse income & expense'.


The effect on you:

If you have been entering quantities using the column labels, and have
been ignoring or unaware of the left/right credit/debit distinction,
you may see quantities in different columns, but none of the signs
will have changed. Your data files are correct as they are. This will
be the case for almost all users.

If you have been entering quantities using the traditional left/right
model and ignoring the labels, the signs in all the data you have
entered so far will need to be reversed. We will provide a script that
will do this for you. You will only have to run it once, on any data
files you have created so far. After that, you can enter data as
normal and you won't see any change.  Any future data you enter and
any future files you create will be entered as normal. Furthermore,
the signs in reports will come out right. The only person I am aware
of that this will affect is John Hasler, but there may be more out
there who have just been ignoring the signs on quantities we report,
or keeping their own patched versions.


The end result:

We will have a consistent model for storing debits and credits for all
users that matches the traditional accounting perspective, but with a
GUI that provides for 'regular' users if so desired. All users can
seamlessly share data files, if they so desire. Regular users have
a clean upgrade path to accounting guru-hood.

I appreciate any comments you have.

thanks,
dave

--
Gnucash Developer's List 
To unsubscribe send empty email to: [EMAIL PROTECTED]


Reply via email to