XML 18 R3.htm IDEA: XBRL DOCUMENT v3.22.4
CONSOLIDATED STATEMENTS OF OPERATIONS AND COMPREHENSIVE INCOME - USD ($)
shares in Thousands, $ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Dec. 31, 2020
Income Statement [Abstract]      
Revenue $ 1,710,765 $ 1,579,922 $ 1,397,700
Direct costs 1,209,658 1,123,058 1,001,476
Gross profit 501,107 456,864 396,224
Selling, general and administrative expenses 379,815 345,721 310,713
Depreciation and amortization 4,427 4,500 5,255
Income from operations 116,865 106,643 80,256
Other expense, net 14,423 7,376 5,044
Income from operations, before income taxes 102,442 99,267 75,212
Income tax expense 27,011 24,090 19,173
Net income 75,431 75,177 56,039
Other comprehensive (loss) income:      
Defined benefit pension plans, net of tax 0 3,103 (1,706)
Change in fair value of interest rate swap, net of tax (615) 1,941 (1,191)
Comprehensive income $ 74,816 $ 80,221 $ 53,142
Earnings per share:      
Basic (in dollars per share) $ 3.76 $ 3.65 $ 2.67
Diluted (in dollars per share) $ 3.68 $ 3.54 $ 2.62
Weighted average shares outstanding - basic (in shares) 20,054 20,579 20,983
Weighted average shares outstanding – diluted (in shares) 20,503 21,212 21,395