Disclaimer: If I were a practical person, the below would be a non-issue because I would simply track my income in currency and leave it at that. Please assume at least part of my motivation is just having fun tracking the world the way I see it, and feel free to skip this post if you don't feel like indulging me.
Hi list, The problem: Part of my income is in stock (call it ACME). The way I see it, stock simply goes from my income account to my brokerage account. The way my tax authority sees it, there's some currency involved. I'd like to track my income both ways. Here's my point of view: 2000-01-01 * "Stock is granted" Income:Stock:Grant -1 ACME Income:Stock:Vesting 1 ACME 2001-01-01 * "A year later, I get the stock" Income:Stock:Vesting -1 ACME Assets:Brokerage 1 ACME This is nice because I can make sure all my stock grant and vesting events are accounted for. It's also the way I prefer to think about it. But then tax season comes, and it would have been more convenient if I'd written something like this instead: 2001-01-01 * "Income is in currency, silly" Income:Stock-as-cad -100 CAD Assets:Brokerage 1 ACME Equity:Trade This would let me compare my income to my tax documents in my local currency CAD to make sure they match up. Ideally, I'd like to track both points of view. Has anyone else thought about this? Here's a sort of half-baked solution I'm thinking of using to combine both: 2000-01-01 * "Stock is granted" Income:Stock:Grant -1 ACME Income:Stock:Vesting 1 ACME 2001-01-01 * "A year later, I get the stock" ^vest-2001-01-01 Income:Stock:Vesting -1 ACME Assets:Brokerage 1 ACME 2001-01-01 * "The tax authority sees it differently" ^vest-2001-01-01 Equity:Adjust-for-tax:Income 1 ACME Equity:Adjust-for-tax:Income -100 CAD Equity:Adjust-for-tax:Trade To compute my income from a tax point of view, I can add together Income and Equity:Adjust-for-tax:Income and get -100 CAD. It would be nice if I could get beancount to enforce that the "Equity:Adjust-for-tax:Income 1 ACME" split exactly balances the "Income:Stock:Vesting -1 ACME" split to catch mistakes. I think I could do something like as follows: enforce_internally_balanced Income:Stock:Vesting Equity:Adjust-for-tax:Income:Vesting enforce_internally_balanced Equity:Adjust-for-tax 2001-01-01 * "A year later, I get the stock" Income:Stock:Vesting -1 ACME Assets:Brokerage 1 ACME Equity:Adjust-for-tax:Income:Vesting 1 ACME Equity:Adjust-for-tax:Income -100 CAD Equity:Adjust-for-tax:Trade where "enforce_internally_balanced" would be directive (defined by a new plugin) that enforces that every transaction is balanced within the specified set of accounts. I think something along these lines will work for me, but it feels like a hack. I wonder if there is something better I could be doing. James -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/beancount/CAHpmPOApBb6GyZaiu4fRYVXH%2BVxexnbE8ACLC3pdpTo5E8xJ3A%40mail.gmail.com.
