XML 58 R40.htm IDEA: XBRL DOCUMENT
v3.22.4

Stock-Based Compensation (Tables) | 12 Months Ended
--- | ---
Dec. 31, 2022
Stock-Based Compensation |
Schedule of warrant activity | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ |  | ​ |  | ​ | ​ |  | Weighted- |  | ​ | ​
​ | ​ | ​ | ​ | Weighted- | ​ | Average | ​ | ​ | ​
​ | ​ | ​ | ​ | Average | ​ | Remaining | ​ | Aggregate
​ | ​ | Number of | ​ | Exercise | ​ | Contractual | ​ | Intrinsic
​ |  | Shares |  | Price/Share |  | Term (Years) |  | Value
Outstanding — December 31, 2019 |  | 1,001,028 | ​ | ​ | 3.83 |  |  |  | ​ |
Issued |  | — | ​ |  | — |  |  |  | ​ |
Exercised |  | (963,149) | ​ |  | 3.80 |  |  |  | ​ |
Expired |  | (37,879) | ​ |  | 4.58 |  |  |  | ​ |
Outstanding — December 31, 2020 |  | — | ​ | $ | — |  | — | ​ | $ | —
Vested (exercisable) — December 31, 2020 |  | — | ​ | $ | — |  | — | ​ | $ | —
​
Schedule of fair value assumptions of stock options | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | December 31, | ​
​ |  | 2022 |  | 2021 |  | 2020 | ​
Expected life (years) | ​ | 3.8 – 5.2 | ​ | 3.5 - 6.1 | ​ | 5.3 - 6.3 | ​
Risk-free interest rate |  | 2.1% - 3.7 | % | 0.47% - 1.18 | % | 0.31% - 1.70 | %
Volatility | ​ | 67.5% – 78.6 | % | 64.4% – 80.8 | % | 69.8% - 82.7 | %
Dividend yield |  | 0% | ​ | 0% | ​ | 0% | ​
​
Schedule of 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,
​ |  | 2022 |  | 2021 |  | 2020
Cost of revenues | ​ | $ | 1,459 | ​ | $ | 1,620 | ​ | $ | 371
Selling, general and administrative | ​ |  | 16,808 | ​ |  | 12,425 | ​ |  | 7,862
Engineering and development | ​ |  | 1,815 | ​ |  | 1,300 | ​ |  | 683
​ | ​ | $ | 20,082 | ​ | $ | 15,345 | ​ | $ | 8,916
​
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, 2019 |  | 6,679,581 | ​ | $ | 7.14 |  |  |  | ​ |
Granted (weighted-average fair value of $13.21 per share) |  | 1,789,000 | ​ | ​ | 20.46 |  |  |  | ​ |
Exercised |  | (855,717) |  | ​ | 6.73 |  |  |  | ​ |
Forfeited |  | (56,475) |  | ​ | 13.39 |  |  |  | ​ |
Expired |  | (2,084) |  | ​ | 19.56 |  |  |  | ​ |
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 |  | 4.9 | ​ | $ | 48,557,300
Vested (exercisable) — December 31, 2022 |  | 6,054,897 | ​ | $ | 11.54 |  | 4.6 | ​ | $ | 48,307,700
Expected to vest after December 31, 2022 (unexercisable) |  | 1,285,624 | ​ | $ | 31.85 |  | 6.6 | ​ | $ | 249,500
(1) | Aggregate intrinsic value represents the difference between the exercise price of the option and the closing market price of the common stock on December 31, 2022, which was $17.35 per share.
Schedule of restricted stock unit activity | ​
​ | ​ | ​ | ​ | ​ | ​
​ |  | ​ |  | Weighted Average
​ | ​ | Number of Restricted | ​ | Fair Value per
​ | ​ | Stock Units | ​ | Share
Outstanding — December 31, 2020 | ​ | — | ​ | $ | —
Granted | ​ | 392,940 | ​ | ​ | 55.51
Forfeited | ​ | (19,091) | ​ | ​ | 55.23
Share issuance | ​ | — | ​ | ​ | —
Outstanding – December 31, 2021 |  | 373,849 | ​ | $ | 55.53
Granted |  | 526,821 | ​ |  | 30.26
Share issuance |  | (101,070) | ​ |  | 55.43
Forfeited |  | (71,616) | ​ |  | 44.40
Outstanding – December 31, 2022 |  | 727,984 | ​ | $ | 38.32
​
Summary of stock options outstanding and exercisable | The following table summarizes information with respect to stock options outstanding and exercisable at December 31, 2022: ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | ​ | ​ | Weighted- | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | ​ | ​ | Average | ​ | Weighted- | ​ | ​ | ​ | Weighted-
​ | ​ | ​ | ​ | Remaining | ​ | Average | ​ | ​ | ​ | Average
​ | ​ | Number | ​ | Contractual | ​ | Exercise | ​ | Number | ​ | Exercise
Exercise Price |  | Outstanding |  | Life (Years) |  | Price |  | Exercisable |  | Price
$1.87 – 3.07 |  | 658,184 |  | 3.1 | ​ | $ | 2.33 |  | 658,184 | ​ | $ | 2.33
$3.19 – 3.44 |  | 730,680 |  | 2.8 | ​ | $ | 3.31 |  | 730,680 | ​ | $ | 3.31
$4.80 – 4.92 |  | 576,783 |  | 2.4 | ​ | $ | 4.80 |  | 576,783 | ​ | $ | 4.80
$5.00 – 7.67 |  | 675,615 |  | 2.6 | ​ | $ | 5.02 |  | 675,615 | ​ | $ | 5.02
$7.80 – 8.65 |  | 741,637 |  | 4.2 | ​ | $ | 8.35 |  | 741,637 | ​ | $ | 8.35
$9.29 – 12.79 |  | 931,959 |  | 6.1 | ​ | $ | 11.99 |  | 931,959 | ​ | $ | 11.99
$13.37 – 16.95 |  | 1,402,560 |  | 7.1 | ​ | $ | 16.52 |  | 994,973 | ​ | $ | 16.43
$17.36 – 36.68 |  | 1,004,671 |  | 6.7 | ​ | $ | 26.26 |  | 456,745 | ​ | $ | 22.65
$41.14 – 72.07 | ​ | 618,432 | ​ | 5.9 | ​ | $ | 54.66 | ​ | 288,321 | ​ | $ | 54.52
​ |  | 7,340,521 |  | ​ | ​ | ​ | ​ | ​ | 6,054,897 | ​ | ​ | ​
​

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 -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (e) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(2) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (d) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + 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 -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + 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 -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + 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 -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (d) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (e) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + 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 -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (f)(2) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of warrants or rights issued. Warrants and rights outstanding are derivative securities that give the holder the right to purchase securities (usually equity) from the issuer at a specific price within a certain time frame. Warrants are often included in a new debt issue to entice investors by a higher return potential. The main difference between warrants and call options is that warrants are issued and guaranteed by the company, whereas options are exchange instruments and are not issued by the company. Also, the lifetime of a warrant is often measured in years, while the lifetime of a typical option is measured in months. Disclose the title of issue of securities called for by warrants and rights outstanding, the aggregate amount of securities called for by warrants and rights outstanding, the date from which the warrants or rights are exercisable, and the price at which the warrant or right is exercisable. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 1 -Subparagraph (a) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5047-113901 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 505 -SubTopic 50 -Section S99 -Paragraph 1 -URI https://asc.fasb.org/extlink&oid=6784392&loc=d3e188667-122775 + Details
Name: | us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration