XML 53 R43.htm IDEA: XBRL DOCUMENT
v3.23.3

Stockholders' Equity (Tables) | 9 Months Ended
--- | ---
Sep. 30, 2023
Stockholders' Equity |
Schedule of key assumptions to determine fair value of options | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three Months Ended | ​ | Nine Months Ended |  | ​
​ | ​ | September 30, | ​ | September 30, | ​ | ​
​ |  | 2023 |  | 2022 |  | 2023 |  | 2022 |  | ​
Average volatility |  | 40.2 | % | 42.7 | % | 41.4 | % | 41.0 | % | ​
Average risk-free interest rate |  | 4.4 | % | 2.9 | % | 4.1 | % | 2.3 | % | ​
Weighted-average expected life in years |  | 6.3 | ​ | 6.3 | ​ | 6.2 | ​ | 6.1 | ​ | ​
Dividend yield rate |  | — | % | — | % | — | % | — | % | ​
Schedule of the summary of option activity under all plans | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | Weighted-Average | ​ | ​ | ​ |
​ | ​ | ​ | ​ | Weighted-Average | ​ | Remaining | ​ | Aggregate |
​ | ​ | ​ | ​ | Exercise | ​ | Contractual | ​ | Intrinsic |
​ | ​ | Options | ​ | Price | ​ | Term (Years) | ​ | Value(1) |
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | (in thousands) |
Outstanding as of December 31, 2022 | ​ | 7,929,150 | ​ | $ | 17.66 |  |  |  | ​ |  | ​
Options granted |  | 759,820 | ​ | ​ | 35.84 | ​ | ​ | ​ | ​ | ​ | ​
Options exercised |  | (786,891) | ​ | ​ | 15.27 | ​ | ​ | ​ | ​ | ​ | ​
Options forfeited |  | (4,526) | ​ | ​ | 29.60 | ​ | ​ | ​ | ​ | ​ | ​
Options expired |  | (543) | ​ | ​ | 16.25 | ​ | ​ | ​ | ​ | ​ | ​
Outstanding as of September 30, 2023 |  | 7,897,010 | ​ | $ | 19.65 | ​ | 4.78 | ​ | ​ | 208,046 | ​
Exercisable as of September 30, 2023 |  | 5,819,517 | ​ | $ | 16.54 | ​ | 3.52 | ​ | ​ | 171,365 | ​
Vested and expected to vest as of September 30, 2023 | ​ | 7,703,355 | ​ | $ | 19.37 | ​ | 4.68 | ​ | ​ | 205,029 | ​
(1) | The aggregate intrinsic value is calculated as the difference between the exercise price of the underlying awards and the estimated fair value of the Company’s stock for those awards that have an exercise price below the estimated fair value at September 30, 2023.
Schedule of information relating to options grants | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three Months Ended | ​ | Nine Months Ended |
​ | ​ | September 30, | ​ | September 30, | ​
​ |  | 2023 |  | 2022 |  | 2023 |  | 2022 |
​ | ​ | (in thousands, except per share data) |
Weighted-average grant date fair value per share | ​ | $ | 21.49 | ​ | $ | 14.40 | ​ | $ | 16.76 | ​ | $ | 14.75 | ​
Intrinsic value of options exercised | ​ |  | 5,628 | ​ |  | 1,421 | ​ |  | 24,544 | ​ |  | 20,131 | ​
Cash received from options exercised | ​ |  | 2,277 | ​ |  | 1,483 | ​ |  | 12,015 | ​ |  | 18,402 | ​
Total fair value of the options vested during the period | ​ |  | 167 | ​ |  | 167 | ​ |  | 8,887 | ​ |  | 8,157 | ​
Schedule of the summary of nonvested options status | ​
​ | ​ | ​ | ​ | ​ | ​ | ​
​ |  | ​ |  | Weighted-Average |
​ | ​ | ​ | ​ | Grant Date |
​ | ​ | Options | ​ | Fair Value |
Non-vested as of December 31, 2022 | ​ | 2,378,453 | ​ | $ | 9.48 | ​
Options granted |  | 759,820 | ​ | ​ | 16.76 | ​
Options vested |  | (1,056,254) | ​ | ​ | 8.41 | ​
Options forfeited |  | (4,526) | ​ | ​ | 13.40 | ​
Non-vested as of September 30, 2023 |  | 2,077,493 | ​ |  | 12.68 | ​
Schedule of information relating to RSU grants and deliveries | ​
​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | ​ | ​ | Total Fair Market |
​ | ​ | Total RSUs | ​ | Value of RSUs |
​ |  | Issued |  | Issued(1) |
​ | ​ | ​ | ​ | (in thousands) |
RSUs outstanding at December 31, 2022 |  | 1,007,052 | ​ | ​ | ​ | ​
RSUs granted |  | 356,176 | ​ | $ | 12,725 | ​
RSUs forfeited |  | (2,017) | ​ | ​ | ​ | ​
RSUs vested(2) |  | (440,337) | ​ | ​ | ​ | ​
RSUs outstanding at September 30, 2023 |  | 920,874 | ​ | ​ | ​ | ​
(1) | The total fair market value is derived from the number of RSUs granted times the current stock price on the date of grant.
(2) | Of the vested RSUs, 168,007 shares of common stock were surrendered to fulfill tax withholding obligations.
Schedule of recorded share-based compensation expense under all plans | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three Months Ended | ​ | Nine Months Ended |
​ | ​ | September 30, | ​ | September 30, | ​
​ | ​ | 2023 | ​ | 2022 | ​ | 2023 |  | 2022 |
​ | ​ | (in thousands) |
Cost of revenues |  | $ | 1,004 |  | $ | 915 |  | $ | 3,868 |  | $ | 3,238 | ​
Operating expenses: | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Selling, distribution, and marketing | ​ |  | 213 | ​ |  | 178 | ​ |  | 649 | ​ |  | 540 | ​
General and administrative | ​ |  | 2,975 | ​ |  | 2,810 | ​ |  | 9,323 | ​ |  | 8,389 | ​
Research and development | ​ |  | 452 | ​ |  | 396 | ​ |  | 1,780 | ​ |  | 1,389 | ​
Total share-based compensation | ​ | $ | 4,644 | ​ | $ | 4,299 | ​ | $ | 15,620 | ​ | $ | 13,556 | ​
​

X
- Definition Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (h)(1) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the changes in outstanding nonvested shares. + 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 + Details
Name: | us-gaap_ScheduleOfNonvestedShareActivityTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding restricted stock units that are fully vested and expected to vest. Includes, but is not limited to, unvested restricted stock units for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 718 -SubTopic 10 -Subparagraph (e)(1) -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_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardRestrictedStockUnitsVestedAndExpectedToVestTableTextBlock
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

X
- Definition Tabular disclosure of the weighted-average grant-date fair value of equity options or other equity instruments granted 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 (d)(1) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

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