XML 59 R48.htm IDEA: XBRL DOCUMENT v3.21.2
Revenue - Narrative (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2021
Sep. 30, 2020
Sep. 30, 2021
Sep. 30, 2020
Dec. 31, 2020
Disaggregation of Revenue          
Revenue recognized $ 130,053 $ 118,365 $ 400,655 $ 381,835  
Contract with customer, assets 41,164   41,164   $ 37,843
Contract with customer, liability 4,840   4,840   $ 1,324
Contract assets transferred to receivables     20,561    
Cash proceeds from liability contract     4,512    
Revenue recognized from contract liability $ 81 $ 175 $ 985 $ 3,708  
Over time          
Disaggregation of Revenue          
Customer revenue transferred (percentage) 35.80% 32.20% 29.70% 27.90%  
Revenue recognized $ 46,576 $ 38,116 $ 119,122 $ 106,439  
Over time | Performance Based          
Disaggregation of Revenue          
Revenue recognized 30,314 27,316 79,109 76,606  
Over time | Delivery Based          
Disaggregation of Revenue          
Revenue recognized $ 16,262 $ 10,800 $ 40,013 $ 29,833  
Point in time          
Disaggregation of Revenue          
Customer revenue transferred (percentage) 64.20% 67.80% 70.30% 72.10%  
Revenue recognized $ 83,477 $ 80,249 $ 281,533 $ 275,396