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 (“NCI”) |
Redeemable non-controlling interests, beginning balance at Dec. 31, 2022 |
$ 46,623
|
|
|
|
|
|
|
|
|
|
Redeemable Non-controlling Interests (“RNCI”) |
|
|
|
|
|
|
|
|
|
|
Distributions to RNCI |
(335)
|
|
|
|
|
|
|
|
|
|
Accretion of tax equity financing fees |
55
|
|
|
|
|
|
|
|
|
|
Investment fund call option exercise |
195
|
|
|
|
|
|
|
|
|
|
Net income (loss) |
1,456
|
|
|
|
|
|
|
|
|
|
Redeemable non-controlling interests, ending balance at Jun. 30, 2023 |
47,994
|
|
|
|
|
|
|
|
|
|
Beginning balance (in shares) at Dec. 31, 2022 |
|
|
|
33,948,362
|
18,000,000
|
|
|
|
|
|
Treasury stock, beginning balance (in shares) at Dec. 31, 2022 |
|
|
|
|
|
|
|
|
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) |
|
|
|
216,600
|
|
|
|
|
|
|
Exercise of stock options |
2,093
|
|
|
|
|
2,093
|
|
|
|
|
Stock-based compensation expense |
7,999
|
|
|
|
|
7,999
|
|
|
|
|
Employee stock purchase plan (in shares) |
|
|
|
24,833
|
|
|
|
|
|
|
Employee stock purchase plan |
1,017
|
|
|
|
|
1,017
|
|
|
|
|
Restricted stock units released (in shares) |
|
|
|
10,815
|
|
|
|
|
|
|
Unrealized gain (loss) from interest rate hedges, net |
(48)
|
|
|
|
|
|
|
(48)
|
|
|
Foreign currency translation adjustment |
1,226
|
|
|
|
|
|
|
1,215
|
|
11
|
Accretion of tax equity financing fees |
(55)
|
|
|
|
|
|
(55)
|
|
|
|
Investment fund call option exercise |
(195)
|
|
|
|
|
(195)
|
|
|
|
|
Contributions from NCI |
922
|
|
|
|
|
|
|
|
|
922
|
Distributions to NCI |
(20,521)
|
|
|
|
|
|
|
|
|
(20,521)
|
Net income (loss) |
8,514
|
|
|
|
|
|
7,470
|
|
|
1,044
|
Ending balance (in shares) at Jun. 30, 2023 |
|
|
|
34,200,610
|
18,000,000
|
|
|
|
|
|
Treasury stock, ending balance (in shares) at Jun. 30, 2023 |
|
|
|
|
|
|
|
|
2,101,795
|
|
Ending balance at Jun. 30, 2023 |
873,983
|
|
|
$ 3
|
$ 2
|
317,228
|
540,964
|
(2,884)
|
$ (11,788)
|
30,458
|
Redeemable non-controlling interests, beginning balance at Mar. 31, 2023 |
46,700
|
|
|
|
|
|
|
|
|
|
Redeemable Non-controlling Interests (“RNCI”) |
|
|
|
|
|
|
|
|
|
|
Distributions to RNCI |
(157)
|
|
|
|
|
|
|
|
|
|
Accretion of tax equity financing fees |
28
|
|
|
|
|
|
|
|
|
|
Net income (loss) |
1,423
|
|
|
|
|
|
|
|
|
|
Redeemable non-controlling interests, ending balance at Jun. 30, 2023 |
47,994
|
|
|
|
|
|
|
|
|
|
Beginning balance (in shares) at Mar. 31, 2023 |
|
|
|
34,030,362
|
18,000,000
|
|
|
|
|
|
Treasury stock, beginning balance (in shares) at Mar. 31, 2023 |
|
|
|
|
|
|
|
|
2,101,795
|
|
Beginning balance at Mar. 31, 2023 |
894,772
|
|
|
$ 3
|
$ 2
|
310,726
|
534,624
|
(4,645)
|
$ (11,788)
|
65,850
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
Exercise of stock options (in shares) |
|
|
|
134,600
|
|
|
|
|
|
|
Exercise of stock options |
1,523
|
|
|
|
|
1,523
|
|
|
|
|
Stock-based compensation expense |
3,962
|
|
|
|
|
3,962
|
|
|
|
|
Employee stock purchase plan (in shares) |
|
|
|
24,833
|
|
|
|
|
|
|
Employee stock purchase plan |
1,017
|
|
|
|
|
1,017
|
|
|
|
|
Restricted stock units released (in shares) |
|
|
|
10,815
|
|
|
|
|
|
|
Unrealized gain (loss) from interest rate hedges, net |
820
|
|
|
|
|
|
|
820
|
|
|
Foreign currency translation adjustment |
943
|
|
|
|
|
|
|
941
|
|
2
|
Accretion of tax equity financing fees |
(28)
|
|
|
|
|
|
(28)
|
|
|
|
Contributions from NCI |
812
|
|
|
|
|
|
|
|
|
812
|
Distributions to NCI |
(36,828)
|
|
|
|
|
|
|
|
|
(36,828)
|
Net income (loss) |
6,990
|
|
|
|
|
|
6,368
|
|
|
622
|
Ending balance (in shares) at Jun. 30, 2023 |
|
|
|
34,200,610
|
18,000,000
|
|
|
|
|
|
Treasury stock, ending balance (in shares) at Jun. 30, 2023 |
|
|
|
|
|
|
|
|
2,101,795
|
|
Ending balance at Jun. 30, 2023 |
873,983
|
|
|
$ 3
|
$ 2
|
317,228
|
540,964
|
(2,884)
|
$ (11,788)
|
30,458
|
Redeemable non-controlling interests, beginning balance at Dec. 31, 2023 |
46,865
|
|
|
|
|
|
|
|
|
|
Redeemable Non-controlling Interests (“RNCI”) |
|
|
|
|
|
|
|
|
|
|
Distributions to RNCI |
(287)
|
|
|
|
|
|
|
|
|
|
Accretion of tax equity financing fees |
54
|
|
|
|
|
|
|
|
|
|
Net income (loss) |
(2,855)
|
|
|
|
|
|
|
|
|
|
Redeemable non-controlling interests, ending balance at Jun. 30, 2024 |
$ 43,777
|
|
|
|
|
|
|
|
|
|
Beginning balance (in shares) at Dec. 31, 2023 |
|
34,277,195
|
18,000,000
|
34,277,195
|
18,000,000
|
|
|
|
|
|
Treasury stock, beginning balance (in shares) at Dec. 31, 2023 |
2,101,795
|
|
|
|
|
|
|
|
2,101,795
|
|
Beginning balance at Dec. 31, 2023 |
$ 925,886
|
|
|
$ 3
|
$ 2
|
320,892
|
595,911
|
(3,045)
|
$ (11,788)
|
23,911
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
Exercise of stock options (in shares) |
|
|
|
62,589
|
|
|
|
|
|
|
Exercise of stock options |
504
|
|
|
|
|
504
|
|
|
|
|
Stock-based compensation expense |
6,704
|
|
|
|
|
6,704
|
|
|
|
|
Employee stock purchase plan (in shares) |
|
|
|
32,841
|
|
|
|
|
|
|
Employee stock purchase plan |
990
|
|
|
|
|
990
|
|
|
|
|
Restricted stock units released (in shares) |
|
|
|
29,890
|
|
|
|
|
|
|
Unrealized gain (loss) from interest rate hedges, net |
614
|
|
|
|
|
|
|
614
|
|
|
Foreign currency translation adjustment |
(1,351)
|
|
|
|
|
|
|
(1,369)
|
|
18
|
Accretion of tax equity financing fees |
(54)
|
|
|
|
|
|
(54)
|
|
|
|
Contributions from NCI |
30,792
|
|
|
|
|
3,040
|
|
|
|
27,752
|
Distributions to NCI |
(1,004)
|
|
|
|
|
|
|
|
|
(1,004)
|
Purchase of shares from NCI |
(23,760)
|
|
|
|
|
226
|
|
|
|
(23,986)
|
Net income (loss) |
$ 1,871
|
|
|
|
|
|
2,073
|
|
|
(202)
|
Ending balance (in shares) at Jun. 30, 2024 |
|
34,402,515
|
18,000,000
|
34,402,515
|
18,000,000
|
|
|
|
|
|
Treasury stock, ending balance (in shares) at Jun. 30, 2024 |
2,101,795
|
|
|
|
|
|
|
|
2,101,795
|
|
Ending balance at Jun. 30, 2024 |
$ 941,192
|
|
|
$ 3
|
$ 2
|
332,356
|
597,930
|
(3,800)
|
$ (11,788)
|
26,489
|
Redeemable non-controlling interests, beginning balance at Mar. 31, 2024 |
43,908
|
|
|
|
|
|
|
|
|
|
Redeemable Non-controlling Interests (“RNCI”) |
|
|
|
|
|
|
|
|
|
|
Distributions to RNCI |
(158)
|
|
|
|
|
|
|
|
|
|
Accretion of tax equity financing fees |
27
|
|
|
|
|
|
|
|
|
|
Redeemable non-controlling interests, ending balance at Jun. 30, 2024 |
43,777
|
|
|
|
|
|
|
|
|
|
Beginning balance (in shares) at Mar. 31, 2024 |
|
|
|
34,320,161
|
18,000,000
|
|
|
|
|
|
Treasury stock, beginning balance (in shares) at Mar. 31, 2024 |
|
|
|
|
|
|
|
|
2,101,795
|
|
Beginning balance at Mar. 31, 2024 |
930,163
|
|
|
$ 3
|
$ 2
|
327,367
|
592,947
|
(3,592)
|
$ (11,788)
|
25,224
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
Exercise of stock options (in shares) |
|
|
|
30,700
|
|
|
|
|
|
|
Exercise of stock options |
321
|
|
|
|
|
321
|
|
|
|
|
Stock-based compensation expense |
3,678
|
|
|
|
|
3,678
|
|
|
|
|
Employee stock purchase plan (in shares) |
|
|
|
32,841
|
|
|
|
|
|
|
Employee stock purchase plan |
990
|
|
|
|
|
990
|
|
|
|
|
Restricted stock units released (in shares) |
|
|
|
18,813
|
|
|
|
|
|
|
Unrealized gain (loss) from interest rate hedges, net |
75
|
|
|
|
|
|
|
75
|
|
|
Foreign currency translation adjustment |
(189)
|
|
|
|
|
|
|
(283)
|
|
94
|
Accretion of tax equity financing fees |
(27)
|
|
|
|
|
|
(27)
|
|
|
|
Contributions from NCI |
1,928
|
|
|
|
|
|
|
|
|
1,928
|
Distributions to NCI |
(941)
|
|
|
|
|
|
|
|
|
(941)
|
Net income (loss) |
$ 5,194
|
|
|
|
|
|
5,010
|
|
|
184
|
Ending balance (in shares) at Jun. 30, 2024 |
|
34,402,515
|
18,000,000
|
34,402,515
|
18,000,000
|
|
|
|
|
|
Treasury stock, ending balance (in shares) at Jun. 30, 2024 |
2,101,795
|
|
|
|
|
|
|
|
2,101,795
|
|
Ending balance at Jun. 30, 2024 |
$ 941,192
|
|
|
$ 3
|
$ 2
|
$ 332,356
|
$ 597,930
|
$ (3,800)
|
$ (11,788)
|
$ 26,489
|