Tracking different ways of accounting at the same time?

243 views
Skip to first unread message

James Cook

unread,
May 27, 2020, 3:48:42 PM5/27/20
to bean...@googlegroups.com
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

Martin Blais

unread,
Jul 25, 2020, 2:19:51 AM7/25/20
to Beancount
On Wed, May 27, 2020 at 3:48 PM James Cook <jc...@cs.berkeley.edu> wrote:
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

This is strange, for two reasons:
- You're booking the grant as shares, while you only received a promise of shares. For that reason I suggest another commodity name. I use ACME.UNVEST.
- You're accumulating them in an Income account. The open and close clauses of the query language don't treat income accounts like asset accounts.

  
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.

This is also incorrect because when your shares vest, they vest at a particular cost.
You should include the cost basis on that second posting.

 

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.

If you declare the cost, it'll for you to balance it that way.
 

Ideally, I'd like to track both points of view. Has anyone else
thought about this?

I use another commodity which has a price of zero and keep the unvested shares in an Assets account.
ACME.UNVEST, or ACME.GRANT or some other name you like
ACME (at cost)
 

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

Urg... avoid using Equity accounts
Do this instead:

2000-01-01 * "Stock is granted"
  Income:Stock:Grants                             -32 ACME.GRANT
  Assets:Stock:Grants:C123456                      32 ACME.GRANT

;; Note the dedicated account to hold unvested units of a particular grant.                                                  
;; This way you can know when the grant has completed vesting.                                                                

;; You can also book a price of "unvested dollars" so you'll see the total                                                    
;; unvested amount in those units on your balance sheet.                                                                      
2000-01-01 price ACME.GRANT     123.00 CAD.UNVESTED


2001-01-01 * "A year later, I get the stock" ^vest-2001-01-01
  Assets:Stock:Grants:C123456                     -2 ACME.GRANT
  Expenses:Grants:Vested                           2 ACME.GRANT
  Income:Stock:Vesting                            -262.00 CAD
  Assets:Brokerage                                 2 ACME {131.00 CAD}

;; Income:Stock:Grants tracks how many shares were granted                                                                    
;; Assets:Stock:Grants:C123456 tracks the remaining unvested shares in your gtrant                                            
;; Expenses:Grants:Vested tracks how many shares were vested                                                                  
;; Income:Stock:Vesting tracks the amount (in dollars) of vesting, to be reported as ordinary income                          
;; Assets:Brokerage tracks your shares, at cost                                                                               



 
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.


See above


 
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 beancount+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/CAHpmPOApBb6GyZaiu4fRYVXH%2BVxexnbE8ACLC3pdpTo5E8xJ3A%40mail.gmail.com.

James Cook

unread,
Oct 5, 2020, 10:58:40 PM10/5/20
to bean...@googlegroups.com
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

FYI: I wrote a plugin for this a while ago. You can find it at


Hopefully the comment at the top of the file makes sense.

I've used it to record some of my pay statements. I haven't really tested the usefulness of the representation, but I can say at least the output of the plugin matches the way I want to model things. Maybe it will help someone else too.

James

Manuel Amador (Rudd-O)

unread,
Nov 24, 2020, 12:50:29 PM11/24/20
to James Cook
You need different symbols for unvested and vested stock because they are literally not the same objects.  Then when you vest you book an Income to offset the zero value of the invested stock.

Oct 6, 2020 04:58:42 James Cook <jc...@cs.berkeley.edu>:

--
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.

James Cook

unread,
Nov 25, 2020, 6:23:51 PM11/25/20
to bean...@googlegroups.com
On Tue, 24 Nov 2020 at 17:50, Manuel Amador (Rudd-O) <rud...@rudd-o.com> wrote:
> You need different symbols for unvested and vested stock because they are literally not the same objects.

This seems like a question of how you want to look at it. I like to
imagine the ACME stocks are first created in a "vesting" pool I don't
have access to, and pass into my account from there X years later. I'm
sure there are other ways to think of it.

> Then when you vest you book an Income to offset the zero value of the invested stock.

To be clear, I feel this is no longer a problem for me. I wrote a
plugin that does things the way I like, whether or not it's the most
sensible.

Still, I'm curious what you mean. What you're saying sounds a bit like
the following transaction, which I included in my original email; is
that what you had in mind? (What "zero value" is being offset?)

2001-01-01 * "Income is in currency, silly"
Income:Stock-as-cad -100 CAD
Assets:Brokerage 1 ACME
Equity:Trade

(Note I've made the decision to use an explicit trading account, for
better or for worse.)

James
> To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/acc36f4d-b3b5-4d5e-b9e3-9561fc4ce687%40rudd-o.com.

Martin Blais

unread,
Nov 25, 2020, 8:28:40 PM11/25/20
to Beancount
On Wed, Nov 25, 2020 at 6:23 PM James Cook <jc...@cs.berkeley.edu> wrote:
On Tue, 24 Nov 2020 at 17:50, Manuel Amador (Rudd-O) <rud...@rudd-o.com> wrote:
> You need different symbols for unvested and vested stock because they are literally not the same objects.

This seems like a question of how you want to look at it. I like to
imagine the ACME stocks are first created in a "vesting" pool I don't
have access to, and pass into my account from there X years later. I'm
sure there are other ways to think of it.

Given that this type of arrangement is on a rolling basis - you will get more grants over time, with straddling periods - you're pretty much guaranteed at some point or other to leave some on the table (do you hold a corresponding liability for this just in case?). Moreover, the value of these shares really hasn't been taxed yet, so it needs to be discounted as much, because when you do receive it, it'll be income and thus taxes. Finally, you're accounting for income coming in from... an asset account, and to me, that's weird. These are good arguments against that approach. It's more rational to think of those as not really on your balance sheet yet, and to (ac)count it using some other unit.

But worry not, Beancount will allow you to do it the way you want.

 
 

James Cook

unread,
Nov 25, 2020, 11:15:05 PM11/25/20
to bean...@googlegroups.com
On Thu, 26 Nov 2020 at 01:28, Martin Blais <bl...@furius.ca> wrote:
On Wed, Nov 25, 2020 at 6:23 PM James Cook <jc...@cs.berkeley.edu> wrote:
On Tue, 24 Nov 2020 at 17:50, Manuel Amador (Rudd-O) <rud...@rudd-o.com> wrote:
> You need different symbols for unvested and vested stock because they are literally not the same objects.

This seems like a question of how you want to look at it. I like to
imagine the ACME stocks are first created in a "vesting" pool I don't
have access to, and pass into my account from there X years later. I'm
sure there are other ways to think of it.

Given that this type of arrangement is on a rolling basis - you will get more grants over time, with straddling periods - you're pretty much guaranteed at some point or other to leave some on the table (do you hold a corresponding liability for this just in case?). Moreover, the value of these shares really hasn't been taxed yet, so it needs to be discounted as much, because when you do receive it, it'll be income and thus taxes. Finally, you're accounting for income coming in from... an asset account, and to me, that's weird. These are good arguments against that approach. It's more rational to think of those as not really on your balance sheet yet, and to (ac)count it using some other unit.

The "vesting" account is under Income. The lifecycle is Income:Stock:Grant -> Income:Stock:Vesting -> Assets:something. So, if I squint a bit and pretend the whole "Income" tree is one account, nothing actually happens until it vests.

(I'm sure that doesn't make it less weird.)

Now that I've written that, I do see a clear advantage to doing it the other way. If I call it UnvestedACME instead of ACME, then there's no problem with putting it in an Asset account, which are designed to hold balances. It still bugs me to call it a different currency, when it's the same unit, just in a different state.

(I never actually needed to do any calculations involving my stock grants or vests using Beancount, so I don't really know if my representation is useful.)
 
But worry not, Beancount will allow you to do it the way you want.

That's all I ask :-)
 
James

Manuel Amador (Rudd-O)

unread,
Nov 26, 2020, 2:41:56 PM11/26/20
to bean...@googlegroups.com
On 26/11/2020 00.23, James Cook wrote:

To be clear, I feel this is no longer a problem for me. I wrote a
plugin that does things the way I like, whether or not it's the most
sensible.

Awesome!  If you can share the code, I'd love to take a look.


Still, I'm curious what you mean. What you're saying sounds a bit like
the following transaction, which I included in my original email; is
that what you had in mind? (What "zero value" is being offset?)

2001-01-01 * "Income is in currency, silly"
  Income:Stock-as-cad                           -100 CAD
  Assets:Brokerage                                 1 ACME
  Equity:Trade

(Note I've made the decision to use an explicit trading account, for
better or for worse.)

Like so:

At grant time:

2018-01-15 * "Grant XXXX"
    Income:Hooli:Grants                         -1695 HOOL.UNVEST
    Assets:Unvested:Hooli:XXXX                   1695 HOOL.UNVEST

At vest time:

2018-07-15 * "Release event from grant XXXX"
    Assets:Unvested:Hooli:XXXX                   -212 HOOL.UNVEST
    Expenses:Vested:Hooli                         212 HOOL.UNVEST
    Assets:Investments:Traditional:E-TRADE:Lot1               212 HOOL {191.33 USD}
    Assets:Investments:Traditional:E-TRADE:Lot1               -83 HOOL {191.33 USD}
    Income:Hooli:RSUs                          -40561.96 USD
    Income:Investments:Dividends:HOOL-releases   -288.32 USD
    Expenses:Taxes:TY2018:Income                13333.53 USD
    Expenses:Taxes:TY2018:Pension                2835.18 USD

At sale time:

2020-03-10 * "Close position HOOL at 280.49 USD"
  Assets:Investments:Traditional:E-TRADE:Cash         280.49 USD              
  Assets:Investments:Traditional:E-TRADE:Cash          -1.01 USD              
  Expenses:Financial:Trading-fees                       1.01 USD              
  Assets:Investments:Traditional:E-TRADE:Lot1          -1 HOOL {191.33 USD, 2018-07-05} @ 280.49 USD
  Income:Realized-gains:Traditional:E-TRADE          (191.33 - 280.49) USD


By the way, I would like to mention that being able to put mathematical expressions in the transactions is a huge advantage of Beancount.

-- 
Rudd-O
    http://rudd-o.com/
OpenPGP_0x5C06F67A8BDEBA09_and_old_rev.asc
OpenPGP_signature

James Cook

unread,
Nov 27, 2020, 10:16:22 PM11/27/20
to bean...@googlegroups.com
On Thu, 26 Nov 2020 at 19:41, Manuel Amador (Rudd-O) <rud...@rudd-o.com> wrote:
On 26/11/2020 00.23, James Cook wrote:

To be clear, I feel this is no longer a problem for me. I wrote a
plugin that does things the way I like, whether or not it's the most
sensible.

Awesome!  If you can share the code, I'd love to take a look.


On October 6 I was actually just replying to my own much earlier (May 27) email.

However I just noticed that I missed a reply (Jul 25) from Martin in the meantime; oops.

Anyway, I don't know if anyone will find the code useful. It's supposed to be a generic mechanism for managing different "points of view" where you can specify how a transaction looks from different points of view.

Still, I'm curious what you mean. What you're saying sounds a bit like
the following transaction, which I included in my original email; is
that what you had in mind? (What "zero value" is being offset?)

2001-01-01 * "Income is in currency, silly"
  Income:Stock-as-cad                           -100 CAD
  Assets:Brokerage                                 1 ACME
  Equity:Trade

(Note I've made the decision to use an explicit trading account, for
better or for worse.)

Like so:

At grant time:

2018-01-15 * "Grant XXXX"
    Income:Hooli:Grants                         -1695 HOOL.UNVEST
    Assets:Unvested:Hooli:XXXX                   1695 HOOL.UNVEST 

At vest time:

2018-07-15 * "Release event from grant XXXX"
    Assets:Unvested:Hooli:XXXX                   -212 HOOL.UNVEST
    Expenses:Vested:Hooli                         212 HOOL.UNVEST
    Assets:Investments:Traditional:E-TRADE:Lot1               212 HOOL {191.33 USD}
    Assets:Investments:Traditional:E-TRADE:Lot1               -83 HOOL {191.33 USD}
Interesting... can I infer from "Holi:XXXX" and "E-TRADE:Lot1" that you make a different account under Unvested for each grant, and a different account under e-TRADE for each release?

Did the -83 HOOL get sold for tax withholding?
 
    Income:Hooli:RSUs                          -40561.96 USD
    Income:Investments:Dividends:HOOL-releases   -288.32 USD
    Expenses:Taxes:TY2018:Income                13333.53 USD
    Expenses:Taxes:TY2018:Pension                2835.18 USD

At sale time:

2020-03-10 * "Close position HOOL at 280.49 USD"
  Assets:Investments:Traditional:E-TRADE:Cash         280.49 USD              
  Assets:Investments:Traditional:E-TRADE:Cash          -1.01 USD              
  Expenses:Financial:Trading-fees                       1.01 USD              
  Assets:Investments:Traditional:E-TRADE:Lot1          -1 HOOL {191.33 USD, 2018-07-05} @ 280.49 USD
  Income:Realized-gains:Traditional:E-TRADE          (191.33 - 280.49) USD
This is probably more sensible than what I'm doing, at the very least in the sense that it's less likely to confuse someone reading it later (myself included).
 

By the way, I would like to mention that being able to put mathematical expressions in the transactions is a huge advantage of Beancount.

Thanks; I forgot I could do that.
 
James

James Cook

unread,
Nov 27, 2020, 10:36:59 PM11/27/20
to bean...@googlegroups.com
On Sat, 25 Jul 2020 at 06:19, Martin Blais <bl...@furius.ca> wrote:
On Wed, May 27, 2020 at 3:48 PM James Cook <jc...@cs.berkeley.edu> wrote:
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

This is strange, for two reasons:
- You're booking the grant as shares, while you only received a promise of shares. For that reason I suggest another commodity name. I use ACME.UNVEST.
- You're accumulating them in an Income account. The open and close clauses of the query language don't treat income accounts like asset accounts.

Sorry, I missed this reply. This part is covered in later emails, but I'll mention I do like your phrasing here "promise of shares"... those words do help me think of it as a different currency, so I'm definitely warming up to this way of doing it.
  
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.

This is also incorrect because when your shares vest, they vest at a particular cost.
You should include the cost basis on that second posting.
 

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.

If you declare the cost, it'll for you to balance it that way.

I did it that way because I wanted to see the trading account. I have more confidence that I understand the accounting system if all transactions balance in every currency and I can see the trading account explicitly.

I think I saw there's an "Equity:Conversions" account that behaves like a trading account, but IIRC I couldn't really find documentation about how it worked.

I also saw there's some work on a "trading accounts" plugin but I haven't yet taken the time to learn about it.

James

Manuel Amador (Rudd-O)

unread,
Nov 28, 2020, 10:08:43 AM11/28/20
to bean...@googlegroups.com
On 28/11/2020 04.16, James Cook wrote:

Thank you!



Still, I'm curious what you mean. What you're saying sounds a bit like
the following transaction, which I included in my original email; is
that what you had in mind? (What "zero value" is being offset?)

2001-01-01 * "Income is in currency, silly"
  Income:Stock-as-cad                           -100 CAD
  Assets:Brokerage                                 1 ACME
  Equity:Trade

(Note I've made the decision to use an explicit trading account, for
better or for worse.)

Like so:

At grant time:

2018-01-15 * "Grant XXXX"
    Income:Hooli:Grants                         -1695 HOOL.UNVEST
    Assets:Unvested:Hooli:XXXX                   1695 HOOL.UNVEST 

At vest time:

2018-07-15 * "Release event from grant XXXX"
    Assets:Unvested:Hooli:XXXX                   -212 HOOL.UNVEST
    Expenses:Vested:Hooli                         212 HOOL.UNVEST
    Assets:Investments:Traditional:E-TRADE:Lot1               212 HOOL {191.33 USD}
    Assets:Investments:Traditional:E-TRADE:Lot1               -83 HOOL {191.33 USD}
Interesting... can I infer from "Holi:XXXX" and "E-TRADE:Lot1" that you make a different account under Unvested for each grant, and a different account under e-TRADE for each release?

Correct inference.  I have different accounts for each grant, so that I can budget the next year's grant income (pre-tax) separately.  Now, the E-TRADE lot accounts, I could probably dispense with, but I like that having separate accounts keeps track of the correct lots and cost basis, before they move into Interactive Brokers (I only use E-TRADE to receive grants, not to trade, they are so behind IB that I would never bother).



Did the -83 HOOL get sold for tax withholding?

EXACTLY.  Account goes UP 212 for the grant vesting, and down 83 for the withholding, so I can keep track of what has actually been withheld (granularity of stock sales means there is always a difference which effectively means you're getting an extra bit of "regular income").

Interestingly enough, the stock withholding is executed in dollars as you can see, but that amount is "corrected for" to the national currency in my next payslip, which means it ultimately becomes the national currency of the place I live in (at FOREX spot on the day the transaction happened, from what I can infer).


 
    Income:Hooli:RSUs                          -40561.96 USD
    Income:Investments:Dividends:HOOL-releases   -288.32 USD
    Expenses:Taxes:TY2018:Income                13333.53 USD
    Expenses:Taxes:TY2018:Pension                2835.18 USD

At sale time:

2020-03-10 * "Close position HOOL at 280.49 USD"
  Assets:Investments:Traditional:E-TRADE:Cash         280.49 USD              
  Assets:Investments:Traditional:E-TRADE:Cash          -1.01 USD              
  Expenses:Financial:Trading-fees                       1.01 USD              
  Assets:Investments:Traditional:E-TRADE:Lot1          -1 HOOL {191.33 USD, 2018-07-05} @ 280.49 USD
  Income:Realized-gains:Traditional:E-TRADE          (191.33 - 280.49) USD
This is probably more sensible than what I'm doing, at the very least in the sense that it's less likely to confuse someone reading it later (myself included).

Thanks.  This is what I came up with, that was detail-oriented enough to compare to the yearly W-2 (-equivalent in my current country of residence, I am not a U.S. tax subject, thank all heavens) and spot any errors.  So far it matches up perfectly, which I'm happy about.  It evolved from my prior use of Ledger, year by year, to get to this point.


 

By the way, I would like to mention that being able to put mathematical expressions in the transactions is a huge advantage of Beancount.

Thanks; I forgot I could do that.

Yeah; it makes transaction entry easy and foolproof.  It has effectively eliminated the use of spreadsheets on my side for transactional work — the only spreadsheets I keep now, are spreadsheets strictly devoted for analytic work.

Once you've committed to recording everything in this manner, you get a real sense of where your different income sources are coming from (in my case surprisingly a lot in stock, substantially more than the salary) and you also get a (pit-in-stomach feeling) sense of how much tax you actually pay.  I wouldn't recommend this accounting strategy to most people -- it's a black pill.  For me, it's advantageous to know that my personal expenses are always below my salary, and the rest is just savings.  If you have the right account structure, it's easy to spot on the income/expense report (with Fava).

-- 
Rudd-O
    http://rudd-o.com/
OpenPGP_0x5C06F67A8BDEBA09_and_old_rev.asc
OpenPGP_signature
Reply all
Reply to author
Forward
0 new messages