Setting up first Beancount file - should I separate LLC partnership and personal finances

242 views
Skip to first unread message

CDT

unread,
Feb 16, 2024, 8:51:56 AM2/16/24
to Beancount
Hello,

I'm setting up my first Beancount file and will start with 2024.

Currently I have all of my ledgers in Gnucash but I will probably not export the existing items (yet).

My wife and I have an LLC partnership for a property we rent and we have always kept that in our general Gnucash file that has all our personal items, but we are able to pull an income statement pretty easily from that file for accounting and tax purposes.

My questions are:

1. Should I create two text files - one for the LLC and one for personal items?
2. If I don't create separate files and keep everything in one file, will I be able to easily pull out an income statement for just the LLC items like I can on Gnucash?

Thanks in advance.


c79m...@gmail.com

unread,
Feb 16, 2024, 2:34:18 PM2/16/24
to Beancount
This is something that I've been refining my approach to over the last few years as I learn beancount, and generally get my personal and business finances in order.  

Boring background:   

     In addition to our personal finances, I have a business that transitioned from a sole proprietorship to an LLC taxed as an S-corporation ~3 years ago.  (I own 100%, so I don't have to worry about tracking equity between several owners). Initially, I had a business checking account, but there was quite a bit of intermingling of funds between business and personal credit cards, ebay purchases, etc.  Once the LLC was formed, I've had to be much better about keeping them seperate.

What I'm currently doing:  

     In order to keep the business and personal accounting separate, but still allow an overall view of both (for currently tracking net worth, and historical data where they really were inseparable several years ago), I am splitting the beancount files by both year, and business / personal data.  For older, pre-LLC years, I keep both the business and personal data in the same file, split by year.  Once the LLC was formed, I broke that off into its own file by year.  The resulting data files look like:  combined_2019.beancount, combined_2020.beancount, personal_2021.beancount, business_2021.beancount... etc.

     Then, to look at them usefully, I have top level files that only exist to set various Fava options, and then include the various subfiles.  I have 3 top level files: "personal.beancount", "business.beancount", and "master.beancount".  Personal has include statements for the combined files, and the personal files since the LLC formation.  Business includes just the post LLC files, and Master includes everything.  Then, I can load up any of the three top level files in Fava (I actually have all three permanently loaded on a server that mirrors my personal files, so they're always accessible) and see just what aspect of my finances I'm interested in.

     What has taken me too long to figure out is how to report / book the various transfers between business and personal without making them show up as either expenses or income, and keep Fava's reports sane for any of the three views of the data, depending on how you slice it.   The solution is a an adaptation of the the concept of a "zero sum transfer account"  (I picked this up from someone on this group a few years ago, and it fixed a number of problems for me.)  One of the big problems with beancount was that you can only have one date for a given transaction, while in the real world, your money often spends time in flight where it's not really accessible to you.  If you transfer $100 from your bank account on the 1st, it may not show up in your brokerage account until the 3rd or 4th.  If you're just booking one transaction of Bank Account -> Brokerage Account, then you have to pick one of those dates, and just live with the fact that you're showing money that isn't really there any more, or yet in one of the two accounts.  To get around this, you can split any transfer into two bookings involving a new, made up account that holds and accounts for these "funds in flight".  One posting will be Bank Account -> Assets:Transfers:Brokerage, and the second posting will be Assets:Transfers:Brokerage -> Brokerage Account.  Each posting can have the effective date where your money either was sent, or received, and the "Assets:Transfer:Brokerage" account will only show a balance while the funds are in flight.   This does add some cruft to the files, but in my opinion it's well worth it.  It makes reconciling accounts much easier, as you no longer have any funds mysteriously applied days before or after what your financial institutions have on their statements.  Also, since the transfer account should always have a net zero balance, it helps make sure you're catching both ends of the transaction in case you're importing things automatically.  (Which I, and many others do.)  This is also why it's helpful to have seperate transfer accounts for each actual pair of institutions you transfer between.  You could do it all with one generic "Assets:Transfers", but then when you find an unbalanced transaction, it may be very hard to find out where the missing leg should be.

     Finally, you can adapt the same concept of a transfer account for Personal -> Business transaction, but using the "Equity" base account, rather than "Assets".  This makes sure that when you split the personal and business transactions, you aren't left with unbalanced "Asset" accounts where only half of each transaction is recorded in the current set of data files.  I use "Equity:OwnerCapital", and then further break it down by year i.e. "Equity:OwnerCapital:2023".  Alternatively, you can split incoming and outgoing transfers along the lines of "Equity:OwnerContributions", and "Equity:OwnerDraws"  This would make the flow of money more obvious on the respective personal and business reporting, but it seemed extraneous to me. All I care about, (and the IRS) is how much net money I transferred in or out of the business over the year.  I don't want to report, and then have to sum up inflows and outflows separately.

     This still leaves a minor problem in that the above LLC->Personal capital flows aren't recorded as "Income" in the personal files.  I'm getting around this currently by only recording them as Equity in the business files, and as "Income:LLC:Distributions" in the personal file leg of the transactions.  This makes sure that the views under Fava for either the personal or business files make sense, but essentially double counts the distributions as extra income when viewing everything under the "master" file.  I'm planning to fix this using a plugin from "Red S" called "rename_accounts"  https://github.com/redstreet/beancount_reds_plugins/tree/main/beancount_reds_plugins/rename_accounts   This should allow for on the fly renaming of "Equity:OwnerCapital" to "Income:LLC:Distributions" only when the files are included in the "personal.beancount" file.  But I haven't done this yet, as it's a minor problem.  (I get all the tax info I need from either the personal or business files, while the master only is needed to see our net worth under Assets).

    I should also mention that the above equity transfer is just for funds over and above my salary that I pay myself from the LLC.  (One of the advantages, and requirements of an S-Corporation).  I have a base salary that I pay myself, that is booked as "Expenses:Payroll" in the LLC files, and "Income:LLC" in the personal files.  (There are also taxes split out in the LLC, from the payroll expense, but that doesn't affect the personal side).  The "Equity:OwnerCaptial" is "Income" that is reported as "Other Income" on Schedule 1 when doing taxes, but doesn't show up as "Income" on the Fava reports.

    If you have more than one owner in the LLC, you can easily handle that by splitting the "OwnerCapital" entries into "Owner_A_Capital" and "Owner_B_Capital", etc.   One of the real benefits of beancount, or any of the plain text accounting tools is that you can go back and refine things as your understanding and reporting needs evolve.   Also, with the BQL or beancount query language, it's very easy to extract all kinds of information from your files.  If possible it helps to be fairly granular with sub accounts. It's trivial to query and combine income  or expenses from any and all sub accounts, but if you book everything as just "Income", then you may have a lot of work to suss out LLC income from say W-2 income from another job.  Same applies to expenses.  I have expense postings for both "Expenses:Payroll", as well as "Expenses:Fees:Payroll", and "Expenses:Taxes:Payroll".  That way I can either see every expense related to payroll by querying "Account ~ 'Payroll'", or just fees related to payroll by querying "Account ~ 'Fees:Payroll'", or just how much I'm paying in fees across the board by querying "Accounts ~ 'Fees'".

Hope this helps.

Martin Blais

unread,
Feb 17, 2024, 7:45:21 AM2/17/24
to Beancount


On Fri, Feb 16, 2024, 08:51 CDT <doc...@gmail.com> wrote:
Hello,

I'm setting up my first Beancount file and will start with 2024.

Currently I have all of my ledgers in Gnucash but I will probably not export the existing items (yet).

My wife and I have an LLC partnership for a property we rent and we have always kept that in our general Gnucash file that has all our personal items, but we are able to pull an income statement pretty easily from that file for accounting and tax purposes.

My questions are:

1. Should I create two text files - one for the LLC and one for personal items?

Yes

2. If I don't create separate files and keep everything in one file, will I be able to easily pull out an income statement for just the LLC items like I can on Gnucash?

Use appropriate account names you can filter on and it should be fine



Thanks in advance.


--
You received this message because you are subscribed to the Google Groups "Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beancount+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/70085993-bdc6-4960-9c63-8d5bf6aad7c2n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages