> (Discussion of connecting separate ledger..)
Using an imaginary third account is one of the common ways to bridge two accounts, so that the transactions don't duplicate each other if coexisting as one ledger. I think you covered this as one of your options.
Speaking from my own setup: I keep separate business and personal account trees. I keep them in the same journal file(s) for convenience, but with the idea that they could be separated into completely separate files at any time. My convention is a two letter entity (owner) code at the top, so eg:
JS # joyful systems, business
assets
liabilities
equity
revenues
expenses...
sm # me, personal
assets
liabilties
...
This generalises nicely to owning multiple businesses, etc.
These account names defeat hledger's account type detection, so you have to declare those to make some reports work:
account JS:assets ; type:A
account JS:liabilities ; type:L
...
Now I do have one or two accounts connecting these entities, and in that case I do have to mirror the account on both sides, which is a little tedious, but keeps things clear. Eg:
account JS:liabilities:payable:sm:reimbursement
; money owed to sm for business use of personal funds (or if positive, due from sm for personal use of business funds)
account sm:assets:receivable:JS:reimbursement
; money due from JS for business use of personal funds (or if negative, owed to JS for personal use of business funds)
and a typical transaction:
2023-07-18 * Signal Foundation | RECURRING PAYMENT AUTHORIZED ON 07/17 SIGNAL FOUNDATION
SIGNAL.ORG CA S323121942458599 CARD XXXX
sm:assets:bank:wf:pchecking $-5.00
sm:assets:receivable:JS:reimbursement $5.00
JS:liabilities:payable:sm:reimbursement $-5.00
JS:expenses:dues $5.00
Does this help ?