XML 58 R39.htm IDEA: XBRL DOCUMENT
v3.24.0.1

Stock-Based Compensation (Tables) | 12 Months Ended
--- | ---
Dec. 31, 2023
Stock-Based Compensation |
Schedule of assumptions used in the fair value estimation of each option grant | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | December 31, | ​
​ |  | 2023 |  | 2022 |  | 2021 | ​
Expected life (years) | ​ | 3.8 - 5.2 | ​ | 3.8 – 5.2 | ​ | 3.5 - 6.1 | ​
Risk-free interest rate |  | 3.5% - 4.4% | ​ | 2.1% - 3.7% | ​ | 0.47% - 1.18% | ​
Volatility | ​ | 69.9% - 80.0% | ​ | 67.5% – 78.6% | ​ | 64.4% – 80.8% | ​
Dividend yield |  | 0% | ​ | 0% | ​ | 0% | ​
Schedule of stock-based compensation expense related to all of our share-based payment awards | Total stock-based compensation expense related to our share-based payment awards is comprised of the following (in thousands): ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | ​ | Year Ended December 31,
​ |  | 2023 |  | 2022 |  | 2021
Cost of revenues | ​ | $ | 2,216 | ​ | $ | 1,459 | ​ | $ | 1,620
Selling, general and administrative | ​ |  | 18,805 | ​ |  | 16,808 | ​ |  | 12,425
Engineering and development | ​ |  | 1,787 | ​ |  | 1,815 | ​ |  | 1,300
​ | ​ | $ | 22,808 | ​ | $ | 20,082 | ​ | $ | 15,345
Schedule of stock option activity | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | Weighted- | ​ | ​ | ​
​ | ​ | ​ | ​ | Weighted- | ​ | Average | ​ | ​ | ​
​ | ​ | ​ | ​ | Average | ​ | Remaining | ​ | Aggregate
​ | ​ | Number of | ​ | Exercise | ​ | Contractual | ​ | Intrinsic
​ |  | Shares |  | Price/Share |  | Term (Years) |  | Value (1)
Outstanding — December 31, 2020 |  | 7,554,305 | ​ | $ | 10.29 |  | ​ |  | ​ |
Granted (weighted-average fair value of $32.79 per share) |  | 541,353 | ​ | ​ | 56.61 |  | ​ |  | ​ |
Exercised |  | (1,037,910) |  | ​ | 8.66 |  | ​ |  | ​ |
Forfeited |  | (29,807) |  | ​ | 40.56 |  | ​ |  | ​ |
Outstanding — December 31, 2021 |  | 7,027,941 | ​ | ​ | 13.97 |  | ​ |  | ​ |
Granted (weighted-average fair value of $17.17 per share) | ​ | 589,287 | ​ | ​ | 30.12 | ​ | ​ | ​ | ​ | ​
Exercised |  | (206,898) |  | ​ | 9.90 |  | ​ |  | ​ | ​
Forfeited |  | (69,809) |  | ​ | 43.42 |  | ​ |  | ​ | ​
Outstanding — December 31, 2022 | ​ | 7,340,521 | ​ | ​ | 15.10 | ​ | ​ | ​ | ​ | ​
Granted (weighted-average fair value of $11.86 per share) | ​ | 432,990 | ​ | ​ | 20.63 | ​ | ​ | ​ | ​ | ​
Exercised |  | (407,814) |  | ​ | 3.63 |  | ​ | ​ | ​ | ​
Forfeited | ​ | (140,877) | ​ | ​ | 24.82 | ​ | ​ | ​ | ​ | ​
Outstanding — December 31, 2023 |  | 7,224,820 | ​ | $ | 15.88 |  | 4.3 | ​ | $ | 34,594
Vested (exercisable) — December 31, 2023 |  | 6,356,813 | ​ | $ | 13.88 |  | 4.1 | ​ | $ | 34,545
Expected to vest after December 31, 2023 (unexercisable) |  | 868,007 | ​ | $ | 30.55 |  | 5.7 | ​ | $ | 49
(1) | Aggregate intrinsic value represents the difference between the exercise price of the option and the closing market price of the Company’s common stock on December 29, 2023, (the last trading day of the year) which was $15.49 per share.
Summary of stock options outstanding and exercisable | The following table summarizes information with respect to stock options outstanding and exercisable at December 31, 2023: ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | ​ | ​ | Weighted- | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | ​ | ​ | Average | ​ | Weighted- | ​ | ​ | ​ | Weighted-
​ | ​ | ​ |  | Remaining |  | Average | ​ | ​ |  | Average
​ |  | Number |  | Contractual |  | Exercise |  | Number | ​ | Exercise
Exercise Price |  | Outstanding |  | Life -Years |  | Price |  | Exercisable |  | Price
$1.87 – 3.21 |  | 729,900 |  | 2.3 | ​ | $ | 2.52 |  | 729,900 | ​ | $ | 2.52
$3.38 – 4.92 |  | 859,202 |  | 2.1 | ​ | $ | 4.35 |  | 859,202 | ​ | $ | 4.35
$5.00 – 7.89 |  | 925,116 |  | 1.6 | ​ | $ | 5.8 |  | 925,116 | ​ | $ | 5.8
$8.17 – 11.88 |  | 721,994 |  | 4.4 | ​ | $ | 9.13 |  | 721,994 | ​ | $ | 9.13
$12.53 – 15.81 |  | 910,362 |  | 5.3 | ​ | $ | 13.32 |  | 892,984 | ​ | $ | 13.33
$16.59 – 16.95 |  | 1,162,867 |  | 6.2 | ​ | $ | 16.92 |  | 1,049,018 | ​ | $ | 16.93
$17.36 – 36.68 |  | 1,319,922 |  | 5.9 | ​ | $ | 24.89 |  | 754,257 | ​ | $ | 23.75
$41.14 – 72.07 |  | 595,457 |  | 4.9 | ​ | $ | 54.70 |  | 424,342 | ​ | $ | 54.49
​ |  | 7,224,820 | ​ | ​ | ​ | ​ | ​ |  | 6,356,813 | ​ | ​ | ​
​
Schedule of restricted stock unit activity | ​
​ | ​ | ​ | ​ | ​ | ​
​ |  | ​ |  | Weighted Average
​ | ​ | Number of Restricted | ​ | Fair Value per
​ | ​ | Stock Units | ​ | Share
Outstanding — December 31, 2021 | ​ | 373,849 | ​ | $ | 55.53
Granted | ​ | 526,821 | ​ | ​ | 30.26
Share issuance | ​ | (101,070) | ​ | ​ | 55.43
Forfeited | ​ | (71,616) | ​ | ​ | 44.4
Outstanding – December 31, 2022 |  | 727,984 | ​ | $ | 38.32
Granted |  | 667,319 | ​ |  | 19.80
Share issuance |  | (228,932) | ​ |  | 37.63
Forfeited |  | (89,742) | ​ |  | 29.34
Outstanding – December 31, 2023 |  | 1,076,629 | ​ | $ | 27.73
​

X
- References No definition available. + Details
Name: | us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of activity for award under share-based payment arrangement. Includes, but is not limited to, outstanding award at beginning and end of year, granted, exercised, forfeited, and weighted-average grant date fair value. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(2) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (d) -SubTopic 10 -Topic 718 -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (e) -SubTopic 10 -Topic 718 -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ScheduleOfShareBasedCompensationActivityTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of option exercise prices, by grouped ranges, including the upper and lower limits of the price range, the number of shares under option, weighted average exercise price and remaining contractual option terms. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (d) -SubTopic 10 -Topic 718 -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (e) -SubTopic 10 -Topic 718 -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 718 -SubTopic 10 -Subparagraph (f)(2) -Name Accounting Standards Codification -Paragraph 2 -Section 50 -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration