Hacker News new | ask | show | jobs
by watsocd 2148 days ago
Your formula is not correct. If you want to do it that way, it should be assets - liabilities - equity = 0.

Think of it this way. When you start a company, you invest $100. For the company accounting, that is $100 in the bank account/asset and $100 in equity. $100 - 0 - $100 = 0

Now you take a loan for $100. Now you have $200 in the bank account, a $100 liability, and $100 in equity. $200 - $100 - $100 = $0.

1 comments

It is not incorrect. To make everything positive (and use the subtraction as you have) you need to have two different types of 'positivity' Credit and debit. And then you have to remember which things are subtracted and added so it gets back to balancing. That's why it gets so complicated.

Money in your bank account is _negative_. It is a _debit_ in your accounts (this is not my invention this is true). Your bank account statement is from the bank's perspective. The money came from you, so it is a credit from their perspective only. Try to submit your statutory accounts with 'bank credit' and you'll get in trouble! Your software or accountant will definitely flip it to become a debit!

Your transaction to start your account:

Equity: $100 (or $100CR)

Bank account: $-100 (or $100DB)

Loan:

Debt: $100 (or $100CR)

Bank account: -$100 (or $100DB)

Accounts:

Assets > Bank account: $-200 (or $200DB)

Liabilities > Debt: $100 (or $100CR)

Equity: $100 (or $100CR)

> Money in your bank account is _negative_.

Say I have two million dollars and deposit one million in the bank and buy a one million house.

What is the value of my assets? -$2mn? $0mn? Something else?

The "confusing" answer would be that the value of my assets (which is equal to the value of my equity, as I don't owe anything to anyone) is two million dollars.

In a conventional double accounting system:

  Deposit
  Asset>Cash in Hand CR$1m
  Asset>Bank: DB$1m

  House purchase
  Asset>Cash in Hand CR$1m
  Asset>Property: DB$1m
So all I'm suggesting is to use of negative numbers instead of tracking everything in terms of credits and debits.

  Deposit
  Asset>Cash in Hand $1m
  Asset>Bank: $-1m

  House purchase
  Asset>Cash in Hand $1m
  Asset>Property: $-1m
In either case the value of your assets at the end is unchanged, because you're just turning assets into different kinds of assets.

But let's say you started with DB$2m (inheritance say, or you won the lottery). You end with DB$2m assets.

I'm not reinventing anything here. Where do you want to label your $2m as 'debit' every time, or use negative numbers, either way is the same.

People do always struggle when learning accounting to comprehend how money in their assets is debit. Because they are so used to seeing 'credit' on their bank statements. But it is only credit because there was from the banks point of view.

I'm not talking about credits and debits. In the version of accounting I know the balance sheet (edit: I'm not talking about the transactions, I'm talking about the aggregate balance) says simply:

  ASSETS
  ======

  $1mn Cash (in the bank) 
  $1mn House
  ----
  $2mn
What does the balance sheet look like for you? -$1mn plus -$1mn, i.e. total assets -$2mn?

Is that less confusing than total assets being $2mn when you have two assets worth $1mn each?

If the things you're doing are so simple that you don't have to worry about credit or debit, you are free to show it that way.

But if you are doing accounting, debits and credits and balancing is important.

So yes, if you are happy to ignore debit/credit/balanced books, you are welcome to view asset as $2m. And lots of the simple accounting software will show it that way.

But by the time you are having to understand different types of accounts and different types of money in it, I think it is easier to use negative numbers are rather than CR/DB.

Yes, balancing is important. That’s why I’d prefer to end with assets that make sense in the balance sheet (or maybe you're happy to ignore balance sheets and don't want meaningful numbers?). I don’t see what do you gain by making the assets negative.

Believe it or not, I’ve seen financial accounts quite more complex than two lines (and they never included those CR/DB annotations in the balance sheets or income statements).

Assets + Liabilities + Equity = 0 is incorrect.

It's just simple basic maths formula, A = L + E so it's either 0 = L + E - A or A - L - E = 0, or A - L = E or A - E = L all stands true.

A=L+E

is true because L and E are Credit dollars and A is Debit dollars. And the total Debit is equal to the total Credit.

But instead of using debit and credit unsigned dollars, you can use negative numbers: Credit is Positive, Debit negative.

In that case

(-Assets) = Liabilities + Equity, so A+L+E=0

-Assets because you've made those debit dollars negative.

In fact you don't even have to remember which. Sum(Everything)=0. 'Balancing' means summing to 0.

The software I am aware of that does large-scale double entry calculations for large banks works this way (I did some consulting 15 years ago on data laundering for that system). And all those accounting rules about what accounts are debit or credit accounts, whether a credit increases the debit account, etc, it all isn't needed at a low-level. The confusing bits are only in the UI. Where a number stored as -10 is displayed as 10DB, while +10 becomes 10CR.

So it's definitely not 'just simple maths'. It is the convention you use to express numbers: turning debit numbers into positive, and having rules to keep the math consistent in other places. And since the original article was aimed 'at developers', I think that the widespread negative number format is much stronger.

Equity is similar to a liability. Ít is owed to the owners of the entity.

Making assets positive in code is conventional.

> Equity is similar to a liability. Ít is owed to the owners of the entity.

You can kind of see the easy rationale there. I'm not sure it's very deep though. Revenue is in the same group (Credit). And the assets are like expenses (Debit). That is a bit more of a just-so-story in my mind.

> Making assets positive in code is conventional.

Are you sure? What code are you talking about?

Making everything positive in the UI is certainly common. And not showing whether a value is credit or debit. But I really hope my accountancy software isn't coded that way! It needs to track whether a number is a credit or a debit. It could do it with an unsigned value in a struct with a 'is_cr' Boolean and some custom operations to combine the money structs. But I've only ever seen code using signed values, because it is so much faster and less errorprone. Doing it manually is just reinventing the math of negative numbers. And then, the overwhelming convention is the former is positive, the latter negative, not the other way round.

For one example, read the docs for Beancount, which is mentioned above.

Signed values are the way to go!

> Signed values are the way to go!

100% agree!

> For one example, read the docs for Beancount, which is mentioned above.

Do you have other examples too?

You are dead right with this one. It is the opposite way to the way the systems I'm familiar with did it. Debit is positive, And credit negative.

Thanks so much for the link.

I'm still not sure what I would concede that it is conventional ;) But my assumption it was nothing but the other way is definitely incorrect!

I wonder if they did it this way because they felt people would understand negative income being a good thing better than a negative bank accounts being a good thing. The bank account is usually the big problem with understanding debit and credit.

As usual, the world is more complex and interesting then I assume!

When you first open a business, you put in capital - owner's equity. So the cash account (an asset) increases, and the equity account (a liability) also increases.

In a computerized system, one of these accounts carries a negative balance, the other a positive balance. A choice has to be made - but it's not a matter of good or bad.

There are several implementations of the Ledger system. The transaction registers and GL are human-readable. I looked at Ledger, and assets were positive.

I looked in the code for the GNUCash engine, but there are so many features that I didn't manage to get to the bottom of it w/o spending too much time on it :-)

I do recollect working with low level GC transaction data years ago, and I think I would remember if the assets were negative.

There are a couple of Wikipedia pages with links to FOSS accounting systems.