v3.26.1
Segment Information - Summary of segment's internal financial reports (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2026
Mar. 31, 2026
Jun. 30, 2025
Mar. 31, 2025
Jun. 30, 2026
Jun. 30, 2025
Segment Reporting [Line Items]            
Contract revenues $ 1,081,727   $ 900,325   $ 2,082,107 $ 1,733,945
Operating costs 1,013,782   860,538   1,949,440 1,659,868
Income from operations 67,945   39,787   132,667 74,077
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 $ 46,800 26,466 $ 23,308 96,651 49,774
Corporate, Non-Segment            
Segment Reporting [Line Items]            
Operating costs 28,857   22,670   53,549 41,978
Income from operations (28,857)   (22,670)   (53,549) (41,978)
T&D            
Segment Reporting [Line Items]            
Contract revenues 524,022   506,273   1,064,992 968,043
T&D | Operating Segments            
Segment Reporting [Line Items]            
Contract revenues 524,022   506,273   1,064,992 968,043
Operating costs 474,509   465,808   963,269 891,357
Income from operations 49,513   40,465   101,723 76,686
C&I            
Segment Reporting [Line Items]            
Contract revenues 557,705   394,052   1,017,115 765,902
C&I | Operating Segments            
Segment Reporting [Line Items]            
Contract revenues 557,705   394,052   1,017,115 765,902
Operating costs 510,416   372,060   932,622 726,533
Income from operations $ 47,289   $ 21,992   $ 84,493 $ 39,369