v3.26.1
Revenue from Contracts with Customers (Tables)
3 Months Ended
Mar. 31, 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)March 31, 2026December 31, 2025Change
Contract assets
Costs and estimated earnings in excess of billings on uncompleted contracts$30,163 $29,254 $909 
Retainage receivable, net16,322 16,213 109 
      Total contract assets, net$46,485 $45,467 $1,018 
(in thousands)March 31, 2026December 31, 2025Change
Contract liabilities
Billings in excess of costs and estimated earnings on uncompleted contracts, net$18,008 $20,889 $(2,881)
Provisions for losses52 47 
      Total contract liabilities, net$18,060 $20,936 $(2,876)
Schedule of Contracts In Progress
(in thousands)March 31, 2026December 31, 2025
Revenue earned on uncompleted contracts$634,756 $614,448 
Less: Billings to date(622,601)(606,083)
   Net underbilling $12,155 $8,365 
(in thousands)March 31, 2026December 31, 2025
Costs and estimated earnings in excess of billings on uncompleted contracts$30,163 $29,254 
Billings in excess of costs and estimated earnings on uncompleted contracts, net(18,008)(20,889)
   Net underbilling $12,155 $8,365