Operating Segments - Schedule of Condensed Consolidated Segment Information (Details) - USD ($) $ in Thousands |
3 Months Ended | 6 Months Ended | ||
|---|---|---|---|---|
Jun. 30, 2026 |
Jun. 30, 2025 |
Jun. 30, 2026 |
Jun. 30, 2025 |
|
| Segment Reporting [Line Items] | ||||
| Revenue | $ 173,457 | $ 142,241 | $ 312,316 | $ 275,349 |
| Cost of revenue | 136,164 | 102,415 | 243,853 | 198,804 |
| Total gross profit | 37,293 | 39,826 | 68,463 | 76,545 |
| Selling, general and administrative | 28,116 | 26,632 | 56,230 | 53,150 |
| Acquisition-related retention expense and contingent consideration | 230 | 795 | 379 | 1,222 |
| Amortization of intangibles | 1,695 | 1,757 | 3,469 | 3,620 |
| Operating income | 7,252 | 10,642 | 8,385 | 18,553 |
| Interest expense | (773) | (563) | (1,474) | (1,089) |
| Interest income | 1 | 334 | 16 | 704 |
| Gain on disposition of property and equipment | 81 | 407 | 319 | 740 |
| Gain (loss) on change in fair value of interest rate swap | 22 | (56) | 60 | (153) |
| Total other (expenses) income | (669) | 122 | (1,079) | 202 |
| Income before income taxes | 6,583 | 10,764 | 7,306 | 18,755 |
| Operating Segments | ODR | ||||
| Segment Reporting [Line Items] | ||||
| Revenue | 128,414 | 108,948 | 228,225 | 199,341 |
| Cost of revenue | 97,654 | 77,359 | 174,481 | 141,591 |
| Total gross profit | 30,760 | 31,589 | 53,744 | 57,750 |
| Operating Segments | GCR | ||||
| Segment Reporting [Line Items] | ||||
| Revenue | 45,043 | 33,293 | 84,091 | 76,008 |
| Cost of revenue | 38,510 | 25,056 | 69,372 | 57,213 |
| Total gross profit | 6,533 | 8,237 | 14,719 | 18,795 |
| Corporate | ||||
| Segment Reporting [Line Items] | ||||
| Selling, general and administrative | $ 2,100 | $ 1,600 | $ 3,900 | $ 3,200 |
| X | ||||||||||
- Definition Amount of amortization expense for finite-lived intangible asset. Excludes goodwill and capitalized cost for software to be sold, leased, or marketed. Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef
|
| X | ||||||||||
- Definition Amount of increase (decrease) in value of liability in contingent consideration arrangement in business combination, including, but not limited to, difference arising upon settlement. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef
|
| X | ||||||||||
- Definition The aggregate cost of goods produced and sold and services rendered during the reporting period. Reference 1: http://www.xbrl.org/2003/role/disclosureRef
|
| X | ||||||||||
- Definition Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property. Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef
|
| X | ||||||||||
- Definition Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity. Reference 1: http://www.xbrl.org/2003/role/disclosureRef
|
| X | ||||||||||
- Definition Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef
|
| X | ||||||||||
- Definition Amount of interest expense classified as nonoperating. Reference 1: http://www.xbrl.org/2003/role/disclosureRef
|
| X | ||||||||||
- Definition Amount of interest income earned from interest bearing assets classified as other. Reference 1: http://www.xbrl.org/2003/role/exampleRef
|
| X | ||||||||||
- Definition The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business). Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef
|
| X | ||||||||||
- Definition The net result for the period of deducting operating expenses from operating revenues. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef
|
| X | ||||||||||
- Definition Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss). Reference 1: http://www.xbrl.org/2003/role/disclosureRef
|
| X | ||||||||||
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. Reference 1: http://www.xbrl.org/2003/role/disclosureRef
|
| X | ||||||||||
- Definition The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc. Reference 1: http://www.xbrl.org/2003/role/exampleRef
|
| X | ||||||||||
- Definition The net change in the difference between the fair value and the carrying value, or in the comparative fair values, of derivative instruments, including options, swaps, futures, and forward contracts, held at each balance sheet date, that was included in earnings for the period. Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef
|
| X | ||||||||||
- Details
|
| X | ||||||||||
- Details
|
| X | ||||||||||
- Details
|
| X | ||||||||||
- Details
|