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

You'd have 5 main accounts there.

  Income:Job
  Asset:Bank1
  Asset:Bank2
  Expenses:whatever
  Liabilities:whatever
And then each transaction moves the money from one account to another. Income->Asset, Asset->Expenses, etc. Value moves into the system from income, Expenses are (more or less) transactions where value moves out of the accounting system. You track your salary but probably not the hours you work and that you spent $50 on food (Asset->Expenses:Food) but not the food.

Equity is mostly just the offsetting account for balances that aren't tracked more specifically. So beginning balances are booked against equity instead of coming from some source of income.

Liabilities are amounts that you owe. When you buy something on credit, you are receiving the thing, so you book a transaction (booking an expense against the liability). Then later you book another transaction to pay for the thing (booking a decrease in assets against the liability).

Accounts receivable and accounts payable come up because businesses care about how (and when) they recognize payments and non payments and so on. For personal accounting just put money you owe as a liability and money you are owed as an asset.



Thanks for this outline. I've been a happy user of Ledger for several months now, but have been stymied about how to model a scenario in which several family members pay me in advance for a bill we collectively owe that's payable in the future, and in which their payments end up in my checking account. I now see that I should have set up the future sum payment as a local, temporary liability, each family member's deposit payments to me as a local, temporary asset other than my checking account (making my local checking balance diverge from that reported by my bank -- but to my benefit!), then the future sum payment as a transfer from the local temporary asset to the local temporary liability, and bringing all accounts to their correct balances and realigning them with my bank.

So, again, thanks a lot for that last line, which helped me out.


I'd want to keep my checking account in ledger and real world matching. So either use a virtual account to indicate that some money, while existing in checking, is actually allocated to something else (this is a budget, basically). You can also create asset accounts for what people owe you. Once they pay you you move it from what they owe you to your checking account. For this one, you might have a couple transactions like:

  2018/06/01 Roommate owes me
      Assets:Accounts Receivable       100.00 USD
      Income:Roommate
  2018/06/06 Roommate paid me
      Assets:Checking                  100.00 USD
      Assets:Accounts Receivable
You can drill down another level to add who owes you the money, or perhaps tag it.

The end result is that your checking account is always accurate. Then, as maxerickson says, use virtual accounts to handle mark where the needs to go next or what it's intended for. Also examine ledger's budgeting capabilities for this.

https://www.ledger-cli.org/3.0/doc/ledger3.html#Effective-Da...


Thanks for the detailed recommendations! I've read the documentation on virtual accounts but haven't wrapped my mind around them yet. I'll have another go at it.


You could use virtual accounts for that, posting the received funds to your checking account and also to a virtual account that you eventually balance with the purchase (which would also have both real and virtual postings).


It's easy to confuse "virtual accounts" (imaginary accounts or subaccounts) with "virtual postings" (unbalanced postings), but remember these are different things with different uses. You can post to either kind of account with either kind of posting.


Thanks. I've had a hard time understanding the documentation on virtual accounts, but I'll have another look at it.




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

Search: