CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY - USD ($) shares in Thousands, $ in Thousands |
Total |
Previously reported |
Retroactive application of reverse recapitalization |
Class A common stock |
Class B common stock |
Common Stock |
Common Stock
Previously reported
|
Common Stock
Retroactive application of reverse recapitalization
|
Common Stock
Class A common stock
|
Common Stock
Class A common stock
Previously reported
|
Common Stock
Class A common stock
Retroactive application of reverse recapitalization
|
Common Stock
Class B common stock
|
Common Stock
Class B common stock
Previously reported
|
Common Stock
Class B common stock
Retroactive application of reverse recapitalization
|
Additional Paid-In Capital |
Additional Paid-In Capital
Previously reported
|
Additional Paid-In Capital
Retroactive application of reverse recapitalization
|
Accumulated Other Comprehensive Income |
Accumulated Other Comprehensive Income
Previously reported
|
Accumulated Other Comprehensive Income
Retroactive application of reverse recapitalization
|
Retained Earnings |
Retained Earnings
Previously reported
|
Retained Earnings
Retroactive application of reverse recapitalization
|
Beginning balance temporary equity (shares) at Dec. 31, 2019 |
0
|
162,596
|
(162,596)
|
|
|
0
|
225,490
|
(225,490)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beginning balance, temporary equity at Dec. 31, 2019 |
$ 0
|
$ 8
|
$ (8)
|
|
|
$ 0
|
$ 11
|
$ (11)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beginning balance (shares) at Dec. 31, 2019 |
|
|
|
|
|
|
|
|
72,871
|
0
|
72,871
|
18,977
|
0
|
18,977
|
|
|
|
|
|
|
|
|
|
Beginning balance at Dec. 31, 2019 |
80,313
|
$ 80,313
|
$ 0
|
|
|
|
|
|
$ 8
|
$ 0
|
$ 8
|
$ 2
|
$ 0
|
$ 2
|
$ 66,670
|
$ 66,661
|
$ 9
|
$ 98
|
$ 98
|
$ 0
|
$ 13,535
|
$ 13,535
|
$ 0
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Net income |
23,571
|
|
|
$ 18,755
|
$ 4,816
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23,571
|
|
|
Exercise of stock options (shares) |
|
|
|
|
|
|
|
|
649
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Exercise of stock options |
622
|
|
|
|
|
|
|
|
|
|
|
|
|
|
622
|
|
|
|
|
|
|
|
|
Stock-based compensation |
2,999
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2,999
|
|
|
|
|
|
|
|
|
Repurchase and retirement of common stock (shares) |
|
|
|
|
|
|
|
|
(843)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Repurchase and retirement of common stock |
(2,540)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2,540)
|
|
|
Other comprehensive (loss) income |
$ 97
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97
|
|
|
|
|
|
Ending balance temporary equity (shares) at Sep. 30, 2020 |
0
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ending balance, temporary equity at Sep. 30, 2020 |
$ 0
|
|
|
|
|
$ 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ending balance (shares) at Sep. 30, 2020 |
|
|
|
|
|
|
|
|
72,677
|
|
|
18,977
|
|
|
|
|
|
|
|
|
|
|
|
Ending balance at Sep. 30, 2020 |
$ 105,062
|
|
|
|
|
|
|
|
$ 8
|
|
|
$ 2
|
|
|
70,291
|
|
|
195
|
|
|
34,566
|
|
|
Beginning balance temporary equity (shares) at Jun. 30, 2020 |
0
|
162,596
|
(162,596)
|
|
|
0
|
226,474
|
(226,474)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beginning balance, temporary equity at Jun. 30, 2020 |
$ 0
|
$ 8
|
$ (8)
|
|
|
$ 0
|
$ 11
|
$ (11)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beginning balance (shares) at Jun. 30, 2020 |
|
|
|
|
|
|
|
|
73,100
|
0
|
73,100
|
18,977
|
0
|
18,977
|
|
|
|
|
|
|
|
|
|
Beginning balance at Jun. 30, 2020 |
100,792
|
$ 100,792
|
$ 0
|
|
|
|
|
|
$ 8
|
$ 0
|
$ 8
|
$ 2
|
$ 0
|
$ 2
|
68,472
|
68,463
|
9
|
349
|
349
|
0
|
31,961
|
31,961
|
0
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Net income |
5,120
|
|
|
4,071
|
1,049
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5,120
|
|
|
Exercise of stock options (shares) |
|
|
|
|
|
|
|
|
414
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Exercise of stock options |
478
|
|
|
|
|
|
|
|
|
|
|
|
|
|
478
|
|
|
|
|
|
|
|
|
Stock-based compensation |
1,341
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1,341
|
|
|
|
|
|
|
|
|
Repurchase and retirement of common stock (shares) |
|
|
|
|
|
|
|
|
(837)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Repurchase and retirement of common stock |
(2,515)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2,515)
|
|
|
Other comprehensive (loss) income |
$ (154)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(154)
|
|
|
|
|
|
Ending balance temporary equity (shares) at Sep. 30, 2020 |
0
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ending balance, temporary equity at Sep. 30, 2020 |
$ 0
|
|
|
|
|
$ 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ending balance (shares) at Sep. 30, 2020 |
|
|
|
|
|
|
|
|
72,677
|
|
|
18,977
|
|
|
|
|
|
|
|
|
|
|
|
Ending balance at Sep. 30, 2020 |
$ 105,062
|
|
|
|
|
|
|
|
$ 8
|
|
|
$ 2
|
|
|
70,291
|
|
|
195
|
|
|
34,566
|
|
|
Beginning balance temporary equity (shares) at Dec. 31, 2020 |
0
|
162,596
|
(162,596)
|
|
|
0
|
238,186
|
(238,186)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beginning balance, temporary equity at Dec. 31, 2020 |
$ 0
|
$ 8
|
$ (8)
|
|
|
$ 0
|
$ 12
|
$ (12)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beginning balance (shares) at Dec. 31, 2020 |
|
|
|
|
|
|
|
|
74,422
|
0
|
74,422
|
18,977
|
0
|
18,977
|
|
|
|
|
|
|
|
|
|
Beginning balance at Dec. 31, 2020 |
96,079
|
$ 96,079
|
$ 0
|
|
|
|
|
|
$ 8
|
$ 0
|
$ 8
|
$ 2
|
$ 0
|
$ 2
|
71,786
|
71,776
|
$ 10
|
481
|
481
|
$ 0
|
23,802
|
23,802
|
$ 0
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Net income |
10,119
|
|
|
8,809
|
1,310
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10,119
|
|
|
Business Combination and PIPE Financing (shares) |
|
|
|
|
|
|
|
|
32,968
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Business Combination and PIPE Financing |
$ 186,011
|
|
|
|
|
|
|
|
$ 3
|
|
|
$ (2,847)
|
|
|
186,008
|
|
|
|
|
|
|
|
|
Exercise of stock options (shares) |
2,440
|
|
|
|
|
|
|
|
2,440
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Exercise of stock options |
$ 2,091
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2,091
|
|
|
|
|
|
|
|
|
Stock-based compensation |
4,182
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4,182
|
|
|
|
|
|
|
|
|
Other comprehensive (loss) income |
$ (92)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(92)
|
|
|
|
|
|
Ending balance temporary equity (shares) at Sep. 30, 2021 |
0
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ending balance, temporary equity at Sep. 30, 2021 |
$ 0
|
|
|
|
|
$ 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ending balance (shares) at Sep. 30, 2021 |
|
|
|
|
|
|
|
|
109,830
|
|
|
16,130
|
|
|
|
|
|
|
|
|
|
|
|
Ending balance at Sep. 30, 2021 |
298,390
|
|
|
|
|
|
|
|
$ 11
|
|
|
$ 2
|
|
|
264,067
|
|
|
389
|
|
|
33,921
|
|
|
Beginning balance temporary equity (shares) at Jun. 30, 2021 |
|
0
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beginning balance, temporary equity at Jun. 30, 2021 |
|
$ 0
|
|
|
|
|
$ 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beginning balance (shares) at Jun. 30, 2021 |
|
|
|
|
|
|
|
|
|
109,623
|
|
|
16,130
|
|
|
|
|
|
|
|
|
|
|
Beginning balance at Jun. 30, 2021 |
|
$ 286,021
|
|
|
|
|
|
|
|
$ 11
|
|
|
$ 2
|
|
|
$ 262,931
|
|
|
$ 394
|
|
|
$ 22,685
|
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Net income |
11,236
|
|
|
$ 9,796
|
$ 1,440
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11,236
|
|
|
Business Combination and PIPE Financing |
(73)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(73)
|
|
|
|
|
|
|
|
|
Exercise of stock options (shares) |
|
|
|
|
|
|
|
|
207
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Exercise of stock options |
192
|
|
|
|
|
|
|
|
|
|
|
|
|
|
192
|
|
|
|
|
|
|
|
|
Stock-based compensation |
1,017
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1,017
|
|
|
|
|
|
|
|
|
Other comprehensive (loss) income |
$ (5)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(5)
|
|
|
|
|
|
Ending balance temporary equity (shares) at Sep. 30, 2021 |
0
|
|
|
|
|
0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ending balance, temporary equity at Sep. 30, 2021 |
$ 0
|
|
|
|
|
$ 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ending balance (shares) at Sep. 30, 2021 |
|
|
|
|
|
|
|
|
109,830
|
|
|
16,130
|
|
|
|
|
|
|
|
|
|
|
|
Ending balance at Sep. 30, 2021 |
$ 298,390
|
|
|
|
|
|
|
|
$ 11
|
|
|
$ 2
|
|
|
$ 264,067
|
|
|
$ 389
|
|
|
$ 33,921
|
|
|