Quarterly report pursuant to Section 13 or 15(d)

Revenue from Contracts with Customers - Summary of Impact of Adoption (Details)

v3.10.0.1
Revenue from Contracts with Customers - Summary of Impact of Adoption (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2018
Sep. 30, 2017
Sep. 30, 2018
Sep. 30, 2017
Jan. 01, 2018
Dec. 31, 2017
Assets:            
Costs and estimated earnings in excess of billings $ 66,471   $ 66,471   $ 95,658 $ 104,852
Prepaid expenses and other current assets 13,123   13,123   18,380 14,037
Deferred income taxes, net         1,003  
Liabilities:            
Accrued expenses and other current liabilities 28,067   28,067   24,450 23,260
Deferred income taxes, net 3,453   3,453   0 584
Shareholders' Equity:            
Retained earnings 258,213   258,213   231,390 $ 235,844
Income Statement [Abstract]            
Revenues 205,375 $ 204,744 569,767 $ 506,019    
Cost of revenues 159,213 163,377 445,356 403,320    
Gross profit 46,162 41,367 124,411 102,699    
Operating expenses:            
Selling, general and administrative expenses 28,866 27,027 84,871 80,164    
Operating income 17,296 14,340 39,540 22,535    
Other expenses, net 3,244 1,668 10,754 5,232    
Income before provision for income taxes 14,052 12,672 28,786 17,303    
Income tax provision 3,351 3,881 1,879 4,296    
Net income 10,701 8,791 26,907 13,007    
Net (income) loss attributable to redeemable non-controlling interests 0 (298) (516) 673    
Net income attributable to common shareholders $ 10,701 $ 8,493 $ 26,391 $ 13,680    
Basic income per share (in usd per share) $ 0.23 $ 0.19 $ 0.58 $ 0.30    
Diluted income per share (in usd per share) $ 0.23 $ 0.19 $ 0.57 $ 0.30    
Balances without adoption of Topic 606            
Assets:            
Costs and estimated earnings in excess of billings $ 74,886   $ 74,886   104,852  
Prepaid expenses and other current assets 12,196   12,196   14,037  
Deferred income taxes, net         0  
Liabilities:            
Accrued expenses and other current liabilities 26,910   26,910   23,260  
Deferred income taxes, net 5,202   5,202   584  
Shareholders' Equity:            
Retained earnings 265,110   265,110   235,844  
Income Statement [Abstract]            
Revenues 206,048   568,985      
Cost of revenues 157,476   441,973      
Gross profit 48,572   127,012      
Operating expenses:            
Selling, general and administrative expenses 28,866   84,871      
Operating income 19,706   42,141      
Other expenses, net 3,244   10,754      
Income before provision for income taxes 16,462   31,387      
Income tax provision 3,493   2,040      
Net income 12,969   29,347      
Net (income) loss attributable to redeemable non-controlling interests 0   (516)      
Net income attributable to common shareholders $ 12,969   $ 28,831      
Basic income per share (in usd per share) $ 0.28   $ 0.63      
Diluted income per share (in usd per share) $ 0.28   $ 0.62      
606 Adjustments | Accounting Standards Update 2014-09            
Assets:            
Costs and estimated earnings in excess of billings $ (8,415)   $ (8,415)   (9,194)  
Prepaid expenses and other current assets 927   927   4,343  
Deferred income taxes, net         1,003  
Liabilities:            
Accrued expenses and other current liabilities 1,157   1,157   1,190  
Deferred income taxes, net (1,749)   (1,749)   (584)  
Shareholders' Equity:            
Retained earnings (6,897)   (6,897)   $ (4,454)  
Income Statement [Abstract]            
Revenues (673)   782      
Cost of revenues 1,737   3,383      
Gross profit (2,410)   (2,601)      
Operating expenses:            
Selling, general and administrative expenses 0   0      
Operating income (2,410)   (2,601)      
Other expenses, net 0   0      
Income before provision for income taxes (2,410)   (2,601)      
Income tax provision (142)   (161)      
Net income (2,268)   (2,440)      
Net (income) loss attributable to redeemable non-controlling interests 0   0      
Net income attributable to common shareholders $ (2,268)   $ (2,440)      
Basic income per share (in usd per share) $ (0.05)   $ (0.05)      
Diluted income per share (in usd per share) $ (0.05)   $ (0.05)