Equity Incentive Plans (Tables)
|
12 Months Ended |
Dec. 31, 2022 |
Share Based Compensation Arrangement By Share Based Payment Award [Line Items] |
|
Schedule of Fair Value of Stock Option Grants Determined using Block-Scholes Option Pricing Model Assumed Inputs |
The fair value of stock option grants is determined using the Black-Scholes option pricing model which requires the use of certain assumed inputs. The assumed inputs used to determine the fair value of stock options granted for the years ended December 31, 2022, 2021, and 2020 are set forth below:
|
|
|
|
|
|
|
|
|
Year Ended December 31, |
|
|
2022 |
|
2021 |
|
2020 |
Fair value of common stock |
|
$16.30-$37.00 |
|
$31.12-$48.05 |
|
$23.49-$34.07 |
Expected term (in years) |
|
6 |
|
6 |
|
6 |
Risk-free interest rate |
|
1.54%-4.18% |
|
0.45%-1.62% |
|
0.36%-0.83% |
Expected volatility |
|
63%-64% |
|
65%-67% |
|
64%-68% |
Expected dividend yield |
|
— |
|
— |
|
— |
|
Schedule of Stock Option Activity |
A summary of stock option activities during 2022, 2021 and 2020 is as follows:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Number of Options Outstanding |
|
|
Weighted Average Exercise Price |
|
|
Weighted Average Grant Date Fair Value per Option |
|
|
Aggregate Intrinsic Value Exercised (in thousands) |
|
Outstanding at December 31, 2019 |
|
|
617,493 |
|
|
$ |
17.13 |
|
|
|
|
|
|
|
Granted |
|
|
347,095 |
|
|
$ |
32.14 |
|
|
$ |
19.15 |
|
|
|
|
Exercised |
|
|
(96,456 |
) |
|
$ |
3.25 |
|
|
|
|
|
$ |
2,257 |
|
Canceled |
|
|
(54,890 |
) |
|
$ |
26.07 |
|
|
|
|
|
|
|
Outstanding at December 31, 2020 |
|
|
813,242 |
|
|
$ |
24.58 |
|
|
|
|
|
|
|
Granted |
|
|
111,489 |
|
|
$ |
39.00 |
|
|
$ |
23.32 |
|
|
|
|
Exercised |
|
|
(97,702 |
) |
|
$ |
9.20 |
|
|
|
|
|
$ |
3,064 |
|
Canceled |
|
|
(43,101 |
) |
|
$ |
35.84 |
|
|
|
|
|
|
|
Outstanding at December 31, 2021 |
|
|
783,928 |
|
|
$ |
28.00 |
|
|
|
|
|
|
|
Granted |
|
|
557,218 |
|
|
$ |
27.40 |
|
|
$ |
16.30 |
|
|
|
|
Exercised |
|
|
(41,819 |
) |
|
$ |
12.88 |
|
|
|
|
|
$ |
778 |
|
Canceled |
|
|
(43,271 |
) |
|
$ |
28.85 |
|
|
|
|
|
|
|
Outstanding at December 31, 2022 |
|
|
1,256,056 |
|
|
$ |
28.20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Schedule of Additional Information for Stock Options |
Additional information for stock options at December 31, 2022 were as follows:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Number of Options |
|
|
Weighted Average Exercise Price |
|
|
Aggregate Intrinsic Value (in thousands) |
|
|
Weighted Average Remaining Contractual term (in years) |
|
Outstanding at December 31, 2022 |
|
1,256,056 |
|
|
|
28.20 |
|
|
$ |
8,652 |
|
|
|
7.60 |
|
Exercisable at December 31, 2022 |
|
615,261 |
|
|
|
27.04 |
|
|
$ |
5,396 |
|
|
|
6.38 |
|
|
Schedule of Unvested Restricted Stock Units Awards Activity |
The following table summarizes the activity of RSU awards:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Number of RSUs |
|
|
Weighted Average Grant Date Fair Value per RSU |
|
|
Aggregate Fair Value of RSUs Vested (in thousands) |
|
Unvested RSUs at December 31, 2019 |
|
|
114,996 |
|
|
$ |
30.24 |
|
|
|
|
Granted |
|
|
91,759 |
|
|
$ |
31.75 |
|
|
|
|
Vested |
|
|
(54,970 |
) |
|
$ |
32.12 |
|
|
$ |
1,766 |
|
Forfeited |
|
|
(10,277 |
) |
|
$ |
41.50 |
|
|
|
|
Unvested RSUs at December 31, 2020 |
|
|
141,508 |
|
|
$ |
29.67 |
|
|
|
|
Granted |
|
|
84,035 |
|
|
$ |
37.86 |
|
|
|
|
Vested |
|
|
(80,972 |
) |
|
$ |
29.22 |
|
|
$ |
3,078 |
|
Forfeited |
|
|
(15,761 |
) |
|
$ |
31.38 |
|
|
|
|
Unvested RSUs at December 31, 2021 |
|
|
128,810 |
|
|
$ |
35.09 |
|
|
|
|
Granted |
|
|
205,807 |
|
|
$ |
26.90 |
|
|
|
|
Vested |
|
|
(107,971 |
) |
|
$ |
31.88 |
|
|
$ |
3,129 |
|
Forfeited |
|
|
(2,825 |
) |
|
$ |
26.50 |
|
|
|
|
Unvested RSUs at December 31, 2022 |
|
|
223,821 |
|
|
$ |
29.21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Schedule of Stock-Based Compensation Expense for All Award Types Recorded in Consolidated Statements of Operations |
Total stock-based compensation expense for all award types is recorded in the consolidated statements of operations and was allocated as follows (in thousands):
|
|
|
|
|
|
|
|
|
|
|
|
|
Year Ended December 31, |
|
|
2022 |
|
|
2021 |
|
|
2020 |
|
Cost of revenues |
$ |
1,992 |
|
|
$ |
1,567 |
|
|
$ |
1,093 |
|
Sales and marketing |
|
1,754 |
|
|
|
1,612 |
|
|
|
1,268 |
|
Research and development |
|
1,082 |
|
|
|
734 |
|
|
|
580 |
|
General and administrative |
|
3,454 |
|
|
|
1,959 |
|
|
|
1,521 |
|
Total |
$ |
8,282 |
|
|
$ |
5,872 |
|
|
$ |
4,462 |
|
|
2017 Equity Incentive Plan |
|
Share Based Compensation Arrangement By Share Based Payment Award [Line Items] |
|
Schedule of Activity of Shares Available for Grant |
The following table summarizes the activity of shares available for grant under the 2017 Equity Incentive Plan:
|
|
|
|
|
Shares available for grant at December 31, 2021 |
|
|
1,661,956 |
|
Increase in accordance with the evergreen provision |
|
|
585,172 |
|
Options issued during the year |
|
|
(557,218 |
) |
Canceled during the year |
|
|
43,271 |
|
RSUs granted |
|
|
(205,807 |
) |
Shares available for grant at December 31, 2022 |
|
|
1,527,374 |
|
|
|
|
|
|
2017 Employee Stock Purchase Plan |
|
Share Based Compensation Arrangement By Share Based Payment Award [Line Items] |
|
Schedule of Activity of Shares Available for Grant |
The following table summarizes the activity of shares available under the 2017 ESPP:
|
|
|
|
|
Shares available for grant at December 31, 2021 |
|
|
399,328 |
|
Increase in accordance with the evergreen provision |
|
|
150,000 |
|
Issued during the year |
|
|
(33,161 |
) |
Shares available for grant at December 31, 2022 |
|
|
516,167 |
|
|