XML 17 R4.htm IDEA: XBRL DOCUMENT v3.23.2
UNAUDITED CONSOLIDATED STATEMENTS OF OPERATIONS AND COMPREHENSIVE INCOME - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2023
Jun. 30, 2022
Jun. 30, 2023
Jun. 30, 2022
Income Statement [Abstract]        
Contract revenues $ 888,616 $ 708,114 $ 1,700,232 $ 1,344,738
Contract costs 798,489 627,252 1,525,713 1,183,391
Gross profit 90,127 80,862 174,519 161,347
Selling, general and administrative expenses 57,775 52,016 114,739 105,580
Amortization of intangible assets 1,229 3,253 2,455 6,020
Gain on sale of property and equipment (1,315) (652) (2,539) (1,400)
Income from operations 32,438 26,245 59,864 51,147
Other income (expense):        
Interest income 193 6 514 14
Interest expense (1,154) (650) (1,740) (1,101)
Other income, net 120 2,277 30 2,262
Income before provision for income taxes 31,597 27,878 58,668 52,322
Income tax expense 9,324 8,194 13,232 11,950
Net income $ 22,273 $ 19,684 $ 45,436 $ 40,372
Income per common share:        
Basic (in dollars per share) $ 1.33 $ 1.17 $ 2.73 $ 2.39
Diluted (in dollars per share) $ 1.33 $ 1.15 $ 2.70 $ 2.36
Weighted average number of common shares and potential common shares outstanding:        
Basic (in shares) 16,707 16,894 16,662 16,904
Diluted (in shares) 16,809 17,070 16,817 17,141
Net income $ 22,273 $ 19,684 $ 45,436 $ 40,372
Other comprehensive income (loss):        
Foreign currency translation adjustment 2,140 (3,477) 2,276 (1,826)
Other comprehensive income (loss) 2,140 (3,477) 2,276 (1,826)
Total comprehensive income $ 24,413 $ 16,207 $ 47,712 $ 38,546