v3.26.1
UNAUDITED CONSOLIDATED STATEMENTS OF OPERATIONS AND COMPREHENSIVE INCOME - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2026
Jun. 30, 2025
Jun. 30, 2026
Jun. 30, 2025
Income Statement [Abstract]        
Contract revenues $ 1,081,727 $ 900,325 $ 2,082,107 $ 1,733,945
Contract costs 939,054 796,614 1,804,994 1,533,333
Gross profit 142,673 103,711 277,113 200,612
Selling, general and administrative expenses 74,409 63,313 143,832 125,837
Amortization of intangible assets 1,210 1,211 2,427 2,399
Gain on sale of property and equipment (891) (600) (1,813) (1,701)
Income from operations 67,945 39,787 132,667 74,077
Other income (expense):        
Interest income 866 45 1,776 236
Interest expense (706) (1,905) (1,365) (3,319)
Other expense, net (974) (533) (1,922) (833)
Income before provision for income taxes 67,131 37,394 131,156 70,161
Income tax expense 17,280 10,928 34,505 20,387
Net income $ 49,851 $ 26,466 $ 96,651 $ 49,774
Income per common share:        
Basic (in dollars per share) $ 3.20 $ 1.70 $ 6.21 $ 3.16
Diluted (in dollars per share) $ 3.17 $ 1.70 $ 6.15 $ 3.15
Weighted average number of common shares and potential common shares outstanding:        
Basic (in shares) 15,577 15,527 15,558 15,759
Diluted (in shares) 15,731 15,575 15,712 15,813
Net income $ 49,851 $ 26,466 $ 96,651 $ 49,774
Other comprehensive income (loss):        
Foreign currency translation adjustment (1,641) 4,872 (2,944) 4,994
Other comprehensive income (loss) (1,641) 4,872 (2,944) 4,994
Total comprehensive income $ 48,210 $ 31,338 $ 93,707 $ 54,768