I'm sorry for not replying sooner! I meant to reply but then your message got lost
in my inbox & I forgot about it until now. :(
> I would like to separate these two areas in Ledger, too. Ideally, I'd
> like to be able to see a "private" report, a "business" report or
> a "total" report.
I just started using ledger earlier this year to help my wife manage the books for
her contracting business. Here's what I've come up with so far; works for us, but
like you I'm interested in hearing if others have other tips for making this easier:
* In my top-level directory I have two files named 2019.ledger and 2020.ledger, and
two directories named 2019/ and 2020/. 2019.ledger looks like this (2020.ledger
looks similar):
include 2019/business.ledger
include 2019/personal.ledger
* 2019/business.ledger looks like this:
include business-opening-balance.ledger
2019-01-01 * Secretary of State
Expense:<business name>:Articles of Incorporation $250.00
Asset:<business name>:Checking
2019-01-15 * Client #1
Asset:<business name>:Checking $1,000.00
Income:<business name>:<client name>:<project name>
2019-01-15 * My Wife
Expense:<business name>:Payroll $500.00
Asset:<business name>:Checking
...
* 2019/business-opening-balance.ledger looks like this:
2019-01-01 * Opening balance
Asset:<business name>:Checking $0.00
Equity:<business name>:Opening Balance:2019
* 2019/personal.ledger looks like this:
include personal-opening-balance.ledger
2019-01-15 * My Wife
Asset:Personal:Checking $500.00
Income:<business name>:Salary
...
* 2019/personal-opening-balance.ledger looks like this:
2019-01-01 * Opening balance
Asset:Personal:Checking $1,234.56
Asset:Personal:Savings $9,876.54
Equity:Personal:Opening Balance:2019
Hopefully, that gives you some idea of how you can manage business & personal finances
in separate files but still combine them to give a picture of your overall finances.
If you want to see all of your 2019 balances you run: ledger -f 2019.ledger balance.
If you want to see only your 2019 business balances you run: ledger -f
2019/business.ledger balance.
In my opinion, the two keystones that hold everything together are the liberal use of
ledger's include directive, and the use of Personal or <business name> as the 2nd-level
account name in all transactions. What I discovered through trial and error is that
having that 2nd-level disambiguator is really useful when you need to track the flow of
money from the business account to your personal account: Income:<biz>:... =>
Asset:<biz>:Checking => Expense:<biz>:Payroll => Income:<biz>:Salary =>
Asset:Personal:Checking.
Things that I don't like about this scheme are: 1) I have to manually compare
Expense:<biz>:Payroll and Income:<biz>:Salary in balance reports to confirm they
balance to zero, 2) I have to be extra diligent about entering payroll in both the
business & personal ledger files without interruption or else I'll forget where I left
off and then have to compare the two side-by-side in my text editor to make sure I
didn't miss any transactions. For 1) I don't think you can avoid having to manually
compare the two, because if you actually synthesize transactions that balance
automatically then I think it makes your job harder at tax time when you need to figure
out your total payroll expense for the year. If I'm wrong about that and there is a
way to create transactions that balance automatically and have a way for ledger to
report the total cost of one expense category I'd love to hear it! For 2) I think
that's just the cost of trying to track business & personal expenses in separate files,
and at this point I've built up enough scripting to help automate a lot of my workflow
that it's not been a problem for me in a while.
Hope that helps! I'm happy to answer questions you may have if I did a poor job
explaining any parts of that, and I'd also love to hear other hints & tips others
might have to improve it.
Best,
Kent