XML 15 R4.htm IDEA: XBRL DOCUMENT v3.21.2
UNAUDITED CONSOLIDATED STATEMENTS OF OPERATIONS AND COMPREHENSIVE INCOME - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2021
Jun. 30, 2020
Jun. 30, 2021
Jun. 30, 2020
Income Statement [Abstract]        
Contract revenues $ 649,573 $ 513,051 $ 1,242,059 $ 1,031,521
Contract costs 568,551 451,746 1,084,084 908,584
Gross profit 81,022 61,305 157,975 122,937
Selling, general and administrative expenses 51,890 41,199 101,537 86,245
Amortization of intangible assets 578 1,203 1,156 2,431
Gain on sale of property and equipment (1,111) (439) (1,794) (1,489)
Income from operations 29,665 19,342 57,076 35,750
Other income (expense):        
Interest income 15 4 28 6
Interest expense (678) (1,315) (1,153) (2,828)
Other income (expense), net 80 321 121 (574)
Income before provision for income taxes 29,082 18,352 56,072 32,354
Income tax expense 7,863 4,967 14,925 9,037
Net income $ 21,219 $ 13,385 $ 41,147 $ 23,317
Income per common share:        
Basic (in dollars per share) $ 1.26 $ 0.80 $ 2.45 $ 1.40
Diluted (in dollars per share) $ 1.24 $ 0.80 $ 2.41 $ 1.39
Weighted average number of common shares and potential common shares outstanding:        
Basic (in shares) 16,854 16,685 16,807 16,656
Diluted (in shares) 17,125 16,765 17,093 16,751
Net income $ 21,219 $ 13,385 $ 41,147 $ 23,317
Other comprehensive income (loss):        
Foreign currency translation adjustment 413 (39) 666 48
Other comprehensive income (loss): 413 (39) 666 48
Total comprehensive income $ 21,632 $ 13,346 $ 41,813 $ 23,365