Summary of Significant Accounting Policies (Tables)
|
12 Months Ended |
Dec. 31, 2023 |
Accounting Policies [Abstract] |
|
Schedule of Other Receivables |
|
|
|
|
|
|
|
|
|
|
|
As of |
|
|
|
December 31, 2023 |
|
|
December 31, 2022 |
|
Payroll tax withholding and exercise proceeds receivable |
|
$ |
— |
|
|
$ |
273 |
|
Construction receivable |
|
|
6,480 |
|
|
|
6,199 |
|
Income tax receivable |
|
|
3,051 |
|
|
|
4,387 |
|
Insurance receivable |
|
|
3,686 |
|
|
|
2,627 |
|
Other |
|
|
1,497 |
|
|
|
1,696 |
|
Total other receivables |
|
$ |
14,714 |
|
|
$ |
15,182 |
|
|
Schedule of Inventory |
Inventory for the periods presented is as follows:
|
|
|
|
|
|
|
|
|
|
|
As of |
|
|
|
December 31, 2023 |
|
|
December 31, 2022 |
|
Chemical washing solutions |
|
$ |
9,135 |
|
|
$ |
9,357 |
|
Reserve for obsolescence |
|
|
(183 |
) |
|
|
(183 |
) |
Total inventory, net |
|
$ |
8,952 |
|
|
$ |
9,174 |
|
|
Schedule of Composition of Revenue |
The following table summarizes the composition of our net revenues for the periods presented:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Year Ended December 31, |
|
|
|
2023 |
|
|
2022 |
|
|
2021 |
|
Recognized over time |
|
$ |
659,612 |
|
|
$ |
593,067 |
|
|
$ |
486,580 |
|
Recognized at a point in time |
|
|
267,067 |
|
|
|
282,424 |
|
|
|
268,981 |
|
Other revenue |
|
|
391 |
|
|
|
1,015 |
|
|
|
2,796 |
|
Net revenues |
|
$ |
927,070 |
|
|
$ |
876,506 |
|
|
$ |
758,357 |
|
|
Schedule of Reconciliations of Numerators and Denominators of Basic and Diluted Net Income (Loss) Per Share |
Reconciliations of the numerators and denominators of the basic and diluted net income (loss) per share calculations for the periods presented are as follows:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Year Ended December 31, |
|
|
|
2023 |
|
|
2022 |
|
|
2021 |
|
Numerator: |
|
|
|
|
|
|
|
|
|
Net income (loss) |
|
$ |
80,130 |
|
|
$ |
112,900 |
|
|
$ |
(22,045 |
) |
|
|
|
|
|
|
|
|
|
|
Denominator: |
|
|
|
|
|
|
|
|
|
Weighted-average common shares outstanding - basic |
|
|
311,035,122 |
|
|
|
303,372,095 |
|
|
|
280,215,579 |
|
Effect of potentially dilutive securities: |
|
|
|
|
|
|
|
|
|
Stock options |
|
|
16,778,290 |
|
|
|
23,617,488 |
|
|
|
— |
|
Restricted stock units |
|
|
396,177 |
|
|
|
555,495 |
|
|
|
— |
|
Employee stock purchase plan |
|
|
30,015 |
|
|
|
15,329 |
|
|
|
— |
|
Weighted-average common shares outstanding - diluted |
|
|
328,239,604 |
|
|
|
327,560,407 |
|
|
|
280,215,579 |
|
|
|
|
|
|
|
|
|
|
|
Net income (loss) per share - basic |
|
$ |
0.26 |
|
|
$ |
0.37 |
|
|
$ |
(0.08 |
) |
Net income (loss) per share - diluted |
|
$ |
0.24 |
|
|
$ |
0.34 |
|
|
$ |
(0.08 |
) |
|
Schedule of Antidilutive Shares Excluded from Computation of Diluted Net Income (Loss) Per Share |
The following potentially dilutive shares were excluded from the computation of diluted net income (loss) per share for the periods presented because including them would have been antidilutive:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Year Ended December 31, |
|
|
|
2023 |
|
|
2022 |
|
|
2021 |
|
Stock options |
|
|
3,457,404 |
|
|
|
2,204,216 |
|
|
|
30,752,951 |
|
Restricted stock units |
|
|
184,619 |
|
|
|
62,140 |
|
|
|
1,683,077 |
|
Employee stock purchase plan |
|
|
53,408 |
|
|
|
49,645 |
|
|
|
194,263 |
|
|