> So, from what I can tell, ledger does two things that seem strange to
> me; (please correct me if I'm just not understanding what it's doing),
> it seems to represent credit balances (right column) with a negative
> number. Second it doesn't seem to know that expenses and income are
> equity accounts (you manual says you can use Expenses and Income --
> which I assumed means that they are linked/aliased/whatever as
> children of equity) and such should be grouped together.
> Also, again small thing, but on a balance sheet assets, liabilities
> and equity really should be totalled (even if their zero). Ideally
> there should be forming break between them as well (Also negative and
> credit balance isn't really the same thing -- it would look really
> weird to show revenue as negative number).
Could you show me an example of what you think the report should look
like exactly? Your description doesn't make it clear enough for me to
visualize, since I never took a formal class in accounting.
Hi Ben.. thanks for this feedback. I think most of us here have researched accounting/bookkeeping more or less but don't
speak it natively, so perspective from that world is really useful.
>>> it seems to represent credit balances (right column) with a negative
Correct. I'm guessing John as an engineer, and most of us here, found that to be simplest and easiest to keep straight.
To generate reports using the standard credit and debit terms, eg for exchange with a professional bookkeeper, would
require some coding but sounds quite doable.
>>> number. Second it doesn't seem to know that expenses and income are
>>> equity accounts (you manual says you can use Expenses and Income --
>>> which I assumed means that they are linked/aliased/whatever as
>>> children of equity) and such should be grouped together.
I wasn't quite clear on that. I would guess most of us have assets, liabilities, equity, income and expenses as
top-level accounts. Are you saying accounting-savvy folks will put assets, liabilities, and equity at the top, and write
expenses as (eg) equity:draw:some expense category ?)
The main point about ledger here is that it has little or no knowledge of account types; it's up to the user to set up
the chart of accounts appropriately.
One advantage of this is that a beginner can start using just "accounts", with no assets/liabilities/equity
classification - like someone I spoke to on #ledger today. And of course you refine them later as needed.
On the other hand you might argue that enforcing the major account structure up front would reduce head-scratching as
users climb the bookkeeping learning curve. But we currently don't do this.
>>> Also, again small thing, but on a balance sheet assets, liabilities
>>> and equity really should be totalled (even if their zero). Ideally
>>> there should be forming break between them as well (Also negative and
>>> credit balance isn't really the same thing -- it would look really
>>> weird to show revenue as negative number).
As you've noticed, ledger balance shows balances but isn't really a standard balance sheet report - you have to work
harder to get that, using the various display-customizing options and possibly even multiple ledger invocations to get
the exact output and layout you need. I think John is ok with that but I for one would like to be able to get more
accounting-standard reports with a standard built-in command. That would require defining the account types somehow.
> If you were taking an intro accounting course, the instructor would
> tell you that there is a very specific order to producing financials.
> First you produce the income statement, cash flow, *then you close*
> (so revenue and expenses will be zero), then you produce the balance
> sheet. In practice, you do that for external reports, but you can't
> close every-time you need a balance sheet, so you place the temporary
> accounts under their respective sections.
Again, thanks a lot for the clear explanations and examples so far - it's a lot to digest, but I plan to do that.
Cheers - Simon
Ledger doesn't make much sense if you look at it the formal accounting
way. The focus is different - e.g. the various types of automatic
transactions are for people who think like programmers, no accountant
would use those. At first I was confused too and tried to fight the
way it's supposed to work. Now I just use ledger as a, well, 'ledger',
and do the 'post-processing' with simple reports from which I extract
various pieces of information that I then put into more formal
formats. In that sense it works great, an input file that can be
edited with a text editor; you just have to see it in the right
Part of the confusion, imo, comes from the user manual that uses
various terms that have specific meanings in accounting but then are
used 'with a twist' in ledger. The lack of account categories (for
debit and credit accounts, and balance and profit and loss sheet)
makes it non-intuitive to someone who is used to the formal way. I see
ledger as somewhat in-between single- and double entry bookkeeping
(well of course it requires at least two accounts for each
transaction, so in that sense it's double entry - but it doesn't
enforce any of the other requirements for getting books approved,
which to me makes up the other part of 'double entry'). Which is fine
for the personal and small business accounting most people seem to use
it for. It's just something to keep in mind when learning it - ledger
is unlike other accounting packages out there.
(disclaimer: I'm a programmer too, I just have had some exposure to
accounting from a couple of courses in law school and from the idiotic
hoops some accountants try to make me jump through.)
Anyway, as much as I like to discuss the aesthetics of various
accounting practices over a nice beer ;) , it's not how ledger works,
in my experience. Balancing accounts is impossible without a way to
tell it what accounts to balance against each other. That's what my
remark on the 'half-way' state of ledger referred to - it's mostly
cash accounting but with some extra check in the form of
counter-accounts. Plus automation for recurring expenses or splitting
across accounts. One can debate if that's desirable but I think for
most users it's fine, most people wouldn't grok a more 'strict'
operating mode, or rather they would if they'd spend a lot of time on
it, but why do that when other options work OK.
PS I may botch some of the terms in my posts - I only ever work in a
couple of European contexts.
PS2 I also disagree about the beauty of accounting systems - like I
said, in the context of a law education our focus was on how to detect
lies with numbers, and in my experience accounting is anything but
deterministic; there are 100 ways to do all the things that are a
little bit more complicated than a cash sale, and everybody (all
accountants) has their own pet peeves they feel are so important - so
important that they need to be explained in minute detail at $150 /
hour. Whoops there I go again ;)
ledger doesn't know anything about these things... it's basically just
a calculator. The manual uses Expenses and Income as examples but you
could use any other account names that you prefer. ledger doesn't
care and doesn't know which accounts normally have a credit or debit
ledger does get the accounting equation right. When you do "ledger
bal", the sum at the end must be 0, otherwise you have a problem.
However, ledger approaches the accounting equation in a way that is
quite unusual for people with an account background. To make it
clearer how ledger sees the world, we can transform the accounting
Assets = Liabilities + Equity
Assets - Liabilities - Equity = 0
In accounting terms, you'd say that you have $100 in assets and
that equity is $100:
Assets - Liabilities - Equity = $100 - 0 - $100 = 0
However, ledger doesn't know anything about credit or debit
balances... it essentially just adds up things and makes sure that
all + and - add up to 0.
The way it does this is to require liabilities and equity to be
negative. So in ledger terms, you'd say that you have +$100 in the
bank and an equity of -$100. This adds up to 0, which means that
This approach comes quite natural from a "ledger as calculator" point
of view, but I agree that it's confusing for people with an accounting
background. I started with ledger and then learned about accounting
and this made it more difficult to understand debit and credit
But once you get over it, it's not too hard to deal with. Basically,
you just have to mentally invert all things that you know are credit
accounts. So when you see -$100 equity in ledger, you know that it's
a credit account and therefore in accounting speech a $100 equity.
When you see +$50 liability in ledger, you know that in accounting
this is a ($50) liability, i.e. someone owes you.
Is there a way to improve ledger? I'm not sure it's possible to
change the input format but it should at least be possible to improve
some of the reporting functionality. For example, it would be
possible to extend ledger so people can say which accounts are credit
or debit accounts and ledger bal could get an option so it would
display things as debits and credits.
Anyway, this is just my opinion as a ledger user. I'm sure John (the
author) can explain his design choices better.
What's more confusing is accumulated assets. In standard double-entry accounting, a purchase of an office supply or piece of equipment would create a negative debit from your bank account (assuming you're not using a credit card to make the purchase), or -$Y, An expense transaction in the credit column $Y, and an asset transaction, either Asset:Office Supply or Asset:Equipment (or something similar), of $Y. The rationale is the item you purchased offsets its cost by increasing the value of your company the same amount. [...]But how would I reflect this in ledger?