IFRS Technical Note

Design and Implementation of a Segmented Lattice-Based Model for the Valuation of Employee Stock Option Plans (ESOP) under IFRS 2: Share-Based Payment

Paul McAteer, MSc, MBA

pcm353@stern.nyu.edu


Contents

  • 1. Summary of the Guidance on Valuation Principles in the Standard
  • 2. Interpretation of the Guidance
  • 3.1. Basic Model Overview
  • 3.2. Basic Model Design: Inputs for the Binomial Tree (Cox, Ross, and Rubinstein) method to value ESOP as long-dated American Option
  • 3.3. Basic Model Design: Solved Parameters for Binomial Tree
  • 4. Intermediate Model Design
  • 5. Final Model Design
  • 6.1. Basic Model Construction
  • 6.2. Basic Model Implementation
  • 6.3. Basic Model Output
    • 6.3.1. Basic Model Output: Visualization of Tree as Lattice
    • 6.3.2. Basic Model Output: Visualization of Tree as List
  • 7.1. Intermediate Model Construction
  • 7.2. Intermediate Model Implementation and Output
  • 8.1. Final Model Construction
  • 8.2. Final Model Implementation
  • 8.3. Final Model Output: Summary
  • 8.4. Final Model Output: Tree Visualization
  • 8.5. Final Model Output: Model Performance
  • 8.6. Final Model Output: Sensitivity Analysis and Cost Evaluation
    • 8.6.1. Final Model Output: Single-Factor Sensitivity Analysis
    • 8.6.2. Final Model Output: Dual-Factor Sensitivity Analysis

1. Summary of the Guidance on Valuation Principles in the Standard

IFRS 2.1 explicitly defines the objective of the Standard as the specification of the “expenses associated with transactions in which share options are granted to employees”. IFRS 2.2 requires the expensing of “equity-settled share-based payment transactions, in which the entity receives…services as consideration for equity instruments of the entity (including shares or share options)”. IFRS 2.10 requires the determination and recognition of “fair value” of this expense: “For equity-settled share-based payment transactions, the entity shall measure…the fair value of the…services received”. IFRS 2.11 provides further clarification on the definition of “fair value” : “To apply the requirements of paragraph 10 to transactions with employees and others providing similar services, the entity shall granted…The fair value of those equity instruments shall be measured at grant date.”

An option-pricing approach to the assignment of fair value is stipulated in IFRS 2.33: “The liability shall be measured, initially and at each reporting date until settled, at the fair value of the share appreciation rights, by applying an option pricing model, taking into account the terms and conditions on which the share appreciation rights were granted, and the extent to which the employees have rendered service to date.”

The Standard is not prescriptive regarding which valuation models should be used though it does describe the factors that should be taken into account when estimating the fair value. In IFRS 2.47, detailing disclosure requirement, assumes that “inputs to the model” will comprise at least “the weighted average share price, exercise price, expected volatility, option life, expected dividends, the risk-free interest rate…the method used and the assumptions made to incorporate the effects of expected early exercise”.

Appendix B offers more insight into the suitability or otherwise of certain models. IFRS 2 B.5 notes that the Black-Scholes-Merton may prove insufficiently flexible: “[M]any employee options have long lives, are usually exercisable during the period between vesting date and the end of the options’ life, and are often exercised early. These factors should be considered when estimating the grant date fair value of the options. For many entities, this might preclude the use of the Black-Scholes-Merton formula, which does not allow for the possibility of exercise before the end of the option’s life and may not adequately reflect the effects of expected early exercise. It also does not allow for the possibility that expected volatility and other model inputs might vary over the option’s life.” IFRS 2 B.17 highlights the advantages of a more flexible lattice-based model: “[E]xpected early exercise could be modelled in a binomial or similar option pricing model that uses contractual life as an input”.

2. Interpretation of the Guidance

The model framework should be sufficiently flexible to account for:

  1. Exercise prior to expiration.
  2. Required vesting period during which exercise is prohibited.
  3. Option rights forfeiture due to employee exit during and after vesting period.
  4. Time-varying volatility.

The restrictiveness of the assumptions inherent in Black-Scholes-Merton option pricing model mean that it is generally unsuitable for valuing Employee Stock Option Plans (ESOP). Moreover, the failure to account for employee behaviour and volatility of volatility in the application of BSM could lead to inaccurately high or low option values.

3.1. Basic Model Overview

If we begin by allowing for early exercise, and the non-constant volatility and dividend payments of the underlying whilst ignoring the existence of a vesting period and the possibility of option rights forfeiture, one can view the ESOP as a long-dated American-style call option granted by the Company to the employees. Traditional closed-form analytical1 or Monte-Carlo simulation2 solutions fail to incorporate the possibility of early exercise. Lattice-based models are a favoured approach to value those path-dependent options such as American options, where the timing of exercise is at the holder’s discretion. We refer to the binomial model for valuing American Options as the Basic Model, which we employ for largely pedagogical purposes en route to building the Final Model.




1 A 2008 paper gives an analytical derivation of the value of employee stock options. The formula stretches over 16 pages of typescript. Due to its complexity, the approach has failed to supplant binomial models as the preferred approach for ESO valuation. See Cvitanić, Jakša, Z. Wiener and F. Zapatero. “Analytic Pricing of Employee Stock Options.” Review of Financial Studies 21 (2008): 683-724.
2 A 2001 paper by Longstaff & Schwartz presents a new approach for approximating the value of American options by simulation. To date the model has not been adapted to incorporate the more complex characteristics particular to Employee Stock Option Plans. See Longstaff, Francis & Schwartz, Eduardo. (2001). Valuing American Options by Simulation: A Simple Least-Squares Approach. Review of Financial Studies. 14. 113-47.

3.2. Basic Model Design: Inputs for the Binomial Tree (Cox, Ross, and Rubinstein) method to value ESOP as long-dated American Option

Model Inputs For CRR Model3


Variable Notation Description Value
Stock S Underlying asset. Stock price of the Sponsoring Company €100
Strike Price K The price at which option holders can exercise the right to buy the underlying. The difference between stock and strike is the intrinsic value (IV). IV is floored at zero as rational actors will only exercise if S>K €115
Volatility σ The volatility of the underlying. An input in the Binomial model which determines the magnitude of the up and down moves. May be based on historic or implied volatility. 30%
Timestep Δt The fractions of time into which the Tree is segmented from the initial node at to to terminal nodes at tN . 50
Time to Expiry T Time in years to maturity of option. 10
Risk Free Rate r The riskless interest rate. An important input to computing risk neutral probabilities 5%
Dividend Yield q The dividend yield on the underlying. Also an important input to computing risk neutral probabilities 2.5%



3 Cox, J., S. Ross, and M. Rubinstein (1979): “Option Pricing: A Simplified Approach.” Journal of Financial Economics, Volume 7, Issue 3, pp. 229–263

3.3. Basic Model Design: Solved Parameters for Binomial Tree

The probability of reaching a particular node in the binomial tree depends on the numbers of distinct paths to that node and the probabilities of the up and down moves.
The binomial grid of 4 time steps below shows all asset price paths to each node. "u" represents an up-move and "d" a down-move.

The probability of reaching a particular node in the binomial tree depends on the numbers of distinct paths to that node and the probabilities of the up and down moves. The tree below displays the probability of reaching each node. "p" denotes the probability of an up-move and 1-p the probability of a down-move.

Derivation of Parameters


Recall that the binomial tree model is formed by building forward the “tree” of interim and terminal asset prices then performing backward induction, which values the option at each node as the probability-adjusted, discounted value of its child nodes. The option price is the sum of these discounted expected values.

The underlying asset price path is determined by the number of time steps and the magnitude of “up-moves” and “down-moves” at each node.

The magnitude of these moves is an exponential function of volatility scaled by square root of time:

UP-MOVE:
u=eσΔt

DOWN-MOVE:
d=1u=eσΔt

Risk neutral valuation allows us to infer the probability of an “up-move”. Risk neutral probabilities are the implied probabilities, which equate the current market price of the option to the discounted expected payoff. They are the outputs of a function which takes the market value, future expected value and the discount rate as the inputs. The fundamental assumption is that the call option seller can form a riskless portfolio by going long a fraction of the share - determined by delta - and writing a call option (f):

S0Δf

The payoff at each up and down node - the sum of (delta*stock) PLUS the intrinsic value of option - will be the same.


S0uΔfu= S0dΔfd

Delta is the fraction which equates the payoff at up and down nodes.

Δ = fufdS0u S0d

The seller of the option has delta hedged his exposure. The portfolio is riskless and, for there to be no arbitrage opportunities, it must earn the risk-free interest rate. The payoff at each node - the future portfolio value, composed of option and fraction of share - is discounted to the present value at the risk-free rate:

S0Δf= (S0uΔfu)erΔt

Rearranging, we find the option value at each node to be the discounted value of the fractional share position and the discounted intrinsic value of the option:

f= S0Δ (1uerΔt)+fuerΔt

Or, equivalently:

f= S0fufdS0u S0d (1uerΔt)+fuerΔt

Which, upon removing the S0 terms, simplifies to:

f= fu(1derΔt)+fd(uerΔt1)ud

Which can be expressed in terms of a risk neutral probability:

f= erΔt[fup+ fd(1p) ] 

Where:

RISK-NEUTRAL PROBABILITY OF UP-MOVE, p:
p= erΔtdud

4. Intermediate Model Design

The Financial Accounting Standards Board4 proposed a two-step adjustment procedure to the classic American Binomial Model in order to better reflect early exercise and option rights forfeiture.

  • Firstly, the options’ contractual life (T) should be substituted for their expected life (L) when constructing the binomial American option pricing model. The expected life is the weighted average of expected time to exercise of plan participants.
  • Secondly, the (annually compounded) exit rate (w) over the vesting period (v) should be estimated.

We can represent the adjusted price of an American Options by the so-called FASB 123 method in a simple formula:

fFASB123= fAmericanL=T  × (1w)v



4 Financial Accounting Standards Board. 1995. FASB 123: Accounting for Stock-Based Compensation. Appendix B

5. Final Model Design

In their 2004 paper5, Hull and White made a number of criticisms of the FASB 123 model.

  • Firstly, they noted that that the feature of the inability to exercise options during the vesting period is not incorporated. The binomial tree model assumes exercise at any time until the end of the expected life.
  • Secondly, they contend that early exercise behaviour should be a function of the magnitude of the intrinsic value. More specifically, they model the early exercise behaviour of employees by assuming that exercise takes place whenever the stock price reaches a certain multiple (M) of the strike price and the option has vested. This assumption is grounded in the cited research of Huddart and Lang (1996)6 and Carpenter(1998)7 which indicates that the the average value for M should be between 2.2 and 2.8.
  • Finally, they argue that the employee exit rate both before and after the vesting period should be explicitly considered.

  • The Hull-White Enhanced model, segments the Binomial Tree into 4 regions:


    REGION 1: At the terminal nodes of a tree comprising N time steps, the value of the option is the option’s intrinsic value:

    fN,j=  Max [  SN,jK , 0   ] 


    REGION 2: During the vesting period (v), the option prices at the at the jth node of the tree at time iΔt (where iΔt < v) are computed as:

    fi,j= ewΔt erΔt[p fi+1,j+1 + (1p) fi+1,j ]

    Note the similarity to pricing of a European style option within a Binomial model framework.


    REGION 3: After the vesting period (where iΔt V), if the stock price is greater than or equal to the exercise criterion (Si,jK M,) then the option will be exercised:

    fi,j=  Max [  Si,jK , 0   ] 


    REGION 4: After the vesting period (where iΔt v), if the stock price is less than the exercise criterion, (Si,j <K M,), then the option will be held:

    fi,j=( 1ewΔt) Max[  Si,jK , 0   ] + ewΔt erΔt[p fi+1,j+1 + (1p) fi+1,j ]

    Note the effect of weighting achieved with the combination of the ( 1ewΔt) and ewΔt terms.


    We can visualize this model in the following image which preserves the original notation of the Hull White 2004 paper.
    𝑒𝑟δ𝑡 denotes a continuous discount factor whereas 𝑒𝛿𝑡 denotes the product of the exit rate and the time step interval.The double use of e to denote both exponential and exit rate tends to confuse for which reason I opt for less ambiguous notation above.

HW%20MODEL.PNG




5 Hull, J, and White, A: How to Value Employee Stock Options Financial Analysts Journal, Vol. 60, No. 1, January/February 2004, 114-119
6 Huddart S, Lang M (1996) Employee stock option exercises: an empirical analysis. J Account Econ 21:5–43
7 Carpenter JN (1998) The exercise and valuation of executive stock options. J Financ Econ 48:127–158

6.1. Basic Model Construction

In [1]:
import numpy as np


def Binomial(n, S, K, r,q, v, t, PutCall):  

    # Solved Parameters

    At = t/n                                #Timestep

    u = np.exp(v*np.sqrt(At))               # Upmove

    d = 1./u                                # Downmove

    p = (np.exp((r-q)*At)-d) / (u-d)         # Risk-Neutral Probability



    #Binomial price tree

    stockvalue = np.zeros((n+1,n+1))                #Create symmetrical zero-filled array with dimensions of Timesteps + 1

    stockvalue[0,0] = S                             #Location of current stock price in matrix (1st element in 1st column)
                                                    # Note the rows express time progression and columns tree level
    
    for i in range(1,n+1):                          #Outer loop: For each timestep...

        stockvalue[i,0] = stockvalue[i-1,0]*u       # Compute future stockprice as product of prev. price and upmoves

        for j in range(1,i+1):                      # Inner Loop: For each time step at each tree level...
            
            stockvalue[i,j] = stockvalue[i-1,j-1]*d # Compute associated downmove stock value for each upmove
                                                    # (Nested for loop."Inner loop" will be executed one time 
                                                    # for each iteration of the "outer loop").
                                                     
             

    #Option value at terminal nodes   

    optionvalue = np.zeros((n+1,n+1))               #Create symmetrical zero-filled matrix with dimensions of Timesteps + 1

    for j in range(n+1):                            # For each node at the terminal time step...
                                                    # Compute instrinsic value based on put or call position
        if PutCall=="C": # Call

            optionvalue[n,j] = max(0, stockvalue[n,j]-K)      

        elif PutCall=="P": #Put

            optionvalue[n,j] = max(0, K-stockvalue[n,j])

    

    #Backward induction process for option values at interim nodes    

    for i in range(n-1,-1,-1):                    # For each time step, working backwards, from penultimate to first...

        for j in range(i+1):                      # For each node at each of above time step...
                                                  # Compute the maximum of the expected value and the current intrinsic val.

                if PutCall=="P":                 

                    optionvalue[i,j] = max(0, 
                                           K-stockvalue[i,j],np.exp(-r*At)*(p*optionvalue[i+1,j]+(1-p)*optionvalue[i+1,j+1]))

                elif PutCall=="C":

                    optionvalue[i,j] = max(0, 
                                           stockvalue[i,j]-K,np.exp(-r*At)*(p*optionvalue[i+1,j]+(1-p)*optionvalue[i+1,j+1]))
    


    #return optionvalue[0,0]
    return optionvalue[0,0], stockvalue, optionvalue, n, S, K, r, q, v,t
    

6.2. Basic Model Implementation

In [2]:
from tabulate import tabulate

# Inputs

n = 25        #number of steps

S = 100      #initial underlying asset price

r = 0.05     #risk-free interest rate

q = 0.025     #risk-free interest rate

K = 115      #strike price

v = 0.3      #volatility

t = 10      #time to expiry


result = Binomial(n, S, K, r, q, v, t, PutCall="C")


header3 = ['Opt. Val.(Basic Model)','Spot', 'Strike', 'Rfr','Div. Yld.', 'Vol.',
           'Time to Exp.', 'Time Steps']
table3 = [[result[0], result[4],result[5],result[6],result[7],result[8],result[9],result[3]]]

print(tabulate(table3,header3))
  Opt. Val.(Basic Model)    Spot    Strike    Rfr    Div. Yld.    Vol.    Time to Exp.    Time Steps
------------------------  ------  --------  -----  -----------  ------  --------------  ------------
                 32.2921     100       115   0.05        0.025     0.3              10            25

6.3. Basic Model Output

6.3.1. Basic Model Output: Visualization of Tree as Lattice

As we shall in our extended discussion of the Final Model, the optimal number of tree steps, in terms of computational expense versus results accuracy/convergence, is around 2000. It is impractical to view node results as a tree when the time steps exceed 25-30, as can be apreciated below. It is therefore more instructive to shift to generating node values in the form of list.

In [3]:
# Import required libraries
import matplotlib.pyplot as plt
import numpy as np
import networkx as nx


# Plot Binomial Grid
def binomial_grid(n):

    G=nx.Graph()                                    # Empty Grid
    for i in range(0,n+1):                          # Outer Loop: For each time fraction of time Initial to Terminal
        for j in range(1,i+2):                      # Inner Loop: For each node at each time step first to final
            if i<n:                                 # Add connectors between all pre-terminal nodes 
                G.add_edge((i,j),(i+1,j))
                G.add_edge((i,j),(i+1,j+1))
    posG={}                                         # Situate Nodes
    for node in G.nodes():
        posG[node]=(node[0],n+2+node[0]-2*node[1])
    
    nx.draw(G,pos=posG)

# Plot Price and Option Tree
def plot_binomial_tree(initial_spot, asset_array, option_array):

    s = initial_spot
    px = asset_array
    opx = option_array

    
    # displaying the title 
    
    plt.figure(figsize=(14, 12))
    plt.suptitle('Binomial Tree: 30 Time Steps', fontsize=20)

    # Start
    plt.figtext(-0.07,0.50, 'S = '+str(s))
    plt.figtext(-0.07,0.47, 'V = '+"{:.2f}".format(opx[0,0]))


    binomial_grid(25)
In [4]:
px = result[1]
opx = result[2]

# Plot a 30-Step Binomial Tree 
# displaying the title

plot_binomial_tree(px[0,0], px, opx)