v3.26.1
Condensed Consolidated Statements of Operations (Unaudited) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2026
Jun. 30, 2025
Jun. 30, 2026
Jun. 30, 2025
Income Statement [Abstract]        
Revenue $ 173,457 $ 142,241 $ 312,316 $ 275,349
Cost of revenue 136,164 102,415 243,853 198,804
Gross profit 37,293 39,826 68,463 76,545
Operating expenses:        
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
Total operating expenses 30,041 29,184 60,078 57,992
Operating income 7,252 10,642 8,385 18,553
Other (expenses) income:        
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 (expense) income (669) 122 (1,079) 202
Income before income taxes 6,583 10,764 7,306 18,755
Income tax expense (benefit) 1,836 3,002 (1,821) 779
Net income $ 4,747 $ 7,762 $ 9,127 $ 17,976
Earnings per common share:        
Basic (in usd per share) $ 0.40 $ 0.67 $ 0.77 $ 1.56
Diluted (in usd per share) $ 0.39 $ 0.64 $ 0.76 $ 1.48
Weighted average number of shares outstanding:        
Basic (in shares) 11,921,067 11,624,639 11,840,680 11,522,614
Diluted (in shares) 12,040,218 12,114,221 12,047,368 12,106,967