Condensed Consolidated Statements of Changes in Redeemable Non-Controlling Interests and Stockholders' Equity - USD ($) $ in Thousands |
Total |
Class A Common Stock |
Class B Common Stock |
Common Stock
Class A Common Stock
|
Common Stock
Class B Common Stock
|
Additional Paid-in Capital |
Retained Earnings |
Accumulated Other Comprehensive Loss |
Treasury Stock |
Non-controlling Interests |
Redeemable non-controlling interests, beginning balance at Dec. 31, 2021 |
$ 46,182
|
|
|
|
|
|
|
|
|
|
Redeemable Non-controlling Interests |
|
|
|
|
|
|
|
|
|
|
Distributions to redeemable non-controlling interests |
(863)
|
|
|
|
|
|
|
|
|
|
Accretion of tax equity financing fees |
81
|
|
|
|
|
|
|
|
|
|
Investment fund call option exercise |
(238)
|
|
|
|
|
|
|
|
|
|
Net income |
2,915
|
|
|
|
|
|
|
|
|
|
Redeemable non-controlling interests, ending balance at Sep. 30, 2022 |
48,077
|
|
|
|
|
|
|
|
|
|
Beginning balance (in shares) at Dec. 31, 2021 |
|
|
|
33,716,309
|
18,000,000
|
|
|
|
|
|
Treasury stock, beginning balance (in shares) at Dec. 31, 2021 |
|
|
|
|
|
|
|
|
2,101,795
|
|
Beginning balance at Dec. 31, 2021 |
704,264
|
|
|
$ 3
|
$ 2
|
$ 283,982
|
$ 438,732
|
$ (6,667)
|
$ (11,788)
|
$ 0
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
Exercise of stock options (in shares) |
|
|
|
180,888
|
|
|
|
|
|
|
Exercise of stock options |
3,482
|
|
|
|
|
3,482
|
|
|
|
|
Stock-based compensation expense |
10,837
|
|
|
|
|
10,837
|
|
|
|
|
Employee stock purchase plan (in shares) |
|
|
|
16,996
|
|
|
|
|
|
|
Employee stock purchase plan |
948
|
|
|
|
|
948
|
|
|
|
|
Unrealized gain from interest rate hedges, net |
6,033
|
|
|
|
|
|
|
6,033
|
|
|
Foreign currency translation adjustment |
(5,016)
|
|
|
|
|
|
|
(5,016)
|
|
|
Accretion of tax equity financing fees |
(81)
|
|
|
|
|
|
(81)
|
|
|
|
Investment fund call option exercise |
238
|
|
|
|
|
238
|
|
|
|
|
Contributions from non-controlling interests |
16,844
|
|
|
|
|
|
|
|
|
16,844
|
Net (loss) income |
76,991
|
|
|
|
|
|
76,991
|
|
|
|
Ending balance (in shares) at Sep. 30, 2022 |
|
|
|
33,914,193
|
18,000,000
|
|
|
|
|
|
Treasury stock, ending balance (in shares) at Sep. 30, 2022 |
|
|
|
|
|
|
|
|
2,101,795
|
|
Ending balance at Sep. 30, 2022 |
814,540
|
|
|
$ 3
|
$ 2
|
299,487
|
515,642
|
(5,650)
|
$ (11,788)
|
16,844
|
Redeemable non-controlling interests, beginning balance at Jun. 30, 2022 |
47,918
|
|
|
|
|
|
|
|
|
|
Redeemable Non-controlling Interests |
|
|
|
|
|
|
|
|
|
|
Distributions to redeemable non-controlling interests |
(212)
|
|
|
|
|
|
|
|
|
|
Accretion of tax equity financing fees |
27
|
|
|
|
|
|
|
|
|
|
Net income |
344
|
|
|
|
|
|
|
|
|
|
Redeemable non-controlling interests, ending balance at Sep. 30, 2022 |
48,077
|
|
|
|
|
|
|
|
|
|
Beginning balance (in shares) at Jun. 30, 2022 |
|
|
|
33,833,893
|
18,000,000
|
|
|
|
|
|
Treasury stock, beginning balance (in shares) at Jun. 30, 2022 |
|
|
|
|
|
|
|
|
2,101,795
|
|
Beginning balance at Jun. 30, 2022 |
781,567
|
|
|
$ 3
|
$ 2
|
294,240
|
488,278
|
(4,354)
|
$ (11,788)
|
15,186
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
Exercise of stock options (in shares) |
|
|
|
80,300
|
|
|
|
|
|
|
Exercise of stock options |
1,616
|
|
|
|
|
1,616
|
|
|
|
|
Stock-based compensation expense |
3,631
|
|
|
|
|
3,631
|
|
|
|
|
Unrealized gain from interest rate hedges, net |
1,757
|
|
|
|
|
|
|
1,757
|
|
|
Foreign currency translation adjustment |
(3,053)
|
|
|
|
|
|
|
(3,053)
|
|
|
Accretion of tax equity financing fees |
(27)
|
|
|
|
|
|
(27)
|
|
|
|
Contributions from non-controlling interests |
1,658
|
|
|
|
|
|
|
|
|
1,658
|
Net (loss) income |
27,391
|
|
|
|
|
|
27,391
|
|
|
|
Ending balance (in shares) at Sep. 30, 2022 |
|
|
|
33,914,193
|
18,000,000
|
|
|
|
|
|
Treasury stock, ending balance (in shares) at Sep. 30, 2022 |
|
|
|
|
|
|
|
|
2,101,795
|
|
Ending balance at Sep. 30, 2022 |
814,540
|
|
|
$ 3
|
$ 2
|
299,487
|
515,642
|
(5,650)
|
$ (11,788)
|
16,844
|
Redeemable non-controlling interests, beginning balance at Dec. 31, 2022 |
46,623
|
|
|
|
|
|
|
|
|
|
Redeemable Non-controlling Interests |
|
|
|
|
|
|
|
|
|
|
Distributions to redeemable non-controlling interests |
(494)
|
|
|
|
|
|
|
|
|
|
Accretion of tax equity financing fees |
81
|
|
|
|
|
|
|
|
|
|
Investment fund call option exercise |
195
|
|
|
|
|
|
|
|
|
|
Net income |
870
|
|
|
|
|
|
|
|
|
|
Redeemable non-controlling interests, ending balance at Sep. 30, 2023 |
$ 47,275
|
|
|
|
|
|
|
|
|
|
Beginning balance (in shares) at Dec. 31, 2022 |
|
33,948,362
|
18,000,000
|
33,948,362
|
18,000,000
|
|
|
|
|
|
Treasury stock, beginning balance (in shares) at Dec. 31, 2022 |
2,101,795
|
|
|
|
|
|
|
|
2,101,795
|
|
Beginning balance at Dec. 31, 2022 |
$ 873,031
|
|
|
$ 3
|
$ 2
|
306,314
|
533,549
|
(4,051)
|
$ (11,788)
|
49,002
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
Exercise of stock options (in shares) |
|
|
|
238,750
|
|
|
|
|
|
|
Exercise of stock options |
2,367
|
|
|
|
|
2,367
|
|
|
|
|
Stock-based compensation expense |
12,318
|
|
|
|
|
12,318
|
|
|
|
|
Employee stock purchase plan (in shares) |
|
|
|
24,833
|
|
|
|
|
|
|
Employee stock purchase plan |
1,017
|
|
|
|
|
1,017
|
|
|
|
|
Restricted stock units released (in shares) |
|
|
|
22,601
|
|
|
|
|
|
|
Unrealized gain from interest rate hedges, net |
716
|
|
|
|
|
|
|
716
|
|
|
Foreign currency translation adjustment |
(425)
|
|
|
|
|
|
|
(400)
|
|
(25)
|
Accretion of tax equity financing fees |
(81)
|
|
|
|
|
|
(81)
|
|
|
|
Investment fund call option exercise |
(195)
|
|
|
|
|
(195)
|
|
|
|
|
Contributions from non-controlling interests |
957
|
|
|
|
|
|
|
|
|
957
|
Distributions to non-controlling interest |
(20,521)
|
|
|
|
|
|
|
|
|
(20,521)
|
Net (loss) income |
$ 29,942
|
|
|
|
|
|
28,735
|
|
|
1,207
|
Ending balance (in shares) at Sep. 30, 2023 |
|
34,234,546
|
18,000,000
|
34,234,546
|
18,000,000
|
|
|
|
|
|
Treasury stock, ending balance (in shares) at Sep. 30, 2023 |
2,101,795
|
|
|
|
|
|
|
|
2,101,795
|
|
Ending balance at Sep. 30, 2023 |
$ 899,126
|
|
|
$ 3
|
$ 2
|
321,821
|
562,203
|
(3,735)
|
$ (11,788)
|
30,620
|
Redeemable non-controlling interests, beginning balance at Jun. 30, 2023 |
47,994
|
|
|
|
|
|
|
|
|
|
Redeemable Non-controlling Interests |
|
|
|
|
|
|
|
|
|
|
Distributions to redeemable non-controlling interests |
(159)
|
|
|
|
|
|
|
|
|
|
Accretion of tax equity financing fees |
26
|
|
|
|
|
|
|
|
|
|
Net income |
(586)
|
|
|
|
|
|
|
|
|
|
Redeemable non-controlling interests, ending balance at Sep. 30, 2023 |
47,275
|
|
|
|
|
|
|
|
|
|
Beginning balance (in shares) at Jun. 30, 2023 |
|
|
|
34,200,610
|
18,000,000
|
|
|
|
|
|
Treasury stock, beginning balance (in shares) at Jun. 30, 2023 |
|
|
|
|
|
|
|
|
2,101,795
|
|
Beginning balance at Jun. 30, 2023 |
873,983
|
|
|
$ 3
|
$ 2
|
317,228
|
540,964
|
(2,884)
|
$ (11,788)
|
30,458
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
Exercise of stock options (in shares) |
|
|
|
22,150
|
|
|
|
|
|
|
Exercise of stock options |
274
|
|
|
|
|
274
|
|
|
|
|
Stock-based compensation expense |
4,319
|
|
|
|
|
4,319
|
|
|
|
|
Restricted stock units released (in shares) |
|
|
|
11,786
|
|
|
|
|
|
|
Unrealized gain from interest rate hedges, net |
764
|
|
|
|
|
|
|
764
|
|
|
Foreign currency translation adjustment |
(1,651)
|
|
|
|
|
|
|
(1,615)
|
|
(36)
|
Accretion of tax equity financing fees |
(26)
|
|
|
|
|
|
(26)
|
|
|
|
Contributions from non-controlling interests |
35
|
|
|
|
|
|
|
|
|
35
|
Net (loss) income |
$ 21,428
|
|
|
|
|
|
21,265
|
|
|
163
|
Ending balance (in shares) at Sep. 30, 2023 |
|
34,234,546
|
18,000,000
|
34,234,546
|
18,000,000
|
|
|
|
|
|
Treasury stock, ending balance (in shares) at Sep. 30, 2023 |
2,101,795
|
|
|
|
|
|
|
|
2,101,795
|
|
Ending balance at Sep. 30, 2023 |
$ 899,126
|
|
|
$ 3
|
$ 2
|
$ 321,821
|
$ 562,203
|
$ (3,735)
|
$ (11,788)
|
$ 30,620
|