Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

On the other hand some things in how accounting is traditionally done suffer from accounting predating a lot of "modern" math.

Negative numbers were first used around the 3rd century in China and took until the 16th century to be used in Europe. Modern double-entry bookkeeping was invented in the 14th century in Europe. So if you ever wonder why they traditionally use a column for debit and one for credit, with definitions that seem a bit strange: that was the best way to make it work with only positive numbers.



Then this would be one of those cases where working around a problem (the lack of negative numbers) actually resulted in a superior product. You don't want negative numbers because that would require the description of a category to change based on whether it is positive or negative. You wouldn't want to be changing "Assets" to "Liabilities" every time the number goes below zero.

You don't need negatives in accounting, because anything that is affecting a number differently than the rest (reducing rather than increasing), needs to be accounted for separately. Imagine showing negative revenue. That would be mostly useless. You want to see how much revenue you had, and in a separate entry, how many expenses. Imagine how misleading it could be to show $0 in expenses last month, when in reality, you had $100 in expenses, but you subtracted $100 out because you returned some big purchase from last month and got a refund.


> You don't want negative numbers because that would require the description of a category to change based on whether it is positive or negative

That's actually already how it works, the kind of inverse you use depends on if the account is credit-normal or debit-normal. You end up in the same place.

> Imagine showing negative revenue. That would be mostly useless.

Revenue is already credit instead of debit, which if you were consistent in using negative numbers, a negative revenue be completely correct (so you would want to sweat if revenue was a positive number). It's weird, but it lets your cash on hand be a positive number, which is just a necessary consequence of the system.

> Imagine how misleading it could be to show $0 in expenses last month, when in reality, you had $100 in expenses, but you subtracted $100 out because you returned some big purchase from last month and got a refund.

Wouldn't that be accurate? This would be a debit of 100 and a credit of 100 which nets a balance of 0. But individually you would see the transactions and could sum the credits and debits if you were so inclined.

Alternatively, contra-accounts exist if reporting these individually is material for some reason.


Having separate debit and credit amounts (instead of a single positive/negative number) serves another purpose as well: To track the total amount added or deducted from each account.


I wonder if this is why losses are written down with () instead of -.


It's just to make it more visually apparent. A tiny preceding hyphen is easy to miss. Same reason why negatives are sometimes printed in red, leading to such phrases as "drowning in red ink".


Yes, that's part of it. The lengths accountants will go to to avoid having to deal with negative numbers is a bit funny.


it’s because they know it’s a slippery slope into allowing imaginary and irrational numbers, which is how accountants go to prison.


I'm not sure if that's the reason for it, but I'm pretty certain introducing negative numbers would confound the accounting process.


We implemented negative numbers in our ledger API (https://fragment.dev) and don’t use credits and debits at all. A bunch of engineers who didn’t know double-entry found it a lot easier to pick up. I think the key is to update the accounting equation to:

  (A)ssets - (L)iabilities = (I)ncome - (E)xpense
So if you have more (+100) Assets, then to balance it out, you either need to have:

  +100 Liabilities (100 A - 100 L = 0) → You took out a loan and increased your liabilities

  -100 Assets (100 A - 100 A = 0) → You sold an asset for what it was worth

  +100 Income (100 A = 100 I) → You provided a service and earned income

  -100 Expense (100 A = 0 I - -100 E) → You got a refund for a previous expense
I think that’s much more intuitive. You can think always think in terms of more or less Assets, Liabilities, Income or Expenses, then use the Accounting equation to check your reasoning.

Here’s a deeper explanation: https://fragment.dev/docs#design-your-ledger-ledger-accounts

Disclaimer: I’m CTO at Fragment


Negative numbers have no place* in accounting, and people need to stop thinking "oh, credits are just negative numbers" and hopelessly confusing themselves and others by putting nonsensical signs on an unsigned magnitude of flux.

* you can actually think of oddball reasons you might consider a "negative credit/debit", but it's more akin to something like a negative mass in physics


I tried using John Wiegley's Ledger, which uses negative numbers. Everything was great about Ledger except for that part - I just couldn't wrap my head around it.


Maybe this is one of those things that's harder to understand if you have an accounting background. As someone without an accounting background, I found it incredibly intuitive: if money moves out of an account, that's a posting with a negative number; if money moves into an account, that's a posting with a positive number; a transaction is a set of postings that together sum to zero, indicating that no money has been created or destroyed out of thin air.

There's no need to learn any confusing "credit" or "debit" jargon, you just need to think about the movement of money (which you had to do already).


I don't think that is the case. I think it would have to take a deeper understanding of double-entry accounting to really appreciate its genius. The key lies in the double entry that is made for each transaction. While each entry is simple, the beauty lies in how it provides the basis for detecting errors even in very large datasets simply by comparing totals - they must balance. In this context negative numbers do not provide any meaningful information at all.


Yeah, I had basically the same problem with it.


I also kind of like the double column approach with positive numbers, since neither party is exchanging "negative money", so it kind of underscores the balanced nature of the transaction.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: