https://bitbucket.org/blais/beancount/commits/d21ed26280ccebcb5e034a86e33ce6c5b842b858 Works great!
On Sat, Jan 27, 2018 at 1:04 AM, Martin Blais <[email protected]> wrote: > On Wed, Jan 24, 2018 at 7:25 AM, <[email protected]> wrote: > >> Hey, >> >> Sorry all for the very slow response. The holiday period got the better >> of me. >> >> All of these methods you've mentioned seem to only count half the cost on >> your own accounts though and the other half is counted against a generic >> account for your partner or roommate? What I would like to do is to count >> the full amount of our shared apartment expenses against a shared account >> and then possibly balance this shared account with payments from each of >> us. The reason I'm interested in doing it this way is that I'd like to get >> a clear picture of the actual cost of our living arrangement so that we can >> evaluate it against other apartments for example. If we always did split >> everything in half then I could use the way you described and just multiply >> either share by 2 and I'd got the full cost but the parts we pay vary quite >> regularly. >> > > Yes, this is interesting, and I've done this in the past for a common > project with someone else. Essentially, I would record the transactions > twice: once for my half in my own personal ledger, and once again with the > full amount in a separate, shared ledger. There was also some shared > account to update. For the shared account I ended up splitting the income > legs manually, and copy-pasting + editing to replicate to my personal > account. That's not the best, it was too much manual work and it was > annoying (but it worked). > > However, that being said, I'm currently gearing up for doing this once > again and better this time around, especially since I'll have a lot less > time to do this type of stuff. We just gave birth to a baby boy, and call > me neurotic, but I'm planning to track all his related expenses separately > to do just what you described. In other words, on my personal ledger, all > expenses for my kid should appear to a single Expenses account to his name. > For instance, my "Food" total should account for just the food I consume, > not that which he does. His expenses should appear on my income statement > as an outflow of general costs related to his maintenance, or perhaps just > a few high-level accounts. This is more accurate as Mom will inevitably end > up paying for different types of thing than Dad will. On the shared ledger, > those same expenses will appear to their respective categories (e.g. "Food" > will be his food this time around, and just his) and that should give a > full picture of his costs, paid for by Mom and Dad, which is more > interesting that just the parts which I happened to have paid for. I think > this is similar to what you need to do. > > Here's how I'm planning to implement this, this time around: > > - I want to stop recording transactions twice, as it required some > annoying manual synchronization and editing. Instead, in my personal > ledger, I will record expenses for my kid to categories as if they were my > own, but tag transactions with a special and very short tag (there will be > many). A plugin will convert the expenses accounts of those transactions to > a single generic account to his name, as described above. > > - I'll write a script that will pull out these transactions from my ledger > and instead of transforming the Expenses account this time, it will > transform the other (assets or liabilities accounts) postings to a generic > "inflow" contribution account from his father. That will output some other > file in Beancount format. > > - Similarly, I'll also write another script that will pull information > from a spreadsheet for his mother's expenses related to him. She doesn't > maintain her own Beancount file - alas! - but can hopefully put her > expenses for him on a spreadsheet, manually. That script will convert this > Google spreadsheet to a Beancount file for his Mom's contributions, booked > against a similar inflow-from-Mom account. > > - Finally, I'll create some top-level Beancount file that will contain > common definitions and such and which will include the two dad.beancount > and mom.beancount file. That should form his dataset with his own report. > > I made a little diagram to show this flow more clearly: > https://docs.google.com/drawings/d/18fTrrGlmz0jFbfcGGHTffbdRwbmST > 8r9_3O26Dd1Xww/edit?usp=sharing > > Now, one remaining question regards whether those conversion scripts ought > to always reconvert the entire set of transactions. I think the answer to > that is: no. For instance, once imported, spreadsheet lines which have been > accounted for in the mom.beancount file can be safely ignored. Mom can > delete the spreadsheet contents once the transactions have been included. > That's a choice, however, it doesn't have to be that way, but if it didn't, > I suspect the spreadsheet would grow very large. Also, not reimporting and > doing some sort of fuzzy matching between the spreadsheet or > personal.beancount file contents to identify those transactions which have > already been imported would allow me to do minor manual edits to the > imported transactions, such as adding comments or tags, or perhaps the > occasional refinements to categorization. Now someone more pedantic might > choose to set this up such that the "pristine" source of transaction is > always the upstream personal.beancount ledger and the Mom spreadsheet, and > that those files be always recreated entirely from scratch. That's also a > valid design, it just sets a higher level of dedication over time to those > pristine sources. > > Hopefully, if time allows - between moments patting the kid to sleep and > feeding him bottles and responding to his cute noises and trying to guess > the particular origins of his numerous and often unexplained dramatic > wailing moments - you should eventually see some of these scripts appear > under beancount/experiments/ > > > > > Cheers, >> Andreas >> >> >> On Sunday, December 24, 2017 at 1:57:54 PM UTC, Dominik Aumayr wrote: >>> >>> To give another example: My partner uses Beancount and Fava ( >>> https://beancount.github.io/fava/) as well, and we both have a >>> Liabilities-account for each other. So if I buy something that belongs to >>> her but I pay, I create an according transaction (eg. Assets:CreditCard and >>> Liabilities:Partner), and she does the same in the opposite direction. For >>> expenses that are split between us half of it goes to my Expenses account, >>> and half to her Liabilities account (eg. Assets:CreditCard, Expenses:Rent >>> and Liabilities:Partner). >>> >>> At the end of each month we both compare the balance of her >>> Liabilites-account in my journal, and mine in her's, and make a balancing >>> (real) transaction accordingly. >>> >>> After we do that, I wrote an exporter/importer for Fava that >>> (a) is used to export a report from my Journal with her >>> Liabilities-account and it's transactions in the last month, and >>> (b) is used to import this file with transactions (beancount-format!) >>> into her journal (via a Fava importer). >>> (c) vice-versa for her >>> >>> This way, we both have all the transactions concerting both of us in >>> each of our journals, and a way to correct them if something is not >>> clear/wrong. Sounds like a little bit of work, but configured the right way >>> (talking about the importer) and this is a 2-minute task each month. >>> >>> Best, >>> Dominik >>> >>> >>> > Am 24.12.2017 um 07:03 schrieb Martin Blais <[email protected]>: >>> > >>> > I do this too - my partner and I share most expenses - and the simple >>> way is to create for your girlfriend an assets account (if she generally >>> pays after the fact) or a liabilities account (if she generally pays ahead >>> of time), and then to use the SQL client to generate a journal of that >>> account to list all that was posted and compute the current balance (ours >>> gets uploaded to a Google Sheets doc where she can review it for errors or >>> unexpected items). When your girlfriend/roommate makes transfers to pay for >>> those shared expenses incurred on your side, you post the payment against >>> that account. It's really convenient to have that account as you can use it >>> for any other purpose, e.g., transfers, gifts, etc. "I'll just put it on >>> your account," you can say. It's purely an electronic transaction between >>> the two of you; the actual reconciliation is a separate concern. >>> > >>> > The other side of this coin is a bit more complicated though. I'm >>> referring to the expenses which she pays for and which you do have to >>> transfer to her. You can use the same account, but you need to find a way >>> for her to communicate those expenses to you, so you can reduce the account >>> accordingly. We use a Google Sheets document that she updates, and I simply >>> update my corresponding transactions from that doc (I haven't automated >>> getting all the details from it yet to create transactions, but it's >>> doable). One challenge, you may find, is that your partner forgets to >>> update the doc (and therefore doesn't always get the corresponding >>> reimbursement). That's an ongoing issue; I have no solution for it other >>> than to remind. >>> > >>> > >>> > >>> > >>> > On Sun, Dec 17, 2017 at 9:27 AM, <[email protected]> wrote: >>> > Hey, >>> > >>> > I'm trying to figure out a good simple strategy that allows me to >>> track expenses that I share with my girlfriend. We live together and we >>> have two types of shared expenses: the ones for our apartment like rent and >>> utilities and the ones where usually I pay for something for the both of >>> us. >>> > >>> > For the first type of transactions I don't care about the balance >>> between us, she pays a fixed amount into my account from which most bills >>> go out from each month. I do however care about having accurate tracking of >>> these expenses so I can tell what our fixed monthly expenses are. For >>> example, I want the full rent and cost of all the utilities to show up >>> among my expenses. At the moment I'm tracking this using regular expense >>> accounts which I create posts against whenever I pay our rent for example. >>> I post the transactions where my girlfriend sends me the fixed amount as a >>> special income account and I'm pretty happy with this solution (I think). >>> > >>> > I currently have no solution that I'm happy with for the second type >>> of transactions. These transactions usually occur at an irregular basis and >>> the amounts vary wildly and I always care about maintaining some sort of >>> balance but whether I care about tracking the full value to an expense >>> account or not varies. For example, if I pay for a pair of shoes she wants >>> because she doesn't have any money in the currency then I'd want to keep >>> track of the balance she owes me but not the expense. However if we go and >>> buy Christmas decorations and I pay then I'd want to record the full amount >>> to an expense account and half of the amount to an account that represents >>> the money my girlfriend owes me. Preferably I'd like to track the balance >>> between me and my girlfriend as an asset account as that to me seems like >>> the quickest way to at a glance tell the status between us (but I may be >>> wrong). >>> > >>> > I was playing around with using an intermediate liability account (see >>> bellow) and I think I could calculate the balance between us with a query >>> but since we already have a history and I just started using beancount I >>> have no account to post the current balance against and future payments to >>> balance this would be harder to track without an asset account? >>> > >>> > 2017-11-26 * "Christmas" >>> > Expenses:Home:Decoration 30 GBP >>> > Liabilities:Shared -30 GBP >>> > >>> > 2017-11-26 * "Christmas" >>> > Liabilities:Shared 30 GBP >>> > Liabilities:Amex -30 GBP >>> > >>> > Does anyone have any idea on how to track this in a neat way, >>> preferably without plugins. And yes I've read the expense sharing cookbok >>> but didn't see any solution I was perfectly happy with :). >>> > >>> > Cheers! >>> > Andreas >>> > >>> > -- >>> > 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 [email protected]. >>> > To post to this group, send email to [email protected]. >>> > To view this discussion on the web visit >>> https://groups.google.com/d/msgid/beancount/4b167c55-e651-4d >>> 93-a2a1-cebd41813a59%40googlegroups.com. >>> > For more options, visit https://groups.google.com/d/optout. >>> > >>> > >>> > -- >>> > 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 [email protected]. >>> > To post to this group, send email to [email protected]. >>> > To view this discussion on the web visit >>> https://groups.google.com/d/msgid/beancount/CAK21%2BhP3DgZOr >>> 62enBFA%2ByyW68bdGYHMh%3DpfqfgKhc5WHF9VZA%40mail.gmail.com. >>> > For more options, visit https://groups.google.com/d/optout. >>> >>> -- >> 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 [email protected]. >> To post to this group, send email to [email protected]. >> To view this discussion on the web visit https://groups.google.com/d/ms >> gid/beancount/c228fb07-b004-47d2-a294-5d411e7fbb6b%40googlegroups.com >> <https://groups.google.com/d/msgid/beancount/c228fb07-b004-47d2-a294-5d411e7fbb6b%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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 [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/CAK21%2BhNc_Kqd2HF5VRJzAa-WsuSiit3uHNqDTRmtR9qqRyub3Q%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
