XML 85 R71.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Recognition - Schedule of Revenue by Market Type (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2021
Dec. 31, 2020
Dec. 31, 2019
Disaggregation of Revenue [Line Items]      
Contract revenues $ 2,498,289 $ 2,247,392 $ 2,071,159
Product Concentration Risk | Revenue Benchmark      
Disaggregation of Revenue [Line Items]      
Concentration risk 100.00% 100.00% 100.00%
T&D      
Disaggregation of Revenue [Line Items]      
Contract revenues $ 1,301,587 $ 1,154,378 $ 1,134,411
T&D | Product Concentration Risk | Revenue Benchmark      
Disaggregation of Revenue [Line Items]      
Concentration risk 100.00% 100.00% 100.00%
T&D | Transmission      
Disaggregation of Revenue [Line Items]      
Contract revenues $ 806,367 $ 745,599 $ 772,609
T&D | Transmission | Product Concentration Risk | Revenue Benchmark      
Disaggregation of Revenue [Line Items]      
Concentration risk 32.30% 33.20% 37.30%
T&D | Distribution      
Disaggregation of Revenue [Line Items]      
Contract revenues $ 495,220 $ 408,779 $ 361,802
T&D | Distribution | Product Concentration Risk | Revenue Benchmark      
Disaggregation of Revenue [Line Items]      
Concentration risk 19.80% 18.20% 17.50%
C&I      
Disaggregation of Revenue [Line Items]      
Contract revenues $ 1,196,702 $ 1,093,014 $ 936,748
C&I | Product Concentration Risk | Revenue Benchmark      
Disaggregation of Revenue [Line Items]      
Concentration risk 100.00% 100.00% 100.00%
C&I | Electrical construction      
Disaggregation of Revenue [Line Items]      
Contract revenues $ 1,196,702 $ 1,093,014 $ 936,748
C&I | Electrical construction | Product Concentration Risk | Revenue Benchmark      
Disaggregation of Revenue [Line Items]      
Concentration risk 47.90% 48.60% 45.20%