I am working for a company that has recently gone public. Now I see a monthly accumulation of options vesting every month. I would like to account for these options as compensation in my accounts.

What is the mechanism to go about doing this? Do I have something like an Assets::Investments::EmployerOptions account that that I credit every month similar to my salary? What do I credit it with? I'm paid in EUR but my options are in USD. Do I just add the EUR conversion of the equivalent stock price at that moment in time (subtracting the strike price)?

Example: On Jan 1st 2019 I vest 100 options with a strike price of 10USD. The current market value is 20USD. So at this moment in time this is worth an unrealised $1000USD.

| Assets | Income | |--------|---------| | | +$1000 | | +$1000 | | |--------|---------|

Or is all this moot and it should only count the number of shares and only do accounting when I exercise and sell?

note I am a Canadian citizen living and employed in Germany. I've never been a resident in the USA (just done work assignments theres).

  • 2
    I would advise you do not account for them until they are turned into cash. They could quite suddenly be worth zero.
    – Pete B.
    Jan 7, 2019 at 20:13
  • @PeteB. From a tax standpoint (at least in the US) it would be good to account for them as income when they vest since that's what the taxable income and cost basis will be.
    – D Stanley
    Jan 7, 2019 at 20:27
  • @DStanley good point. I'll update my question with citizenship and residency context.
    – Scott Muc
    Jan 7, 2019 at 20:28
  • @PeteB. I agree that would be simplest. Just wondering if there are any models for accounting these things.
    – Scott Muc
    Jan 7, 2019 at 20:45

1 Answer 1


Based on my limited knowledge about stock options (an non-existent knowledge of any associated accounting norms), here's how I would do it.

The short answer is probably yes, it is all this moot and you should only count the number of shares and do accounting when you exercise and sell (see §1 and §2 below in case you are not sure how that would work). If you do want to account for the options themselves, I sketch out a possible solution in §3.

Scenario 1: Selling immediately

If you sell your shares immediately after you exercise the option and are not interested in holding on to them, you can just record your income at that point in time and be done with it. Let's say when all is said and done, you made a profit of 650 EUR:

Exercise options and sell Dr Cr
Asset:Checking 650 EUR
Income:Stock Options 650 EUR

If it's important for tax purposes or otherwise, you could separate the currency conversion fees while still doing all of your accounting in euros:

Exercise options and sell Dr Cr
Asset:Checking 650 EUR
Expenses:Currency Conversion 10 EUR
Income:Stock Options 660 EUR

Scenario 2: Accounting for your EMPL shares

If you want to record a more detailed picture of what's going on, or if you want to keep your shares for a while after you buy them, you will need to look into the securities accounting features of GnuCash. The most principled and robust approach is arguably to use trading accounts (See File>Properties>Accounts to enable). But it will work in a similar way with the default settings -- just ignore the splits in italics and use the appropriate prices in the transactions.

In any case, under this approach, you will have an account Assets:Employer Stock denominated in a security EMPL (the ticker symbol for your employer's shares). When you exercise an option, you will just record it as a security purchase at the option strike price. I'll ignore the USD/EUR currency conversion aspect and assume you're able to buy 100 EMPL using 850 EUR from your checking account.

Vest option Dr Cr
Assets:Employer Stock 100 EMPL
Assets:Checking 850 EUR
Trading:EUR 850 EUR
Trading:EMPL 100 EMPL

Now, if the price database indicates the current price of EMPL is 15 EUR, GnuCash will immediately report an unrealized gain of of 650 EUR, because you hold 100 share of EMPL worth 1500 EUR, which you bought for 850 EUR.

Let's say you sell the shares at that price:

Sell shares Dr Cr
Assets:Checking 1500 EUR
Assets:Employer Stock 100 EMPL
Trading:EMPL 100 EMPL
Trading:EUR 1500 EUR

The account Trading:EUR will be left with a credit balance of 650 EUR. This is your realized gain, which you would then record as income, balancing everything again:

Realized gain Dr Cr
Trading:EUR 650 EUR
Income:Capital Gains 650 EUR

Scenario 3: Accounting for the options themselves

Until now I have ignored anything that goes on until you exercise the option, which honestly is probably good enough for your personal accounting, but if you wanted to you could account for the options themselves as their own kind of security (say, EMPO).

Receiving options

Initially they have no realized value (you "buy" them for 0 EUR each), so you could just record:

Get a bunch of options Dr Cr
Asset:Stock options 100 EMPO
Trading:EMPO 100 EMPO

This being said, if you wanted to record them as income as they come in, you could try your best guess at their expected value by the time you exercise them (say, 5 EUR in profit for each share), and use that as their price:

Get a bunch of options Dr Cr
Asset:Stock options 100 EMPO
Income:Stock options 500 EUR
Trading:EUR 500 EUR
Trading:EMPO 100 EMPO

Then any unrealized gains/losses subsequently reported by GnuCash will be with reference to this initial price of 5 EUR per EMPO. You can update your "best guess" into the GnuCash price database, and these gains/losses will show up in the total EUR credit balance your trading accounts, and in the Advanced Portfolio report. This will carry through as you convert them to actual shares, although the reports sometimes get tripped up by complicated multi-split transactions.

Letting them go

If the options expire and you end up deciding not to exercise them, you can just return them to the universe (aka. the Trading accounts):

Discard options Dr Cr
Trading:EMPO 100 EMPO
Asset:Stock options 100 EMPO

If you recorded income, you'll have to record the losses as well:

Options loss Dr Cr
Expenses:Option losses 500 EUR
Trading:USD 500 EUR

You could also reimburse the income account instead, depending on how you'd like it to show up on reports.

Exercising them

If you do exercise your options, you would record the transaction as:

Vest option Dr Cr
Assets:Employer Stock 100 EMPL
Assets:Stock Options 100 EMPO
Assets:Checking 850 EUR
Trading:EUR 850 EUR
Trading:EMPO 100 EMPO
Trading:EMPL 100 EMPL

Then when you sell your shares you can proceed as above.

Note that if you simultaneously hold different option lots with different strike prices, and you want to assign non-zero values to them for reporting purposes, you will have to use a different security for each lot.


You'll have to decide what level of detail you need in your accounting, based on how you handle your options, your tax reporting needs, etc. I also haven't gotten into what to do if you actually have accounts denominated in USDs or the like. If you need to complexity, GnuCash has many features which can help you manage it, and the underlying double-entry mechanics are actually quite interesting! But it will probably require some careful reading and experimentation on your part if you want to go down that path.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.