On Mon, Feb 5, 2018 at 9:39 PM, Martin Blais <[email protected]> wrote:
> On Thu, Feb 1, 2018 at 2:00 PM, Jeremy Maitin-Shepard <[email protected] > > wrote: > >> How about booking shared expenses to an Expenses:Joint:Rent (or similar) >> account? If you want to keep track of joint expenses that your girlfriend >> paid for, you could make the source account: Equity:Girlfriend-Paid or >> something similar? >> > > You don't want to reflect the other person's expenses on your income > statement. > Or maybe I don't understand the particular transactions you envision > (provide a detailed example if you like). > My understanding is that the OP wanted to track the total expenditure on rent. How should that be done if not by having an Expense account containing the total rent payments? I guess to make the income statement work it should be Income:Girlfriend-Paid rather than Equity:Girlfriend-Paid. > > >> >> Tags on accounts (or postings?) would be a nice thing to have. >> > > Metadata is supported at the moment. > Maybe a grammar redesign where either transactions AND postings both > support tags might be a good idea. > The thing is, I think it should be accompanied by a refactoring that > automatically merges tags into the metadata, perhaps with just a boolean > value. > I guess the question is to what extent is it possible to tailor the representation/semantics assigned by beancount to common use cases so that we get useful behavior out of the box (e.g. from fava) without having to code it ourselves either in Python or complicated queries. Maybe the use cases are too varied for that to be possible, though. > > > >> Using tags on transactions for this purpose seems like a hack. >> > > Oh no! It's exactly the type of usage it was designed for. > For your #kid tagging example, suppose you bought a couple different items as CVS, some for yourself, and some for your kid. Presumably you'd want to split the expense part into multiple postings, but you'd need a way to tag individual postings as being associated with the kid or not. I'm guessing you probably try to use a separate credit card transaction for your kids expenses, in order to avoid this problem, and avoid having to manually split the expense, but it still seems like any general approach should support this -- that is what I mean by a hack. In particular, why not use an Expenses:Kid:Pharmacy account instead of the rewriting? > > > >> >> Account tags can be simulated by just adding more colon-separated >> components, but that is annoying in various ways. >> > > Yep indeed. > > > >> >> On Mon, Jan 29, 2018 at 7:52 PM, Martin Blais <[email protected]> wrote: >> >>> On Mon, Jan 29, 2018 at 2:13 PM, Stefano Zacchiroli <[email protected]> >>> wrote: >>> >>>> On Mon, Jan 29, 2018 at 12:59:04PM -0500, Martin Blais wrote: >>>> > On Mon, Jan 29, 2018 at 12:50 PM, Simon Michael <[email protected]> >>>> wrote: >>>> > > Congrats, Martin!! >>>> >>>> Ditto! >>>> >>>> > > Gonna present him with his ledger on his 18th birthday ? (Yikes :-) >>>> >>>> So, *cough* I'm actually doing the same think for my kid *cough*, with a >>>> tag for each transaction that is related to him. >>>> >>>> (Digression: the fact that you need the tag to be short looks like due >>>> to the current Beancount limitation of having to put tags on the same >>>> line of payee/description, which can get pretty long. I'm still doing >>>> this in Ledger-CLI --- and generating a beancount automatically from it >>>> for Fava and SQL-ish queries --- where tags can be on subsequent >>>> (comment) lines so the tag can get long-ish, without being too much of a >>>> hassle.) >>>> >>> >>> I could do this using metadata (and change the scripts), same same. >>> In fact, I could put the metadata on the postings instead of the >>> transaction, which would be more flexible. >>> >>> >>> But I'm not exactly sure to understand what's the benefit of Martin >>>> rewriting plugin --- aside from showing off the beautiful data >>>> model/flow that Beancount offers and which I love, that is :-)). Even >>>> with just a simple tag, I can filter all transactions with a simple >>>> query, and get a current balance (or filtered ledger, or whatever), >>>> where the categories are the "right" ones, in the sense that grocery >>>> would be (baby-related) Expenses:Grocery, clothes Expenses:Clothes, etc. >>>> >>> >>> My goals are different. On my personal ledger I don't want to see my >>> son's expenses categories. It wouldn't make much sense because my mix of >>> payments differs from the total costs associated with his maintenance. Say, >>> for example, that I tend to pay for all the nanny stuff and the mother pays >>> for all the food stuff. I would see a lot of nanny stuff on my balance >>> sheet, and no food expenses. The reality is that I pay for a good portion >>> of everything, and my son's ledger will more accurately reflect that >>> breakdown, and my costs are some fraction of that. So I choose not to track >>> this on my personal one, and I replace all these expenses by a single >>> account. >>> >>> Another way of doing what you do (and FWIW that's what I was going to do >>> originally), is to create a plugin that inserts a root for your kid in the >>> account name. For example, Expenses:Grocery could become >>> Expenses:Kid:Grocery, and so on. This way your balance sheet doesn't blend >>> your Grocery and your kid's. >>> >>> >>> What am I missing here? >>>> >>> >>> Let me provide a full example, and this should serve to clarify for >>> others as well. >>> >>> In my personal Beancount ledger, I import a transaction like this: >>> >>> 2018-01-26 * "CVS" "Pampers size 1" >>> Liabilities:CreditCard -30.17 USD >>> >>> I categorize it manually as I currently do, and while doing that, I also >>> notice it's for my kid. I insert a tag, so this is what I write: >>> >>> 2018-01-26 * "CVS" "Pampers size 1" #kid >>> Liabilities:CreditCard -30.17 USD >>> Expenses:Pharmacy >>> >>> Note here that my categorization books to the same set of account which >>> I use for myself. That "Pharmacy" account is the same as mine, but it won't >>> show up there. >>> The beancount.plugins.divert_expenses plugin renames that to this >>> automatically: >>> >>> 2018-01-26 * "CVS" "Pampers size 1" #kid >>> Liabilities:CreditCard -30.17 USD >>> Expenses:Kid >>> >>> Now, when I filter and extract his transactions from my personal ledger >>> using the extract_beancount script, I have to disable the plugin (I just >>> realized this bit is missing, will code it right away) when I read it, and >>> instead change the inflow account, so it becomes this: >>> >>> 2018-01-26 * "CVS" "Pampers size 1" #kid >>> Income:Dad -30.17 USD >>> Expenses:Pharmacy >>> >>> Furthermore, the Google Sheets script which imports the mother's >>> expenses produces something like this: >>> >>> 2018-01-26 * "Union Mkt" "Baby food" #kid >>> Income:Mom -15.36 USD >>> Expenses:Grocery >>> >>> And his ledger includes both of these files. >>> There are no assets (yet), and two income accounts. >>> Optionally, I could attempt to maintain the particular source of the >>> payments on his side (e.g. Income:Dad:CreditCard1). >>> >>> I hope this helps, >>> >>> >>> >>> >>>> >>>> Cheers. >>>> -- >>>> Stefano Zacchiroli . [email protected] . upsilon.cc/zack . . o . . . o . >>>> o >>>> Computer Science Professor . CTO Software Heritage . . . . . o . . . o o >>>> Former Debian Project Leader & OSI Board Director . . . o o o . . . o . >>>> « the first rule of tautology club is the first rule of tautology club » >>>> >>>> -- >>>> 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/20180129191325.GB29678%40upsilon.cc. >>>> 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/CAK21%2BhOCrCWTza%2B54BPLoax4zCuEjza_c3Gd53pLB >>> 12pT86Zsw%40mail.gmail.com >>> <https://groups.google.com/d/msgid/beancount/CAK21%2BhOCrCWTza%2B54BPLoax4zCuEjza_c3Gd53pLB12pT86Zsw%40mail.gmail.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/ms >> gid/beancount/CAKJfoCEif%2B95CXmdAVHt-gmo62A43opfqH7E2oRtO% >> 2BMS5WP%3DDA%40mail.gmail.com >> <https://groups.google.com/d/msgid/beancount/CAKJfoCEif%2B95CXmdAVHt-gmo62A43opfqH7E2oRtO%2BMS5WP%3DDA%40mail.gmail.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%2BhNw1wRL%3DeHErJ%3D%2BGN6poEfs%3Dt29G3Zif_%3DPb% > 2Bk59N896Q%40mail.gmail.com > <https://groups.google.com/d/msgid/beancount/CAK21%2BhNw1wRL%3DeHErJ%3D%2BGN6poEfs%3Dt29G3Zif_%3DPb%2Bk59N896Q%40mail.gmail.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/CAKJfoCHS%2BrO7T5HRiTR9B_t6TymnTEmswAZYGe7AKfLuxr7fFQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
