[RndTbl] Plain Text Accounting (plaintextaccounting.org)
mark at parit.ca
Wed May 15 17:06:50 CDT 2019
I didn't have the URL on the tip of my tongue, but I mentioned
yesterday if I could start my adventures in bookkeeping from scratch I
would turn to one of the many simpler solutions covered here:
(Saying this with hindsight in my 13th year as a GNUCash user which
including presenting at MUUG, developing Python bindings, and
developing the now abandoned code seen at bokeep.org . Hopefully this
is my year as I hand-off all business related bookkeeping to others)
The whole thing plain text thing was sparked by Ledger
And as the plaintextaccounting.org site explains, many clones of the
same have been mode.
For those who like their demos in video form, here's one I found
Never actually used these, but the design concepts seems right on for
unix-heads compared to GnuCash which I think takes its early
inspiration from Quicken.
post script rant for bored readers:
One thing that plaintextaccounting.org gets wrong is they
misunderstand what double-entry bookkeeping is all about. They say:
"""Double entry accounting? Where are the debits and credits?
Most (not all) plain text accounting implementations use signed
amounts instead of debits and credits. This makes them "double entry
light" perhaps, but it has been a rather successful simplification,
intuitive to most newcomers."""
The idea of having avoiding negative numbers by having two columns
(one for increase in value, one for decrease in value) isn't the
double-entry aspect of bookkeeping at all, that's simply a
"two-column" display format. Of course a data format can be simplified
and just use a signed integer instead of storing two columns and
GnuCash does this. (while still representing with two columns in the
Wikipedia has a much better grasp of this very old idea:
"Double-entry bookkeeping, in accounting, is a system of bookkeeping
so named because every entry to an account requires a corresponding
and opposite entry to a different account."
So as a concrete example, for me to say that a cash withdrawal from my
bank account results in a ledger entry that increases the value of my
cash on hand account and a separate ledger entry that decreases the
value of my record of my bank account, that's a double-entry and it
has nothing to do with using two columns with positive values or a
single column with negative or positive.
The important thing is that the redundant entries themselves provide
all kinds of checks and balances which helps protect against a lot of
As it turns out though, the very old term "double-entry" is itself a
bit of a misnomer. The reality is more N>=2 entry (multi-entry
accounting). For example, if my old business did an hour of IT work at
$100 an hour and was a GST registrant, than the issuing of an invoice
is going to increase the value of accounts receivable by $105,
increase the amount of liability for GST payable by $5 and increase by
record of income by $100. That's N=3.
Notice how quickly I descended into describing all three entries as an
"increase", even though it's still going to be debit $105, credit $5
and credit $105 (debits==credits) for the respective accounts or 0 ==
+105 + -100 + -5 if we use a signed representation instead of a two
column positive representation.
That's the thing about negatives numbers. People don't like them, even
as a way to describe our own liabilities. I found it very instructive
early when I was just starting out to turn off in GnuCash the
convention of displaying the credit balances of Liabilities, Income,
and Equity as accounts positive values and instead display them as
negative balances as they truly are in the internal representation and
to then make some example transactions.
Doing this flips the conventional accounting equations of:
assets - liabilities = net worth (equity)
income - expenses = change in net worth (equity)
and you get
0 = assets + liabilities + equity
0 = expenses + income +change in net worth
And then the math head was enlightened.
More information about the Roundtable