XML 70 R49.htm IDEA: XBRL DOCUMENT v3.25.4
Revenue from Contracts with Customers - Schedule of the Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2025
Dec. 31, 2024
Dec. 31, 2023
Disaggregation of Revenue [Line Items]      
Operating revenue $ 3,746,387 $ 2,849,685 $ 2,854,390
Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 3,769,193 2,868,593 2,869,444
Eliminations      
Disaggregation of Revenue [Line Items]      
Operating revenue (22,806) (18,908) (15,054)
Fixed-price | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 1,973,838 1,684,927 1,403,462
Unit-price | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 189,121 217,563 176,580
Cost reimbursable | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 1,606,234 966,103 1,289,402
Electrical & Mechanical      
Disaggregation of Revenue [Line Items]      
Operating revenue 2,910,655 2,023,911 2,125,543
Electrical & Mechanical | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 2,920,672 2,031,447 2,134,867
Electrical & Mechanical | Eliminations      
Disaggregation of Revenue [Line Items]      
Operating revenue (10,017) (7,536) (9,324)
Electrical & Mechanical | Commercial | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 2,074,578 1,197,760 1,204,016
Electrical & Mechanical | Industrial | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 316,581 322,661 473,339
Electrical & Mechanical | Institutional | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 352,671 364,611 262,344
Electrical & Mechanical | Renewables | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 62,635 36,975 55,402
Electrical & Mechanical | Service & other | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 114,207 109,440 139,766
Electrical & Mechanical | Fixed-price | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 1,534,357 1,299,059 1,049,626
Electrical & Mechanical | Unit-price | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 39,010 61,964 81,786
Electrical & Mechanical | Cost reimbursable | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 1,347,305 670,424 1,003,455
Transmission & Distribution      
Disaggregation of Revenue [Line Items]      
Operating revenue 835,732 825,774 728,847
Transmission & Distribution | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 848,521 837,146 734,577
Transmission & Distribution | Eliminations      
Disaggregation of Revenue [Line Items]      
Operating revenue (12,789) (11,372) (5,730)
Transmission & Distribution | Utility | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 749,500 753,725 677,434
Transmission & Distribution | Transportation | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 99,021 83,421 57,143
Transmission & Distribution | Fixed-price | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 439,481 385,868 353,836
Transmission & Distribution | Unit-price | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue 150,111 155,599 94,794
Transmission & Distribution | Cost reimbursable | Operating segments      
Disaggregation of Revenue [Line Items]      
Operating revenue $ 258,929 $ 295,679 $ 285,947