Hacker News new | ask | show | jobs
by omichowdhury 798 days ago
I think you’re missing the balancing that needs to happen that’s internal to each party’s books. That’s where an expense account would come in, using the accounting equation:

               ∆ State = ∆ Change
                       ↓ 
  Assets - Liabilities = Income - Expense
For example you had:

> 3. The employee submitting their expense report (invoice) to the company for reimbursement (liability to the company, asset to the employee)

So looking just at the company’s books:

  $0 Asset - $100 Liability = $0 Income - $100 Expense
                -$100 State = -$100 Change
Then in step 4: > The employee getting paid by the company for the incurred expense (company converts asset into a discharge of liability, employee converting receivable into cash)

The company’s books would be:

  -$100 Asset + $100 Liability = $0 Income - $0 Expense
                      $0 State = $0 Change
So the net impact on the ledger would be (putting these entries together):

  -$100 Asset - $100 Liability + $100 Liability = $0 Income - $100 Expense
                     -$100 Asset - $0 Liability = $0 Income - $100 Expense
                                    -$100 State = -$100 Change
Which is exactly what the company’s books would have recorded if they were using cash accounting instead of accrual. They spent $100 on an Expense.

So I think it’s super important to make a distinction between Liability and Expense Accounts because they’re on different sides of the accounting equation - State and Change. The same distinction applies to Asset and Income Accounts. [1]

[1] https://fragment.dev/docs#design-your-ledger-ledger-accounts

1 comments

You're right, I did leave that out. But you also left something out: equity. The real equation is that ∆ State = ∆ Change = ∆ Equity. So there are really three things that need to balance (or four or six if you consider the counterparty's books and depending on how you count). But the income/expense really has nothing to do with the actual transactions, they have to do with the arcane rules around paying your taxes as a business entity, where you can be taxed on income you haven't actually received yet, and deduct expenses you haven't actually paid yet, or not be allowed to deduct expenses you have paid until long after you've actually paid them (depreciation). This is generally not applicable to individuals running lemonade stands. This is (and I know you know this) the difference between cash and accrual accounting. Those terms hide the fact that the difference between these two is mostly a reflection of tax law.

Accrual is also a way of doing implicit projections into the future, which made sense back when accounting was done with pen and paper, and payments could not be initiated by the payee. In that world, there was no such thing as (for example) an automatically renewable subscription. Today there is. How would you account for signing up for such a subscription? Theoretically, an open-ended automtically renewable subscription is an infinite liability (unless you start taking interest rates into account, but of course no one does that because no one knows what interest rates are going to be in the future). The Right Way to do this is to keep track of it as an infinite series of transactions with time stamps, which would be impossible to do with pen and ink, but is trivial for a computer.