XML 36 R27.htm IDEA: XBRL DOCUMENT v3.22.2
Revenue Recognition - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2022
Jun. 30, 2021
Jun. 30, 2022
Jun. 30, 2021
Disaggregation of Revenue [Line Items]        
Revenues $ 137,833 $ 122,869 $ 270,235 $ 240,711
Revenue, remaining performance obligation, percentage 100.00% 100.00% 100.00% 100.00%
Revenue recognized over time        
Disaggregation of Revenue [Line Items]        
Revenues $ 8,522 $ 7,118 $ 16,230 $ 13,579
Revenue recognized over time | Service Concentration Risk | Revenue Benchmark        
Disaggregation of Revenue [Line Items]        
Revenue, remaining performance obligation, percentage 6.20% 5.80% 6.00% 5.60%
Revenue recognized at a point in time        
Disaggregation of Revenue [Line Items]        
Revenues $ 129,311 $ 115,751 $ 254,005 $ 227,132
Revenue recognized at a point in time | Product Concentration Risk | Revenue Benchmark        
Disaggregation of Revenue [Line Items]        
Revenue, remaining performance obligation, percentage 93.80% 94.20% 94.00% 94.40%
United States        
Disaggregation of Revenue [Line Items]        
Revenues $ 120,823 $ 103,402 $ 233,577 $ 202,144
Asia        
Disaggregation of Revenue [Line Items]        
Revenues 2,930 4,466 7,128 8,475
Canada        
Disaggregation of Revenue [Line Items]        
Revenues 2,945 2,729 5,908 6,065
Europe        
Disaggregation of Revenue [Line Items]        
Revenues 7,121 7,709 15,353 16,353
Mexico        
Disaggregation of Revenue [Line Items]        
Revenues 809 1,873 1,385 2,978
Middle East        
Disaggregation of Revenue [Line Items]        
Revenues 2,124 2,132 3,783 3,760
Other        
Disaggregation of Revenue [Line Items]        
Revenues $ 1,081 $ 558 $ 3,101 $ 936