XML 53 R40.htm IDEA: XBRL DOCUMENT v3.20.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, 2020
Sep. 30, 2019
Sep. 30, 2020
Sep. 30, 2019
Disaggregation of Revenue [Line Items]        
Revenues $ 157,678 $ 144,684 $ 449,579 $ 420,368
Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 156,218 143,344 446,297 415,986
Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 1,460 1,340 3,282 4,382
Services        
Disaggregation of Revenue [Line Items]        
Revenues 156,755 144,060 447,993 418,160
Services | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 156,218 143,344 446,297 415,986
Services | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 537 716 1,696 2,174
Professional services        
Disaggregation of Revenue [Line Items]        
Revenues 152,850 139,861 435,983 405,634
Professional services | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 152,850 139,861 435,983 405,634
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 114,581 99,961 316,866 284,423
Professional services | Time and materials contracts | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 114,581 99,961 316,866 284,423
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 13,920 9,465 39,556 32,337
Professional services | Fixed fee percent complete contracts | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 13,920 9,465 39,556 32,337
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 22,836 26,548 72,124 76,683
Professional services | Fixed fee contracts | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 22,836 26,548 72,124 76,683
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 1,513 3,887 7,437 12,191
Professional services | Reimbursable expenses | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 1,513 3,887 7,437 12,191
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,905 4,199 12,010 12,526
Other services | Over Time        
Disaggregation of Revenue [Line Items]        
Revenues 3,368 3,483 10,314 10,352
Other services | Point In Time        
Disaggregation of Revenue [Line Items]        
Revenues 537 716 1,696 2,174
Software and hardware        
Disaggregation of Revenue [Line Items]        
Revenues 923 624 1,586 2,208
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 $ 923 $ 624 $ 1,586 $ 2,208