Condensed Consolidated Statements of Changes in Redeemable Non-Controlling Interests and Stockholders' Equity - USD ($) $ in Thousands |
Total |
Adjustment |
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 |
Retained Earnings
Adjustment
|
Accumulated Other Comprehensive Loss |
Accumulated Other Comprehensive Loss
Adjustment
|
Treasury Stock |
Redeemable non-controlling interests, beginning balance at Dec. 31, 2018 |
$ 14,719
|
|
|
|
|
|
|
|
|
|
|
|
Increase (Decrease) in Temporary Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
|
|
Contributions from redeemable non-controlling interests |
20,482
|
|
|
|
|
|
|
|
|
|
|
|
Distributions to redeemable non-controlling interests |
(569)
|
|
|
|
|
|
|
|
|
|
|
|
Net (loss) income |
(2,524)
|
|
|
|
|
|
|
|
|
|
|
|
Redeemable non-controlling interests, ending balance at Sep. 30, 2019 |
32,108
|
|
|
|
|
|
|
|
|
|
|
|
Beginning balance (in shares) at Dec. 31, 2018 |
|
|
|
|
28,275,506
|
18,000,000
|
|
|
|
|
|
2,091,040
|
Beginning balance at Dec. 31, 2018 |
376,875
|
$ 0
|
|
|
$ 3
|
$ 2
|
$ 124,651
|
$ 269,806
|
$ 217
|
$ (5,949)
|
$ (217)
|
$ (11,638)
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
|
|
Exercise of stock options (in shares) |
|
|
|
|
745,484
|
|
|
|
|
|
|
|
Exercise of stock options |
4,960
|
|
|
|
|
|
4,960
|
|
|
|
|
|
Stock-based compensation expense |
1,195
|
|
|
|
|
|
1,195
|
|
|
|
|
|
Employee stock purchase plan (in shares) |
|
|
|
|
22,124
|
|
|
|
|
|
|
|
Employee stock purchase plan |
305
|
|
|
|
|
|
305
|
|
|
|
|
|
Open market purchase of common shares (in shares) |
|
|
|
|
(10,000)
|
|
|
|
|
|
|
10,000
|
Open market purchase of common shares |
(139)
|
|
|
|
|
|
|
|
|
|
|
$ (139)
|
Unrealized gain from interest rate hedges, net |
(3,949)
|
|
|
|
|
|
|
|
|
|
|
|
Unrealized loss from interest rate hedges, net |
(3,732)
|
|
|
|
|
|
|
|
|
(3,732)
|
|
|
Foreign currency translation adjustment |
289
|
|
|
|
|
|
|
|
|
289
|
|
|
Net (loss) income |
22,233
|
|
|
|
|
|
|
22,233
|
|
|
|
|
Ending balance (in shares) at Sep. 30, 2019 |
|
|
|
|
29,033,114
|
18,000,000
|
|
|
|
|
|
2,101,040
|
Ending balance at Sep. 30, 2019 |
401,986
|
|
|
|
$ 3
|
$ 2
|
131,111
|
292,256
|
|
(9,609)
|
|
$ (11,777)
|
Redeemable non-controlling interests, beginning balance at Jun. 30, 2019 |
32,037
|
|
|
|
|
|
|
|
|
|
|
|
Increase (Decrease) in Temporary Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
|
|
Contributions from redeemable non-controlling interests |
974
|
|
|
|
|
|
|
|
|
|
|
|
Distributions to redeemable non-controlling interests |
(364)
|
|
|
|
|
|
|
|
|
|
|
|
Net (loss) income |
(539)
|
|
|
|
|
|
|
|
|
|
|
|
Redeemable non-controlling interests, ending balance at Sep. 30, 2019 |
32,108
|
|
|
|
|
|
|
|
|
|
|
|
Beginning balance (in shares) at Jun. 30, 2019 |
|
|
|
|
28,412,894
|
18,000,000
|
|
|
|
|
|
2,091,040
|
Beginning balance at Jun. 30, 2019 |
390,328
|
|
|
|
$ 3
|
$ 2
|
126,693
|
283,386
|
|
(8,118)
|
|
$ (11,638)
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
|
|
Exercise of stock options (in shares) |
|
|
|
|
630,220
|
|
|
|
|
|
|
|
Exercise of stock options |
4,005
|
|
|
|
|
|
4,005
|
|
|
|
|
|
Stock-based compensation expense |
413
|
|
|
|
|
|
413
|
|
|
|
|
|
Open market purchase of common shares (in shares) |
|
|
|
|
(10,000)
|
|
|
|
|
|
|
10,000
|
Open market purchase of common shares |
(139)
|
|
|
|
|
|
|
|
|
|
|
$ (139)
|
Unrealized gain from interest rate hedges, net |
(1,135)
|
|
|
|
|
|
|
|
|
(1,135)
|
|
|
Foreign currency translation adjustment |
(356)
|
|
|
|
|
|
|
|
|
(356)
|
|
|
Net (loss) income |
8,870
|
|
|
|
|
|
|
8,870
|
|
|
|
|
Ending balance (in shares) at Sep. 30, 2019 |
|
|
|
|
29,033,114
|
18,000,000
|
|
|
|
|
|
2,101,040
|
Ending balance at Sep. 30, 2019 |
401,986
|
|
|
|
$ 3
|
$ 2
|
131,111
|
292,256
|
|
(9,609)
|
|
$ (11,777)
|
Redeemable non-controlling interests, beginning balance at Dec. 31, 2019 |
31,616
|
|
|
|
|
|
|
|
|
|
|
|
Increase (Decrease) in Temporary Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
|
|
Contributions from redeemable non-controlling interests |
3,353
|
|
|
|
|
|
|
|
|
|
|
|
Distributions to redeemable non-controlling interests |
(1,232)
|
|
|
|
|
|
|
|
|
|
|
|
Accretion of tax equity financing fees |
91
|
|
|
|
|
|
|
|
|
|
|
|
Net (loss) income |
2,593
|
|
|
|
|
|
|
|
|
|
|
|
Redeemable non-controlling interests, ending balance at Sep. 30, 2020 |
36,421
|
|
|
|
|
|
|
|
|
|
|
|
Beginning balance (in shares) at Dec. 31, 2019 |
|
|
29,230,005
|
18,000,000
|
29,230,005
|
18,000,000
|
|
|
|
|
|
2,101,340
|
Beginning balance at Dec. 31, 2019 |
428,856
|
|
|
|
$ 3
|
$ 2
|
133,688
|
314,459
|
|
(7,514)
|
|
$ (11,782)
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
|
|
Exercise of stock options (in shares) |
|
|
|
|
608,063
|
|
|
|
|
|
|
|
Exercise of stock options |
6,088
|
|
|
|
|
|
6,088
|
|
|
|
|
|
Stock-based compensation expense |
1,380
|
|
|
|
|
|
1,380
|
|
|
|
|
|
Employee stock purchase plan (in shares) |
|
|
|
|
28,462
|
|
|
|
|
|
|
|
Employee stock purchase plan |
443
|
|
|
|
|
|
443
|
|
|
|
|
|
Open market purchase of common shares (in shares) |
|
|
|
|
(455)
|
|
|
|
|
|
|
455
|
Open market purchase of common shares |
(6)
|
|
|
|
|
|
|
|
|
|
|
$ (6)
|
Unrealized gain from interest rate hedges, net |
(3,412)
|
|
|
|
|
|
|
|
|
|
|
|
Unrealized loss from interest rate hedges, net |
|
|
|
|
|
|
|
|
|
(3,412)
|
|
|
Foreign currency translation adjustment |
(769)
|
|
|
|
|
|
|
|
|
(769)
|
|
|
Accretion of tax equity financing fees |
(91)
|
|
|
|
|
|
|
(91)
|
|
|
|
|
Net (loss) income |
30,568
|
|
|
|
|
|
|
30,568
|
|
|
|
|
Ending balance (in shares) at Sep. 30, 2020 |
|
|
29,866,075
|
18,000,000
|
29,866,075
|
18,000,000
|
|
|
|
|
|
2,101,795
|
Ending balance at Sep. 30, 2020 |
463,057
|
|
|
|
$ 3
|
$ 2
|
141,599
|
344,936
|
|
(11,695)
|
|
$ (11,788)
|
Redeemable non-controlling interests, beginning balance at Jun. 30, 2020 |
36,303
|
|
|
|
|
|
|
|
|
|
|
|
Increase (Decrease) in Temporary Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
|
|
Contributions from redeemable non-controlling interests |
2,865
|
|
|
|
|
|
|
|
|
|
|
|
Distributions to redeemable non-controlling interests |
(525)
|
|
|
|
|
|
|
|
|
|
|
|
Accretion of tax equity financing fees |
91
|
|
|
|
|
|
|
|
|
|
|
|
Net (loss) income |
(2,313)
|
|
|
|
|
|
|
|
|
|
|
|
Redeemable non-controlling interests, ending balance at Sep. 30, 2020 |
36,421
|
|
|
|
|
|
|
|
|
|
|
|
Beginning balance (in shares) at Jun. 30, 2020 |
|
|
|
|
29,718,102
|
18,000,000
|
|
|
|
|
|
2,101,795
|
Beginning balance at Jun. 30, 2020 |
439,673
|
|
|
|
$ 3
|
$ 2
|
139,625
|
325,025
|
|
(13,194)
|
|
$ (11,788)
|
Increase (Decrease) in Stockholders' Equity [Roll Forward] |
|
|
|
|
|
|
|
|
|
|
|
|
Exercise of stock options (in shares) |
|
|
|
|
147,813
|
|
|
|
|
|
|
|
Exercise of stock options |
1,450
|
|
|
|
|
|
1,450
|
|
|
|
|
|
Stock-based compensation expense |
522
|
|
|
|
|
|
522
|
|
|
|
|
|
Employee stock purchase plan (in shares) |
|
|
|
|
160
|
|
|
|
|
|
|
|
Employee stock purchase plan |
2
|
|
|
|
|
|
2
|
|
|
|
|
|
Unrealized gain from interest rate hedges, net |
638
|
|
|
|
|
|
|
|
|
638
|
|
|
Foreign currency translation adjustment |
861
|
|
|
|
|
|
|
|
|
861
|
|
|
Accretion of tax equity financing fees |
(91)
|
|
|
|
|
|
|
(91)
|
|
|
|
|
Net (loss) income |
20,002
|
|
|
|
|
|
|
20,002
|
|
|
|
|
Ending balance (in shares) at Sep. 30, 2020 |
|
|
29,866,075
|
18,000,000
|
29,866,075
|
18,000,000
|
|
|
|
|
|
2,101,795
|
Ending balance at Sep. 30, 2020 |
$ 463,057
|
|
|
|
$ 3
|
$ 2
|
$ 141,599
|
$ 344,936
|
|
$ (11,695)
|
|
$ (11,788)
|