XML 40 R30.htm IDEA: XBRL DOCUMENT v3.21.2
Revenue Recognition - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2021
Jun. 30, 2020
Jun. 30, 2021
Jun. 30, 2020
Disaggregation of Revenue [Line Items]        
Revenues $ 122,869 $ 91,119 $ 240,711 $ 199,627
Revenue, remaining performance obligation, percentage 100.00% 100.00% 100.00% 100.00%
Revenue recognized over time        
Disaggregation of Revenue [Line Items]        
Revenues $ 7,118 $ 5,177 $ 13,579 $ 9,981
Revenue, remaining performance obligation, percentage 5.80% 5.70% 5.60% 5.00%
Revenue recognized at a point in time        
Disaggregation of Revenue [Line Items]        
Revenues $ 115,751 $ 85,942 $ 227,132 $ 189,646
Revenue, remaining performance obligation, percentage 94.20% 94.30% 94.40% 95.00%
United States        
Disaggregation of Revenue [Line Items]        
Revenues $ 107,779 $ 80,754 $ 202,045 $ 175,246
Asia        
Disaggregation of Revenue [Line Items]        
Revenues 3,686 1,437 8,475 2,985
Canada        
Disaggregation of Revenue [Line Items]        
Revenues 3,452 2,125 6,065 5,261
Europe        
Disaggregation of Revenue [Line Items]        
Revenues 4,605 3,293 16,352 8,068
Mexico        
Disaggregation of Revenue [Line Items]        
Revenues 1,192 1,025 3,077 2,995
Middle East        
Disaggregation of Revenue [Line Items]        
Revenues 1,585 2,218 3,761 3,755
Other        
Disaggregation of Revenue [Line Items]        
Revenues $ 570 $ 267 $ 936 $ 1,317