v3.26.1
UNAUDITED CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS AND COMPREHENSIVE INCOME - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2026
Jun. 30, 2025
Jun. 30, 2026
Jun. 30, 2025
Income Statement [Abstract]        
Revenue $ 349,331 $ 334,316 $ 679,695 $ 664,344
Direct costs 249,877 243,668 490,173 485,436
Gross profit 99,454 90,648 189,522 178,908
Selling, general and administrative expenses 79,406 74,370 156,164 149,535
Depreciation and amortization 1,296 1,390 2,600 2,854
Income from operations 18,752 14,888 30,758 26,519
Other expense, net 991 1,029 1,643 1,594
Income before income taxes 17,761 13,859 29,115 24,925
Income tax expense 5,438 3,410 8,867 6,331
Net income $ 12,323 $ 10,449 $ 20,248 $ 18,594
Earnings per share – basic (in dollars per share) $ 0.74 $ 0.59 $ 1.19 $ 1.04
Earnings per share - diluted (in dollars per share) $ 0.73 $ 0.59 $ 1.19 $ 1.03
Weighted average shares outstanding – basic (in shares) 16,763 17,714 16,947 17,936
Weighted average shares outstanding – diluted (in shares) 16,978 17,759 17,081 17,994