XML 46 R38.htm IDEA: XBRL DOCUMENT v3.24.2
Share-based awards (Tables)
6 Months Ended
Jun. 30, 2024
Share-Based Payment Arrangement [Abstract]  
Summary of Stock Option Activity
The following table summarizes option activity for the six months ended June 30, 2024:
 Options
Outstanding
Number of Shares 
Weighted
Average
Exercise
Price
Weighted
Average
Remaining
Contractual
Life
Outstanding at December 31, 2023902,806 $142.96 4.42
Granted68,380 $325.51 
Exercised(201,654)$107.30 
Outstanding at June 30, 2024769,532 $168.52 4.55
Exercisable at June 30, 2024535,883 $134.89 3.81
Schedule of Weighted Average Fair Values and Assumptions Used The weighted average grant date fair values and assumptions used were as follows:
Six Months Ended
June 30,
2024
June 30,
2023
Weighted average grant date fair value$115.76 $85.12 
Assumptions:  
Expected volatility36 %33 %
Dividend yield— %— %
Risk-free interest rate4.20 %4.18 %
Expected life4.3 years5 years
Summary of RSU and PSU Activity The following table summarizes RSU and PSU activity for the six months ended June 30, 2024:
PSU
Outstanding
Number of
Shares
PSU
Weighted
Average Grant Date
Fair Value
RSU
Outstanding
Number of
Shares
RSU
Weighted
Average Grant Date
Fair Value
Outstanding at December 31, 2023105,256 $226.29 621,011 $218.27 
Granted48,626 $325.51 237,539 $318.49 
Shares vested(9,975)$177.38 (109,885)$220.87 
Forfeited(72,764)$252.86 (39,114)$221.86 
Outstanding at June 30, 202471,143 $273.79 709,551 $251.22 
Schedule of Non-Cash Stock Compensation Expense
Stock compensation expense for the three and six months ended June 30, 2024 and June 30, 2023 has been allocated as follows:
Three Months EndedSix Months Ended
June 30,
2024
June 30,
2023
June 30,
2024
June 30,
2023
(in thousands)
Direct costs$7,299 $6,420 $14,020 $12,088 
Selling, general and administrative7,665 10,178 14,125 19,269 
Total$14,964 $16,598 $28,145 $31,357