XML 47 R37.htm IDEA: XBRL DOCUMENT v3.21.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, 2021
Jun. 30, 2020
Jun. 30, 2021
Jun. 30, 2020
Disaggregation of Revenue [Line Items]        
Revenues $ 184,136 $ 146,339 $ 353,477 $ 291,901
Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 183,387 145,415 351,406 290,079
Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 749 924 2,071 1,822
Services        
Disaggregation of Revenue [Line Items]        
Revenues 183,775 145,836 352,505 291,238
Services | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 183,387 145,415 351,406 290,079
Services | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 388 421 1,099 1,159
Professional services        
Disaggregation of Revenue [Line Items]        
Revenues 180,507 142,099 345,409 283,133
Professional services | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 180,507 142,099 345,409 283,133
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 139,274 102,294 267,865 202,285
Professional services | Time and materials contracts | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 139,274 102,294 267,865 202,285
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 12,100 14,015 23,680 25,636
Professional services | Fixed fee percent complete contracts | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 12,100 14,015 23,680 25,636
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 26,571 24,260 49,048 49,288
Professional services | Fixed fee contracts | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 26,571 24,260 49,048 49,288
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,562 1,530 4,816 5,924
Professional services | Reimbursable expenses | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 2,562 1,530 4,816 5,924
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 3,268 3,737 7,096 8,105
Other services | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 2,880 3,316 5,997 6,946
Other services | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 388 421 1,099 1,159
Software and hardware        
Disaggregation of Revenue [Line Items]        
Revenues 361 503 972 663
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 $ 361 $ 503 $ 972 $ 663