XML 48 R38.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 9 Months Ended
Sep. 30, 2021
Sep. 30, 2020
Sep. 30, 2021
Sep. 30, 2020
Disaggregation of Revenue [Line Items]        
Revenues $ 192,820 $ 157,678 $ 546,297 $ 449,579
Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 191,935 156,218 543,341 446,297
Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 885 1,460 2,956 3,282
Services        
Disaggregation of Revenue [Line Items]        
Revenues 192,419 156,755 544,924 447,993
Services | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 191,935 156,218 543,341 446,297
Services | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 484 537 1,583 1,696
Professional services        
Disaggregation of Revenue [Line Items]        
Revenues 189,241 152,850 534,650 435,983
Professional services | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 189,241 152,850 534,650 435,983
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 146,675 114,581 414,540 316,866
Professional services | Time and materials contracts | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 146,675 114,581 414,540 316,866
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 11,572 13,920 35,252 39,556
Professional services | Fixed fee percent complete contracts | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 11,572 13,920 35,252 39,556
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 28,678 22,836 77,726 72,124
Professional services | Fixed fee contracts | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 28,678 22,836 77,726 72,124
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,316 1,513 7,132 7,437
Professional services | Reimbursable expenses | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 2,316 1,513 7,132 7,437
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,178 3,905 10,274 12,010
Other services | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 2,694 3,368 8,691 10,314
Other services | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 484 537 1,583 1,696
Software and hardware        
Disaggregation of Revenue [Line Items]        
Revenues 401 923 1,373 1,586
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 $ 401 $ 923 $ 1,373 $ 1,586