XML 15 R4.htm IDEA: XBRL DOCUMENT v3.25.1
UNAUDITED CONSOLIDATED STATEMENTS OF OPERATIONS AND COMPREHENSIVE INCOME - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended
Mar. 31, 2025
Mar. 31, 2024
Income Statement [Abstract]    
Contract revenues $ 833,620 $ 815,562
Contract costs 736,719 729,319
Gross profit 96,901 86,243
Selling, general and administrative expenses 62,524 62,233
Amortization of intangible assets 1,188 1,228
Gain on sale of property and equipment (1,101) (1,489)
Income from operations 34,290 24,271
Other income (expense):    
Interest income 191 142
Interest expense (1,414) (1,054)
Other expense, net (300) (263)
Income before provision for income taxes 32,767 23,096
Income tax expense 9,459 4,157
Net income $ 23,308 $ 18,939
Income per common share:    
Basic (in dollars per share) $ 1.46 $ 1.13
Diluted (in dollars per share) $ 1.45 $ 1.12
Weighted average number of common shares and potential common shares outstanding:    
Basic (in shares) 15,994 16,711
Diluted (in shares) 16,056 16,837
Net income $ 23,308 $ 18,939
Other comprehensive income (loss):    
Foreign currency translation adjustment 122 (2,472)
Other comprehensive income (loss) 122 (2,472)
Total comprehensive income $ 23,430 $ 16,467