XML 30 R38.htm IDEA: XBRL DOCUMENT v3.20.1
Revenue - Disaggregation of Revenue by Revenue Source and Pattern of Revenue Recognition (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2020
Mar. 31, 2019
Disaggregation of Revenue [Line Items]    
Revenues $ 145,562 $ 133,815
Transferred over Time    
Disaggregation of Revenue [Line Items]    
Revenues 144,664 132,275
Transferred at Point in Time    
Disaggregation of Revenue [Line Items]    
Revenues 898 1,540
Services    
Disaggregation of Revenue [Line Items]    
Revenues 145,402 132,866
Services | Transferred over Time    
Disaggregation of Revenue [Line Items]    
Revenues 144,664 132,275
Services | Transferred at Point in Time    
Disaggregation of Revenue [Line Items]    
Revenues 738 591
Professional Services    
Disaggregation of Revenue [Line Items]    
Revenues 141,034 128,930
Professional Services | Transferred over Time    
Disaggregation of Revenue [Line Items]    
Revenues 141,034 128,930
Professional Services | Transferred at Point in Time    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Professional Services | Time and materials contracts    
Disaggregation of Revenue [Line Items]    
Revenues 99,991 88,378
Professional Services | Time and materials contracts | Transferred over Time    
Disaggregation of Revenue [Line Items]    
Revenues 99,991 88,378
Professional Services | Time and materials contracts | Transferred at Point in Time    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Professional Services | Fixed fee percent complete contracts    
Disaggregation of Revenue [Line Items]    
Revenues 11,621 12,458
Professional Services | Fixed fee percent complete contracts | Transferred over Time    
Disaggregation of Revenue [Line Items]    
Revenues 11,621 12,458
Professional Services | Fixed fee percent complete contracts | Transferred at Point in Time    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Professional Services | Fixed fee contracts    
Disaggregation of Revenue [Line Items]    
Revenues 25,028 24,180
Professional Services | Fixed fee contracts | Transferred over Time    
Disaggregation of Revenue [Line Items]    
Revenues 25,028 24,180
Professional Services | Fixed fee contracts | Transferred at Point in Time    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Professional Services | Reimbursable expenses    
Disaggregation of Revenue [Line Items]    
Revenues 4,394 3,914
Professional Services | Reimbursable expenses | Transferred over Time    
Disaggregation of Revenue [Line Items]    
Revenues 4,394 3,914
Professional Services | Reimbursable expenses | Transferred at Point in Time    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Other Services    
Disaggregation of Revenue [Line Items]    
Revenues 4,368 3,936
Other Services | Transferred over Time    
Disaggregation of Revenue [Line Items]    
Revenues 3,630 3,345
Other Services | Transferred at Point in Time    
Disaggregation of Revenue [Line Items]    
Revenues 738 591
Software and hardware    
Disaggregation of Revenue [Line Items]    
Revenues 160 949
Software and hardware | Transferred over Time    
Disaggregation of Revenue [Line Items]    
Revenues 0 0
Software and hardware | Transferred at Point in Time    
Disaggregation of Revenue [Line Items]    
Revenues $ 160 $ 949