XML 52 R38.htm IDEA: XBRL DOCUMENT v3.23.2
Revenue - Disaggregation of Revenue by Revenue Source and Pattern of Revenue Recognition (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2023
Jun. 30, 2022
Jun. 30, 2023
Jun. 30, 2022
Disaggregation of Revenue [Line Items]        
Revenues $ 231,105 $ 222,738 $ 462,513 $ 444,849
Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 230,100 221,600 460,600 442,700
Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 1,000 1,100 1,900 2,100
Services        
Disaggregation of Revenue [Line Items]        
Revenues 230,700 222,300 461,600 443,700
Services | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 230,100 221,600 460,600 442,700
Services | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 600 700 1,000 1,000
Professional services        
Disaggregation of Revenue [Line Items]        
Revenues 228,600 219,600 457,700 438,800
Professional services | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 228,600 219,600 457,700 438,800
Professional services | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 0 0 0 0
Professional services | Time and materials contracts        
Disaggregation of Revenue [Line Items]        
Revenues 170,600 170,600 346,100 342,200
Professional services | Time and materials contracts | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 170,600 170,600 346,100 342,200
Professional services | Time and materials contracts | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 0 0 0 0
Professional services | Fixed fee percent complete contracts        
Disaggregation of Revenue [Line Items]        
Revenues 16,200 13,500 31,000 27,900
Professional services | Fixed fee percent complete contracts | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 16,200 13,500 31,000 27,900
Professional services | Fixed fee percent complete contracts | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 0 0 0 0
Professional services | Fixed fee contracts        
Disaggregation of Revenue [Line Items]        
Revenues 39,700 33,100 76,000 64,300
Professional services | Fixed fee contracts | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 39,700 33,100 76,000 64,300
Professional services | Fixed fee contracts | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 0 0 0 0
Professional services | Reimbursable expenses        
Disaggregation of Revenue [Line Items]        
Revenues 2,100 2,400 4,600 4,400
Professional services | Reimbursable expenses | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 2,100 2,400 4,600 4,400
Professional services | Reimbursable expenses | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 0 0 0 0
Other services        
Disaggregation of Revenue [Line Items]        
Revenues 2,100 2,700 3,900 4,900
Other services | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 1,500 2,000 2,900 3,900
Other services | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 600 700 1,000 1,000
Software and hardware        
Disaggregation of Revenue [Line Items]        
Revenues 400 400 900 1,100
Software and hardware | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 0 0 0 0
Software and hardware | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues $ 400 $ 400 $ 900 $ 1,100