XML 58 R43.htm IDEA: XBRL DOCUMENT v3.24.0.1
Revenue from Contracts with Customers - Revenue Recognition (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Contracts in progress    
Less-Unbilled accounts receivable $ (72,774) $ (77,030)
Less-Unbilled accounts receivable credit allowance (850) (1,011)
Costs and estimated earnings in excess of billings, less allowance for credit losses 28,084 27,211
Plus-Costs and estimated earnings in excess of billings credit allowance 79 80
Billings in excess of costs and estimated earnings $ (909,538) (548,293)
Period during which progress billings or contract price can be withheld until completion of work 6 months  
Retention receivable $ 245,000 193,600
Retention payable $ 32,900 $ 29,800
Revenue, Performance Obligation, Description of Payment Terms We typically invoice our customers with payment terms of net due in 30 days  
Receivable payment terms (in days) 30 days  
Minimum    
Contracts in progress    
Receivable payment terms (in days) 45 days  
Payments received term (in days) 30 days  
Maximum    
Contracts in progress    
Receivable payment terms (in days) 60 days  
Payments received term (in days) 90 days