XML 65 R40.htm IDEA: XBRL DOCUMENT
v3.25.0.1

Stock-Based Compensation and Stockholders' Equity (Tables) | 12 Months Ended
--- | ---
Dec. 31, 2024
Equity [Abstract] |
Schedule of Share-based Payment Arrangement, Cost by Plan | The following table sets forth stock-based compensation expense recognized by the Company in the following line items in the Company's consolidated statements of operations and comprehensive (loss) income during the periods presented:
| Years Ended December 31,
(in thousands) | 2024 |  | 2023 |  | 2022
Cost of services | $ | 662 |  |  | $ | 613 |  |  | $ | 421 |
Sales and marketing | 7,351 |  |  | 11,089 |  |  | 6,634 |
General and administrative | 16,105 |  |  | 10,499 |  |  | 7,573 |
Stock-based compensation expense | $ | 24,118 |  |  | $ | 22,201 |  |  | $ | 14,628 |
Schedule of Stock-based Compensation Expense | The following table sets forth the Company's stock-based compensation expense by award type during the periods presented:
| Years Ended December 31,
(in thousands) | 2024 |  | 2023 |  | 2022
RSUs | $ | 12,765 |  |  | $ | 9,637 |  |  | $ | 3,569 |
PSUs | 9,747 |  |  | 9,372 |  |  | 3,141 |
Stock Options | 459 |  |  | 1,674 |  |  | 6,156 |
ESPP | 1,147 |  |  | 1,518 |  |  | 1,762 |
Stock-based compensation expense | $ | 24,118 |  |  | $ | 22,201 |  |  | $ | 14,628 |
Schedule of Nonvested Restricted Stock Shares Activity | The following table sets forth the Company's RSU activity during the years ended December 31, 2024, 2023 and 2022:
| Number of Restricted Stock Units |  | Weighted-Average Grant-Date Fair Value
Nonvested balance as of December 31, 2021 | — |  |  | — |
Granted | 525,735 |  |  | $ | 25.93 |
Vested | (890) |  |  | — |
Forfeited | (7,710) |  |  | 26.09 |
Nonvested balance as of December 31, 2022 | 517,135 |  |  | $ | 25.93 |
Granted | 709,175 |  |  | 19.58 |
Vested | (208,345) |  |  | 25.66 |
Forfeited | (25,501) |  |  | 23.20 |
Nonvested balance as of December 31, 2023 | 992,464 |  |  | $ | 21.52 |
Granted | 891,598 |  |  | 18.42 |
Vested | (455,517) |  |  | 22.10 |
Forfeited | (241,119) |  |  | 19.31 |
Nonvested balance as of December 31, 2024 | 1,187,426 |  |  | $ | 19.42 |
Schedule of Nonvested Performance-Based Units Activity | The following table sets forth the Company's PSU activity during the years ended December 31, 2024, 2023 and 2022:
| Number of Performance-Based Restricted Stock Units |  | Weighted-Average Grant-Date Fair Value
Nonvested balance as of December 31, 2021 | — |  |  | — |
Granted | 473,371 |  |  | $ | 26.76 |
Vested | — |  |  | — |
Forfeited | — |  |  | — |
Nonvested balance as of December 31, 2022 | 473,371 |  |  | $ | 26.76 |
Granted | 657,408 |  |  | 21.46 |
Vested | — |  |  | — |
Forfeited | — |  |  | — |
Nonvested balance as of December 31, 2023 | 1,130,779 |  |  | $ | 23.68 |
Granted | 693,936 |  |  | 18.89 |
Vested | (122,241) |  |  | 26.33 |
Forfeited | (352,116) |  |  | 22.31 |
Nonvested balance as of December 31, 2024 | 1,350,358 |  |  | $ | 22.01 |
Schedule of Stock Options, Valuation Assumptions | The following table sets forth the PSUs weighted-average fair values and assumptions used in the Monte Carlo simulation model during the periods presented:
| Years Ended December 31,
| 2024 | 2023 | 2022
Weighted-average fair value | $ | 18.80 |  | $ | 21.46 |  | $ | 27.21 |
Dividend yield | — |  | — |  | — |
Volatility | 51.13 | % | 75.80 | % | 77.12 | %
Risk-free interest rate | 4.13 | % | 4.14 | % | 2.87 | %
Expected life (in years) | 2.99 | 2.99 | 2.66
Schedule of Stock Option Activity | The following table sets forth the Company's stock options activity during the year ended December 31, 2024:
| Number of Stock Option Awards |  | Weighted-Average Grant-Date Fair Value
Nonvested balance as of December 31, 2023 | 401,075 |  |  | $ | 12.62 |
Granted | — |  |  | — |
Vested | (401,075) |  |  | 12.62 |
Forfeited | — |  |  | — |
Outstanding stock option awards expected to vest as of December 31, 2024 | — |  |  | N/A
Schedule of Outstanding Stock Option Activity | The following table reflects changes in the Company's outstanding stock option awards for the year ended December 31, 2024:
| 2024
| Number of Stock Option Awards |  | Weighted- Average Exercise Price |  | Weighted- Average Remaining Contractual Term (years) |  | Aggregate Intrinsic Value (in thousands)
Outstanding stock option awards at January 1 | 3,309,222 |  |  | $ | 11.65 |  |  | 5.52 |  | $ | 28,781 |
Granted | — |  |  | — |  |  | — |  | — |
Exercises (issuance of shares) | (604,360) |  |  | 10.04 |  |  | 4.13 |  | 90 |
Forfeitures/expirations | — |  |  | — |  |  | — |  | — |
Outstanding stock option awards as of December 31 | 2,704,862 |  |  | $ | 12.01 |  |  | 4.60 |  | $ | 7,540 |
Options exercisable as of December 31 | 2,704,862 |  |  | $ | 12.01 |  |  | 4.60 |  | $ | 7,540 |
The following table reflects changes in the Company's outstanding stock option awards for the year ended December 31, 2023:
| 2023
| Number of Stock Option Awards |  | Weighted- Average Exercise Price |  | Weighted- Average Remaining Contractual Term (years) |  | Aggregate Intrinsic Value (in thousands)
Outstanding stock option awards at January 1 | 3,533,507 |  |  | $ | 11.62 |  |  | 6.52 |  | $ | 26,070 |
Granted | — |  |  | — |  |  | — |  |  | — |
Exercises (issuance of shares) | (216,549) |  |  | 11.22 |  |  | 5.56 |  | 173 |
Forfeitures/expirations | (7,736) |  |  | 10.35 |  |  | 6.95 |  | 91 |
Outstanding stock option awards at December 31 | 3,309,222 |  |  | $ | 11.65 |  |  | 5.52 |  | $ | 28,781 |
Options exercisable as of December 31 | 2,908,147 |  |  | $ | 11.52 |  |  | 5.39 |  | $ | 25,682 |

X
- Definition Tabular disclosure of share-based payment arrangement. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Section 50 -Paragraph 1 -SubTopic 10 -Topic 718 -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-1 Reference 2: 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_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

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

X
- Definition Tabular disclosure of the changes in outstanding nonvested restricted stock shares. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Section 50 -Subparagraph (c) -Paragraph 2 -SubTopic 10 -Topic 718 -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of cost recognized for award under share-based payment arrangement by plan. Includes, but is not limited to, related tax benefit. + 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_ScheduleOfCompensationCostForShareBasedPaymentArrangementsAllocationOfShareBasedCompensationCostsByPlanTableTextBlock
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 performance-based units. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (c)(2) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ScheduleOfNonvestedPerformanceBasedUnitsActivityTableTextBlock
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 options that are fully vested and expected to vest. Includes, but is not limited to, unvested options 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_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingTableTextBlock
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 -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -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