Employee Stock Options-Derivative Pricing in Python

Employee Stock Option (ESO) is a form of compensation that a company uses to reward, motivate, and retain its employees.

An employee stock option (ESO) is a label that refers to compensation contracts between an employer and an employee that carries some characteristics of financial options.

Employee stock options are commonly viewed as a complex call option on the common stock of a company, granted by the company to an employee as part of the employee’s remuneration package. Regulators and economists have since specified that ESOs are compensation contracts.

These nonstandard contracts exist between employee and employer, whereby the employer has the liability of delivering a certain number of shares of the employer stock, when and if the employee stock options are exercised by the employee. The contract length varies, and often carries terms that may change depending on the employer and the current employment status of the employee. Read more

An ESO is a financial option, but it differs from a regular stock option in the following,

  • There is usually a vesting period during which the option cannot be exercised
  • When the employees leave their jobs (voluntary or involuntary) during the vesting period they forfeit the unvested options.
  • When employees leave (voluntarily or involuntarily) after the vesting period they forfeit options that are out of the money and they have to exercise vested options that are in the money immediately.
  • Employees are not permitted to sell their employee stock options. They must exercise the options and sell the underlying shares in order to realize a cash benefit or diversify their portfolios. This tends to lead to employee stock options being exercised earlier than similar regular options.
  • There is some dilution arising from the issue of employee stock options because if they are exercised, then new common shares are issued.

Because of these characteristics, the valuation of ESOs is different from regular stock options. In this post, we are going to implement the approach proposed by Hull and White [1]. Specifically, we are going to implement the vesting and forfeiture rate features.  Other features can also be implemented without difficulty.

The input parameters are as follows,

Stock price: 50

Strike: 50

Maturity: 5 years

Risk-free rate: 2%

Volatility: 40%

Vesting period: 2 years

Forfeiture rate: 2%

We implemented the Hull and White approach in Python, and we obtained a price of 17.9

Employee Stock Option


[1] J. Hull and A. White, How to Value Employee Stock Options, Financial Analysts Journal, Vol. 60, No. 1 (Jan. – Feb., 2004), pp. 114-119

Leave a Reply