Quarterly report [Sections 13 or 15(d)]

CONDENSED CONSOLIDATED STATEMENTS OF CHANGES IN REDEEMABLE NON-CONTROLLING INTERESTS AND STOCKHOLDERS’ EQUITY

v3.26.1
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 Income (Loss)
Treasury Stock
Non-controlling Interests
Redeemable non-controlling interests, beginning balance at Dec. 31, 2024 $ 2,463                  
Increase (Decrease) in Temporary Equity [Roll Forward]                    
Accretion of tax equity financing fees, net 54                  
Net (loss) income (974)                  
Redeemable non-controlling interests, ending balance at Jun. 30, 2025 1,543                  
Beginning balance (in shares) at Dec. 31, 2024       34,501,213 18,000,000          
Treasury stock, beginning balance (in shares) at Dec. 31, 2024                 2,101,835  
Accumulated gain in AOCL at the beginning of the period at Dec. 31, 2024 1,045,149     $ 3 $ 2 $ 378,321 $ 652,561 $ (5,874) $ (11,788) $ 31,924
Increase (Decrease) in Stockholders' Equity [Roll Forward]                    
Exercise of stock options (in shares)       80,178            
Exercise of stock options 503         503        
Stock-based compensation expense 6,595         6,595        
Employee stock purchase plan (in shares)       60,762            
Employee stock purchase plan 795         795        
Restricted stock units released (in shares)       61,506            
Unrealized gain (loss) from interest rate hedges, net (630)             (630)    
Foreign currency translation adjustment 6,679             6,744   (65)
Accretion of tax equity financing fees (54)           (54)      
Contributions from NCI 3,799                 3,799
Distributions to NCI (2,851)                 (2,851)
Net (loss) income 10,886           7,381     3,505
Ending balance (in shares) at Jun. 30, 2025       34,703,659 18,000,000          
Treasury stock, ending balance (in shares) at Jun. 30, 2025                 2,101,835  
Accumulated gain in AOCL at the end of the period at Jun. 30, 2025 1,070,871     $ 3 $ 2 386,214 659,888 240 $ (11,788) 36,312
Redeemable non-controlling interests, beginning balance at Mar. 31, 2025 1,966                  
Increase (Decrease) in Temporary Equity [Roll Forward]                    
Accretion of tax equity financing fees, net 27                  
Net (loss) income (450)                  
Redeemable non-controlling interests, ending balance at Jun. 30, 2025 1,543                  
Beginning balance (in shares) at Mar. 31, 2025       34,603,581 18,000,000          
Treasury stock, beginning balance (in shares) at Mar. 31, 2025                 2,101,835  
Accumulated gain in AOCL at the beginning of the period at Mar. 31, 2025 1,046,078     $ 3 $ 2 381,595 647,051 (4,935) $ (11,788) 34,150
Increase (Decrease) in Stockholders' Equity [Roll Forward]                    
Exercise of stock options (in shares)       10,000            
Exercise of stock options 74         74        
Stock-based compensation expense 3,750         3,750        
Employee stock purchase plan (in shares)       60,762            
Employee stock purchase plan 795         795        
Restricted stock units released (in shares)       29,316            
Unrealized gain (loss) from interest rate hedges, net (128)             (128)    
Foreign currency translation adjustment 5,272             5,303   (31)
Accretion of tax equity financing fees (27)           (27)      
Contributions from NCI 938                 938
Distributions to NCI (1,849)                 (1,849)
Net (loss) income 15,968           12,864     3,104
Ending balance (in shares) at Jun. 30, 2025       34,703,659 18,000,000          
Treasury stock, ending balance (in shares) at Jun. 30, 2025                 2,101,835  
Accumulated gain in AOCL at the end of the period at Jun. 30, 2025 1,070,871     $ 3 $ 2 386,214 659,888 240 $ (11,788) 36,312
Redeemable non-controlling interests, beginning balance at Dec. 31, 2025 1,419                  
Increase (Decrease) in Temporary Equity [Roll Forward]                    
Accretion of tax equity financing fees, net 46                  
Investment fund call option exercise (2,012)                  
Net (loss) income 547                  
Redeemable non-controlling interests, ending balance at Jun. 30, 2026 $ 0                  
Beginning balance (in shares) at Dec. 31, 2025   34,861,428 18,000,000 34,861,428 18,000,000          
Treasury stock, beginning balance (in shares) at Dec. 31, 2025 2,101,835               2,101,835  
Accumulated gain in AOCL at the beginning of the period at Dec. 31, 2025 $ 1,122,816     $ 3 $ 2 395,656 696,737 (460) $ (11,788) 42,666
Increase (Decrease) in Stockholders' Equity [Roll Forward]                    
Exercise of stock options (in shares)       85,000            
Exercise of stock options 836         836        
Stock-based compensation expense 7,555         7,555        
Employee stock purchase plan (in shares)       19,829            
Employee stock purchase plan 658         658        
Restricted stock units released (in shares)       99,954            
Unrealized gain (loss) from interest rate hedges, net 180             180    
Foreign currency translation adjustment (3,903)             (4,307)   404
Accretion of tax equity financing fees (46)           (46)      
Investment fund call option exercise 1,390         1,390        
Contributions from NCI, net of income tax effect and fee 218,922         159,069   (179)   60,032
Distributions to NCI (2,291)                 (2,291)
Net (loss) income $ 4,977           (8,565)     13,542
Ending balance (in shares) at Jun. 30, 2026   35,066,211 18,000,000 35,066,211 18,000,000          
Treasury stock, ending balance (in shares) at Jun. 30, 2026 2,101,835               2,101,835  
Accumulated gain in AOCL at the end of the period at Jun. 30, 2026 $ 1,351,094     $ 3 $ 2 565,164 688,126 (4,766) $ (11,788) 114,353
Redeemable non-controlling interests, beginning balance at Mar. 31, 2026 1,464                  
Increase (Decrease) in Temporary Equity [Roll Forward]                    
Investment fund call option exercise (2,012)                  
Net (loss) income 548                  
Redeemable non-controlling interests, ending balance at Jun. 30, 2026 0                  
Beginning balance (in shares) at Mar. 31, 2026       34,939,417 18,000,000          
Treasury stock, beginning balance (in shares) at Mar. 31, 2026                 2,101,835  
Accumulated gain in AOCL at the beginning of the period at Mar. 31, 2026 1,109,969     $ 3 $ 2 400,287 678,408 (2,324) $ (11,788) 45,381
Increase (Decrease) in Stockholders' Equity [Roll Forward]                    
Exercise of stock options (in shares)       44,355            
Exercise of stock options 381         381        
Stock-based compensation expense 3,379         3,379        
Employee stock purchase plan (in shares)       19,829            
Employee stock purchase plan 658         658        
Restricted stock units released (in shares)       62,610            
Unrealized gain (loss) from interest rate hedges, net 128             128    
Foreign currency translation adjustment (2,011)             (2,391)   380
Investment fund call option exercise 1,390         1,390        
Contributions from NCI, net of income tax effect and fee 218,922         159,069   (179)   60,032
Distributions to NCI (1,081)                 (1,081)
Net (loss) income $ 19,359           9,718     9,641
Ending balance (in shares) at Jun. 30, 2026   35,066,211 18,000,000 35,066,211 18,000,000          
Treasury stock, ending balance (in shares) at Jun. 30, 2026 2,101,835               2,101,835  
Accumulated gain in AOCL at the end of the period at Jun. 30, 2026 $ 1,351,094     $ 3 $ 2 $ 565,164 $ 688,126 $ (4,766) $ (11,788) $ 114,353