Stock-Based Compensation (Tables)
|
6 Months Ended |
Jun. 30, 2024 |
| Share-Based Payment Arrangement [Abstract] |
|
| Summary of Stock-Based Compensation Expense |
Stock-based compensation expense was allocated in the condensed consolidated statements of comprehensive income as follows: | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, | | Six Months Ended June 30, | | (in thousands) | 2024 | | 2023 | | 2024 | | 2023 | | Cost of revenues | $ | 2,730 | | | $ | 2,586 | | | $ | 6,812 | | | $ | 5,089 | | | Operating expenses | | | | | | | | | Sales and marketing | 2,512 | | | 2,528 | | | 6,956 | | | 4,951 | | | Research and development | 1,820 | | | 1,812 | | | 5,062 | | | 3,589 | | | General and administrative | 4,432 | | | 5,955 | | | 12,682 | | | 11,032 | | | $ | 11,494 | | | $ | 12,881 | | | $ | 31,512 | | | $ | 24,661 | |
Stock-based compensation expense by grant type or plan was as follows: | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, | | Six Months Ended June 30, | | (in thousands) | 2024 | | 2023 | | 2024 | | 2023 | | Stock options | $ | 506 | | | $ | 494 | | | $ | 1,003 | | | $ | 985 | | | PSUs | 2,445 | | | 3,499 | | | 4,890 | | | 7,424 | | | RSUs & DSUs | 6,952 | | | 7,381 | | | 22,443 | | | 13,443 | | | RSAs | 89 | | | 115 | | | 215 | | | 223 | | | ESPP | 802 | | | 748 | | | 1,523 | | | 1,337 | | | 401(k) stock match | 700 | | | 644 | | | 1,438 | | | 1,249 | | | $ | 11,494 | | | $ | 12,881 | | | $ | 31,512 | | | $ | 24,661 | |
|
| Summary of Stock Option Activity |
Our stock option activity was as follows: | | | | | | | | | | | | | Six Months Ended June 30, 2024 | | Options (#) | | Weighted Average Exercise Price ($/share) | | Outstanding, beginning of period | 346,822 | | | $ | 80.02 | | | Granted | 33,930 | | | 196.37 | | | Exercised | (48,400) | | | 47.83 | | | Forfeited | (760) | | | 167.08 | | | Outstanding, end of period | 331,592 | | | $ | 96.43 | |
|
| Summary of Weighted Average Fair Value Per Share of Options Granted, Assumptions |
This was estimated on the date of grant using the Black-Scholes option pricing model with the following weighted-average assumptions: | | | | | | | Life (in years) | 4.1 | | Volatility | 36.7 | % | | Dividend yield | — | | | Risk-free interest rate | 4.3 | % |
|
| Summary of PSU, RSU, RSA, and DSU |
Activity for our PSUs, RSUs, RSAs, and DSUs in aggregate was as follows: | | | | | | | | | | | | | Six Months Ended June 30, 2024 | | # | | Weighted Average Grant Date Fair Value ($/share) | | Outstanding, beginning of period | 773,414 | | | $ | 147.50 | | | Granted | 324,896 | | | 179.31 | | | Vested and common stock issued | (366,823) | | | 124.01 | | | Forfeited | (3,423) | | | 154.70 | | | Outstanding, end of period | 728,064 | | | $ | 173.50 | |
|
| Summary of ESPP Activity |
Our ESPP activity was as follows: | | | | | | | | | | | | | | | | | | | | | | | | | Three Months Ended June 30, | | Six Months Ended June 30, | | (in thousands, except shares) | 2024 | | 2023 | | 2024 | | 2023 | | Amounts for shares purchased | $ | 4,828 | | | $ | 3,895 | | | $ | 5,219 | | | $ | 4,136 | | | Shares purchased | 30,185 | | | 35,676 | | | 32,583 | | | 38,225 | |
|
| Summary of Fair Value Estimation of Common Stock, Assumptions |
The fair value was estimated based on the market price of our common stock at the beginning of the offering period using the following assumptions: | | | | | | | Life (in years) | 0.5 | | Volatility | 30.9 | % | | Dividend yield | — | | | Risk-free interest rate | 5.3 | % |
|