v3.26.3
Revenue from Contracts with Customers (Tables)
9 Months Ended
Sep. 30, 2026
Revenue from Contract with Customer [Abstract]  
Schedule of Components of Contract Asset and Liability Balances The components of the contract asset balances as of the respective dates were as follows:
(in thousands)September 30, 2026December 31, 2025Change
Contract assets
Costs and estimated earnings in excess of billings on uncompleted contracts$38,512 $29,254 $9,258 
Retainage receivable, net25,263 16,213 9,050 
      Total contract assets, net$63,775 $45,467 $18,308 
The components of the contract liability balances as of the respective dates were as follows:
(in thousands)September 30, 2026December 31, 2025Change
Contract liabilities
Billings in excess of costs and estimated earnings on uncompleted contracts, net$47,629 $20,889 $26,740 
Provisions for losses268 47 221 
      Total contract liabilities, net$47,897 $20,936 $26,961 
Schedule of Contracts In Progress
The net (overbilling) underbilling position for contracts in process consisted of the following:
(in thousands)September 30, 2026December 31, 2025
Revenue earned on uncompleted contracts$853,000 $614,448 
Less: Billings to date(862,117)(606,083)
   Net (overbilling) underbilling $(9,117)$8,365 
(in thousands)September 30, 2026December 31, 2025
Costs and estimated earnings in excess of billings on uncompleted contracts$38,512 $29,254 
Billings in excess of costs and estimated earnings on uncompleted contracts, net(47,629)(20,889)
   Net (overbilling) underbilling $(9,117)$8,365