Stockholders’ equity (Tables)
|
6 Months Ended |
Jun. 30, 2026 |
| Share-Based Payment Arrangement [Abstract] |
|
| Schedule of stock-based compensation |
Employee stock-based compensation cost recognized in the unaudited condensed consolidated statements of income was as follows: | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, | | Six Months Ended June 30, | | 2026 | | 2025 | | 2026 | | 2025 | | (in thousands) | Cost of revenues | $ | 333 | | | $ | 564 | | | $ | 843 | | | $ | 1,134 | | | Engineering, research, and development | 290 | | | 669 | | | 744 | | | 1,812 | | | Sales and marketing | 488 | | | 1,106 | | | 1,719 | | | 2,946 | | | General and administrative | 3,318 | | | 4,378 | | | 9,577 | | | 11,568 | | | Total stock-based compensation | $ | 4,429 | | | $ | 6,717 | | | $ | 12,883 | | | $ | 17,460 | |
|
| Schedule of option activity |
Stock option activity under the Company’s 2018 Stock Plan is set forth below: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Number of Options | | Weighted Average Exercise Price | | Aggregate Intrinsic Value (in thousands) | | Weighted Average Contractual Term (in years) | | Options outstanding as of January 1, 2026 | | 1,240,525 | | | $ | 3.54 | | | $ | 6,811 | | | | | Options exercised | | — | | | $ | — | | | | | | Options outstanding as of June 30, 2026 | | 1,240,525 | | | $ | 3.54 | | | $ | 2,655 | | | 2.6 | | | | | | | | | | Options vested and exercisable as of June 30, 2026 | | 1,240,525 | | | $ | 3.54 | | | $ | 2,655 | | | 2.6 |
Stock option activity under the Company’s 2020 Plan is set forth below: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Number of Options | | Weighted Average Exercise Price | | Aggregate Intrinsic Value (in thousands) | | Weighted Average Contractual Term (in years) | | Options outstanding as of January 1, 2026 | | 2,502,500 | | | $ | 12.61 | | | $ | 833 | | | | | Options forfeited | | (25,082) | | | $ | 12.13 | | | | | | | Options expired | | (90,769) | | | $ | 14.70 | | | | | | Options outstanding as of June 30, 2026 | | 2,386,649 | | | $ | 12.54 | | | $ | — | | | 4.7 | | | | | | | | | | Options vested and exercisable as of June 30, 2026 | | 2,257,769 | | | $ | 12.54 | | | $ | — | | | 4.6 |
|
| Schedule of restricted stock unit activity |
The following table summarizes activity of the Company’s RSUs for the six months ended June 30, 2026: | | | | | | | | | | | | | | | | | Number of Shares | | Weighted Average Grant Date Fair Value | Unvested awards as of January 1, 2026 | | 1,225,283 | | | $ | 14.30 | | | Awards granted | | 1,056,600 | | | $ | 8.34 | | | Awards vested and released | | (368,131) | | | $ | 15.02 | | | Awards forfeited | | (58,281) | | | $ | 12.27 | | Unvested awards as of June 30, 2026 | | 1,855,471 | | | $ | 10.83 | |
|
| Schedule of performance share activity |
The following table summarizes activity of the Company’s PSUs for the six months ended June 30, 2026: | | | | | | | | | | | | | | | | | Number of Shares | | Weighted Average Grant Date Fair Value | Unvested awards as of January 1, 2026(1) | | 1,769,358 | | | $ | 15.84 | | | Awards granted | | 697,500 | | | $ | 9.66 | | | Performance achievement adjustment | | 109,957 | | | $ | 10.66 | | Modifier adjustments rTSR | | (203,135) | | | $ | — | | Modifier adjustments rCAGR | | 37,399 | | | $ | 17.89 | | | Awards vested and released | | (1,080,953) | | | $ | 16.21 | | | Awards forfeited | | (28,820) | | | $ | 14.77 | | Unvested awards as of June 30, 2026(2) | | 1,301,306 | | | $ | 14.34 | | __________________________(1)Reported at the estimated performance adjustment of 206% for the tranches based on performance for the year ended December 31, 2025 and 131% for the remaining tranches. (2)Reported at the estimated performance achievement of 138% for the tranches based on expected performance for the year ending December 31, 2026 and 100% for the remaining tranches.
|