v3.25.1
Revenue from Contracts with Customers (Tables)
3 Months Ended
Mar. 31, 2025
Revenue from Contract with Customer [Abstract]  
Schedule of Components of Contract Asset and Liability Balances
Contract assets include costs and estimated earnings in excess of billings on uncompleted contracts and amounts due under retainage provisions. The components of the contract asset balances as of the respective dates were as follows:
(in thousands)March 31, 2025December 31, 2024Change
Contract assets
Costs and estimated earnings in excess of billings on uncompleted contracts$26,810 $27,304 $(494)
Retainage receivable18,208 20,245 (2,037)
      Total contract assets$45,018 $47,549 $(2,531)
Contract liabilities include billings in excess of contract costs and estimated earnings on uncompleted contracts and provisions for losses. The components of the contract liability balances as of the respective dates were as follows:
(in thousands)March 31, 2025December 31, 2024Change
Contract liabilities
Billings in excess of costs and estimated earnings on uncompleted contracts$40,165 $44,417 $(4,252)
Provisions for losses102 (94)
      Total contract liabilities$40,173 $44,519 $(4,346)
Schedule of Contracts In Progress
The net (overbilling) underbilling position for contracts in process consisted of the following:
(in thousands)March 31, 2025December 31, 2024
Revenue earned on uncompleted contracts$567,685 $618,153 
Less: Billings to date(581,040)(635,266)
   Net (overbilling) underbilling$(13,355)$(17,113)
(in thousands)March 31, 2025December 31, 2024
Costs and estimated earnings in excess of billings on uncompleted contracts$26,810 $27,304 
Billings in excess of costs and estimated earnings on uncompleted contracts(40,165)(44,417)
   Net (overbilling) underbilling$(13,355)$(17,113)