Stock-Based Compensation (Tables)
|
12 Months Ended |
Dec. 31, 2020 |
Share-based Payment Arrangement [Abstract] |
|
Stock-Based Compensation |
Stock-based compensation is included in the following financial statement captions: | | | | | | | | | | | | | | | | | | | | | | | Year Ended December 31, | | | 2020 | | 2019 | | 2018 | Cost of sales | | $ | 10,392 | | | $ | 9,249 | | | $ | 6,535 | | Sales and marketing | | 4,395 | | | 3,815 | | | 2,550 | | Research and development | | 9,122 | | | 7,690 | | | 6,410 | | General and administrative | | 11,749 | | | 12,824 | | | 12,532 | | Total stock-based compensation | | 35,658 | | | 33,578 | | | 28,027 | | Tax benefit recognized | | (7,498) | | | (5,114) | | | (6,632) | | Net stock-based compensation | | $ | 28,160 | | | $ | 28,464 | | | $ | 21,395 | |
|
Summary of Stock Option Valuation Assumptions |
The assumptions used in the Black-Scholes model for the calculation of the options were as follows for the years ended December 31: | | | | | | | | | | | | | | | | | | | | | 2019 | | 2018 | Expected term | | | | 4.3 - 5.1 years | | 4.1 - 4.9 years | Volatility | | | | 37% - 38% | | 31% - 36% | Risk-free rate of return | | | | 1.66% - 2.55% | | 2.54% - 3.01% | Dividend yield | | | | 0.25% | | 0.25% | Forfeiture rate | | | | —% | | —% |
|
Summary of Option Activity |
The following table summarizes the option activity for the years ended December 31: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Number of Options | | Weighted-Average Exercise Price | | Weighted-Average Remaining Contractual Life | | Aggregate Intrinsic Value | | | | | | | (In years) | | (In thousands) | Outstanding — January 1, 2018 | | 1,797,493 | | | $ | 73.95 | | | | | | Granted | | 257,111 | | | 232.26 | | | | | | Exercised | | (282,720) | | | 58.94 | | | | | | Forfeited | | (24,810) | | | 131.36 | | | | | | Outstanding — December 31, 2018 | | 1,747,074 | | | 98.93 | | | 5.80 | | $ | 58,084 | | Granted | | 334,740 | | | 153.78 | | | | | | Exercised | | (192,533) | | | 56.58 | | | | | | Forfeited | | (46,839) | | | 149.64 | | | | | | Outstanding — December 31, 2019 | | 1,842,442 | | | 112.03 | | | 5.73 | | $ | 85,110 | | Granted | | — | | | | | | | | Exercised | | (533,716) | | | 70.17 | | | | | | Forfeited | | (36,103) | | | 179.85 | | | | | | Outstanding — December 31, 2020 | | 1,272,623 | | | $ | 127.74 | | | 5.47 | | $ | 125,550 | | Unvested — December 31, 2020 | | 382,729 | | | $ | 171.98 | | | 7.57 | | $ | 21,386 | | Exercisable — December 31, 2020 | | 889,894 | | | $ | 108.71 | | | 4.57 | | $ | 104,164 | |
|
Summary of Restricted Stock Unit Activity |
The following table summarizes the RSUs activity for the years ended December 31: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Number of Shares | | Weighted-Average Grant-Date Fair Value | | Weighted-Average Remaining Contractual Life | | Aggregate Intrinsic Value | | | | | | | (In years) | | (In thousands) | Outstanding — January 1, 2018 | | 378,261 | | | $ | 96.23 | | | | | | Granted | | 80,254 | | | 227.45 | | | | | | Vested | | (97,997) | | | 91.62 | | | | | | Canceled | | (9,497) | | | 121.37 | | | | | | Outstanding — December 31, 2018 | | 351,021 | | | 126.93 | | | 2.62 | | $ | 39,767 | | Granted | | 120,090 | | | 151.94 | | | | | | Vested | | (147,606) | | | 120.58 | | | | | | Canceled | | (16,667) | | | 139.73 | | | | | | Outstanding — December 31, 2019 | | 306,838 | | | 139.09 | | | 2.57 | | $ | 44,467 | | Granted | | 198,606 | | | 145.10 | | | | | | Vested | | (168,733) | | | 115.77 | | | | | | Canceled | | (16,025) | | | 157.36 | | | | | | Outstanding — December 31, 2020 | | 320,686 | | | $ | 154.29 | | | 1.33 | | $ | 71,766 | |
|
Summary of Performance Units Fair Value Assessment |
The weighted-average fair value of TSR PSUs was determined using the Monte Carlo simulation model incorporating the following weighted-average assumptions: | | | | | | | | | | | | | | | | | | | | | | | 2020 | | 2019 | | 2018 | Performance term | | 3.0 years | | 3.0 years | | 3.0 years | Volatility | | 19% - 44% | | 18% - 40% | | 13% - 32% | Risk-free rate of return | | 1.39% | | 2.48% | | 2.41% | Dividend yield | | —% | | —% | | —% | Weighted-average fair value per share | | $169.28 | | $192.46 | | $284.78 |
The weighted-average fair value of the OCF PSUs was determined using the Black-Scholes model incorporating the following assumptions: | | | | | | | | | | | | | | | 2020 | | | | | Performance term | | 3.0 years | | | | | Volatility | | —% | | | | | Risk-free rate of return | | 1.39% | | | | | Dividend yield | | 0.10% | | | | | Weighted-average fair value per share | | $143.51 | | | | |
|
Summary of Performance Stock Unit Activity |
The following table summarizes TSR PSUs activity for the years ended December 31: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Number of Shares | | Weighted-Average Grant-Date Fair Value | | Weighted-Average Remaining Contractual Life | | Aggregate Intrinsic Value | | | | | | | (In years) | | (In thousands) | Outstanding — January 1, 2018 | | 75,949 | | | $ | 119.45 | | | | | | Granted | | 33,706 | | | 238.12 | | | | | | Vested | | — | | | | | | | | Canceled | | — | | | | | | | | Outstanding — December 31, 2018 | | 109,655 | | | 146.96 | | | 1.77 | | $ | 12,423 | | Granted | | 34,989 | | | 190.83 | | | | | | Vested | | (43,594) | | | 128.54 | | | | | | Canceled | | (1,208) | | | 228.68 | | | | | | Outstanding — December 31, 2019 | | 99,842 | | | 162.34 | | | 1.84 | | $ | 14,469 | | Granted | | 18,411 | | | 170.42 | | | | | | Vested | | (48,659) | | | 106.03 | | | | | | Canceled | | (1,769) | | | 204.01 | | | | | | Outstanding — December 31, 2020 | | 67,825 | | | $ | 206.21 | | | 1.28 | | $ | 15,179 | |
The following table summarizes OCF PSUs activity for the year ended December 31: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Number of Shares | | Weighted-Average Grant-Date Fair Value | | Weighted-Average Remaining Contractual Life | | Aggregate Intrinsic Value | | | | | | | (In years) | | (In thousands) | Outstanding — January 1, 2020 | | $ | — | | | | | | | | Granted | | 24,817 | | | $ | 143.51 | | | | | | Vested | | — | | | | | | | | Canceled | | (716) | | | 143.51 | | | | | | Outstanding — December 31, 2020 | | 24,101 | | | $ | 143.51 | | | 2.16 | | $ | 5,394 | |
|