XML 40 R30.htm IDEA: XBRL DOCUMENT v3.21.2
Revenue - Narrative (Details) - USD ($)
3 Months Ended 6 Months Ended
Jun. 30, 2021
Jun. 30, 2020
Jun. 30, 2021
Jun. 30, 2020
Disaggregation of Revenue [Line Items]        
Percentage of revenues derived from services provided     90.00%  
Percentage of revenues derived from other sources     10.00%  
Net increase to revenue for adjustments to fixed price contracts $ 300,000 $ (400,000) $ (200,000) $ (500,000)
Remaining performance obligations 316,200,000   316,200,000  
Remaining performance obligation expected to be recognized in next 12 months, percentage 0.85   $ 0.85  
Revenue recognition period     12 months  
Revenue recognized related to contract liabilities $ 3,800,000 $ 3,200,000 $ 8,200,000 $ 11,400,000
Minimum        
Disaggregation of Revenue [Line Items]        
Bill and collection period     60 days  
Maximum        
Disaggregation of Revenue [Line Items]        
Bill and collection period     120 days  
Typical collection period     12 months