v3.26.1
Operating Segments (Tables)
6 Months Ended
Jun. 30, 2026
Segment Reporting [Abstract]  
Schedule of Condensed Consolidated Segment Information
Condensed consolidated segment information for the three and six months ended June 30, 2026 and 2025 were as follows:
Three Months Ended
June 30,
Six Months Ended
June 30,
(in thousands)2026202520262025
Statement of Operations Data:
Revenue:
ODR$128,414 $108,948 $228,225 $199,341 
GCR45,043 33,293 84,091 76,008 
Total revenue173,457 142,241 312,316 275,349 
Cost of revenue:
ODR97,654 77,359 174,481 141,591 
GCR38,510 25,056 69,372 57,213 
Total cost of revenue136,164 102,415 243,853 198,804 
Gross profit:
ODR30,760 31,589 53,744 57,750 
GCR6,533 8,237 14,719 18,795 
Total gross profit37,293 39,826 68,463 76,545 
Selling, general and administrative(1)
28,116 26,632 56,230 53,150 
Acquisition-related retention expense and contingent consideration230 795 379 1,222 
Amortization of intangibles1,695 1,757 3,469 3,620 
Operating income$7,252 $10,642 $8,385 $18,553 
Other (expenses) income:
Interest expense(773)(563)(1,474)(1,089)
Interest income334 16 704 
Gain on disposition of property and equipment81 407 319 740 
Gain (loss) on change in fair value of interest rate swap22 (56)60 (153)
Total other (expenses) income(669)122 (1,079)202 
Income before income taxes$6,583 $10,764 $7,306 $18,755 
(1)    Included within selling, general and administrative expenses was $2.1 million and $1.6 million of non-cash stock-based compensation expense for the three months ended June 30, 2026 and 2025, respectively, and $3.9 million and $3.2 million for the six months ended June 30, 2026 and 2025, respectively.