State Accounts track your net worth
Assets: what you own
Liabilities: what you owe
Change Accounts track why your net worth changes Income: what you've earned
Expense: what you've spent
The accounting equation that follows is ∆ State = ∆ Change: Assets - Liabilities = Income - Expense
Selling lemonade is +$5 Asset balanced by +$5 Income.
If you substitute into the equation, it's: $5 Asset = $5 IncomeTaking out a loan is +$10 Asset balanced by +$10 Loan. In the equation: $10 Asset - $10 Liability = $0.
In general, say you have a +Asset action, to balance the equation you can do it 4 ways:
+Asset -Asset aka swapped for equal value
+Asset +Liability aka took out a loan
+Asset +Income aka sold something
+Asset -Expense aka got a refund
I've left out Equity as a separate account type since you can just treat it mathematically as a Liability account.This is the system we've implemented in our ledger API (https://fragment.dev)