XML 69 R48.htm IDEA: XBRL DOCUMENT
v3.25.4

Revenue from Contracts with Customers - Narrative (Details) - USD ($) $ / shares in Units, $ in Thousands | 12 Months Ended
--- | ---
Dec. 31, 2025 | Dec. 31, 2024 | Dec. 31, 2023
Revenue from Contract with Customer [Abstract] |  |  |
Unexecuted change orders | $ 69,900 | $ 56,200 |
Loss provision | 1,965 | 1,021 |
Claim position | 25,800 | 54,900 |
Revenue recognized from settled claims | 3,600 |  |
Remaining outstanding billings on large project | 31,300 |  |
Net increase in revenues from performance obligations satisfied in prior periods | 113,700 | 83,400 | $ 45,700
Positive net impact on net income from previous performance obligations | $ 83,700 | $ 61,900 | $ 34,400
Positive net impact on diluted earnings per share from previous performance obligations (in dollars per share) | $ 1.64 | $ 1.21 | $ 0.67
Increase in gross profit | $ 60,100 | $ 28,600 | $ 12,900
Increase in net income | $ 44,200 | $ 21,300 | $ 9,700
Increase in diluted earnings per share (in dollars per share) | $ 0.87 | $ 0.42 | $ 0.19
Operating revenue recognized | $ 151,400 | $ 117,500 | $ 116,300
Remaining performance obligation | $ 2,800,000 | $ 2,460,000 |

X
- Definition Construction Contractor, Contract Cost, Subject To Uncertainty, Claim Position, Amount + References No definition available. + Details
Name: | q42025_ConstructionContractorContractCostSubjectToUncertaintyClaimPositionAmount
Namespace Prefix: | q42025_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Construction Contractor, Contract Cost, Subject To Uncertainty, Unexecuted Change Order, Amount + References No definition available. + Details
Name: | q42025_ConstructionContractorContractCostSubjectToUncertaintyUnexecutedChangeOrderAmount
Namespace Prefix: | q42025_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Construction Contractor, Revenue Recognized From Settled Claims + References No definition available. + Details
Name: | q42025_ConstructionContractorRevenueRecognizedFromSettledClaims
Namespace Prefix: | q42025_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Contract with Customer, Performance Obligation Affecting Profitability Over $1 Million, Increase (Decrease) In Gross Profit + References No definition available. + Details
Name: | q42025_ContractWithCustomerPerformanceObligationAffectingProfitabilityOver1MillionIncreaseDecreaseInGrossProfit
Namespace Prefix: | q42025_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Contract with Customer, Performance Obligation Affecting Profitability Over $1 Million, Increase (Decrease) In Net Income + References No definition available. + Details
Name: | q42025_ContractWithCustomerPerformanceObligationAffectingProfitabilityOver1MillionIncreaseDecreaseInNetIncome
Namespace Prefix: | q42025_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Contract with Customer, Performance Obligation Satisfied in Previous Period, Increase (Decrease) In Earnings Per Share, Diluted + References No definition available. + Details
Name: | q42025_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodIncreaseDecreaseInEarningsPerShareDiluted
Namespace Prefix: | q42025_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition Contract with Customer, Performance Obligation Satisfied in Previous Period, Increase (Decrease) In Net Income + References No definition available. + Details
Name: | q42025_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriodIncreaseDecreaseInNetIncome
Namespace Prefix: | q42025_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Increase (Decrease) In Earnings Per Share, Diluted + References No definition available. + Details
Name: | q42025_IncreaseDecreaseInEarningsPerShareDiluted
Namespace Prefix: | q42025_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 8 -Subparagraph (b) -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8 + Details
Name: | us-gaap_ContractWithCustomerLiabilityRevenueRecognized
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Amount of revenue recognized from performance obligation satisfied or partially satisfied in previous reporting periods. Includes, but is not limited to, change in transaction price. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12A -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12A + Details
Name: | us-gaap_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Cumulative provision for contract losses not offset against related costs accumulated on the balance sheet. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 605 -SubTopic 35 -Name Accounting Standards Codification -Section 45 -Paragraph 2 -Publisher FASB -URI https://asc.fasb.org/1943274/2147481187/605-35-45-2 + Details
Name: | us-gaap_ProvisionForLossOnContracts
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- References No definition available. + Details
Name: | us-gaap_RevenueFromContractWithCustomerAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of transaction price allocated to performance obligation that has not been recognized as revenue. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Name Accounting Standards Codification -Section 50 -Paragraph 13 -Subparagraph (a) -SubTopic 10 -Topic 606 -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13 + Details
Name: | us-gaap_RevenueRemainingPerformanceObligation
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Amount of cost incurred on construction contract for unapproved change order, claim, or similar item subject to uncertainty. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 910 -SubTopic 20 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482332/910-20-50-1 + Details
Name: | us-gaap_UnapprovedChangeOrdersAmount
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant