I would definitely track those as they grant and vest.
Do this by creating currencies.
I do this myself for tracking shares from my employer (they're RSU, not ISO, but it still applies all the same).
I want to know how much remains that's unvested, for instance.
Create an an unvested currrency at zero price:
2013-01-28 commodity GOOG.UNVEST
name: "Unvested award of Google Class C shares."
export: "IGNORE"
assetcls: "Unvested"
strategy: "N/A"
2013-01-28 price GOOG.UNVEST 0 USD
(Ignore the metadata, or if you're really curious check out how I use it to update a Google Sheets doc for investing:
Then I have accounts to keep track of total received awards and :
2013-01-28 open Income:US:GoogleInc:Awards GOOG.UNVEST
2014-01-28 open Expenses:GoogleInc:Vested GOOG.UNVEST
Then if I receive a new award, that's deposited in a per-award account:
2017-03-20 open Assets:US:GoogleInc:Unvested:C123456
2017-03-20 * "Award C1234567 (for $XXXXX based on stock price of XXXXX USD)"
Assets:US:GoogleInc:Unvested:C123456 XX GOOG.UNVEST
Income:US:GoogleInc:Awards -XX GOOG.UNVEST
Then each time you vest, I receive the stock and,spend away some of the corresponding unvested amounts, as a fictional example:
2017-03-25 * "Conversion into shares" #award-C123456
doc: "2017-03-29.Restricted_Stock_Release_Detail_Report.C123456.pdf"
Assets:US:Broker:GOOG 2 GOOG {612.3400 USD}
Assets:US:GoogleInc:GSURefund
Assets:US:GoogleInc:Unvested:C123456 -5 GOOG.UNVEST
Expenses:GoogleInc:Vested 5 GOOG.UNVEST
(The above conversion is special to how my employer implements RSUs; they sell a portion of the received shares to convert for taxes and you receive the remaining shares and the cash difference. In this example, 5 shares are vested, 3 are sold to pay for the taxes (on W2), 2 are deposited to the account, and the "GSURefund" account is debited. That account is filled up in another transaction paired with each conversion, for which a pay stub is received that details all the tax amounts (federal, state, medicare, etc.) and net amount deposited to this GSURefund transfer account. The non-converted amount is sent as a check later and I assert the remainder is 0 i.e., refund has been paid.)
Anyhow, maybe ignoring the last bit, everything above could remain the same.
Here's one example of how you could do this, you may have to get a little creative with commodities:
;; Example tracking of ISO options.
;; Define three commodities: unvested options, vested options, and actual shares.
2013-01-28 commodity ACME.UNVEST
name: "Unvested award of Acmeshares."
2013-01-28 commodity ACME.ISO
name: "Vested ISO option of Acme shares."
2013-01-28 commodity ACME
name: "Acme Inc. equity shares"
2013-01-28 price ACME.UNVEST 0 USD
2013-01-28 price ACME.ISO 0 USD
;; Define accounts to track awards.
2013-01-28 open Income:US:AcmeInc:Awards ACME.UNVEST
2014-01-28 open Expenses:AcmeInc:Vested ACME.UNVEST
2014-01-28 open Expenses:AcmeInc:Exercised ACME.ISO
;; Define broker accounts. These should correspond to real accounts somewhere
;; (e.g., Schwab, ETrade, or otherwise).
2013-01-28 open Assets:US:Broker:Cash USD
2013-01-28 open Assets:US:Broker:Options ACME.ISO
2013-01-28 open Assets:US:Broker:ACME ACME
2013-01-28 open Income:US:Broker:VestedOptions ACME.ISO
;; Track awards like this;
2017-03-20 open Assets:US:AcmeInc:Unvested:C123456
2017-03-20 * "Award C1234567 (for $XXXXX based on stock price of XXXXX USD)"
Assets:US:AcmeInc:Unvested:C123456 1000 ACME.UNVEST
Income:US:AcmeInc:Awards -1000 ACME.UNVEST
;; When an option vests, spend it and deposit it to your broker account.
2017-03-25 * "Vesting" #award-C123456
Income:US:Broker:VestedOptions -15 ACME.ISO
Assets:US:Broker:Options 15 ACME.ISO
Assets:US:AcmeInc:Unvested:C123456 -15 ACME.UNVEST
Expenses:AcmeInc:Vested 15 ACME.UNVEST
;; Later on when you exercise the option, save the amount you paid as the cost
;; basis.
2017-03-25 * "Exercise" #award-C123456
Assets:US:Broker:Options -10 ACME.ISO
Expenses:AcmeInc:Exercised 10 ACME.ISO
Assets:US:Broker:ACME 10 ACME {200.00 USD}
Assets:US:Broker:Cash -2000 USD