XML 36 R27.htm IDEA: XBRL DOCUMENT v3.22.1
Revenue Recognition - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2022
Mar. 31, 2021
Disaggregation of Revenue [Line Items]    
Revenues $ 132,402 $ 117,842
Revenue, remaining performance obligation, percentage 100.00% 100.00%
Revenue recognized over time    
Disaggregation of Revenue [Line Items]    
Revenues $ 7,708 $ 6,461
Revenue recognized over time | Service Concentration Risk | Revenue Benchmark    
Disaggregation of Revenue [Line Items]    
Revenue, remaining performance obligation, percentage 5.80% 5.50%
Revenue recognized at a point in time    
Disaggregation of Revenue [Line Items]    
Revenues $ 124,694 $ 111,381
Revenue recognized at a point in time | Product Concentration Risk | Revenue Benchmark    
Disaggregation of Revenue [Line Items]    
Revenue, remaining performance obligation, percentage 94.20% 94.50%
United States    
Disaggregation of Revenue [Line Items]    
Revenues $ 112,755 $ 98,742
Asia    
Disaggregation of Revenue [Line Items]    
Revenues 4,197 4,009
Canada    
Disaggregation of Revenue [Line Items]    
Revenues 2,963 3,336
Europe    
Disaggregation of Revenue [Line Items]    
Revenues 8,232 8,644
Mexico    
Disaggregation of Revenue [Line Items]    
Revenues 576 1,105
Middle East    
Disaggregation of Revenue [Line Items]    
Revenues 1,659 1,628
Other    
Disaggregation of Revenue [Line Items]    
Revenues $ 2,020 $ 378