XML 50 R39.htm IDEA: XBRL DOCUMENT v3.25.3
Revenue from Contracts with Customers - Narrative (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2025
Sep. 30, 2024
Sep. 30, 2025
Sep. 30, 2024
Dec. 31, 2024
Revenue from Contract with Customer [Abstract]          
Unexecuted change orders $ 67,400   $ 67,400   $ 56,200
Loss provision 2,570   2,570   1,021
Claim position 34,400   34,400   54,900
Remaining outstanding billings on large project 31,300   31,300    
Net increase in revenues from performance obligations satisfied in prior periods 51,600 $ 25,800 102,200 $ 71,500  
Positive net impact on net income from previous performance obligations $ 37,900 $ 19,400 $ 74,800 $ 53,100  
Positive net impact on diluted earnings per share from previous performance obligations (in dollars per share) $ 0.74 $ 0.38 $ 1.46 $ 1.04  
Increase in net income $ 15,400 $ 3,700 $ 34,000 $ 15,100  
Increase in gross profit $ 21,000 $ 4,900 $ 46,400 $ 20,400  
Increase in diluted earnings per share (in dollars per share) $ 0.30 $ 0.07 $ 0.67 $ 0.30  
Contract with customer, liability, revenue recognized $ 12,700 $ 46,600 $ 146,400 $ 136,500  
Remaining performance obligation $ 2,690,000   $ 2,690,000   $ 2,460,000